#ifndef TGLEXER_H
#define TGLEXER_H
-#include "llvm/Support/DataTypes.h"
+#include "llvm/System/DataTypes.h"
#include <vector>
#include <string>
-#include <iosfwd>
#include <cassert>
namespace llvm {
class MemoryBuffer;
-class TGSourceMgr;
+class SourceMgr;
class SMLoc;
-
+class Twine;
+
namespace tgtok {
enum TokKind {
// Markers
MultiClass, String,
// !keywords.
- XConcat, XSRA, XSRL, XSHL, XStrConcat, XNameConcat, XCast, XSubst,
- XForEach, XCar, XCdr, XNull, XIf,
+ XConcat, XSRA, XSRL, XSHL, XStrConcat, XCast, XSubst,
+ XForEach, XCar, XCdr, XNull, XIf, XEq,
// Integer value.
IntVal,
/// TGLexer - TableGen Lexer class.
class TGLexer {
- TGSourceMgr &SrcMgr;
+ SourceMgr &SrcMgr;
const char *CurPtr;
const MemoryBuffer *CurBuf;
/// by the SourceMgr object.
int CurBuffer;
- // IncludeDirectories - This is the list of directories we should search for
- // include files in.
- std::vector<std::string> IncludeDirectories;
public:
- TGLexer(TGSourceMgr &SrcMgr);
+ TGLexer(SourceMgr &SrcMgr);
~TGLexer() {}
- void setIncludeDirs(const std::vector<std::string> &Dirs) {
- IncludeDirectories = Dirs;
- }
-
tgtok::TokKind Lex() {
return CurCode = LexToken();
}
SMLoc getLoc() const;
- void PrintError(const char *Loc, const std::string &Msg) const;
- void PrintError(SMLoc 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();