blob: 14ff03f3c0e2af88646670f224919299855a6c85 [file] [log] [blame]
// [The "BSD 3-clause license"]
// Copyright (c) 2005-2007 Terence Parr
// Copyright (c) 2012-2015 Terence Parr
// Copyright (c) 2012-2015 Sam Harwell
// Copyright (c) 2014-2015 Gerald Rosenberg
// Copyright (c) 2023 Google LLC
// All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// 3. Neither the name of the copyright holder nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Generated from ANTLRv4Lexer.g4 by ANTLR 4.11.2
#ifndef ANTLR4_GEN_ANTLRV_LEXER_H
#define ANTLR4_GEN_ANTLRV_LEXER_H
#include "antlr4-runtime.h"
namespace antlr4_grammar {
class LexerAdaptor : public antlr4::Lexer {
public:
LexerAdaptor &self;
LexerAdaptor(antlr4::CharStream *input) : Lexer(input), self(*this){};
int currentRuleType = antlr4::Token::INVALID_TYPE;
int getCurrentRuleType();
void setCurrentRuleType(int ruleType);
void handleBeginArgument();
void handleEndArgument();
void handleEndAction();
antlr4::Token *emit();
bool inLexerRule();
bool inParserRule();
};
class ANTLRv4Lexer : public LexerAdaptor {
public:
enum {
TOKEN_REF = 1,
RULE_REF = 2,
LEXER_CHAR_SET = 3,
DOC_COMMENT = 4,
BLOCK_COMMENT = 5,
LINE_COMMENT = 6,
INT = 7,
STRING_LITERAL = 8,
UNTERMINATED_STRING_LITERAL = 9,
BEGIN_ARGUMENT = 10,
BEGIN_ACTION = 11,
OPTIONS = 12,
TOKENS = 13,
CHANNELS = 14,
IMPORT = 15,
FRAGMENT = 16,
LEXER = 17,
PARSER = 18,
GRAMMAR = 19,
PROTECTED = 20,
PUBLIC = 21,
PRIVATE = 22,
RETURNS = 23,
LOCALS = 24,
THROWS = 25,
CATCH = 26,
FINALLY = 27,
MODE = 28,
COLON = 29,
COLONCOLON = 30,
COMMA = 31,
SEMI = 32,
LPAREN = 33,
RPAREN = 34,
LBRACE = 35,
RBRACE = 36,
RARROW = 37,
LT = 38,
GT = 39,
ASSIGN = 40,
QUESTION = 41,
STAR = 42,
PLUS_ASSIGN = 43,
PLUS = 44,
OR = 45,
DOLLAR = 46,
RANGE = 47,
DOT = 48,
AT = 49,
POUND = 50,
NOT = 51,
ID = 52,
WS = 53,
ERRCHAR = 54,
END_ARGUMENT = 55,
UNTERMINATED_ARGUMENT = 56,
ARGUMENT_CONTENT = 57,
END_ACTION = 58,
UNTERMINATED_ACTION = 59,
ACTION_CONTENT = 60,
UNTERMINATED_CHAR_SET = 61
};
enum { OFF_CHANNEL = 2, COMMENT = 3 };
enum { Argument = 1, TargetLanguageAction = 2, LexerCharSet = 3 };
explicit ANTLRv4Lexer(antlr4::CharStream *input);
~ANTLRv4Lexer() override;
std::string getGrammarFileName() const override;
const std::vector<std::string> &getRuleNames() const override;
const std::vector<std::string> &getChannelNames() const override;
const std::vector<std::string> &getModeNames() const override;
const antlr4::dfa::Vocabulary &getVocabulary() const override;
antlr4::atn::SerializedATNView getSerializedATN() const override;
const antlr4::atn::ATN &getATN() const override;
void action(antlr4::RuleContext *context, size_t ruleIndex,
size_t actionIndex) override;
// By default the static state used to implement the lexer is lazily
// initialized during the first call to the constructor. You can call this
// function if you wish to initialize the static state ahead of time.
static void initialize();
private:
// Individual action functions triggered by action() above.
void BEGIN_ARGUMENTAction(antlr4::RuleContext *context, size_t actionIndex);
void END_ARGUMENTAction(antlr4::RuleContext *context, size_t actionIndex);
void END_ACTIONAction(antlr4::RuleContext *context, size_t actionIndex);
// Individual semantic predicate functions triggered by sempred() above.
};
} // namespace antlr4_grammar
#endif // ANTLR4_GEN_ANTLRV_LEXER_H