/* 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 "atn/PredictionContextCache.h" #include "Vocabulary.h" namespace antlr4 { class ANTLR4CPP_PUBLIC LexerInterpreter : public Lexer { public: LexerInterpreter(const std::string &grammarFileName, const dfa::Vocabulary &vocabulary, const std::vector &ruleNames, const std::vector &channelNames, const std::vector &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& getRuleNames() const override; virtual const std::vector& getChannelNames() const override; virtual const std::vector& getModeNames() const override; virtual const dfa::Vocabulary& getVocabulary() const override; protected: const std::string _grammarFileName; const atn::ATN &_atn; const std::vector &_ruleNames; const std::vector &_channelNames; const std::vector &_modeNames; std::vector _decisionToDFA; atn::PredictionContextCache _sharedContextCache; private: dfa::Vocabulary _vocabulary; }; } // namespace antlr4