X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=utils%2FTableGen%2FTGLexer.h;h=8859479874020dfa75c1a1695150ddeb9caa8023;hb=505f3cd2965e65b6b7ad023eaba0e3dc89b67409;hp=59e9fa0ef5ffd8f949f999e0089c254bb4b69f77;hpb=aa739d26b1e65aec7f9afa1cde7e069c081ea355;p=oota-llvm.git diff --git a/utils/TableGen/TGLexer.h b/utils/TableGen/TGLexer.h index 59e9fa0ef5f..88594798740 100644 --- a/utils/TableGen/TGLexer.h +++ b/utils/TableGen/TGLexer.h @@ -17,13 +17,14 @@ #include "llvm/Support/DataTypes.h" #include #include -#include #include namespace llvm { class MemoryBuffer; -class TGSourceMgr; - +class SourceMgr; +class SMLoc; +class Twine; + namespace tgtok { enum TokKind { // Markers @@ -35,7 +36,7 @@ namespace tgtok { l_brace, r_brace, // { } l_paren, r_paren, // ( ) less, greater, // < > - colon, semi, // ; : + colon, semi, // : ; comma, period, // , . equal, question, // = ? @@ -44,8 +45,9 @@ namespace tgtok { MultiClass, String, // !keywords. - XConcat, XSRA, XSRL, XSHL, XStrConcat, - + XConcat, XSRA, XSRL, XSHL, XStrConcat, XCast, XSubst, + XForEach, XHead, XTail, XEmpty, XIf, XEq, + // Integer value. IntVal, @@ -56,7 +58,7 @@ namespace tgtok { /// TGLexer - TableGen Lexer class. class TGLexer { - TGSourceMgr &SrcMgr; + SourceMgr &SrcMgr; const char *CurPtr; const MemoryBuffer *CurBuf; @@ -71,17 +73,10 @@ class TGLexer { /// by the SourceMgr object. int CurBuffer; - // IncludeDirectories - This is the list of directories we should search for - // include files in. - std::vector IncludeDirectories; public: - TGLexer(TGSourceMgr &SrcMgr); + TGLexer(SourceMgr &SrcMgr); ~TGLexer() {} - void setIncludeDirs(const std::vector &Dirs) { - IncludeDirectories = Dirs; - } - tgtok::TokKind Lex() { return CurCode = LexToken(); } @@ -99,16 +94,16 @@ public: return CurIntVal; } - typedef const char* LocTy; - LocTy getLoc() const { return TokStart; } + SMLoc getLoc() const; - void PrintError(LocTy Loc, const std::string &Msg) const; + void PrintError(const char *Loc, const Twine &Msg) const; + void PrintError(SMLoc Loc, const Twine &Msg) const; private: /// LexToken - Read the next token and return its code. tgtok::TokKind LexToken(); - tgtok::TokKind ReturnError(const char *Loc, const std::string &Msg); + tgtok::TokKind ReturnError(const char *Loc, const Twine &Msg); int getNextChar(); void SkipBCPLComment();