1 /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. 2 * Use of this file is governed by the BSD 3-clause license that 3 * can be found in the LICENSE.txt file in the project root. 4 */ 5 6 #pragma once 7 8 #include "Lexer.h" 9 #include "atn/PredictionContext.h" 10 #include "Vocabulary.h" 11 12 namespace antlr4 { 13 14 class ANTLR4CPP_PUBLIC LexerInterpreter : public Lexer { 15 public: 16 // @deprecated 17 LexerInterpreter(const std::string &grammarFileName, const std::vector<std::string> &tokenNames, 18 const std::vector<std::string> &ruleNames, const std::vector<std::string> &channelNames, 19 const std::vector<std::string> &modeNames, const atn::ATN &atn, CharStream *input); 20 LexerInterpreter(const std::string &grammarFileName, const dfa::Vocabulary &vocabulary, 21 const std::vector<std::string> &ruleNames, const std::vector<std::string> &channelNames, 22 const std::vector<std::string> &modeNames, const atn::ATN &atn, CharStream *input); 23 24 ~LexerInterpreter(); 25 26 virtual const atn::ATN& getATN() const override; 27 virtual std::string getGrammarFileName() const override; 28 virtual const std::vector<std::string>& getTokenNames() const override; 29 virtual const std::vector<std::string>& getRuleNames() const override; 30 virtual const std::vector<std::string>& getChannelNames() const override; 31 virtual const std::vector<std::string>& getModeNames() const override; 32 33 virtual const dfa::Vocabulary& getVocabulary() const override; 34 35 protected: 36 const std::string _grammarFileName; 37 const atn::ATN &_atn; 38 39 // @deprecated 40 std::vector<std::string> _tokenNames; 41 const std::vector<std::string> &_ruleNames; 42 const std::vector<std::string> &_channelNames; 43 const std::vector<std::string> &_modeNames; 44 std::vector<dfa::DFA> _decisionToDFA; 45 46 atn::PredictionContextCache _sharedContextCache; 47 48 private: 49 dfa::Vocabulary _vocabulary; 50 }; 51 52 } // namespace antlr4 53