Implement multiclass inheritance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69810 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/TGParser.h b/utils/TableGen/TGParser.h
index b04139f..2979d0e 100644
--- a/utils/TableGen/TGParser.h
+++ b/utils/TableGen/TGParser.h
@@ -25,6 +25,7 @@
struct Init;
struct MultiClass;
struct SubClassReference;
+ struct SubMultiClassReference;
struct LetRecord {
std::string Name;
@@ -46,7 +47,6 @@
/// current value.
MultiClass *CurMultiClass;
public:
-
TGParser(TGSourceMgr &SrcMgr) : Lex(SrcMgr), CurMultiClass(0) {}
void setIncludeDirs(const std::vector<std::string> &D){Lex.setIncludeDirs(D);}
@@ -67,6 +67,7 @@
bool SetValue(Record *TheRec, TGLoc Loc, const std::string &ValName,
const std::vector<unsigned> &BitList, Init *V);
bool AddSubClass(Record *Rec, SubClassReference &SubClass);
+ bool AddSubMultiClass(MultiClass *MV, class SubMultiClassReference &SubMultiClass);
private: // Parser methods.
bool ParseObjectList();
@@ -87,6 +88,7 @@
std::string ParseDeclaration(Record *CurRec, bool ParsingTemplateArgs);
SubClassReference ParseSubClassReference(Record *CurRec, bool isDefm);
+ SubMultiClassReference ParseSubMultiClassReference(MultiClass *CurMultiClass);
Init *ParseIDValue(Record *CurRec);
Init *ParseIDValue(Record *CurRec, const std::string &Name, TGLoc NameLoc);
@@ -101,6 +103,7 @@
RecTy *ParseType();
std::string ParseObjectName();
Record *ParseClassID();
+ MultiClass *ParseMultiClassID();
Record *ParseDefmID();
};