projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Changes for building Clang and others using LLVM as an external
[oota-llvm.git]
/
utils
/
TableGen
/
TGParser.h
diff --git
a/utils/TableGen/TGParser.h
b/utils/TableGen/TGParser.h
index 88998d40fe4f135351c2992e7b759038d3a81619..9cdf68ff974947e43409d62981461d59e919702b 100644
(file)
--- a/
utils/TableGen/TGParser.h
+++ b/
utils/TableGen/TGParser.h
@@
-15,12
+15,14
@@
#define TGPARSER_H
#include "TGLexer.h"
#define TGPARSER_H
#include "TGLexer.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/Support/SourceMgr.h"
#include <map>
namespace llvm {
class Record;
class RecordVal;
#include "llvm/Support/SourceMgr.h"
#include <map>
namespace llvm {
class Record;
class RecordVal;
+ class RecordKeeper;
struct RecTy;
struct Init;
struct MultiClass;
struct RecTy;
struct Init;
struct MultiClass;
@@
-46,18
+48,22
@@
class TGParser {
/// CurMultiClass - If we are parsing a 'multiclass' definition, this is the
/// current value.
MultiClass *CurMultiClass;
/// CurMultiClass - If we are parsing a 'multiclass' definition, this is the
/// current value.
MultiClass *CurMultiClass;
+
+ // Record tracker
+ RecordKeeper &Records;
public:
public:
- TGParser(SourceMgr &SrcMgr) : Lex(SrcMgr), CurMultiClass(0) {}
+ TGParser(SourceMgr &SrcMgr, RecordKeeper &records) :
+ Lex(SrcMgr), CurMultiClass(0), Records(records) {}
/// ParseFile - Main entrypoint for parsing a tblgen file. These parser
/// routines return true on error, or false on success.
bool ParseFile();
/// ParseFile - Main entrypoint for parsing a tblgen file. These parser
/// routines return true on error, or false on success.
bool ParseFile();
- bool Error(SMLoc L, const
std::string
&Msg) const {
+ bool Error(SMLoc L, const
Twine
&Msg) const {
Lex.PrintError(L, Msg);
return true;
}
Lex.PrintError(L, Msg);
return true;
}
- bool TokError(const
std::string
&Msg) const {
+ bool TokError(const
Twine
&Msg) const {
return Error(Lex.getLoc(), Msg);
}
private: // Semantic analysis methods.
return Error(Lex.getLoc(), Msg);
}
private: // Semantic analysis methods.
@@
-69,16
+75,15
@@
private: // Semantic analysis methods.
SubMultiClassReference &SubMultiClass);
private: // Parser methods.
SubMultiClassReference &SubMultiClass);
private: // Parser methods.
- bool ParseObjectList();
- bool ParseObject();
+ bool ParseObjectList(
MultiClass *MC = 0
);
+ bool ParseObject(
MultiClass *MC
);
bool ParseClass();
bool ParseMultiClass();
bool ParseClass();
bool ParseMultiClass();
- bool Parse
MultiClassDef(MultiClass *CurMC
);
- bool ParseDef
m(MultiClass *CurMultiClass = 0
);
- bool ParseTopLevelLet();
+ bool Parse
Defm(MultiClass *CurMultiClass
);
+ bool ParseDef
(MultiClass *CurMultiClass
);
+ bool ParseTopLevelLet(
MultiClass *CurMultiClass
);
std::vector<LetRecord> ParseLetList();
std::vector<LetRecord> ParseLetList();
- Record *ParseDef(MultiClass *CurMultiClass);
bool ParseObjectBody(Record *CurRec);
bool ParseBody(Record *CurRec);
bool ParseBodyItem(Record *CurRec);
bool ParseObjectBody(Record *CurRec);
bool ParseBody(Record *CurRec);
bool ParseBodyItem(Record *CurRec);