]> gitweb.ps.run Git - toc/blobdiff - antlr4-cpp-runtime-4.9.2-source/runtime/src/LexerInterpreter.h
add antlr source code and ReadMe
[toc] / antlr4-cpp-runtime-4.9.2-source / runtime / src / LexerInterpreter.h
diff --git a/antlr4-cpp-runtime-4.9.2-source/runtime/src/LexerInterpreter.h b/antlr4-cpp-runtime-4.9.2-source/runtime/src/LexerInterpreter.h
new file mode 100644 (file)
index 0000000..e8707e9
--- /dev/null
@@ -0,0 +1,52 @@
+/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+ * Use of this file is governed by the BSD 3-clause license that
+ * can be found in the LICENSE.txt file in the project root.
+ */
+
+#pragma once
+
+#include "Lexer.h"
+#include "atn/PredictionContext.h"
+#include "Vocabulary.h"
+
+namespace antlr4 {
+
+  class ANTLR4CPP_PUBLIC LexerInterpreter : public Lexer {
+  public:
+    // @deprecated
+    LexerInterpreter(const std::string &grammarFileName, const std::vector<std::string> &tokenNames,
+                     const std::vector<std::string> &ruleNames, const std::vector<std::string> &channelNames,
+                     const std::vector<std::string> &modeNames, const atn::ATN &atn, CharStream *input);
+    LexerInterpreter(const std::string &grammarFileName, const dfa::Vocabulary &vocabulary,
+                     const std::vector<std::string> &ruleNames, const std::vector<std::string> &channelNames,
+                     const std::vector<std::string> &modeNames, const atn::ATN &atn, CharStream *input);
+
+    ~LexerInterpreter();
+
+    virtual const atn::ATN& getATN() const override;
+    virtual std::string getGrammarFileName() const override;
+    virtual const std::vector<std::string>& getTokenNames() const override;
+    virtual const std::vector<std::string>& getRuleNames() const override;
+    virtual const std::vector<std::string>& getChannelNames() const override;
+    virtual const std::vector<std::string>& getModeNames() const override;
+
+    virtual const dfa::Vocabulary& getVocabulary() const override;
+
+  protected:
+    const std::string _grammarFileName;
+    const atn::ATN &_atn;
+
+    // @deprecated
+    std::vector<std::string> _tokenNames;
+    const std::vector<std::string> &_ruleNames;
+    const std::vector<std::string> &_channelNames;
+    const std::vector<std::string> &_modeNames;
+    std::vector<dfa::DFA> _decisionToDFA;
+
+    atn::PredictionContextCache _sharedContextCache;
+
+  private:
+    dfa::Vocabulary _vocabulary;
+  };
+
+} // namespace antlr4