///
class UnOpInit : public OpInit {
public:
- enum UnaryOp { CAST, CAR, CDR, LNULL };
+ enum UnaryOp { CAST, HEAD, TAIL, EMPTY };
private:
UnaryOp Opc;
Init *LHS;
// possible to fold.
Init *Fold(Record *CurRec, MultiClass *CurMultiClass);
+ virtual bool isComplete() const { return false; }
+
virtual Init *resolveReferences(Record &R, const RecordVal *RV);
virtual std::string getAsString() const;
public:
- // Constructs a record. See also RecordKeeper::createRecord.
- explicit Record(const std::string &N, SMLoc loc, RecordKeeper& records) :
+ // Constructs a record.
+ explicit Record(const std::string &N, SMLoc loc, RecordKeeper &records) :
ID(LastID++), Name(N), Loc(loc), TrackedRecords(records) {}
~Record() {}
void resolveReferencesTo(const RecordVal *RV);
RecordKeeper &getRecords() const {
- return(TrackedRecords);
+ return TrackedRecords;
}
void dump() const;
std::vector<Record*>
getAllDerivedDefinitions(const std::string &ClassName) const;
- // allocates and returns a record.
- Record *createRecord(const std::string &N, SMLoc loc) {
- return(new Record(N, loc, *this));
- }
-
-
void dump() const;
};