summaryrefslogtreecommitdiffstats
path: root/llvm/lib/TableGen/TGPreprocessor.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/TableGen/TGPreprocessor.h')
-rw-r--r--llvm/lib/TableGen/TGPreprocessor.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/llvm/lib/TableGen/TGPreprocessor.h b/llvm/lib/TableGen/TGPreprocessor.h
new file mode 100644
index 00000000000..2b9ed9c1566
--- /dev/null
+++ b/llvm/lib/TableGen/TGPreprocessor.h
@@ -0,0 +1,52 @@
+//===- TGPreprocessor.h - Preprocessor for TableGen Files -------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This class represents the Preprocessor for tablegen files.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef TGPREPROCESSOR_H
+#define TGPREPROCESSOR_H
+
+#include <vector>
+
+namespace llvm {
+class MemoryBuffer;
+class SourceMgr;
+class tool_output_file;
+
+class TGPPLexer;
+class TGPPRange;
+class TGPPRecord;
+
+typedef std::vector<TGPPRecord> TGPPRecords;
+
+class TGPreprocessor {
+ SourceMgr &SrcMgr;
+ tool_output_file &Out;
+
+ TGPPLexer *Lexer;
+ TGPPRecords *CurRecords;
+
+ bool ParseBlock(bool TopLevel);
+ bool ParseForLoop();
+ bool ParseRange(TGPPRange *Range);
+
+public:
+ TGPreprocessor(SourceMgr &SM, tool_output_file &O)
+ : SrcMgr(SM), Out(O), Lexer(NULL), CurRecords(NULL) {
+ }
+
+ /// PreprocessFile - Main entrypoint for preprocess a tblgen file. These
+ /// preprocess routines return true on error, or false on success.
+ bool PreprocessFile();
+};
+} // namespace llvm
+
+#endif /* TGPREPROCESSOR_H */
OpenPOWER on IntegriCloud