// Generated from /home/atreya/Documents/Projects/Miscellaneous/bfc/grammar/bf.g4 by ANTLR 4.8 #pragma once #include "antlr4-runtime.h" class bfParser : public antlr4::Parser { public: enum { NEWLINE = 1, COMMENT = 2, WS = 3, LOOPSTART = 4, LOOPEND = 5, NUMBER = 6, INPUT = 7, OUTPUT = 8, DEC = 9, INC = 10, LEFT = 11, RIGHT = 12 }; enum { RuleProgram = 0, RuleStatements = 1, RuleLoopStmt = 2, RuleNumberedStatement = 3, RuleStatement = 4, RuleInputStmt = 5, RuleOutputStmt = 6 }; bfParser(antlr4::TokenStream *input); ~bfParser(); virtual std::string getGrammarFileName() const override; virtual const antlr4::atn::ATN& getATN() const override { return _atn; }; virtual const std::vector& getTokenNames() const override { return _tokenNames; }; // deprecated: use vocabulary instead. virtual const std::vector& getRuleNames() const override; virtual antlr4::dfa::Vocabulary& getVocabulary() const override; class ProgramContext; class StatementsContext; class LoopStmtContext; class NumberedStatementContext; class StatementContext; class InputStmtContext; class OutputStmtContext; class ProgramContext : public antlr4::ParserRuleContext { public: ProgramContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; antlr4::tree::TerminalNode *EOF(); std::vector statements(); StatementsContext* statements(size_t i); virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override; }; ProgramContext* program(); class StatementsContext : public antlr4::ParserRuleContext { public: StatementsContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; std::vector statement(); StatementContext* statement(size_t i); std::vector numberedStatement(); NumberedStatementContext* numberedStatement(size_t i); std::vector loopStmt(); LoopStmtContext* loopStmt(size_t i); virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override; }; StatementsContext* statements(); class LoopStmtContext : public antlr4::ParserRuleContext { public: LoopStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; antlr4::tree::TerminalNode *LOOPSTART(); StatementsContext *statements(); antlr4::tree::TerminalNode *LOOPEND(); virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override; }; LoopStmtContext* loopStmt(); class NumberedStatementContext : public antlr4::ParserRuleContext { public: NumberedStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; StatementContext *statement(); antlr4::tree::TerminalNode *NUMBER(); virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override; }; NumberedStatementContext* numberedStatement(); class StatementContext : public antlr4::ParserRuleContext { public: StatementContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; antlr4::tree::TerminalNode *INC(); antlr4::tree::TerminalNode *DEC(); antlr4::tree::TerminalNode *LEFT(); antlr4::tree::TerminalNode *RIGHT(); InputStmtContext *inputStmt(); OutputStmtContext *outputStmt(); virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override; }; StatementContext* statement(); class InputStmtContext : public antlr4::ParserRuleContext { public: InputStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; antlr4::tree::TerminalNode *INPUT(); virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override; }; InputStmtContext* inputStmt(); class OutputStmtContext : public antlr4::ParserRuleContext { public: OutputStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; antlr4::tree::TerminalNode *OUTPUT(); virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override; }; OutputStmtContext* outputStmt(); private: static std::vector _decisionToDFA; static antlr4::atn::PredictionContextCache _sharedContextCache; static std::vector _ruleNames; static std::vector _tokenNames; static std::vector _literalNames; static std::vector _symbolicNames; static antlr4::dfa::Vocabulary _vocabulary; static antlr4::atn::ATN _atn; static std::vector _serializedATN; struct Initializer { Initializer(); }; static Initializer _init; };