10507 lines
332 KiB
C++
10507 lines
332 KiB
C++
|
|
// Generated from /workspace/millet-porridge-III/grammar/GoParser.g4 by ANTLR 4.9.3
|
|
|
|
|
|
#include "GoParserListener.h"
|
|
|
|
#include "GoParser.h"
|
|
|
|
|
|
using namespace antlrcpp;
|
|
using namespace antlr4;
|
|
|
|
GoParser::GoParser(TokenStream *input) : Parser(input) {
|
|
_interpreter = new atn::ParserATNSimulator(this, _atn, _decisionToDFA, _sharedContextCache);
|
|
}
|
|
|
|
GoParser::~GoParser() {
|
|
delete _interpreter;
|
|
}
|
|
|
|
std::string GoParser::getGrammarFileName() const {
|
|
return "GoParser.g4";
|
|
}
|
|
|
|
const std::vector<std::string>& GoParser::getRuleNames() const {
|
|
return _ruleNames;
|
|
}
|
|
|
|
dfa::Vocabulary& GoParser::getVocabulary() const {
|
|
return _vocabulary;
|
|
}
|
|
|
|
|
|
//----------------- SourceFileContext ------------------------------------------------------------------
|
|
|
|
GoParser::SourceFileContext::SourceFileContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::PackageClauseContext* GoParser::SourceFileContext::packageClause() {
|
|
return getRuleContext<GoParser::PackageClauseContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::SourceFileContext::EOF() {
|
|
return getToken(GoParser::EOF, 0);
|
|
}
|
|
|
|
std::vector<GoParser::EossContext *> GoParser::SourceFileContext::eoss() {
|
|
return getRuleContexts<GoParser::EossContext>();
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::SourceFileContext::eoss(size_t i) {
|
|
return getRuleContext<GoParser::EossContext>(i);
|
|
}
|
|
|
|
std::vector<GoParser::ImportDeclContext *> GoParser::SourceFileContext::importDecl() {
|
|
return getRuleContexts<GoParser::ImportDeclContext>();
|
|
}
|
|
|
|
GoParser::ImportDeclContext* GoParser::SourceFileContext::importDecl(size_t i) {
|
|
return getRuleContext<GoParser::ImportDeclContext>(i);
|
|
}
|
|
|
|
std::vector<GoParser::FunctionDeclContext *> GoParser::SourceFileContext::functionDecl() {
|
|
return getRuleContexts<GoParser::FunctionDeclContext>();
|
|
}
|
|
|
|
GoParser::FunctionDeclContext* GoParser::SourceFileContext::functionDecl(size_t i) {
|
|
return getRuleContext<GoParser::FunctionDeclContext>(i);
|
|
}
|
|
|
|
std::vector<GoParser::MethodDeclContext *> GoParser::SourceFileContext::methodDecl() {
|
|
return getRuleContexts<GoParser::MethodDeclContext>();
|
|
}
|
|
|
|
GoParser::MethodDeclContext* GoParser::SourceFileContext::methodDecl(size_t i) {
|
|
return getRuleContext<GoParser::MethodDeclContext>(i);
|
|
}
|
|
|
|
std::vector<GoParser::DeclarationContext *> GoParser::SourceFileContext::declaration() {
|
|
return getRuleContexts<GoParser::DeclarationContext>();
|
|
}
|
|
|
|
GoParser::DeclarationContext* GoParser::SourceFileContext::declaration(size_t i) {
|
|
return getRuleContext<GoParser::DeclarationContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::SourceFileContext::getRuleIndex() const {
|
|
return GoParser::RuleSourceFile;
|
|
}
|
|
|
|
void GoParser::SourceFileContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterSourceFile(this);
|
|
}
|
|
|
|
void GoParser::SourceFileContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitSourceFile(this);
|
|
}
|
|
|
|
GoParser::SourceFileContext* GoParser::sourceFile() {
|
|
SourceFileContext *_localctx = _tracker.createInstance<SourceFileContext>(_ctx, getState());
|
|
enterRule(_localctx, 0, GoParser::RuleSourceFile);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(198);
|
|
packageClause();
|
|
setState(202);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::SEMI)
|
|
| (1ULL << GoParser::HUANHANG)
|
|
| (1ULL << GoParser::HUANHANGG)
|
|
| (1ULL << GoParser::EOSSS))) != 0)) {
|
|
setState(199);
|
|
eoss();
|
|
setState(204);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(214);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (_la == GoParser::IMPORT) {
|
|
setState(205);
|
|
importDecl();
|
|
setState(209);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::SEMI)
|
|
| (1ULL << GoParser::HUANHANG)
|
|
| (1ULL << GoParser::HUANHANGG)
|
|
| (1ULL << GoParser::EOSSS))) != 0)) {
|
|
setState(206);
|
|
eoss();
|
|
setState(211);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(216);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(230);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::CONST)
|
|
| (1ULL << GoParser::TYPE)
|
|
| (1ULL << GoParser::VAR))) != 0)) {
|
|
setState(220);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 3, _ctx)) {
|
|
case 1: {
|
|
setState(217);
|
|
functionDecl();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(218);
|
|
methodDecl();
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
setState(219);
|
|
declaration();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(225);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::SEMI)
|
|
| (1ULL << GoParser::HUANHANG)
|
|
| (1ULL << GoParser::HUANHANGG)
|
|
| (1ULL << GoParser::EOSSS))) != 0)) {
|
|
setState(222);
|
|
eoss();
|
|
setState(227);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(232);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(233);
|
|
match(GoParser::EOF);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- PackageClauseContext ------------------------------------------------------------------
|
|
|
|
GoParser::PackageClauseContext::PackageClauseContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::PackageClauseContext::PACKAGE() {
|
|
return getToken(GoParser::PACKAGE, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::PackageClauseContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::PackageClauseContext::getRuleIndex() const {
|
|
return GoParser::RulePackageClause;
|
|
}
|
|
|
|
void GoParser::PackageClauseContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterPackageClause(this);
|
|
}
|
|
|
|
void GoParser::PackageClauseContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitPackageClause(this);
|
|
}
|
|
|
|
GoParser::PackageClauseContext* GoParser::packageClause() {
|
|
PackageClauseContext *_localctx = _tracker.createInstance<PackageClauseContext>(_ctx, getState());
|
|
enterRule(_localctx, 2, GoParser::RulePackageClause);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(235);
|
|
match(GoParser::PACKAGE);
|
|
setState(236);
|
|
antlrcpp::downCast<PackageClauseContext *>(_localctx)->packageName = match(GoParser::IDENTIFIER);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ImportDeclContext ------------------------------------------------------------------
|
|
|
|
GoParser::ImportDeclContext::ImportDeclContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ImportDeclContext::IMPORT() {
|
|
return getToken(GoParser::IMPORT, 0);
|
|
}
|
|
|
|
std::vector<GoParser::ImportSpecContext *> GoParser::ImportDeclContext::importSpec() {
|
|
return getRuleContexts<GoParser::ImportSpecContext>();
|
|
}
|
|
|
|
GoParser::ImportSpecContext* GoParser::ImportDeclContext::importSpec(size_t i) {
|
|
return getRuleContext<GoParser::ImportSpecContext>(i);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ImportDeclContext::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ImportDeclContext::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
std::vector<GoParser::EossContext *> GoParser::ImportDeclContext::eoss() {
|
|
return getRuleContexts<GoParser::EossContext>();
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::ImportDeclContext::eoss(size_t i) {
|
|
return getRuleContext<GoParser::EossContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::ImportDeclContext::getRuleIndex() const {
|
|
return GoParser::RuleImportDecl;
|
|
}
|
|
|
|
void GoParser::ImportDeclContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterImportDecl(this);
|
|
}
|
|
|
|
void GoParser::ImportDeclContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitImportDecl(this);
|
|
}
|
|
|
|
GoParser::ImportDeclContext* GoParser::importDecl() {
|
|
ImportDeclContext *_localctx = _tracker.createInstance<ImportDeclContext>(_ctx, getState());
|
|
enterRule(_localctx, 4, GoParser::RuleImportDecl);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(238);
|
|
match(GoParser::IMPORT);
|
|
setState(250);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::IDENTIFIER:
|
|
case GoParser::DOT:
|
|
case GoParser::RAW_STRING_LIT:
|
|
case GoParser::INTERPRETED_STRING_LIT: {
|
|
setState(239);
|
|
importSpec();
|
|
break;
|
|
}
|
|
|
|
case GoParser::L_PAREN: {
|
|
setState(240);
|
|
match(GoParser::L_PAREN);
|
|
setState(246);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (((((_la - 27) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 27)) & ((1ULL << (GoParser::IDENTIFIER - 27))
|
|
| (1ULL << (GoParser::DOT - 27))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 27))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 27)))) != 0)) {
|
|
setState(241);
|
|
importSpec();
|
|
setState(242);
|
|
eoss();
|
|
setState(248);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(249);
|
|
match(GoParser::R_PAREN);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ImportSpecContext ------------------------------------------------------------------
|
|
|
|
GoParser::ImportSpecContext::ImportSpecContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ImportPathContext* GoParser::ImportSpecContext::importPath() {
|
|
return getRuleContext<GoParser::ImportPathContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ImportSpecContext::DOT() {
|
|
return getToken(GoParser::DOT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ImportSpecContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ImportSpecContext::getRuleIndex() const {
|
|
return GoParser::RuleImportSpec;
|
|
}
|
|
|
|
void GoParser::ImportSpecContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterImportSpec(this);
|
|
}
|
|
|
|
void GoParser::ImportSpecContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitImportSpec(this);
|
|
}
|
|
|
|
GoParser::ImportSpecContext* GoParser::importSpec() {
|
|
ImportSpecContext *_localctx = _tracker.createInstance<ImportSpecContext>(_ctx, getState());
|
|
enterRule(_localctx, 6, GoParser::RuleImportSpec);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(253);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::IDENTIFIER
|
|
|
|
|| _la == GoParser::DOT) {
|
|
setState(252);
|
|
antlrcpp::downCast<ImportSpecContext *>(_localctx)->alias = _input->LT(1);
|
|
_la = _input->LA(1);
|
|
if (!(_la == GoParser::IDENTIFIER
|
|
|
|
|| _la == GoParser::DOT)) {
|
|
antlrcpp::downCast<ImportSpecContext *>(_localctx)->alias = _errHandler->recoverInline(this);
|
|
}
|
|
else {
|
|
_errHandler->reportMatch(this);
|
|
consume();
|
|
}
|
|
}
|
|
setState(255);
|
|
importPath();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ImportPathContext ------------------------------------------------------------------
|
|
|
|
GoParser::ImportPathContext::ImportPathContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::String_Context* GoParser::ImportPathContext::string_() {
|
|
return getRuleContext<GoParser::String_Context>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ImportPathContext::getRuleIndex() const {
|
|
return GoParser::RuleImportPath;
|
|
}
|
|
|
|
void GoParser::ImportPathContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterImportPath(this);
|
|
}
|
|
|
|
void GoParser::ImportPathContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitImportPath(this);
|
|
}
|
|
|
|
GoParser::ImportPathContext* GoParser::importPath() {
|
|
ImportPathContext *_localctx = _tracker.createInstance<ImportPathContext>(_ctx, getState());
|
|
enterRule(_localctx, 8, GoParser::RuleImportPath);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(257);
|
|
string_();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- DeclarationContext ------------------------------------------------------------------
|
|
|
|
GoParser::DeclarationContext::DeclarationContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ConstDeclContext* GoParser::DeclarationContext::constDecl() {
|
|
return getRuleContext<GoParser::ConstDeclContext>(0);
|
|
}
|
|
|
|
GoParser::TypeDeclContext* GoParser::DeclarationContext::typeDecl() {
|
|
return getRuleContext<GoParser::TypeDeclContext>(0);
|
|
}
|
|
|
|
GoParser::VarDeclContext* GoParser::DeclarationContext::varDecl() {
|
|
return getRuleContext<GoParser::VarDeclContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::DeclarationContext::getRuleIndex() const {
|
|
return GoParser::RuleDeclaration;
|
|
}
|
|
|
|
void GoParser::DeclarationContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterDeclaration(this);
|
|
}
|
|
|
|
void GoParser::DeclarationContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitDeclaration(this);
|
|
}
|
|
|
|
GoParser::DeclarationContext* GoParser::declaration() {
|
|
DeclarationContext *_localctx = _tracker.createInstance<DeclarationContext>(_ctx, getState());
|
|
enterRule(_localctx, 10, GoParser::RuleDeclaration);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(262);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::CONST: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(259);
|
|
constDecl();
|
|
break;
|
|
}
|
|
|
|
case GoParser::TYPE: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(260);
|
|
typeDecl();
|
|
break;
|
|
}
|
|
|
|
case GoParser::VAR: {
|
|
enterOuterAlt(_localctx, 3);
|
|
setState(261);
|
|
varDecl();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ConstDeclContext ------------------------------------------------------------------
|
|
|
|
GoParser::ConstDeclContext::ConstDeclContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ConstDeclContext::CONST() {
|
|
return getToken(GoParser::CONST, 0);
|
|
}
|
|
|
|
std::vector<GoParser::ConstSpecContext *> GoParser::ConstDeclContext::constSpec() {
|
|
return getRuleContexts<GoParser::ConstSpecContext>();
|
|
}
|
|
|
|
GoParser::ConstSpecContext* GoParser::ConstDeclContext::constSpec(size_t i) {
|
|
return getRuleContext<GoParser::ConstSpecContext>(i);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ConstDeclContext::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ConstDeclContext::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
std::vector<GoParser::EossContext *> GoParser::ConstDeclContext::eoss() {
|
|
return getRuleContexts<GoParser::EossContext>();
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::ConstDeclContext::eoss(size_t i) {
|
|
return getRuleContext<GoParser::EossContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::ConstDeclContext::getRuleIndex() const {
|
|
return GoParser::RuleConstDecl;
|
|
}
|
|
|
|
void GoParser::ConstDeclContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterConstDecl(this);
|
|
}
|
|
|
|
void GoParser::ConstDeclContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitConstDecl(this);
|
|
}
|
|
|
|
GoParser::ConstDeclContext* GoParser::constDecl() {
|
|
ConstDeclContext *_localctx = _tracker.createInstance<ConstDeclContext>(_ctx, getState());
|
|
enterRule(_localctx, 12, GoParser::RuleConstDecl);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(264);
|
|
match(GoParser::CONST);
|
|
setState(276);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::IDENTIFIER: {
|
|
setState(265);
|
|
constSpec();
|
|
break;
|
|
}
|
|
|
|
case GoParser::L_PAREN: {
|
|
setState(266);
|
|
match(GoParser::L_PAREN);
|
|
setState(272);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (_la == GoParser::IDENTIFIER) {
|
|
setState(267);
|
|
constSpec();
|
|
setState(268);
|
|
eoss();
|
|
setState(274);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(275);
|
|
match(GoParser::R_PAREN);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ConstSpecContext ------------------------------------------------------------------
|
|
|
|
GoParser::ConstSpecContext::ConstSpecContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::IdentifierListContext* GoParser::ConstSpecContext::identifierList() {
|
|
return getRuleContext<GoParser::IdentifierListContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ConstSpecContext::ASSIGN() {
|
|
return getToken(GoParser::ASSIGN, 0);
|
|
}
|
|
|
|
GoParser::ExpressionListContext* GoParser::ConstSpecContext::expressionList() {
|
|
return getRuleContext<GoParser::ExpressionListContext>(0);
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::ConstSpecContext::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ConstSpecContext::getRuleIndex() const {
|
|
return GoParser::RuleConstSpec;
|
|
}
|
|
|
|
void GoParser::ConstSpecContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterConstSpec(this);
|
|
}
|
|
|
|
void GoParser::ConstSpecContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitConstSpec(this);
|
|
}
|
|
|
|
GoParser::ConstSpecContext* GoParser::constSpec() {
|
|
ConstSpecContext *_localctx = _tracker.createInstance<ConstSpecContext>(_ctx, getState());
|
|
enterRule(_localctx, 14, GoParser::RuleConstSpec);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(278);
|
|
identifierList();
|
|
setState(284);
|
|
_errHandler->sync(this);
|
|
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 13, _ctx)) {
|
|
case 1: {
|
|
setState(280);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (((((_la - 3) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 3)) & ((1ULL << (GoParser::FUNC - 3))
|
|
| (1ULL << (GoParser::INTERFACE - 3))
|
|
| (1ULL << (GoParser::MAP - 3))
|
|
| (1ULL << (GoParser::STRUCT - 3))
|
|
| (1ULL << (GoParser::CHAN - 3))
|
|
| (1ULL << (GoParser::IDENTIFIER - 3))
|
|
| (1ULL << (GoParser::L_PAREN - 3))
|
|
| (1ULL << (GoParser::L_BRACKET - 3))
|
|
| (1ULL << (GoParser::STAR - 3))
|
|
| (1ULL << (GoParser::RECEIVE - 3)))) != 0)) {
|
|
setState(279);
|
|
type_();
|
|
}
|
|
setState(282);
|
|
match(GoParser::ASSIGN);
|
|
setState(283);
|
|
expressionList();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- IdentifierListContext ------------------------------------------------------------------
|
|
|
|
GoParser::IdentifierListContext::IdentifierListContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
std::vector<tree::TerminalNode *> GoParser::IdentifierListContext::IDENTIFIER() {
|
|
return getTokens(GoParser::IDENTIFIER);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IdentifierListContext::IDENTIFIER(size_t i) {
|
|
return getToken(GoParser::IDENTIFIER, i);
|
|
}
|
|
|
|
std::vector<tree::TerminalNode *> GoParser::IdentifierListContext::COMMA() {
|
|
return getTokens(GoParser::COMMA);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IdentifierListContext::COMMA(size_t i) {
|
|
return getToken(GoParser::COMMA, i);
|
|
}
|
|
|
|
|
|
size_t GoParser::IdentifierListContext::getRuleIndex() const {
|
|
return GoParser::RuleIdentifierList;
|
|
}
|
|
|
|
void GoParser::IdentifierListContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterIdentifierList(this);
|
|
}
|
|
|
|
void GoParser::IdentifierListContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitIdentifierList(this);
|
|
}
|
|
|
|
GoParser::IdentifierListContext* GoParser::identifierList() {
|
|
IdentifierListContext *_localctx = _tracker.createInstance<IdentifierListContext>(_ctx, getState());
|
|
enterRule(_localctx, 16, GoParser::RuleIdentifierList);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(286);
|
|
match(GoParser::IDENTIFIER);
|
|
setState(291);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (_la == GoParser::COMMA) {
|
|
setState(287);
|
|
match(GoParser::COMMA);
|
|
setState(288);
|
|
match(GoParser::IDENTIFIER);
|
|
setState(293);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ExpressionListContext ------------------------------------------------------------------
|
|
|
|
GoParser::ExpressionListContext::ExpressionListContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
std::vector<GoParser::ExpressionContext *> GoParser::ExpressionListContext::expression() {
|
|
return getRuleContexts<GoParser::ExpressionContext>();
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::ExpressionListContext::expression(size_t i) {
|
|
return getRuleContext<GoParser::ExpressionContext>(i);
|
|
}
|
|
|
|
std::vector<tree::TerminalNode *> GoParser::ExpressionListContext::COMMA() {
|
|
return getTokens(GoParser::COMMA);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ExpressionListContext::COMMA(size_t i) {
|
|
return getToken(GoParser::COMMA, i);
|
|
}
|
|
|
|
|
|
size_t GoParser::ExpressionListContext::getRuleIndex() const {
|
|
return GoParser::RuleExpressionList;
|
|
}
|
|
|
|
void GoParser::ExpressionListContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterExpressionList(this);
|
|
}
|
|
|
|
void GoParser::ExpressionListContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitExpressionList(this);
|
|
}
|
|
|
|
GoParser::ExpressionListContext* GoParser::expressionList() {
|
|
ExpressionListContext *_localctx = _tracker.createInstance<ExpressionListContext>(_ctx, getState());
|
|
enterRule(_localctx, 18, GoParser::RuleExpressionList);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
size_t alt;
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(294);
|
|
expression(0);
|
|
setState(299);
|
|
_errHandler->sync(this);
|
|
alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 15, _ctx);
|
|
while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) {
|
|
if (alt == 1) {
|
|
setState(295);
|
|
match(GoParser::COMMA);
|
|
setState(296);
|
|
expression(0);
|
|
}
|
|
setState(301);
|
|
_errHandler->sync(this);
|
|
alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 15, _ctx);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- TypeDeclContext ------------------------------------------------------------------
|
|
|
|
GoParser::TypeDeclContext::TypeDeclContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeDeclContext::TYPE() {
|
|
return getToken(GoParser::TYPE, 0);
|
|
}
|
|
|
|
std::vector<GoParser::TypeSpecContext *> GoParser::TypeDeclContext::typeSpec() {
|
|
return getRuleContexts<GoParser::TypeSpecContext>();
|
|
}
|
|
|
|
GoParser::TypeSpecContext* GoParser::TypeDeclContext::typeSpec(size_t i) {
|
|
return getRuleContext<GoParser::TypeSpecContext>(i);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeDeclContext::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeDeclContext::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
std::vector<GoParser::EossContext *> GoParser::TypeDeclContext::eoss() {
|
|
return getRuleContexts<GoParser::EossContext>();
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::TypeDeclContext::eoss(size_t i) {
|
|
return getRuleContext<GoParser::EossContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::TypeDeclContext::getRuleIndex() const {
|
|
return GoParser::RuleTypeDecl;
|
|
}
|
|
|
|
void GoParser::TypeDeclContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterTypeDecl(this);
|
|
}
|
|
|
|
void GoParser::TypeDeclContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitTypeDecl(this);
|
|
}
|
|
|
|
GoParser::TypeDeclContext* GoParser::typeDecl() {
|
|
TypeDeclContext *_localctx = _tracker.createInstance<TypeDeclContext>(_ctx, getState());
|
|
enterRule(_localctx, 20, GoParser::RuleTypeDecl);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(302);
|
|
match(GoParser::TYPE);
|
|
setState(314);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::IDENTIFIER: {
|
|
setState(303);
|
|
typeSpec();
|
|
break;
|
|
}
|
|
|
|
case GoParser::L_PAREN: {
|
|
setState(304);
|
|
match(GoParser::L_PAREN);
|
|
setState(310);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (_la == GoParser::IDENTIFIER) {
|
|
setState(305);
|
|
typeSpec();
|
|
setState(306);
|
|
eoss();
|
|
setState(312);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(313);
|
|
match(GoParser::R_PAREN);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- TypeSpecContext ------------------------------------------------------------------
|
|
|
|
GoParser::TypeSpecContext::TypeSpecContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSpecContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::TypeSpecContext::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSpecContext::ASSIGN() {
|
|
return getToken(GoParser::ASSIGN, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::TypeSpecContext::getRuleIndex() const {
|
|
return GoParser::RuleTypeSpec;
|
|
}
|
|
|
|
void GoParser::TypeSpecContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterTypeSpec(this);
|
|
}
|
|
|
|
void GoParser::TypeSpecContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitTypeSpec(this);
|
|
}
|
|
|
|
GoParser::TypeSpecContext* GoParser::typeSpec() {
|
|
TypeSpecContext *_localctx = _tracker.createInstance<TypeSpecContext>(_ctx, getState());
|
|
enterRule(_localctx, 22, GoParser::RuleTypeSpec);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(316);
|
|
match(GoParser::IDENTIFIER);
|
|
setState(318);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::ASSIGN) {
|
|
setState(317);
|
|
match(GoParser::ASSIGN);
|
|
}
|
|
setState(320);
|
|
type_();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- FunctionDeclContext ------------------------------------------------------------------
|
|
|
|
GoParser::FunctionDeclContext::FunctionDeclContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::FunctionDeclContext::FUNC() {
|
|
return getToken(GoParser::FUNC, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::FunctionDeclContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
GoParser::SignatureContext* GoParser::FunctionDeclContext::signature() {
|
|
return getRuleContext<GoParser::SignatureContext>(0);
|
|
}
|
|
|
|
GoParser::BlockContext* GoParser::FunctionDeclContext::block() {
|
|
return getRuleContext<GoParser::BlockContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::FunctionDeclContext::getRuleIndex() const {
|
|
return GoParser::RuleFunctionDecl;
|
|
}
|
|
|
|
void GoParser::FunctionDeclContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterFunctionDecl(this);
|
|
}
|
|
|
|
void GoParser::FunctionDeclContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitFunctionDecl(this);
|
|
}
|
|
|
|
GoParser::FunctionDeclContext* GoParser::functionDecl() {
|
|
FunctionDeclContext *_localctx = _tracker.createInstance<FunctionDeclContext>(_ctx, getState());
|
|
enterRule(_localctx, 24, GoParser::RuleFunctionDecl);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(322);
|
|
match(GoParser::FUNC);
|
|
setState(323);
|
|
match(GoParser::IDENTIFIER);
|
|
|
|
setState(324);
|
|
signature();
|
|
setState(326);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::L_CURLY) {
|
|
setState(325);
|
|
block();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- MethodDeclContext ------------------------------------------------------------------
|
|
|
|
GoParser::MethodDeclContext::MethodDeclContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MethodDeclContext::FUNC() {
|
|
return getToken(GoParser::FUNC, 0);
|
|
}
|
|
|
|
GoParser::ReceiverContext* GoParser::MethodDeclContext::receiver() {
|
|
return getRuleContext<GoParser::ReceiverContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MethodDeclContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
GoParser::SignatureContext* GoParser::MethodDeclContext::signature() {
|
|
return getRuleContext<GoParser::SignatureContext>(0);
|
|
}
|
|
|
|
GoParser::BlockContext* GoParser::MethodDeclContext::block() {
|
|
return getRuleContext<GoParser::BlockContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::MethodDeclContext::getRuleIndex() const {
|
|
return GoParser::RuleMethodDecl;
|
|
}
|
|
|
|
void GoParser::MethodDeclContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterMethodDecl(this);
|
|
}
|
|
|
|
void GoParser::MethodDeclContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitMethodDecl(this);
|
|
}
|
|
|
|
GoParser::MethodDeclContext* GoParser::methodDecl() {
|
|
MethodDeclContext *_localctx = _tracker.createInstance<MethodDeclContext>(_ctx, getState());
|
|
enterRule(_localctx, 26, GoParser::RuleMethodDecl);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(328);
|
|
match(GoParser::FUNC);
|
|
setState(329);
|
|
receiver();
|
|
setState(330);
|
|
match(GoParser::IDENTIFIER);
|
|
|
|
setState(331);
|
|
signature();
|
|
setState(333);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::L_CURLY) {
|
|
setState(332);
|
|
block();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ReceiverContext ------------------------------------------------------------------
|
|
|
|
GoParser::ReceiverContext::ReceiverContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ParametersContext* GoParser::ReceiverContext::parameters() {
|
|
return getRuleContext<GoParser::ParametersContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ReceiverContext::getRuleIndex() const {
|
|
return GoParser::RuleReceiver;
|
|
}
|
|
|
|
void GoParser::ReceiverContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterReceiver(this);
|
|
}
|
|
|
|
void GoParser::ReceiverContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitReceiver(this);
|
|
}
|
|
|
|
GoParser::ReceiverContext* GoParser::receiver() {
|
|
ReceiverContext *_localctx = _tracker.createInstance<ReceiverContext>(_ctx, getState());
|
|
enterRule(_localctx, 28, GoParser::RuleReceiver);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(335);
|
|
parameters();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- VarDeclContext ------------------------------------------------------------------
|
|
|
|
GoParser::VarDeclContext::VarDeclContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::VarDeclContext::VAR() {
|
|
return getToken(GoParser::VAR, 0);
|
|
}
|
|
|
|
std::vector<GoParser::VarSpecContext *> GoParser::VarDeclContext::varSpec() {
|
|
return getRuleContexts<GoParser::VarSpecContext>();
|
|
}
|
|
|
|
GoParser::VarSpecContext* GoParser::VarDeclContext::varSpec(size_t i) {
|
|
return getRuleContext<GoParser::VarSpecContext>(i);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::VarDeclContext::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::VarDeclContext::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
std::vector<GoParser::EossContext *> GoParser::VarDeclContext::eoss() {
|
|
return getRuleContexts<GoParser::EossContext>();
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::VarDeclContext::eoss(size_t i) {
|
|
return getRuleContext<GoParser::EossContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::VarDeclContext::getRuleIndex() const {
|
|
return GoParser::RuleVarDecl;
|
|
}
|
|
|
|
void GoParser::VarDeclContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterVarDecl(this);
|
|
}
|
|
|
|
void GoParser::VarDeclContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitVarDecl(this);
|
|
}
|
|
|
|
GoParser::VarDeclContext* GoParser::varDecl() {
|
|
VarDeclContext *_localctx = _tracker.createInstance<VarDeclContext>(_ctx, getState());
|
|
enterRule(_localctx, 30, GoParser::RuleVarDecl);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(337);
|
|
match(GoParser::VAR);
|
|
setState(349);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::IDENTIFIER: {
|
|
setState(338);
|
|
varSpec();
|
|
break;
|
|
}
|
|
|
|
case GoParser::L_PAREN: {
|
|
setState(339);
|
|
match(GoParser::L_PAREN);
|
|
setState(345);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (_la == GoParser::IDENTIFIER) {
|
|
setState(340);
|
|
varSpec();
|
|
setState(341);
|
|
eoss();
|
|
setState(347);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(348);
|
|
match(GoParser::R_PAREN);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- VarSpecContext ------------------------------------------------------------------
|
|
|
|
GoParser::VarSpecContext::VarSpecContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::IdentifierListContext* GoParser::VarSpecContext::identifierList() {
|
|
return getRuleContext<GoParser::IdentifierListContext>(0);
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::VarSpecContext::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::VarSpecContext::ASSIGN() {
|
|
return getToken(GoParser::ASSIGN, 0);
|
|
}
|
|
|
|
GoParser::ExpressionListContext* GoParser::VarSpecContext::expressionList() {
|
|
return getRuleContext<GoParser::ExpressionListContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::VarSpecContext::getRuleIndex() const {
|
|
return GoParser::RuleVarSpec;
|
|
}
|
|
|
|
void GoParser::VarSpecContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterVarSpec(this);
|
|
}
|
|
|
|
void GoParser::VarSpecContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitVarSpec(this);
|
|
}
|
|
|
|
GoParser::VarSpecContext* GoParser::varSpec() {
|
|
VarSpecContext *_localctx = _tracker.createInstance<VarSpecContext>(_ctx, getState());
|
|
enterRule(_localctx, 32, GoParser::RuleVarSpec);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(351);
|
|
identifierList();
|
|
setState(359);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::FUNC:
|
|
case GoParser::INTERFACE:
|
|
case GoParser::MAP:
|
|
case GoParser::STRUCT:
|
|
case GoParser::CHAN:
|
|
case GoParser::IDENTIFIER:
|
|
case GoParser::L_PAREN:
|
|
case GoParser::L_BRACKET:
|
|
case GoParser::STAR:
|
|
case GoParser::RECEIVE: {
|
|
setState(352);
|
|
type_();
|
|
setState(355);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::ASSIGN) {
|
|
setState(353);
|
|
match(GoParser::ASSIGN);
|
|
setState(354);
|
|
expressionList();
|
|
}
|
|
break;
|
|
}
|
|
|
|
case GoParser::ASSIGN: {
|
|
setState(357);
|
|
match(GoParser::ASSIGN);
|
|
setState(358);
|
|
expressionList();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- BlockContext ------------------------------------------------------------------
|
|
|
|
GoParser::BlockContext::BlockContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::BlockContext::L_CURLY() {
|
|
return getToken(GoParser::L_CURLY, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::BlockContext::R_CURLY() {
|
|
return getToken(GoParser::R_CURLY, 0);
|
|
}
|
|
|
|
std::vector<GoParser::EossContext *> GoParser::BlockContext::eoss() {
|
|
return getRuleContexts<GoParser::EossContext>();
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::BlockContext::eoss(size_t i) {
|
|
return getRuleContext<GoParser::EossContext>(i);
|
|
}
|
|
|
|
GoParser::StatementListContext* GoParser::BlockContext::statementList() {
|
|
return getRuleContext<GoParser::StatementListContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::BlockContext::getRuleIndex() const {
|
|
return GoParser::RuleBlock;
|
|
}
|
|
|
|
void GoParser::BlockContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterBlock(this);
|
|
}
|
|
|
|
void GoParser::BlockContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitBlock(this);
|
|
}
|
|
|
|
GoParser::BlockContext* GoParser::block() {
|
|
BlockContext *_localctx = _tracker.createInstance<BlockContext>(_ctx, getState());
|
|
enterRule(_localctx, 34, GoParser::RuleBlock);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(361);
|
|
match(GoParser::L_CURLY);
|
|
setState(365);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::SEMI)
|
|
| (1ULL << GoParser::HUANHANG)
|
|
| (1ULL << GoParser::HUANHANGG)
|
|
| (1ULL << GoParser::EOSSS))) != 0)) {
|
|
setState(362);
|
|
eoss();
|
|
setState(367);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(369);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::BREAK)
|
|
| (1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::SELECT)
|
|
| (1ULL << GoParser::DEFER)
|
|
| (1ULL << GoParser::GO)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::GOTO)
|
|
| (1ULL << GoParser::SWITCH)
|
|
| (1ULL << GoParser::CONST)
|
|
| (1ULL << GoParser::FALLTHROUGH)
|
|
| (1ULL << GoParser::IF)
|
|
| (1ULL << GoParser::TYPE)
|
|
| (1ULL << GoParser::CONTINUE)
|
|
| (1ULL << GoParser::FOR)
|
|
| (1ULL << GoParser::RETURN)
|
|
| (1ULL << GoParser::VAR)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_CURLY)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(368);
|
|
statementList();
|
|
}
|
|
setState(371);
|
|
match(GoParser::R_CURLY);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- StatementListContext ------------------------------------------------------------------
|
|
|
|
GoParser::StatementListContext::StatementListContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
std::vector<GoParser::StatementContext *> GoParser::StatementListContext::statement() {
|
|
return getRuleContexts<GoParser::StatementContext>();
|
|
}
|
|
|
|
GoParser::StatementContext* GoParser::StatementListContext::statement(size_t i) {
|
|
return getRuleContext<GoParser::StatementContext>(i);
|
|
}
|
|
|
|
std::vector<GoParser::EossContext *> GoParser::StatementListContext::eoss() {
|
|
return getRuleContexts<GoParser::EossContext>();
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::StatementListContext::eoss(size_t i) {
|
|
return getRuleContext<GoParser::EossContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::StatementListContext::getRuleIndex() const {
|
|
return GoParser::RuleStatementList;
|
|
}
|
|
|
|
void GoParser::StatementListContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterStatementList(this);
|
|
}
|
|
|
|
void GoParser::StatementListContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitStatementList(this);
|
|
}
|
|
|
|
GoParser::StatementListContext* GoParser::statementList() {
|
|
StatementListContext *_localctx = _tracker.createInstance<StatementListContext>(_ctx, getState());
|
|
enterRule(_localctx, 36, GoParser::RuleStatementList);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(379);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
do {
|
|
setState(373);
|
|
statement();
|
|
setState(375);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
do {
|
|
setState(374);
|
|
eoss();
|
|
setState(377);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
} while ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::SEMI)
|
|
| (1ULL << GoParser::HUANHANG)
|
|
| (1ULL << GoParser::HUANHANGG)
|
|
| (1ULL << GoParser::EOSSS))) != 0));
|
|
setState(381);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
} while ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::BREAK)
|
|
| (1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::SELECT)
|
|
| (1ULL << GoParser::DEFER)
|
|
| (1ULL << GoParser::GO)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::GOTO)
|
|
| (1ULL << GoParser::SWITCH)
|
|
| (1ULL << GoParser::CONST)
|
|
| (1ULL << GoParser::FALLTHROUGH)
|
|
| (1ULL << GoParser::IF)
|
|
| (1ULL << GoParser::TYPE)
|
|
| (1ULL << GoParser::CONTINUE)
|
|
| (1ULL << GoParser::FOR)
|
|
| (1ULL << GoParser::RETURN)
|
|
| (1ULL << GoParser::VAR)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_CURLY)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0));
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- StatementContext ------------------------------------------------------------------
|
|
|
|
GoParser::StatementContext::StatementContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::DeclarationContext* GoParser::StatementContext::declaration() {
|
|
return getRuleContext<GoParser::DeclarationContext>(0);
|
|
}
|
|
|
|
GoParser::LabeledStmtContext* GoParser::StatementContext::labeledStmt() {
|
|
return getRuleContext<GoParser::LabeledStmtContext>(0);
|
|
}
|
|
|
|
GoParser::SimpleStmtContext* GoParser::StatementContext::simpleStmt() {
|
|
return getRuleContext<GoParser::SimpleStmtContext>(0);
|
|
}
|
|
|
|
GoParser::GoStmtContext* GoParser::StatementContext::goStmt() {
|
|
return getRuleContext<GoParser::GoStmtContext>(0);
|
|
}
|
|
|
|
GoParser::ReturnStmtContext* GoParser::StatementContext::returnStmt() {
|
|
return getRuleContext<GoParser::ReturnStmtContext>(0);
|
|
}
|
|
|
|
GoParser::BreakStmtContext* GoParser::StatementContext::breakStmt() {
|
|
return getRuleContext<GoParser::BreakStmtContext>(0);
|
|
}
|
|
|
|
GoParser::ContinueStmtContext* GoParser::StatementContext::continueStmt() {
|
|
return getRuleContext<GoParser::ContinueStmtContext>(0);
|
|
}
|
|
|
|
GoParser::GotoStmtContext* GoParser::StatementContext::gotoStmt() {
|
|
return getRuleContext<GoParser::GotoStmtContext>(0);
|
|
}
|
|
|
|
GoParser::FallthroughStmtContext* GoParser::StatementContext::fallthroughStmt() {
|
|
return getRuleContext<GoParser::FallthroughStmtContext>(0);
|
|
}
|
|
|
|
GoParser::BlockContext* GoParser::StatementContext::block() {
|
|
return getRuleContext<GoParser::BlockContext>(0);
|
|
}
|
|
|
|
GoParser::IfStmtContext* GoParser::StatementContext::ifStmt() {
|
|
return getRuleContext<GoParser::IfStmtContext>(0);
|
|
}
|
|
|
|
GoParser::SwitchStmtContext* GoParser::StatementContext::switchStmt() {
|
|
return getRuleContext<GoParser::SwitchStmtContext>(0);
|
|
}
|
|
|
|
GoParser::SelectStmtContext* GoParser::StatementContext::selectStmt() {
|
|
return getRuleContext<GoParser::SelectStmtContext>(0);
|
|
}
|
|
|
|
GoParser::ForStmtContext* GoParser::StatementContext::forStmt() {
|
|
return getRuleContext<GoParser::ForStmtContext>(0);
|
|
}
|
|
|
|
GoParser::DeferStmtContext* GoParser::StatementContext::deferStmt() {
|
|
return getRuleContext<GoParser::DeferStmtContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::StatementContext::getRuleIndex() const {
|
|
return GoParser::RuleStatement;
|
|
}
|
|
|
|
void GoParser::StatementContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterStatement(this);
|
|
}
|
|
|
|
void GoParser::StatementContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitStatement(this);
|
|
}
|
|
|
|
GoParser::StatementContext* GoParser::statement() {
|
|
StatementContext *_localctx = _tracker.createInstance<StatementContext>(_ctx, getState());
|
|
enterRule(_localctx, 38, GoParser::RuleStatement);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(398);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 29, _ctx)) {
|
|
case 1: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(383);
|
|
declaration();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(384);
|
|
labeledStmt();
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
enterOuterAlt(_localctx, 3);
|
|
setState(385);
|
|
simpleStmt();
|
|
break;
|
|
}
|
|
|
|
case 4: {
|
|
enterOuterAlt(_localctx, 4);
|
|
setState(386);
|
|
goStmt();
|
|
break;
|
|
}
|
|
|
|
case 5: {
|
|
enterOuterAlt(_localctx, 5);
|
|
setState(387);
|
|
returnStmt();
|
|
break;
|
|
}
|
|
|
|
case 6: {
|
|
enterOuterAlt(_localctx, 6);
|
|
setState(388);
|
|
breakStmt();
|
|
break;
|
|
}
|
|
|
|
case 7: {
|
|
enterOuterAlt(_localctx, 7);
|
|
setState(389);
|
|
continueStmt();
|
|
break;
|
|
}
|
|
|
|
case 8: {
|
|
enterOuterAlt(_localctx, 8);
|
|
setState(390);
|
|
gotoStmt();
|
|
break;
|
|
}
|
|
|
|
case 9: {
|
|
enterOuterAlt(_localctx, 9);
|
|
setState(391);
|
|
fallthroughStmt();
|
|
break;
|
|
}
|
|
|
|
case 10: {
|
|
enterOuterAlt(_localctx, 10);
|
|
setState(392);
|
|
block();
|
|
break;
|
|
}
|
|
|
|
case 11: {
|
|
enterOuterAlt(_localctx, 11);
|
|
setState(393);
|
|
ifStmt();
|
|
break;
|
|
}
|
|
|
|
case 12: {
|
|
enterOuterAlt(_localctx, 12);
|
|
setState(394);
|
|
switchStmt();
|
|
break;
|
|
}
|
|
|
|
case 13: {
|
|
enterOuterAlt(_localctx, 13);
|
|
setState(395);
|
|
selectStmt();
|
|
break;
|
|
}
|
|
|
|
case 14: {
|
|
enterOuterAlt(_localctx, 14);
|
|
setState(396);
|
|
forStmt();
|
|
break;
|
|
}
|
|
|
|
case 15: {
|
|
enterOuterAlt(_localctx, 15);
|
|
setState(397);
|
|
deferStmt();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- SimpleStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::SimpleStmtContext::SimpleStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::SendStmtContext* GoParser::SimpleStmtContext::sendStmt() {
|
|
return getRuleContext<GoParser::SendStmtContext>(0);
|
|
}
|
|
|
|
GoParser::IncDecStmtContext* GoParser::SimpleStmtContext::incDecStmt() {
|
|
return getRuleContext<GoParser::IncDecStmtContext>(0);
|
|
}
|
|
|
|
GoParser::AssignmentContext* GoParser::SimpleStmtContext::assignment() {
|
|
return getRuleContext<GoParser::AssignmentContext>(0);
|
|
}
|
|
|
|
GoParser::ExpressionStmtContext* GoParser::SimpleStmtContext::expressionStmt() {
|
|
return getRuleContext<GoParser::ExpressionStmtContext>(0);
|
|
}
|
|
|
|
GoParser::ShortVarDeclContext* GoParser::SimpleStmtContext::shortVarDecl() {
|
|
return getRuleContext<GoParser::ShortVarDeclContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::SimpleStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleSimpleStmt;
|
|
}
|
|
|
|
void GoParser::SimpleStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterSimpleStmt(this);
|
|
}
|
|
|
|
void GoParser::SimpleStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitSimpleStmt(this);
|
|
}
|
|
|
|
GoParser::SimpleStmtContext* GoParser::simpleStmt() {
|
|
SimpleStmtContext *_localctx = _tracker.createInstance<SimpleStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 40, GoParser::RuleSimpleStmt);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(405);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 30, _ctx)) {
|
|
case 1: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(400);
|
|
sendStmt();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(401);
|
|
incDecStmt();
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
enterOuterAlt(_localctx, 3);
|
|
setState(402);
|
|
assignment();
|
|
break;
|
|
}
|
|
|
|
case 4: {
|
|
enterOuterAlt(_localctx, 4);
|
|
setState(403);
|
|
expressionStmt();
|
|
break;
|
|
}
|
|
|
|
case 5: {
|
|
enterOuterAlt(_localctx, 5);
|
|
setState(404);
|
|
shortVarDecl();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ExpressionStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::ExpressionStmtContext::ExpressionStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::ExpressionStmtContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ExpressionStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleExpressionStmt;
|
|
}
|
|
|
|
void GoParser::ExpressionStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterExpressionStmt(this);
|
|
}
|
|
|
|
void GoParser::ExpressionStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitExpressionStmt(this);
|
|
}
|
|
|
|
GoParser::ExpressionStmtContext* GoParser::expressionStmt() {
|
|
ExpressionStmtContext *_localctx = _tracker.createInstance<ExpressionStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 42, GoParser::RuleExpressionStmt);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(407);
|
|
expression(0);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- SendStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::SendStmtContext::SendStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::SendStmtContext::RECEIVE() {
|
|
return getToken(GoParser::RECEIVE, 0);
|
|
}
|
|
|
|
std::vector<GoParser::ExpressionContext *> GoParser::SendStmtContext::expression() {
|
|
return getRuleContexts<GoParser::ExpressionContext>();
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::SendStmtContext::expression(size_t i) {
|
|
return getRuleContext<GoParser::ExpressionContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::SendStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleSendStmt;
|
|
}
|
|
|
|
void GoParser::SendStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterSendStmt(this);
|
|
}
|
|
|
|
void GoParser::SendStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitSendStmt(this);
|
|
}
|
|
|
|
GoParser::SendStmtContext* GoParser::sendStmt() {
|
|
SendStmtContext *_localctx = _tracker.createInstance<SendStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 44, GoParser::RuleSendStmt);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(409);
|
|
antlrcpp::downCast<SendStmtContext *>(_localctx)->channel = expression(0);
|
|
setState(410);
|
|
match(GoParser::RECEIVE);
|
|
setState(411);
|
|
expression(0);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- IncDecStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::IncDecStmtContext::IncDecStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::IncDecStmtContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IncDecStmtContext::PLUS_PLUS() {
|
|
return getToken(GoParser::PLUS_PLUS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IncDecStmtContext::MINUS_MINUS() {
|
|
return getToken(GoParser::MINUS_MINUS, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::IncDecStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleIncDecStmt;
|
|
}
|
|
|
|
void GoParser::IncDecStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterIncDecStmt(this);
|
|
}
|
|
|
|
void GoParser::IncDecStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitIncDecStmt(this);
|
|
}
|
|
|
|
GoParser::IncDecStmtContext* GoParser::incDecStmt() {
|
|
IncDecStmtContext *_localctx = _tracker.createInstance<IncDecStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 46, GoParser::RuleIncDecStmt);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(413);
|
|
expression(0);
|
|
setState(414);
|
|
_la = _input->LA(1);
|
|
if (!(_la == GoParser::PLUS_PLUS
|
|
|
|
|| _la == GoParser::MINUS_MINUS)) {
|
|
_errHandler->recoverInline(this);
|
|
}
|
|
else {
|
|
_errHandler->reportMatch(this);
|
|
consume();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- AssignmentContext ------------------------------------------------------------------
|
|
|
|
GoParser::AssignmentContext::AssignmentContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
std::vector<GoParser::ExpressionListContext *> GoParser::AssignmentContext::expressionList() {
|
|
return getRuleContexts<GoParser::ExpressionListContext>();
|
|
}
|
|
|
|
GoParser::ExpressionListContext* GoParser::AssignmentContext::expressionList(size_t i) {
|
|
return getRuleContext<GoParser::ExpressionListContext>(i);
|
|
}
|
|
|
|
GoParser::Assign_opContext* GoParser::AssignmentContext::assign_op() {
|
|
return getRuleContext<GoParser::Assign_opContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::AssignmentContext::getRuleIndex() const {
|
|
return GoParser::RuleAssignment;
|
|
}
|
|
|
|
void GoParser::AssignmentContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterAssignment(this);
|
|
}
|
|
|
|
void GoParser::AssignmentContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitAssignment(this);
|
|
}
|
|
|
|
GoParser::AssignmentContext* GoParser::assignment() {
|
|
AssignmentContext *_localctx = _tracker.createInstance<AssignmentContext>(_ctx, getState());
|
|
enterRule(_localctx, 48, GoParser::RuleAssignment);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(416);
|
|
expressionList();
|
|
setState(417);
|
|
assign_op();
|
|
setState(418);
|
|
expressionList();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- Assign_opContext ------------------------------------------------------------------
|
|
|
|
GoParser::Assign_opContext::Assign_opContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::ASSIGN() {
|
|
return getToken(GoParser::ASSIGN, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::PLUS() {
|
|
return getToken(GoParser::PLUS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::MINUS() {
|
|
return getToken(GoParser::MINUS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::OR() {
|
|
return getToken(GoParser::OR, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::CARET() {
|
|
return getToken(GoParser::CARET, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::STAR() {
|
|
return getToken(GoParser::STAR, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::DIV() {
|
|
return getToken(GoParser::DIV, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::MOD() {
|
|
return getToken(GoParser::MOD, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::LSHIFT() {
|
|
return getToken(GoParser::LSHIFT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::RSHIFT() {
|
|
return getToken(GoParser::RSHIFT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::AMPERSAND() {
|
|
return getToken(GoParser::AMPERSAND, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Assign_opContext::BIT_CLEAR() {
|
|
return getToken(GoParser::BIT_CLEAR, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::Assign_opContext::getRuleIndex() const {
|
|
return GoParser::RuleAssign_op;
|
|
}
|
|
|
|
void GoParser::Assign_opContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterAssign_op(this);
|
|
}
|
|
|
|
void GoParser::Assign_opContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitAssign_op(this);
|
|
}
|
|
|
|
GoParser::Assign_opContext* GoParser::assign_op() {
|
|
Assign_opContext *_localctx = _tracker.createInstance<Assign_opContext>(_ctx, getState());
|
|
enterRule(_localctx, 50, GoParser::RuleAssign_op);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(421);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (((((_la - 54) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 54)) & ((1ULL << (GoParser::OR - 54))
|
|
| (1ULL << (GoParser::DIV - 54))
|
|
| (1ULL << (GoParser::MOD - 54))
|
|
| (1ULL << (GoParser::LSHIFT - 54))
|
|
| (1ULL << (GoParser::RSHIFT - 54))
|
|
| (1ULL << (GoParser::BIT_CLEAR - 54))
|
|
| (1ULL << (GoParser::PLUS - 54))
|
|
| (1ULL << (GoParser::MINUS - 54))
|
|
| (1ULL << (GoParser::CARET - 54))
|
|
| (1ULL << (GoParser::STAR - 54))
|
|
| (1ULL << (GoParser::AMPERSAND - 54)))) != 0)) {
|
|
setState(420);
|
|
_la = _input->LA(1);
|
|
if (!(((((_la - 54) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 54)) & ((1ULL << (GoParser::OR - 54))
|
|
| (1ULL << (GoParser::DIV - 54))
|
|
| (1ULL << (GoParser::MOD - 54))
|
|
| (1ULL << (GoParser::LSHIFT - 54))
|
|
| (1ULL << (GoParser::RSHIFT - 54))
|
|
| (1ULL << (GoParser::BIT_CLEAR - 54))
|
|
| (1ULL << (GoParser::PLUS - 54))
|
|
| (1ULL << (GoParser::MINUS - 54))
|
|
| (1ULL << (GoParser::CARET - 54))
|
|
| (1ULL << (GoParser::STAR - 54))
|
|
| (1ULL << (GoParser::AMPERSAND - 54)))) != 0))) {
|
|
_errHandler->recoverInline(this);
|
|
}
|
|
else {
|
|
_errHandler->reportMatch(this);
|
|
consume();
|
|
}
|
|
}
|
|
setState(423);
|
|
match(GoParser::ASSIGN);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ShortVarDeclContext ------------------------------------------------------------------
|
|
|
|
GoParser::ShortVarDeclContext::ShortVarDeclContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::IdentifierListContext* GoParser::ShortVarDeclContext::identifierList() {
|
|
return getRuleContext<GoParser::IdentifierListContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ShortVarDeclContext::DECLARE_ASSIGN() {
|
|
return getToken(GoParser::DECLARE_ASSIGN, 0);
|
|
}
|
|
|
|
GoParser::ExpressionListContext* GoParser::ShortVarDeclContext::expressionList() {
|
|
return getRuleContext<GoParser::ExpressionListContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ShortVarDeclContext::getRuleIndex() const {
|
|
return GoParser::RuleShortVarDecl;
|
|
}
|
|
|
|
void GoParser::ShortVarDeclContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterShortVarDecl(this);
|
|
}
|
|
|
|
void GoParser::ShortVarDeclContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitShortVarDecl(this);
|
|
}
|
|
|
|
GoParser::ShortVarDeclContext* GoParser::shortVarDecl() {
|
|
ShortVarDeclContext *_localctx = _tracker.createInstance<ShortVarDeclContext>(_ctx, getState());
|
|
enterRule(_localctx, 52, GoParser::RuleShortVarDecl);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(425);
|
|
identifierList();
|
|
setState(426);
|
|
match(GoParser::DECLARE_ASSIGN);
|
|
setState(427);
|
|
expressionList();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- EmptyStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::EmptyStmtContext::EmptyStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::EmptyStmtContext::EOSSS() {
|
|
return getToken(GoParser::EOSSS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::EmptyStmtContext::SEMI() {
|
|
return getToken(GoParser::SEMI, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::EmptyStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleEmptyStmt;
|
|
}
|
|
|
|
void GoParser::EmptyStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterEmptyStmt(this);
|
|
}
|
|
|
|
void GoParser::EmptyStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitEmptyStmt(this);
|
|
}
|
|
|
|
GoParser::EmptyStmtContext* GoParser::emptyStmt() {
|
|
EmptyStmtContext *_localctx = _tracker.createInstance<EmptyStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 54, GoParser::RuleEmptyStmt);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(429);
|
|
_la = _input->LA(1);
|
|
if (!(_la == GoParser::SEMI
|
|
|
|
|| _la == GoParser::EOSSS)) {
|
|
_errHandler->recoverInline(this);
|
|
}
|
|
else {
|
|
_errHandler->reportMatch(this);
|
|
consume();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- LabeledStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::LabeledStmtContext::LabeledStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::LabeledStmtContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::LabeledStmtContext::COLON() {
|
|
return getToken(GoParser::COLON, 0);
|
|
}
|
|
|
|
GoParser::StatementContext* GoParser::LabeledStmtContext::statement() {
|
|
return getRuleContext<GoParser::StatementContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::LabeledStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleLabeledStmt;
|
|
}
|
|
|
|
void GoParser::LabeledStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterLabeledStmt(this);
|
|
}
|
|
|
|
void GoParser::LabeledStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitLabeledStmt(this);
|
|
}
|
|
|
|
GoParser::LabeledStmtContext* GoParser::labeledStmt() {
|
|
LabeledStmtContext *_localctx = _tracker.createInstance<LabeledStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 56, GoParser::RuleLabeledStmt);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(431);
|
|
match(GoParser::IDENTIFIER);
|
|
setState(432);
|
|
match(GoParser::COLON);
|
|
setState(434);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::BREAK)
|
|
| (1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::SELECT)
|
|
| (1ULL << GoParser::DEFER)
|
|
| (1ULL << GoParser::GO)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::GOTO)
|
|
| (1ULL << GoParser::SWITCH)
|
|
| (1ULL << GoParser::CONST)
|
|
| (1ULL << GoParser::FALLTHROUGH)
|
|
| (1ULL << GoParser::IF)
|
|
| (1ULL << GoParser::TYPE)
|
|
| (1ULL << GoParser::CONTINUE)
|
|
| (1ULL << GoParser::FOR)
|
|
| (1ULL << GoParser::RETURN)
|
|
| (1ULL << GoParser::VAR)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_CURLY)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(433);
|
|
statement();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ReturnStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::ReturnStmtContext::ReturnStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ReturnStmtContext::RETURN() {
|
|
return getToken(GoParser::RETURN, 0);
|
|
}
|
|
|
|
GoParser::ExpressionListContext* GoParser::ReturnStmtContext::expressionList() {
|
|
return getRuleContext<GoParser::ExpressionListContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ReturnStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleReturnStmt;
|
|
}
|
|
|
|
void GoParser::ReturnStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterReturnStmt(this);
|
|
}
|
|
|
|
void GoParser::ReturnStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitReturnStmt(this);
|
|
}
|
|
|
|
GoParser::ReturnStmtContext* GoParser::returnStmt() {
|
|
ReturnStmtContext *_localctx = _tracker.createInstance<ReturnStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 58, GoParser::RuleReturnStmt);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(436);
|
|
match(GoParser::RETURN);
|
|
setState(438);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(437);
|
|
expressionList();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- BreakStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::BreakStmtContext::BreakStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::BreakStmtContext::BREAK() {
|
|
return getToken(GoParser::BREAK, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::BreakStmtContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::BreakStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleBreakStmt;
|
|
}
|
|
|
|
void GoParser::BreakStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterBreakStmt(this);
|
|
}
|
|
|
|
void GoParser::BreakStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitBreakStmt(this);
|
|
}
|
|
|
|
GoParser::BreakStmtContext* GoParser::breakStmt() {
|
|
BreakStmtContext *_localctx = _tracker.createInstance<BreakStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 60, GoParser::RuleBreakStmt);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(440);
|
|
match(GoParser::BREAK);
|
|
setState(442);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::IDENTIFIER) {
|
|
setState(441);
|
|
match(GoParser::IDENTIFIER);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ContinueStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::ContinueStmtContext::ContinueStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ContinueStmtContext::CONTINUE() {
|
|
return getToken(GoParser::CONTINUE, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ContinueStmtContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ContinueStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleContinueStmt;
|
|
}
|
|
|
|
void GoParser::ContinueStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterContinueStmt(this);
|
|
}
|
|
|
|
void GoParser::ContinueStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitContinueStmt(this);
|
|
}
|
|
|
|
GoParser::ContinueStmtContext* GoParser::continueStmt() {
|
|
ContinueStmtContext *_localctx = _tracker.createInstance<ContinueStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 62, GoParser::RuleContinueStmt);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(444);
|
|
match(GoParser::CONTINUE);
|
|
setState(446);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::IDENTIFIER) {
|
|
setState(445);
|
|
match(GoParser::IDENTIFIER);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- GotoStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::GotoStmtContext::GotoStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::GotoStmtContext::GOTO() {
|
|
return getToken(GoParser::GOTO, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::GotoStmtContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::GotoStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleGotoStmt;
|
|
}
|
|
|
|
void GoParser::GotoStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterGotoStmt(this);
|
|
}
|
|
|
|
void GoParser::GotoStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitGotoStmt(this);
|
|
}
|
|
|
|
GoParser::GotoStmtContext* GoParser::gotoStmt() {
|
|
GotoStmtContext *_localctx = _tracker.createInstance<GotoStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 64, GoParser::RuleGotoStmt);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(448);
|
|
match(GoParser::GOTO);
|
|
setState(449);
|
|
match(GoParser::IDENTIFIER);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- FallthroughStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::FallthroughStmtContext::FallthroughStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::FallthroughStmtContext::FALLTHROUGH() {
|
|
return getToken(GoParser::FALLTHROUGH, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::FallthroughStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleFallthroughStmt;
|
|
}
|
|
|
|
void GoParser::FallthroughStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterFallthroughStmt(this);
|
|
}
|
|
|
|
void GoParser::FallthroughStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitFallthroughStmt(this);
|
|
}
|
|
|
|
GoParser::FallthroughStmtContext* GoParser::fallthroughStmt() {
|
|
FallthroughStmtContext *_localctx = _tracker.createInstance<FallthroughStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 66, GoParser::RuleFallthroughStmt);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(451);
|
|
match(GoParser::FALLTHROUGH);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- DeferStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::DeferStmtContext::DeferStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::DeferStmtContext::DEFER() {
|
|
return getToken(GoParser::DEFER, 0);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::DeferStmtContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::DeferStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleDeferStmt;
|
|
}
|
|
|
|
void GoParser::DeferStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterDeferStmt(this);
|
|
}
|
|
|
|
void GoParser::DeferStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitDeferStmt(this);
|
|
}
|
|
|
|
GoParser::DeferStmtContext* GoParser::deferStmt() {
|
|
DeferStmtContext *_localctx = _tracker.createInstance<DeferStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 68, GoParser::RuleDeferStmt);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(453);
|
|
match(GoParser::DEFER);
|
|
setState(454);
|
|
expression(0);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- IfStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::IfStmtContext::IfStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IfStmtContext::IF() {
|
|
return getToken(GoParser::IF, 0);
|
|
}
|
|
|
|
std::vector<GoParser::BlockContext *> GoParser::IfStmtContext::block() {
|
|
return getRuleContexts<GoParser::BlockContext>();
|
|
}
|
|
|
|
GoParser::BlockContext* GoParser::IfStmtContext::block(size_t i) {
|
|
return getRuleContext<GoParser::BlockContext>(i);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::IfStmtContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::IfStmtContext::eoss() {
|
|
return getRuleContext<GoParser::EossContext>(0);
|
|
}
|
|
|
|
GoParser::SimpleStmtContext* GoParser::IfStmtContext::simpleStmt() {
|
|
return getRuleContext<GoParser::SimpleStmtContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IfStmtContext::ELSE() {
|
|
return getToken(GoParser::ELSE, 0);
|
|
}
|
|
|
|
GoParser::IfStmtContext* GoParser::IfStmtContext::ifStmt() {
|
|
return getRuleContext<GoParser::IfStmtContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::IfStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleIfStmt;
|
|
}
|
|
|
|
void GoParser::IfStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterIfStmt(this);
|
|
}
|
|
|
|
void GoParser::IfStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitIfStmt(this);
|
|
}
|
|
|
|
GoParser::IfStmtContext* GoParser::ifStmt() {
|
|
IfStmtContext *_localctx = _tracker.createInstance<IfStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 70, GoParser::RuleIfStmt);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(456);
|
|
match(GoParser::IF);
|
|
setState(465);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 36, _ctx)) {
|
|
case 1: {
|
|
setState(457);
|
|
expression(0);
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(458);
|
|
eoss();
|
|
setState(459);
|
|
expression(0);
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
setState(461);
|
|
simpleStmt();
|
|
setState(462);
|
|
eoss();
|
|
setState(463);
|
|
expression(0);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(467);
|
|
block();
|
|
setState(473);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::ELSE) {
|
|
setState(468);
|
|
match(GoParser::ELSE);
|
|
setState(471);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::IF: {
|
|
setState(469);
|
|
ifStmt();
|
|
break;
|
|
}
|
|
|
|
case GoParser::L_CURLY: {
|
|
setState(470);
|
|
block();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- SwitchStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::SwitchStmtContext::SwitchStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ExprSwitchStmtContext* GoParser::SwitchStmtContext::exprSwitchStmt() {
|
|
return getRuleContext<GoParser::ExprSwitchStmtContext>(0);
|
|
}
|
|
|
|
GoParser::TypeSwitchStmtContext* GoParser::SwitchStmtContext::typeSwitchStmt() {
|
|
return getRuleContext<GoParser::TypeSwitchStmtContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::SwitchStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleSwitchStmt;
|
|
}
|
|
|
|
void GoParser::SwitchStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterSwitchStmt(this);
|
|
}
|
|
|
|
void GoParser::SwitchStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitSwitchStmt(this);
|
|
}
|
|
|
|
GoParser::SwitchStmtContext* GoParser::switchStmt() {
|
|
SwitchStmtContext *_localctx = _tracker.createInstance<SwitchStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 72, GoParser::RuleSwitchStmt);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(477);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 39, _ctx)) {
|
|
case 1: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(475);
|
|
exprSwitchStmt();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(476);
|
|
typeSwitchStmt();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ExprSwitchStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::ExprSwitchStmtContext::ExprSwitchStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ExprSwitchStmtContext::SWITCH() {
|
|
return getToken(GoParser::SWITCH, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ExprSwitchStmtContext::L_CURLY() {
|
|
return getToken(GoParser::L_CURLY, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ExprSwitchStmtContext::R_CURLY() {
|
|
return getToken(GoParser::R_CURLY, 0);
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::ExprSwitchStmtContext::eoss() {
|
|
return getRuleContext<GoParser::EossContext>(0);
|
|
}
|
|
|
|
std::vector<GoParser::ExprCaseClauseContext *> GoParser::ExprSwitchStmtContext::exprCaseClause() {
|
|
return getRuleContexts<GoParser::ExprCaseClauseContext>();
|
|
}
|
|
|
|
GoParser::ExprCaseClauseContext* GoParser::ExprSwitchStmtContext::exprCaseClause(size_t i) {
|
|
return getRuleContext<GoParser::ExprCaseClauseContext>(i);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::ExprSwitchStmtContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
GoParser::SimpleStmtContext* GoParser::ExprSwitchStmtContext::simpleStmt() {
|
|
return getRuleContext<GoParser::SimpleStmtContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ExprSwitchStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleExprSwitchStmt;
|
|
}
|
|
|
|
void GoParser::ExprSwitchStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterExprSwitchStmt(this);
|
|
}
|
|
|
|
void GoParser::ExprSwitchStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitExprSwitchStmt(this);
|
|
}
|
|
|
|
GoParser::ExprSwitchStmtContext* GoParser::exprSwitchStmt() {
|
|
ExprSwitchStmtContext *_localctx = _tracker.createInstance<ExprSwitchStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 74, GoParser::RuleExprSwitchStmt);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(479);
|
|
match(GoParser::SWITCH);
|
|
setState(490);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 43, _ctx)) {
|
|
case 1: {
|
|
setState(481);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(480);
|
|
expression(0);
|
|
}
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(484);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(483);
|
|
simpleStmt();
|
|
}
|
|
setState(486);
|
|
eoss();
|
|
setState(488);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(487);
|
|
expression(0);
|
|
}
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(492);
|
|
match(GoParser::L_CURLY);
|
|
setState(496);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (_la == GoParser::DEFAULT
|
|
|
|
|| _la == GoParser::CASE) {
|
|
setState(493);
|
|
exprCaseClause();
|
|
setState(498);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(499);
|
|
match(GoParser::R_CURLY);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ExprCaseClauseContext ------------------------------------------------------------------
|
|
|
|
GoParser::ExprCaseClauseContext::ExprCaseClauseContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ExprSwitchCaseContext* GoParser::ExprCaseClauseContext::exprSwitchCase() {
|
|
return getRuleContext<GoParser::ExprSwitchCaseContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ExprCaseClauseContext::COLON() {
|
|
return getToken(GoParser::COLON, 0);
|
|
}
|
|
|
|
GoParser::StatementListContext* GoParser::ExprCaseClauseContext::statementList() {
|
|
return getRuleContext<GoParser::StatementListContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ExprCaseClauseContext::getRuleIndex() const {
|
|
return GoParser::RuleExprCaseClause;
|
|
}
|
|
|
|
void GoParser::ExprCaseClauseContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterExprCaseClause(this);
|
|
}
|
|
|
|
void GoParser::ExprCaseClauseContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitExprCaseClause(this);
|
|
}
|
|
|
|
GoParser::ExprCaseClauseContext* GoParser::exprCaseClause() {
|
|
ExprCaseClauseContext *_localctx = _tracker.createInstance<ExprCaseClauseContext>(_ctx, getState());
|
|
enterRule(_localctx, 76, GoParser::RuleExprCaseClause);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(501);
|
|
exprSwitchCase();
|
|
setState(502);
|
|
match(GoParser::COLON);
|
|
setState(504);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::BREAK)
|
|
| (1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::SELECT)
|
|
| (1ULL << GoParser::DEFER)
|
|
| (1ULL << GoParser::GO)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::GOTO)
|
|
| (1ULL << GoParser::SWITCH)
|
|
| (1ULL << GoParser::CONST)
|
|
| (1ULL << GoParser::FALLTHROUGH)
|
|
| (1ULL << GoParser::IF)
|
|
| (1ULL << GoParser::TYPE)
|
|
| (1ULL << GoParser::CONTINUE)
|
|
| (1ULL << GoParser::FOR)
|
|
| (1ULL << GoParser::RETURN)
|
|
| (1ULL << GoParser::VAR)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_CURLY)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(503);
|
|
statementList();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ExprSwitchCaseContext ------------------------------------------------------------------
|
|
|
|
GoParser::ExprSwitchCaseContext::ExprSwitchCaseContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ExprSwitchCaseContext::CASE() {
|
|
return getToken(GoParser::CASE, 0);
|
|
}
|
|
|
|
GoParser::ExpressionListContext* GoParser::ExprSwitchCaseContext::expressionList() {
|
|
return getRuleContext<GoParser::ExpressionListContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ExprSwitchCaseContext::DEFAULT() {
|
|
return getToken(GoParser::DEFAULT, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ExprSwitchCaseContext::getRuleIndex() const {
|
|
return GoParser::RuleExprSwitchCase;
|
|
}
|
|
|
|
void GoParser::ExprSwitchCaseContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterExprSwitchCase(this);
|
|
}
|
|
|
|
void GoParser::ExprSwitchCaseContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitExprSwitchCase(this);
|
|
}
|
|
|
|
GoParser::ExprSwitchCaseContext* GoParser::exprSwitchCase() {
|
|
ExprSwitchCaseContext *_localctx = _tracker.createInstance<ExprSwitchCaseContext>(_ctx, getState());
|
|
enterRule(_localctx, 78, GoParser::RuleExprSwitchCase);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(509);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::CASE: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(506);
|
|
match(GoParser::CASE);
|
|
setState(507);
|
|
expressionList();
|
|
break;
|
|
}
|
|
|
|
case GoParser::DEFAULT: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(508);
|
|
match(GoParser::DEFAULT);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- TypeSwitchStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::TypeSwitchStmtContext::TypeSwitchStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSwitchStmtContext::SWITCH() {
|
|
return getToken(GoParser::SWITCH, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSwitchStmtContext::L_CURLY() {
|
|
return getToken(GoParser::L_CURLY, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSwitchStmtContext::R_CURLY() {
|
|
return getToken(GoParser::R_CURLY, 0);
|
|
}
|
|
|
|
GoParser::TypeSwitchGuardContext* GoParser::TypeSwitchStmtContext::typeSwitchGuard() {
|
|
return getRuleContext<GoParser::TypeSwitchGuardContext>(0);
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::TypeSwitchStmtContext::eoss() {
|
|
return getRuleContext<GoParser::EossContext>(0);
|
|
}
|
|
|
|
GoParser::SimpleStmtContext* GoParser::TypeSwitchStmtContext::simpleStmt() {
|
|
return getRuleContext<GoParser::SimpleStmtContext>(0);
|
|
}
|
|
|
|
std::vector<GoParser::TypeCaseClauseContext *> GoParser::TypeSwitchStmtContext::typeCaseClause() {
|
|
return getRuleContexts<GoParser::TypeCaseClauseContext>();
|
|
}
|
|
|
|
GoParser::TypeCaseClauseContext* GoParser::TypeSwitchStmtContext::typeCaseClause(size_t i) {
|
|
return getRuleContext<GoParser::TypeCaseClauseContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::TypeSwitchStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleTypeSwitchStmt;
|
|
}
|
|
|
|
void GoParser::TypeSwitchStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterTypeSwitchStmt(this);
|
|
}
|
|
|
|
void GoParser::TypeSwitchStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitTypeSwitchStmt(this);
|
|
}
|
|
|
|
GoParser::TypeSwitchStmtContext* GoParser::typeSwitchStmt() {
|
|
TypeSwitchStmtContext *_localctx = _tracker.createInstance<TypeSwitchStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 80, GoParser::RuleTypeSwitchStmt);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(511);
|
|
match(GoParser::SWITCH);
|
|
setState(520);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 47, _ctx)) {
|
|
case 1: {
|
|
setState(512);
|
|
typeSwitchGuard();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(513);
|
|
eoss();
|
|
setState(514);
|
|
typeSwitchGuard();
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
setState(516);
|
|
simpleStmt();
|
|
setState(517);
|
|
eoss();
|
|
setState(518);
|
|
typeSwitchGuard();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(522);
|
|
match(GoParser::L_CURLY);
|
|
setState(526);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (_la == GoParser::DEFAULT
|
|
|
|
|| _la == GoParser::CASE) {
|
|
setState(523);
|
|
typeCaseClause();
|
|
setState(528);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(529);
|
|
match(GoParser::R_CURLY);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- TypeSwitchGuardContext ------------------------------------------------------------------
|
|
|
|
GoParser::TypeSwitchGuardContext::TypeSwitchGuardContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::PrimaryExprContext* GoParser::TypeSwitchGuardContext::primaryExpr() {
|
|
return getRuleContext<GoParser::PrimaryExprContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSwitchGuardContext::DOT() {
|
|
return getToken(GoParser::DOT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSwitchGuardContext::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSwitchGuardContext::TYPE() {
|
|
return getToken(GoParser::TYPE, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSwitchGuardContext::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSwitchGuardContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSwitchGuardContext::DECLARE_ASSIGN() {
|
|
return getToken(GoParser::DECLARE_ASSIGN, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::TypeSwitchGuardContext::getRuleIndex() const {
|
|
return GoParser::RuleTypeSwitchGuard;
|
|
}
|
|
|
|
void GoParser::TypeSwitchGuardContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterTypeSwitchGuard(this);
|
|
}
|
|
|
|
void GoParser::TypeSwitchGuardContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitTypeSwitchGuard(this);
|
|
}
|
|
|
|
GoParser::TypeSwitchGuardContext* GoParser::typeSwitchGuard() {
|
|
TypeSwitchGuardContext *_localctx = _tracker.createInstance<TypeSwitchGuardContext>(_ctx, getState());
|
|
enterRule(_localctx, 82, GoParser::RuleTypeSwitchGuard);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(533);
|
|
_errHandler->sync(this);
|
|
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 49, _ctx)) {
|
|
case 1: {
|
|
setState(531);
|
|
match(GoParser::IDENTIFIER);
|
|
setState(532);
|
|
match(GoParser::DECLARE_ASSIGN);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(535);
|
|
primaryExpr(0);
|
|
setState(536);
|
|
match(GoParser::DOT);
|
|
setState(537);
|
|
match(GoParser::L_PAREN);
|
|
setState(538);
|
|
match(GoParser::TYPE);
|
|
setState(539);
|
|
match(GoParser::R_PAREN);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- TypeCaseClauseContext ------------------------------------------------------------------
|
|
|
|
GoParser::TypeCaseClauseContext::TypeCaseClauseContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::TypeSwitchCaseContext* GoParser::TypeCaseClauseContext::typeSwitchCase() {
|
|
return getRuleContext<GoParser::TypeSwitchCaseContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeCaseClauseContext::COLON() {
|
|
return getToken(GoParser::COLON, 0);
|
|
}
|
|
|
|
GoParser::StatementListContext* GoParser::TypeCaseClauseContext::statementList() {
|
|
return getRuleContext<GoParser::StatementListContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::TypeCaseClauseContext::getRuleIndex() const {
|
|
return GoParser::RuleTypeCaseClause;
|
|
}
|
|
|
|
void GoParser::TypeCaseClauseContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterTypeCaseClause(this);
|
|
}
|
|
|
|
void GoParser::TypeCaseClauseContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitTypeCaseClause(this);
|
|
}
|
|
|
|
GoParser::TypeCaseClauseContext* GoParser::typeCaseClause() {
|
|
TypeCaseClauseContext *_localctx = _tracker.createInstance<TypeCaseClauseContext>(_ctx, getState());
|
|
enterRule(_localctx, 84, GoParser::RuleTypeCaseClause);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(541);
|
|
typeSwitchCase();
|
|
setState(542);
|
|
match(GoParser::COLON);
|
|
setState(544);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::BREAK)
|
|
| (1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::SELECT)
|
|
| (1ULL << GoParser::DEFER)
|
|
| (1ULL << GoParser::GO)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::GOTO)
|
|
| (1ULL << GoParser::SWITCH)
|
|
| (1ULL << GoParser::CONST)
|
|
| (1ULL << GoParser::FALLTHROUGH)
|
|
| (1ULL << GoParser::IF)
|
|
| (1ULL << GoParser::TYPE)
|
|
| (1ULL << GoParser::CONTINUE)
|
|
| (1ULL << GoParser::FOR)
|
|
| (1ULL << GoParser::RETURN)
|
|
| (1ULL << GoParser::VAR)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_CURLY)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(543);
|
|
statementList();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- TypeSwitchCaseContext ------------------------------------------------------------------
|
|
|
|
GoParser::TypeSwitchCaseContext::TypeSwitchCaseContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSwitchCaseContext::CASE() {
|
|
return getToken(GoParser::CASE, 0);
|
|
}
|
|
|
|
GoParser::TypeListContext* GoParser::TypeSwitchCaseContext::typeList() {
|
|
return getRuleContext<GoParser::TypeListContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeSwitchCaseContext::DEFAULT() {
|
|
return getToken(GoParser::DEFAULT, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::TypeSwitchCaseContext::getRuleIndex() const {
|
|
return GoParser::RuleTypeSwitchCase;
|
|
}
|
|
|
|
void GoParser::TypeSwitchCaseContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterTypeSwitchCase(this);
|
|
}
|
|
|
|
void GoParser::TypeSwitchCaseContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitTypeSwitchCase(this);
|
|
}
|
|
|
|
GoParser::TypeSwitchCaseContext* GoParser::typeSwitchCase() {
|
|
TypeSwitchCaseContext *_localctx = _tracker.createInstance<TypeSwitchCaseContext>(_ctx, getState());
|
|
enterRule(_localctx, 86, GoParser::RuleTypeSwitchCase);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(549);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::CASE: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(546);
|
|
match(GoParser::CASE);
|
|
setState(547);
|
|
typeList();
|
|
break;
|
|
}
|
|
|
|
case GoParser::DEFAULT: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(548);
|
|
match(GoParser::DEFAULT);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- TypeListContext ------------------------------------------------------------------
|
|
|
|
GoParser::TypeListContext::TypeListContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
std::vector<GoParser::Type_Context *> GoParser::TypeListContext::type_() {
|
|
return getRuleContexts<GoParser::Type_Context>();
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::TypeListContext::type_(size_t i) {
|
|
return getRuleContext<GoParser::Type_Context>(i);
|
|
}
|
|
|
|
std::vector<tree::TerminalNode *> GoParser::TypeListContext::NIL_LIT() {
|
|
return getTokens(GoParser::NIL_LIT);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeListContext::NIL_LIT(size_t i) {
|
|
return getToken(GoParser::NIL_LIT, i);
|
|
}
|
|
|
|
std::vector<tree::TerminalNode *> GoParser::TypeListContext::COMMA() {
|
|
return getTokens(GoParser::COMMA);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeListContext::COMMA(size_t i) {
|
|
return getToken(GoParser::COMMA, i);
|
|
}
|
|
|
|
|
|
size_t GoParser::TypeListContext::getRuleIndex() const {
|
|
return GoParser::RuleTypeList;
|
|
}
|
|
|
|
void GoParser::TypeListContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterTypeList(this);
|
|
}
|
|
|
|
void GoParser::TypeListContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitTypeList(this);
|
|
}
|
|
|
|
GoParser::TypeListContext* GoParser::typeList() {
|
|
TypeListContext *_localctx = _tracker.createInstance<TypeListContext>(_ctx, getState());
|
|
enterRule(_localctx, 88, GoParser::RuleTypeList);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(553);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::FUNC:
|
|
case GoParser::INTERFACE:
|
|
case GoParser::MAP:
|
|
case GoParser::STRUCT:
|
|
case GoParser::CHAN:
|
|
case GoParser::IDENTIFIER:
|
|
case GoParser::L_PAREN:
|
|
case GoParser::L_BRACKET:
|
|
case GoParser::STAR:
|
|
case GoParser::RECEIVE: {
|
|
setState(551);
|
|
type_();
|
|
break;
|
|
}
|
|
|
|
case GoParser::NIL_LIT: {
|
|
setState(552);
|
|
match(GoParser::NIL_LIT);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
setState(562);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (_la == GoParser::COMMA) {
|
|
setState(555);
|
|
match(GoParser::COMMA);
|
|
setState(558);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::FUNC:
|
|
case GoParser::INTERFACE:
|
|
case GoParser::MAP:
|
|
case GoParser::STRUCT:
|
|
case GoParser::CHAN:
|
|
case GoParser::IDENTIFIER:
|
|
case GoParser::L_PAREN:
|
|
case GoParser::L_BRACKET:
|
|
case GoParser::STAR:
|
|
case GoParser::RECEIVE: {
|
|
setState(556);
|
|
type_();
|
|
break;
|
|
}
|
|
|
|
case GoParser::NIL_LIT: {
|
|
setState(557);
|
|
match(GoParser::NIL_LIT);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
setState(564);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- SelectStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::SelectStmtContext::SelectStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::SelectStmtContext::SELECT() {
|
|
return getToken(GoParser::SELECT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::SelectStmtContext::L_CURLY() {
|
|
return getToken(GoParser::L_CURLY, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::SelectStmtContext::R_CURLY() {
|
|
return getToken(GoParser::R_CURLY, 0);
|
|
}
|
|
|
|
std::vector<GoParser::CommClauseContext *> GoParser::SelectStmtContext::commClause() {
|
|
return getRuleContexts<GoParser::CommClauseContext>();
|
|
}
|
|
|
|
GoParser::CommClauseContext* GoParser::SelectStmtContext::commClause(size_t i) {
|
|
return getRuleContext<GoParser::CommClauseContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::SelectStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleSelectStmt;
|
|
}
|
|
|
|
void GoParser::SelectStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterSelectStmt(this);
|
|
}
|
|
|
|
void GoParser::SelectStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitSelectStmt(this);
|
|
}
|
|
|
|
GoParser::SelectStmtContext* GoParser::selectStmt() {
|
|
SelectStmtContext *_localctx = _tracker.createInstance<SelectStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 90, GoParser::RuleSelectStmt);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(565);
|
|
match(GoParser::SELECT);
|
|
setState(566);
|
|
match(GoParser::L_CURLY);
|
|
setState(570);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (_la == GoParser::DEFAULT
|
|
|
|
|| _la == GoParser::CASE) {
|
|
setState(567);
|
|
commClause();
|
|
setState(572);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(573);
|
|
match(GoParser::R_CURLY);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- CommClauseContext ------------------------------------------------------------------
|
|
|
|
GoParser::CommClauseContext::CommClauseContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::CommCaseContext* GoParser::CommClauseContext::commCase() {
|
|
return getRuleContext<GoParser::CommCaseContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::CommClauseContext::COLON() {
|
|
return getToken(GoParser::COLON, 0);
|
|
}
|
|
|
|
GoParser::StatementListContext* GoParser::CommClauseContext::statementList() {
|
|
return getRuleContext<GoParser::StatementListContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::CommClauseContext::getRuleIndex() const {
|
|
return GoParser::RuleCommClause;
|
|
}
|
|
|
|
void GoParser::CommClauseContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterCommClause(this);
|
|
}
|
|
|
|
void GoParser::CommClauseContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitCommClause(this);
|
|
}
|
|
|
|
GoParser::CommClauseContext* GoParser::commClause() {
|
|
CommClauseContext *_localctx = _tracker.createInstance<CommClauseContext>(_ctx, getState());
|
|
enterRule(_localctx, 92, GoParser::RuleCommClause);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(575);
|
|
commCase();
|
|
setState(576);
|
|
match(GoParser::COLON);
|
|
setState(578);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::BREAK)
|
|
| (1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::SELECT)
|
|
| (1ULL << GoParser::DEFER)
|
|
| (1ULL << GoParser::GO)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::GOTO)
|
|
| (1ULL << GoParser::SWITCH)
|
|
| (1ULL << GoParser::CONST)
|
|
| (1ULL << GoParser::FALLTHROUGH)
|
|
| (1ULL << GoParser::IF)
|
|
| (1ULL << GoParser::TYPE)
|
|
| (1ULL << GoParser::CONTINUE)
|
|
| (1ULL << GoParser::FOR)
|
|
| (1ULL << GoParser::RETURN)
|
|
| (1ULL << GoParser::VAR)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_CURLY)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(577);
|
|
statementList();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- CommCaseContext ------------------------------------------------------------------
|
|
|
|
GoParser::CommCaseContext::CommCaseContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::CommCaseContext::CASE() {
|
|
return getToken(GoParser::CASE, 0);
|
|
}
|
|
|
|
GoParser::SendStmtContext* GoParser::CommCaseContext::sendStmt() {
|
|
return getRuleContext<GoParser::SendStmtContext>(0);
|
|
}
|
|
|
|
GoParser::RecvStmtContext* GoParser::CommCaseContext::recvStmt() {
|
|
return getRuleContext<GoParser::RecvStmtContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::CommCaseContext::DEFAULT() {
|
|
return getToken(GoParser::DEFAULT, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::CommCaseContext::getRuleIndex() const {
|
|
return GoParser::RuleCommCase;
|
|
}
|
|
|
|
void GoParser::CommCaseContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterCommCase(this);
|
|
}
|
|
|
|
void GoParser::CommCaseContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitCommCase(this);
|
|
}
|
|
|
|
GoParser::CommCaseContext* GoParser::commCase() {
|
|
CommCaseContext *_localctx = _tracker.createInstance<CommCaseContext>(_ctx, getState());
|
|
enterRule(_localctx, 94, GoParser::RuleCommCase);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(586);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::CASE: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(580);
|
|
match(GoParser::CASE);
|
|
setState(583);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 57, _ctx)) {
|
|
case 1: {
|
|
setState(581);
|
|
sendStmt();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(582);
|
|
recvStmt();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
|
|
case GoParser::DEFAULT: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(585);
|
|
match(GoParser::DEFAULT);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- RecvStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::RecvStmtContext::RecvStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::RecvStmtContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
GoParser::ExpressionListContext* GoParser::RecvStmtContext::expressionList() {
|
|
return getRuleContext<GoParser::ExpressionListContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::RecvStmtContext::ASSIGN() {
|
|
return getToken(GoParser::ASSIGN, 0);
|
|
}
|
|
|
|
GoParser::IdentifierListContext* GoParser::RecvStmtContext::identifierList() {
|
|
return getRuleContext<GoParser::IdentifierListContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::RecvStmtContext::DECLARE_ASSIGN() {
|
|
return getToken(GoParser::DECLARE_ASSIGN, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::RecvStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleRecvStmt;
|
|
}
|
|
|
|
void GoParser::RecvStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterRecvStmt(this);
|
|
}
|
|
|
|
void GoParser::RecvStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitRecvStmt(this);
|
|
}
|
|
|
|
GoParser::RecvStmtContext* GoParser::recvStmt() {
|
|
RecvStmtContext *_localctx = _tracker.createInstance<RecvStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 96, GoParser::RuleRecvStmt);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(594);
|
|
_errHandler->sync(this);
|
|
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 59, _ctx)) {
|
|
case 1: {
|
|
setState(588);
|
|
expressionList();
|
|
setState(589);
|
|
match(GoParser::ASSIGN);
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(591);
|
|
identifierList();
|
|
setState(592);
|
|
match(GoParser::DECLARE_ASSIGN);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(596);
|
|
antlrcpp::downCast<RecvStmtContext *>(_localctx)->recvExpr = expression(0);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ForStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::ForStmtContext::ForStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ForStmtContext::FOR() {
|
|
return getToken(GoParser::FOR, 0);
|
|
}
|
|
|
|
GoParser::BlockContext* GoParser::ForStmtContext::block() {
|
|
return getRuleContext<GoParser::BlockContext>(0);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::ForStmtContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
GoParser::ForClauseContext* GoParser::ForStmtContext::forClause() {
|
|
return getRuleContext<GoParser::ForClauseContext>(0);
|
|
}
|
|
|
|
GoParser::RangeClauseContext* GoParser::ForStmtContext::rangeClause() {
|
|
return getRuleContext<GoParser::RangeClauseContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ForStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleForStmt;
|
|
}
|
|
|
|
void GoParser::ForStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterForStmt(this);
|
|
}
|
|
|
|
void GoParser::ForStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitForStmt(this);
|
|
}
|
|
|
|
GoParser::ForStmtContext* GoParser::forStmt() {
|
|
ForStmtContext *_localctx = _tracker.createInstance<ForStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 98, GoParser::RuleForStmt);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(598);
|
|
match(GoParser::FOR);
|
|
setState(602);
|
|
_errHandler->sync(this);
|
|
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 60, _ctx)) {
|
|
case 1: {
|
|
setState(599);
|
|
expression(0);
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(600);
|
|
forClause();
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
setState(601);
|
|
rangeClause();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(604);
|
|
block();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ForClauseContext ------------------------------------------------------------------
|
|
|
|
GoParser::ForClauseContext::ForClauseContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
std::vector<GoParser::EossContext *> GoParser::ForClauseContext::eoss() {
|
|
return getRuleContexts<GoParser::EossContext>();
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::ForClauseContext::eoss(size_t i) {
|
|
return getRuleContext<GoParser::EossContext>(i);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::ForClauseContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
std::vector<GoParser::SimpleStmtContext *> GoParser::ForClauseContext::simpleStmt() {
|
|
return getRuleContexts<GoParser::SimpleStmtContext>();
|
|
}
|
|
|
|
GoParser::SimpleStmtContext* GoParser::ForClauseContext::simpleStmt(size_t i) {
|
|
return getRuleContext<GoParser::SimpleStmtContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::ForClauseContext::getRuleIndex() const {
|
|
return GoParser::RuleForClause;
|
|
}
|
|
|
|
void GoParser::ForClauseContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterForClause(this);
|
|
}
|
|
|
|
void GoParser::ForClauseContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitForClause(this);
|
|
}
|
|
|
|
GoParser::ForClauseContext* GoParser::forClause() {
|
|
ForClauseContext *_localctx = _tracker.createInstance<ForClauseContext>(_ctx, getState());
|
|
enterRule(_localctx, 100, GoParser::RuleForClause);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(607);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(606);
|
|
antlrcpp::downCast<ForClauseContext *>(_localctx)->initStmt = simpleStmt();
|
|
}
|
|
setState(609);
|
|
eoss();
|
|
setState(611);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(610);
|
|
expression(0);
|
|
}
|
|
setState(613);
|
|
eoss();
|
|
setState(615);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(614);
|
|
antlrcpp::downCast<ForClauseContext *>(_localctx)->postStmt = simpleStmt();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- RangeClauseContext ------------------------------------------------------------------
|
|
|
|
GoParser::RangeClauseContext::RangeClauseContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::RangeClauseContext::RANGE() {
|
|
return getToken(GoParser::RANGE, 0);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::RangeClauseContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
GoParser::ExpressionListContext* GoParser::RangeClauseContext::expressionList() {
|
|
return getRuleContext<GoParser::ExpressionListContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::RangeClauseContext::ASSIGN() {
|
|
return getToken(GoParser::ASSIGN, 0);
|
|
}
|
|
|
|
GoParser::IdentifierListContext* GoParser::RangeClauseContext::identifierList() {
|
|
return getRuleContext<GoParser::IdentifierListContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::RangeClauseContext::DECLARE_ASSIGN() {
|
|
return getToken(GoParser::DECLARE_ASSIGN, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::RangeClauseContext::getRuleIndex() const {
|
|
return GoParser::RuleRangeClause;
|
|
}
|
|
|
|
void GoParser::RangeClauseContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterRangeClause(this);
|
|
}
|
|
|
|
void GoParser::RangeClauseContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitRangeClause(this);
|
|
}
|
|
|
|
GoParser::RangeClauseContext* GoParser::rangeClause() {
|
|
RangeClauseContext *_localctx = _tracker.createInstance<RangeClauseContext>(_ctx, getState());
|
|
enterRule(_localctx, 102, GoParser::RuleRangeClause);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(623);
|
|
_errHandler->sync(this);
|
|
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 64, _ctx)) {
|
|
case 1: {
|
|
setState(617);
|
|
expressionList();
|
|
setState(618);
|
|
match(GoParser::ASSIGN);
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(620);
|
|
identifierList();
|
|
setState(621);
|
|
match(GoParser::DECLARE_ASSIGN);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(625);
|
|
match(GoParser::RANGE);
|
|
setState(626);
|
|
expression(0);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- GoStmtContext ------------------------------------------------------------------
|
|
|
|
GoParser::GoStmtContext::GoStmtContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::GoStmtContext::GO() {
|
|
return getToken(GoParser::GO, 0);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::GoStmtContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::GoStmtContext::getRuleIndex() const {
|
|
return GoParser::RuleGoStmt;
|
|
}
|
|
|
|
void GoParser::GoStmtContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterGoStmt(this);
|
|
}
|
|
|
|
void GoParser::GoStmtContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitGoStmt(this);
|
|
}
|
|
|
|
GoParser::GoStmtContext* GoParser::goStmt() {
|
|
GoStmtContext *_localctx = _tracker.createInstance<GoStmtContext>(_ctx, getState());
|
|
enterRule(_localctx, 104, GoParser::RuleGoStmt);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(628);
|
|
match(GoParser::GO);
|
|
setState(629);
|
|
expression(0);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- Type_Context ------------------------------------------------------------------
|
|
|
|
GoParser::Type_Context::Type_Context(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::TypeNameContext* GoParser::Type_Context::typeName() {
|
|
return getRuleContext<GoParser::TypeNameContext>(0);
|
|
}
|
|
|
|
GoParser::TypeLitContext* GoParser::Type_Context::typeLit() {
|
|
return getRuleContext<GoParser::TypeLitContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Type_Context::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::Type_Context::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Type_Context::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::Type_Context::getRuleIndex() const {
|
|
return GoParser::RuleType_;
|
|
}
|
|
|
|
void GoParser::Type_Context::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterType_(this);
|
|
}
|
|
|
|
void GoParser::Type_Context::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitType_(this);
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::type_() {
|
|
Type_Context *_localctx = _tracker.createInstance<Type_Context>(_ctx, getState());
|
|
enterRule(_localctx, 106, GoParser::RuleType_);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(637);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::IDENTIFIER: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(631);
|
|
typeName();
|
|
break;
|
|
}
|
|
|
|
case GoParser::FUNC:
|
|
case GoParser::INTERFACE:
|
|
case GoParser::MAP:
|
|
case GoParser::STRUCT:
|
|
case GoParser::CHAN:
|
|
case GoParser::L_BRACKET:
|
|
case GoParser::STAR:
|
|
case GoParser::RECEIVE: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(632);
|
|
typeLit();
|
|
break;
|
|
}
|
|
|
|
case GoParser::L_PAREN: {
|
|
enterOuterAlt(_localctx, 3);
|
|
setState(633);
|
|
match(GoParser::L_PAREN);
|
|
setState(634);
|
|
type_();
|
|
setState(635);
|
|
match(GoParser::R_PAREN);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- TypeNameContext ------------------------------------------------------------------
|
|
|
|
GoParser::TypeNameContext::TypeNameContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::QualifiedIdentContext* GoParser::TypeNameContext::qualifiedIdent() {
|
|
return getRuleContext<GoParser::QualifiedIdentContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeNameContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::TypeNameContext::getRuleIndex() const {
|
|
return GoParser::RuleTypeName;
|
|
}
|
|
|
|
void GoParser::TypeNameContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterTypeName(this);
|
|
}
|
|
|
|
void GoParser::TypeNameContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitTypeName(this);
|
|
}
|
|
|
|
GoParser::TypeNameContext* GoParser::typeName() {
|
|
TypeNameContext *_localctx = _tracker.createInstance<TypeNameContext>(_ctx, getState());
|
|
enterRule(_localctx, 108, GoParser::RuleTypeName);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(641);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 66, _ctx)) {
|
|
case 1: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(639);
|
|
qualifiedIdent();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(640);
|
|
match(GoParser::IDENTIFIER);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- TypeLitContext ------------------------------------------------------------------
|
|
|
|
GoParser::TypeLitContext::TypeLitContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ArrayTypeContext* GoParser::TypeLitContext::arrayType() {
|
|
return getRuleContext<GoParser::ArrayTypeContext>(0);
|
|
}
|
|
|
|
GoParser::StructTypeContext* GoParser::TypeLitContext::structType() {
|
|
return getRuleContext<GoParser::StructTypeContext>(0);
|
|
}
|
|
|
|
GoParser::PointerTypeContext* GoParser::TypeLitContext::pointerType() {
|
|
return getRuleContext<GoParser::PointerTypeContext>(0);
|
|
}
|
|
|
|
GoParser::FunctionTypeContext* GoParser::TypeLitContext::functionType() {
|
|
return getRuleContext<GoParser::FunctionTypeContext>(0);
|
|
}
|
|
|
|
GoParser::InterfaceTypeContext* GoParser::TypeLitContext::interfaceType() {
|
|
return getRuleContext<GoParser::InterfaceTypeContext>(0);
|
|
}
|
|
|
|
GoParser::SliceTypeContext* GoParser::TypeLitContext::sliceType() {
|
|
return getRuleContext<GoParser::SliceTypeContext>(0);
|
|
}
|
|
|
|
GoParser::MapTypeContext* GoParser::TypeLitContext::mapType() {
|
|
return getRuleContext<GoParser::MapTypeContext>(0);
|
|
}
|
|
|
|
GoParser::ChannelTypeContext* GoParser::TypeLitContext::channelType() {
|
|
return getRuleContext<GoParser::ChannelTypeContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::TypeLitContext::getRuleIndex() const {
|
|
return GoParser::RuleTypeLit;
|
|
}
|
|
|
|
void GoParser::TypeLitContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterTypeLit(this);
|
|
}
|
|
|
|
void GoParser::TypeLitContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitTypeLit(this);
|
|
}
|
|
|
|
GoParser::TypeLitContext* GoParser::typeLit() {
|
|
TypeLitContext *_localctx = _tracker.createInstance<TypeLitContext>(_ctx, getState());
|
|
enterRule(_localctx, 110, GoParser::RuleTypeLit);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(651);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 67, _ctx)) {
|
|
case 1: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(643);
|
|
arrayType();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(644);
|
|
structType();
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
enterOuterAlt(_localctx, 3);
|
|
setState(645);
|
|
pointerType();
|
|
break;
|
|
}
|
|
|
|
case 4: {
|
|
enterOuterAlt(_localctx, 4);
|
|
setState(646);
|
|
functionType();
|
|
break;
|
|
}
|
|
|
|
case 5: {
|
|
enterOuterAlt(_localctx, 5);
|
|
setState(647);
|
|
interfaceType();
|
|
break;
|
|
}
|
|
|
|
case 6: {
|
|
enterOuterAlt(_localctx, 6);
|
|
setState(648);
|
|
sliceType();
|
|
break;
|
|
}
|
|
|
|
case 7: {
|
|
enterOuterAlt(_localctx, 7);
|
|
setState(649);
|
|
mapType();
|
|
break;
|
|
}
|
|
|
|
case 8: {
|
|
enterOuterAlt(_localctx, 8);
|
|
setState(650);
|
|
channelType();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ArrayTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::ArrayTypeContext::ArrayTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ArrayTypeContext::L_BRACKET() {
|
|
return getToken(GoParser::L_BRACKET, 0);
|
|
}
|
|
|
|
GoParser::ArrayLengthContext* GoParser::ArrayTypeContext::arrayLength() {
|
|
return getRuleContext<GoParser::ArrayLengthContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ArrayTypeContext::R_BRACKET() {
|
|
return getToken(GoParser::R_BRACKET, 0);
|
|
}
|
|
|
|
GoParser::ElementTypeContext* GoParser::ArrayTypeContext::elementType() {
|
|
return getRuleContext<GoParser::ElementTypeContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ArrayTypeContext::getRuleIndex() const {
|
|
return GoParser::RuleArrayType;
|
|
}
|
|
|
|
void GoParser::ArrayTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterArrayType(this);
|
|
}
|
|
|
|
void GoParser::ArrayTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitArrayType(this);
|
|
}
|
|
|
|
GoParser::ArrayTypeContext* GoParser::arrayType() {
|
|
ArrayTypeContext *_localctx = _tracker.createInstance<ArrayTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 112, GoParser::RuleArrayType);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(653);
|
|
match(GoParser::L_BRACKET);
|
|
setState(654);
|
|
arrayLength();
|
|
setState(655);
|
|
match(GoParser::R_BRACKET);
|
|
setState(656);
|
|
elementType();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ArrayLengthContext ------------------------------------------------------------------
|
|
|
|
GoParser::ArrayLengthContext::ArrayLengthContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::ArrayLengthContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ArrayLengthContext::getRuleIndex() const {
|
|
return GoParser::RuleArrayLength;
|
|
}
|
|
|
|
void GoParser::ArrayLengthContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterArrayLength(this);
|
|
}
|
|
|
|
void GoParser::ArrayLengthContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitArrayLength(this);
|
|
}
|
|
|
|
GoParser::ArrayLengthContext* GoParser::arrayLength() {
|
|
ArrayLengthContext *_localctx = _tracker.createInstance<ArrayLengthContext>(_ctx, getState());
|
|
enterRule(_localctx, 114, GoParser::RuleArrayLength);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(658);
|
|
expression(0);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ElementTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::ElementTypeContext::ElementTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::ElementTypeContext::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ElementTypeContext::getRuleIndex() const {
|
|
return GoParser::RuleElementType;
|
|
}
|
|
|
|
void GoParser::ElementTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterElementType(this);
|
|
}
|
|
|
|
void GoParser::ElementTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitElementType(this);
|
|
}
|
|
|
|
GoParser::ElementTypeContext* GoParser::elementType() {
|
|
ElementTypeContext *_localctx = _tracker.createInstance<ElementTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 116, GoParser::RuleElementType);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(660);
|
|
type_();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- PointerTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::PointerTypeContext::PointerTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::PointerTypeContext::STAR() {
|
|
return getToken(GoParser::STAR, 0);
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::PointerTypeContext::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::PointerTypeContext::getRuleIndex() const {
|
|
return GoParser::RulePointerType;
|
|
}
|
|
|
|
void GoParser::PointerTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterPointerType(this);
|
|
}
|
|
|
|
void GoParser::PointerTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitPointerType(this);
|
|
}
|
|
|
|
GoParser::PointerTypeContext* GoParser::pointerType() {
|
|
PointerTypeContext *_localctx = _tracker.createInstance<PointerTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 118, GoParser::RulePointerType);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(662);
|
|
match(GoParser::STAR);
|
|
setState(663);
|
|
type_();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- InterfaceTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::InterfaceTypeContext::InterfaceTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::InterfaceTypeContext::INTERFACE() {
|
|
return getToken(GoParser::INTERFACE, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::InterfaceTypeContext::L_CURLY() {
|
|
return getToken(GoParser::L_CURLY, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::InterfaceTypeContext::R_CURLY() {
|
|
return getToken(GoParser::R_CURLY, 0);
|
|
}
|
|
|
|
std::vector<GoParser::EossContext *> GoParser::InterfaceTypeContext::eoss() {
|
|
return getRuleContexts<GoParser::EossContext>();
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::InterfaceTypeContext::eoss(size_t i) {
|
|
return getRuleContext<GoParser::EossContext>(i);
|
|
}
|
|
|
|
std::vector<GoParser::MethodSpecContext *> GoParser::InterfaceTypeContext::methodSpec() {
|
|
return getRuleContexts<GoParser::MethodSpecContext>();
|
|
}
|
|
|
|
GoParser::MethodSpecContext* GoParser::InterfaceTypeContext::methodSpec(size_t i) {
|
|
return getRuleContext<GoParser::MethodSpecContext>(i);
|
|
}
|
|
|
|
std::vector<GoParser::TypeNameContext *> GoParser::InterfaceTypeContext::typeName() {
|
|
return getRuleContexts<GoParser::TypeNameContext>();
|
|
}
|
|
|
|
GoParser::TypeNameContext* GoParser::InterfaceTypeContext::typeName(size_t i) {
|
|
return getRuleContext<GoParser::TypeNameContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::InterfaceTypeContext::getRuleIndex() const {
|
|
return GoParser::RuleInterfaceType;
|
|
}
|
|
|
|
void GoParser::InterfaceTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterInterfaceType(this);
|
|
}
|
|
|
|
void GoParser::InterfaceTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitInterfaceType(this);
|
|
}
|
|
|
|
GoParser::InterfaceTypeContext* GoParser::interfaceType() {
|
|
InterfaceTypeContext *_localctx = _tracker.createInstance<InterfaceTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 120, GoParser::RuleInterfaceType);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(665);
|
|
match(GoParser::INTERFACE);
|
|
setState(666);
|
|
match(GoParser::L_CURLY);
|
|
setState(675);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (_la == GoParser::IDENTIFIER) {
|
|
setState(669);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 68, _ctx)) {
|
|
case 1: {
|
|
setState(667);
|
|
methodSpec();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(668);
|
|
typeName();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(671);
|
|
eoss();
|
|
setState(677);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(678);
|
|
match(GoParser::R_CURLY);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- SliceTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::SliceTypeContext::SliceTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::SliceTypeContext::L_BRACKET() {
|
|
return getToken(GoParser::L_BRACKET, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::SliceTypeContext::R_BRACKET() {
|
|
return getToken(GoParser::R_BRACKET, 0);
|
|
}
|
|
|
|
GoParser::ElementTypeContext* GoParser::SliceTypeContext::elementType() {
|
|
return getRuleContext<GoParser::ElementTypeContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::SliceTypeContext::getRuleIndex() const {
|
|
return GoParser::RuleSliceType;
|
|
}
|
|
|
|
void GoParser::SliceTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterSliceType(this);
|
|
}
|
|
|
|
void GoParser::SliceTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitSliceType(this);
|
|
}
|
|
|
|
GoParser::SliceTypeContext* GoParser::sliceType() {
|
|
SliceTypeContext *_localctx = _tracker.createInstance<SliceTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 122, GoParser::RuleSliceType);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(680);
|
|
match(GoParser::L_BRACKET);
|
|
setState(681);
|
|
match(GoParser::R_BRACKET);
|
|
setState(682);
|
|
elementType();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- MapTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::MapTypeContext::MapTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MapTypeContext::MAP() {
|
|
return getToken(GoParser::MAP, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MapTypeContext::L_BRACKET() {
|
|
return getToken(GoParser::L_BRACKET, 0);
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::MapTypeContext::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MapTypeContext::R_BRACKET() {
|
|
return getToken(GoParser::R_BRACKET, 0);
|
|
}
|
|
|
|
GoParser::ElementTypeContext* GoParser::MapTypeContext::elementType() {
|
|
return getRuleContext<GoParser::ElementTypeContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::MapTypeContext::getRuleIndex() const {
|
|
return GoParser::RuleMapType;
|
|
}
|
|
|
|
void GoParser::MapTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterMapType(this);
|
|
}
|
|
|
|
void GoParser::MapTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitMapType(this);
|
|
}
|
|
|
|
GoParser::MapTypeContext* GoParser::mapType() {
|
|
MapTypeContext *_localctx = _tracker.createInstance<MapTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 124, GoParser::RuleMapType);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(684);
|
|
match(GoParser::MAP);
|
|
setState(685);
|
|
match(GoParser::L_BRACKET);
|
|
setState(686);
|
|
type_();
|
|
setState(687);
|
|
match(GoParser::R_BRACKET);
|
|
setState(688);
|
|
elementType();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ChannelTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::ChannelTypeContext::ChannelTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ElementTypeContext* GoParser::ChannelTypeContext::elementType() {
|
|
return getRuleContext<GoParser::ElementTypeContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ChannelTypeContext::CHAN() {
|
|
return getToken(GoParser::CHAN, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ChannelTypeContext::RECEIVE() {
|
|
return getToken(GoParser::RECEIVE, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ChannelTypeContext::getRuleIndex() const {
|
|
return GoParser::RuleChannelType;
|
|
}
|
|
|
|
void GoParser::ChannelTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterChannelType(this);
|
|
}
|
|
|
|
void GoParser::ChannelTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitChannelType(this);
|
|
}
|
|
|
|
GoParser::ChannelTypeContext* GoParser::channelType() {
|
|
ChannelTypeContext *_localctx = _tracker.createInstance<ChannelTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 126, GoParser::RuleChannelType);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(695);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 70, _ctx)) {
|
|
case 1: {
|
|
setState(690);
|
|
match(GoParser::CHAN);
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(691);
|
|
match(GoParser::CHAN);
|
|
setState(692);
|
|
match(GoParser::RECEIVE);
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
setState(693);
|
|
match(GoParser::RECEIVE);
|
|
setState(694);
|
|
match(GoParser::CHAN);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(697);
|
|
elementType();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- MethodSpecContext ------------------------------------------------------------------
|
|
|
|
GoParser::MethodSpecContext::MethodSpecContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MethodSpecContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
GoParser::ParametersContext* GoParser::MethodSpecContext::parameters() {
|
|
return getRuleContext<GoParser::ParametersContext>(0);
|
|
}
|
|
|
|
GoParser::ResultContext* GoParser::MethodSpecContext::result() {
|
|
return getRuleContext<GoParser::ResultContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::MethodSpecContext::getRuleIndex() const {
|
|
return GoParser::RuleMethodSpec;
|
|
}
|
|
|
|
void GoParser::MethodSpecContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterMethodSpec(this);
|
|
}
|
|
|
|
void GoParser::MethodSpecContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitMethodSpec(this);
|
|
}
|
|
|
|
GoParser::MethodSpecContext* GoParser::methodSpec() {
|
|
MethodSpecContext *_localctx = _tracker.createInstance<MethodSpecContext>(_ctx, getState());
|
|
enterRule(_localctx, 128, GoParser::RuleMethodSpec);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(705);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 71, _ctx)) {
|
|
case 1: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(699);
|
|
match(GoParser::IDENTIFIER);
|
|
setState(700);
|
|
parameters();
|
|
setState(701);
|
|
result();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(703);
|
|
match(GoParser::IDENTIFIER);
|
|
setState(704);
|
|
parameters();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- FunctionTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::FunctionTypeContext::FunctionTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::FunctionTypeContext::FUNC() {
|
|
return getToken(GoParser::FUNC, 0);
|
|
}
|
|
|
|
GoParser::SignatureContext* GoParser::FunctionTypeContext::signature() {
|
|
return getRuleContext<GoParser::SignatureContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::FunctionTypeContext::getRuleIndex() const {
|
|
return GoParser::RuleFunctionType;
|
|
}
|
|
|
|
void GoParser::FunctionTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterFunctionType(this);
|
|
}
|
|
|
|
void GoParser::FunctionTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitFunctionType(this);
|
|
}
|
|
|
|
GoParser::FunctionTypeContext* GoParser::functionType() {
|
|
FunctionTypeContext *_localctx = _tracker.createInstance<FunctionTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 130, GoParser::RuleFunctionType);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(707);
|
|
match(GoParser::FUNC);
|
|
setState(708);
|
|
signature();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- SignatureContext ------------------------------------------------------------------
|
|
|
|
GoParser::SignatureContext::SignatureContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ParametersContext* GoParser::SignatureContext::parameters() {
|
|
return getRuleContext<GoParser::ParametersContext>(0);
|
|
}
|
|
|
|
GoParser::ResultContext* GoParser::SignatureContext::result() {
|
|
return getRuleContext<GoParser::ResultContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::SignatureContext::getRuleIndex() const {
|
|
return GoParser::RuleSignature;
|
|
}
|
|
|
|
void GoParser::SignatureContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterSignature(this);
|
|
}
|
|
|
|
void GoParser::SignatureContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitSignature(this);
|
|
}
|
|
|
|
GoParser::SignatureContext* GoParser::signature() {
|
|
SignatureContext *_localctx = _tracker.createInstance<SignatureContext>(_ctx, getState());
|
|
enterRule(_localctx, 132, GoParser::RuleSignature);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(714);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 72, _ctx)) {
|
|
case 1: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(710);
|
|
parameters();
|
|
setState(711);
|
|
result();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(713);
|
|
parameters();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ResultContext ------------------------------------------------------------------
|
|
|
|
GoParser::ResultContext::ResultContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ParametersContext* GoParser::ResultContext::parameters() {
|
|
return getRuleContext<GoParser::ParametersContext>(0);
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::ResultContext::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ResultContext::getRuleIndex() const {
|
|
return GoParser::RuleResult;
|
|
}
|
|
|
|
void GoParser::ResultContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterResult(this);
|
|
}
|
|
|
|
void GoParser::ResultContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitResult(this);
|
|
}
|
|
|
|
GoParser::ResultContext* GoParser::result() {
|
|
ResultContext *_localctx = _tracker.createInstance<ResultContext>(_ctx, getState());
|
|
enterRule(_localctx, 134, GoParser::RuleResult);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(718);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 73, _ctx)) {
|
|
case 1: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(716);
|
|
parameters();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(717);
|
|
type_();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ParametersContext ------------------------------------------------------------------
|
|
|
|
GoParser::ParametersContext::ParametersContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ParametersContext::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ParametersContext::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
std::vector<GoParser::ParameterDeclContext *> GoParser::ParametersContext::parameterDecl() {
|
|
return getRuleContexts<GoParser::ParameterDeclContext>();
|
|
}
|
|
|
|
GoParser::ParameterDeclContext* GoParser::ParametersContext::parameterDecl(size_t i) {
|
|
return getRuleContext<GoParser::ParameterDeclContext>(i);
|
|
}
|
|
|
|
std::vector<tree::TerminalNode *> GoParser::ParametersContext::COMMA() {
|
|
return getTokens(GoParser::COMMA);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ParametersContext::COMMA(size_t i) {
|
|
return getToken(GoParser::COMMA, i);
|
|
}
|
|
|
|
|
|
size_t GoParser::ParametersContext::getRuleIndex() const {
|
|
return GoParser::RuleParameters;
|
|
}
|
|
|
|
void GoParser::ParametersContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterParameters(this);
|
|
}
|
|
|
|
void GoParser::ParametersContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitParameters(this);
|
|
}
|
|
|
|
GoParser::ParametersContext* GoParser::parameters() {
|
|
ParametersContext *_localctx = _tracker.createInstance<ParametersContext>(_ctx, getState());
|
|
enterRule(_localctx, 136, GoParser::RuleParameters);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
size_t alt;
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(720);
|
|
match(GoParser::L_PAREN);
|
|
setState(732);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (((((_la - 3) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 3)) & ((1ULL << (GoParser::FUNC - 3))
|
|
| (1ULL << (GoParser::INTERFACE - 3))
|
|
| (1ULL << (GoParser::MAP - 3))
|
|
| (1ULL << (GoParser::STRUCT - 3))
|
|
| (1ULL << (GoParser::CHAN - 3))
|
|
| (1ULL << (GoParser::IDENTIFIER - 3))
|
|
| (1ULL << (GoParser::L_PAREN - 3))
|
|
| (1ULL << (GoParser::L_BRACKET - 3))
|
|
| (1ULL << (GoParser::ELLIPSIS - 3))
|
|
| (1ULL << (GoParser::STAR - 3))
|
|
| (1ULL << (GoParser::RECEIVE - 3)))) != 0)) {
|
|
setState(721);
|
|
parameterDecl();
|
|
setState(726);
|
|
_errHandler->sync(this);
|
|
alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 74, _ctx);
|
|
while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) {
|
|
if (alt == 1) {
|
|
setState(722);
|
|
match(GoParser::COMMA);
|
|
setState(723);
|
|
parameterDecl();
|
|
}
|
|
setState(728);
|
|
_errHandler->sync(this);
|
|
alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 74, _ctx);
|
|
}
|
|
setState(730);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::COMMA) {
|
|
setState(729);
|
|
match(GoParser::COMMA);
|
|
}
|
|
}
|
|
setState(734);
|
|
match(GoParser::R_PAREN);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ParameterDeclContext ------------------------------------------------------------------
|
|
|
|
GoParser::ParameterDeclContext::ParameterDeclContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::ParameterDeclContext::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
GoParser::IdentifierListContext* GoParser::ParameterDeclContext::identifierList() {
|
|
return getRuleContext<GoParser::IdentifierListContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ParameterDeclContext::ELLIPSIS() {
|
|
return getToken(GoParser::ELLIPSIS, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ParameterDeclContext::getRuleIndex() const {
|
|
return GoParser::RuleParameterDecl;
|
|
}
|
|
|
|
void GoParser::ParameterDeclContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterParameterDecl(this);
|
|
}
|
|
|
|
void GoParser::ParameterDeclContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitParameterDecl(this);
|
|
}
|
|
|
|
GoParser::ParameterDeclContext* GoParser::parameterDecl() {
|
|
ParameterDeclContext *_localctx = _tracker.createInstance<ParameterDeclContext>(_ctx, getState());
|
|
enterRule(_localctx, 138, GoParser::RuleParameterDecl);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(737);
|
|
_errHandler->sync(this);
|
|
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 77, _ctx)) {
|
|
case 1: {
|
|
setState(736);
|
|
identifierList();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(740);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::ELLIPSIS) {
|
|
setState(739);
|
|
match(GoParser::ELLIPSIS);
|
|
}
|
|
setState(742);
|
|
type_();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ExpressionContext ------------------------------------------------------------------
|
|
|
|
GoParser::ExpressionContext::ExpressionContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
|
|
size_t GoParser::ExpressionContext::getRuleIndex() const {
|
|
return GoParser::RuleExpression;
|
|
}
|
|
|
|
void GoParser::ExpressionContext::copyFrom(ExpressionContext *ctx) {
|
|
ParserRuleContext::copyFrom(ctx);
|
|
}
|
|
|
|
//----------------- LogicalAndOperationContext ------------------------------------------------------------------
|
|
|
|
std::vector<GoParser::ExpressionContext *> GoParser::LogicalAndOperationContext::expression() {
|
|
return getRuleContexts<GoParser::ExpressionContext>();
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::LogicalAndOperationContext::expression(size_t i) {
|
|
return getRuleContext<GoParser::ExpressionContext>(i);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::LogicalAndOperationContext::LOGICAL_AND() {
|
|
return getToken(GoParser::LOGICAL_AND, 0);
|
|
}
|
|
|
|
GoParser::LogicalAndOperationContext::LogicalAndOperationContext(ExpressionContext *ctx) { copyFrom(ctx); }
|
|
|
|
void GoParser::LogicalAndOperationContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterLogicalAndOperation(this);
|
|
}
|
|
void GoParser::LogicalAndOperationContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitLogicalAndOperation(this);
|
|
}
|
|
//----------------- UnaryOperationContext ------------------------------------------------------------------
|
|
|
|
GoParser::ExpressionContext* GoParser::UnaryOperationContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::UnaryOperationContext::PLUS() {
|
|
return getToken(GoParser::PLUS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::UnaryOperationContext::MINUS() {
|
|
return getToken(GoParser::MINUS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::UnaryOperationContext::EXCLAMATION() {
|
|
return getToken(GoParser::EXCLAMATION, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::UnaryOperationContext::CARET() {
|
|
return getToken(GoParser::CARET, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::UnaryOperationContext::STAR() {
|
|
return getToken(GoParser::STAR, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::UnaryOperationContext::AMPERSAND() {
|
|
return getToken(GoParser::AMPERSAND, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::UnaryOperationContext::RECEIVE() {
|
|
return getToken(GoParser::RECEIVE, 0);
|
|
}
|
|
|
|
GoParser::UnaryOperationContext::UnaryOperationContext(ExpressionContext *ctx) { copyFrom(ctx); }
|
|
|
|
void GoParser::UnaryOperationContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterUnaryOperation(this);
|
|
}
|
|
void GoParser::UnaryOperationContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitUnaryOperation(this);
|
|
}
|
|
//----------------- PrimaryExpressionContext ------------------------------------------------------------------
|
|
|
|
GoParser::PrimaryExprContext* GoParser::PrimaryExpressionContext::primaryExpr() {
|
|
return getRuleContext<GoParser::PrimaryExprContext>(0);
|
|
}
|
|
|
|
GoParser::PrimaryExpressionContext::PrimaryExpressionContext(ExpressionContext *ctx) { copyFrom(ctx); }
|
|
|
|
void GoParser::PrimaryExpressionContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterPrimaryExpression(this);
|
|
}
|
|
void GoParser::PrimaryExpressionContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitPrimaryExpression(this);
|
|
}
|
|
//----------------- PlusMinusOperationContext ------------------------------------------------------------------
|
|
|
|
std::vector<GoParser::ExpressionContext *> GoParser::PlusMinusOperationContext::expression() {
|
|
return getRuleContexts<GoParser::ExpressionContext>();
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::PlusMinusOperationContext::expression(size_t i) {
|
|
return getRuleContext<GoParser::ExpressionContext>(i);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::PlusMinusOperationContext::PLUS() {
|
|
return getToken(GoParser::PLUS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::PlusMinusOperationContext::MINUS() {
|
|
return getToken(GoParser::MINUS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::PlusMinusOperationContext::OR() {
|
|
return getToken(GoParser::OR, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::PlusMinusOperationContext::CARET() {
|
|
return getToken(GoParser::CARET, 0);
|
|
}
|
|
|
|
GoParser::PlusMinusOperationContext::PlusMinusOperationContext(ExpressionContext *ctx) { copyFrom(ctx); }
|
|
|
|
void GoParser::PlusMinusOperationContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterPlusMinusOperation(this);
|
|
}
|
|
void GoParser::PlusMinusOperationContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitPlusMinusOperation(this);
|
|
}
|
|
//----------------- RelationOperationContext ------------------------------------------------------------------
|
|
|
|
std::vector<GoParser::ExpressionContext *> GoParser::RelationOperationContext::expression() {
|
|
return getRuleContexts<GoParser::ExpressionContext>();
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::RelationOperationContext::expression(size_t i) {
|
|
return getRuleContext<GoParser::ExpressionContext>(i);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::RelationOperationContext::EQUALS() {
|
|
return getToken(GoParser::EQUALS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::RelationOperationContext::NOT_EQUALS() {
|
|
return getToken(GoParser::NOT_EQUALS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::RelationOperationContext::LESS() {
|
|
return getToken(GoParser::LESS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::RelationOperationContext::LESS_OR_EQUALS() {
|
|
return getToken(GoParser::LESS_OR_EQUALS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::RelationOperationContext::GREATER() {
|
|
return getToken(GoParser::GREATER, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::RelationOperationContext::GREATER_OR_EQUALS() {
|
|
return getToken(GoParser::GREATER_OR_EQUALS, 0);
|
|
}
|
|
|
|
GoParser::RelationOperationContext::RelationOperationContext(ExpressionContext *ctx) { copyFrom(ctx); }
|
|
|
|
void GoParser::RelationOperationContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterRelationOperation(this);
|
|
}
|
|
void GoParser::RelationOperationContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitRelationOperation(this);
|
|
}
|
|
//----------------- MulDivOperationContext ------------------------------------------------------------------
|
|
|
|
std::vector<GoParser::ExpressionContext *> GoParser::MulDivOperationContext::expression() {
|
|
return getRuleContexts<GoParser::ExpressionContext>();
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::MulDivOperationContext::expression(size_t i) {
|
|
return getRuleContext<GoParser::ExpressionContext>(i);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MulDivOperationContext::STAR() {
|
|
return getToken(GoParser::STAR, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MulDivOperationContext::DIV() {
|
|
return getToken(GoParser::DIV, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MulDivOperationContext::MOD() {
|
|
return getToken(GoParser::MOD, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MulDivOperationContext::LSHIFT() {
|
|
return getToken(GoParser::LSHIFT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MulDivOperationContext::RSHIFT() {
|
|
return getToken(GoParser::RSHIFT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MulDivOperationContext::AMPERSAND() {
|
|
return getToken(GoParser::AMPERSAND, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MulDivOperationContext::BIT_CLEAR() {
|
|
return getToken(GoParser::BIT_CLEAR, 0);
|
|
}
|
|
|
|
GoParser::MulDivOperationContext::MulDivOperationContext(ExpressionContext *ctx) { copyFrom(ctx); }
|
|
|
|
void GoParser::MulDivOperationContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterMulDivOperation(this);
|
|
}
|
|
void GoParser::MulDivOperationContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitMulDivOperation(this);
|
|
}
|
|
//----------------- LogicalOrOperationContext ------------------------------------------------------------------
|
|
|
|
std::vector<GoParser::ExpressionContext *> GoParser::LogicalOrOperationContext::expression() {
|
|
return getRuleContexts<GoParser::ExpressionContext>();
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::LogicalOrOperationContext::expression(size_t i) {
|
|
return getRuleContext<GoParser::ExpressionContext>(i);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::LogicalOrOperationContext::LOGICAL_OR() {
|
|
return getToken(GoParser::LOGICAL_OR, 0);
|
|
}
|
|
|
|
GoParser::LogicalOrOperationContext::LogicalOrOperationContext(ExpressionContext *ctx) { copyFrom(ctx); }
|
|
|
|
void GoParser::LogicalOrOperationContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterLogicalOrOperation(this);
|
|
}
|
|
void GoParser::LogicalOrOperationContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitLogicalOrOperation(this);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::expression() {
|
|
return expression(0);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::expression(int precedence) {
|
|
ParserRuleContext *parentContext = _ctx;
|
|
size_t parentState = getState();
|
|
GoParser::ExpressionContext *_localctx = _tracker.createInstance<ExpressionContext>(_ctx, parentState);
|
|
GoParser::ExpressionContext *previousContext = _localctx;
|
|
(void)previousContext; // Silence compiler, in case the context is not used by generated code.
|
|
size_t startState = 140;
|
|
enterRecursionRule(_localctx, 140, GoParser::RuleExpression, precedence);
|
|
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
unrollRecursionContexts(parentContext);
|
|
});
|
|
try {
|
|
size_t alt;
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(748);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 79, _ctx)) {
|
|
case 1: {
|
|
_localctx = _tracker.createInstance<PrimaryExpressionContext>(_localctx);
|
|
_ctx = _localctx;
|
|
previousContext = _localctx;
|
|
|
|
setState(745);
|
|
primaryExpr(0);
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
_localctx = _tracker.createInstance<UnaryOperationContext>(_localctx);
|
|
_ctx = _localctx;
|
|
previousContext = _localctx;
|
|
setState(746);
|
|
antlrcpp::downCast<UnaryOperationContext *>(_localctx)->unary_op = _input->LT(1);
|
|
_la = _input->LA(1);
|
|
if (!(((((_la - 60) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 60)) & ((1ULL << (GoParser::EXCLAMATION - 60))
|
|
| (1ULL << (GoParser::PLUS - 60))
|
|
| (1ULL << (GoParser::MINUS - 60))
|
|
| (1ULL << (GoParser::CARET - 60))
|
|
| (1ULL << (GoParser::STAR - 60))
|
|
| (1ULL << (GoParser::AMPERSAND - 60))
|
|
| (1ULL << (GoParser::RECEIVE - 60)))) != 0))) {
|
|
antlrcpp::downCast<UnaryOperationContext *>(_localctx)->unary_op = _errHandler->recoverInline(this);
|
|
}
|
|
else {
|
|
_errHandler->reportMatch(this);
|
|
consume();
|
|
}
|
|
setState(747);
|
|
expression(6);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
_ctx->stop = _input->LT(-1);
|
|
setState(767);
|
|
_errHandler->sync(this);
|
|
alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 81, _ctx);
|
|
while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) {
|
|
if (alt == 1) {
|
|
if (!_parseListeners.empty())
|
|
triggerExitRuleEvent();
|
|
previousContext = _localctx;
|
|
setState(765);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 80, _ctx)) {
|
|
case 1: {
|
|
auto newContext = _tracker.createInstance<MulDivOperationContext>(_tracker.createInstance<ExpressionContext>(parentContext, parentState));
|
|
_localctx = newContext;
|
|
pushNewRecursionContext(newContext, startState, RuleExpression);
|
|
setState(750);
|
|
|
|
if (!(precpred(_ctx, 5))) throw FailedPredicateException(this, "precpred(_ctx, 5)");
|
|
setState(751);
|
|
antlrcpp::downCast<MulDivOperationContext *>(_localctx)->mul_op = _input->LT(1);
|
|
_la = _input->LA(1);
|
|
if (!(((((_la - 55) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 55)) & ((1ULL << (GoParser::DIV - 55))
|
|
| (1ULL << (GoParser::MOD - 55))
|
|
| (1ULL << (GoParser::LSHIFT - 55))
|
|
| (1ULL << (GoParser::RSHIFT - 55))
|
|
| (1ULL << (GoParser::BIT_CLEAR - 55))
|
|
| (1ULL << (GoParser::STAR - 55))
|
|
| (1ULL << (GoParser::AMPERSAND - 55)))) != 0))) {
|
|
antlrcpp::downCast<MulDivOperationContext *>(_localctx)->mul_op = _errHandler->recoverInline(this);
|
|
}
|
|
else {
|
|
_errHandler->reportMatch(this);
|
|
consume();
|
|
}
|
|
setState(752);
|
|
expression(6);
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
auto newContext = _tracker.createInstance<PlusMinusOperationContext>(_tracker.createInstance<ExpressionContext>(parentContext, parentState));
|
|
_localctx = newContext;
|
|
pushNewRecursionContext(newContext, startState, RuleExpression);
|
|
setState(753);
|
|
|
|
if (!(precpred(_ctx, 4))) throw FailedPredicateException(this, "precpred(_ctx, 4)");
|
|
setState(754);
|
|
antlrcpp::downCast<PlusMinusOperationContext *>(_localctx)->add_op = _input->LT(1);
|
|
_la = _input->LA(1);
|
|
if (!((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::OR)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0))) {
|
|
antlrcpp::downCast<PlusMinusOperationContext *>(_localctx)->add_op = _errHandler->recoverInline(this);
|
|
}
|
|
else {
|
|
_errHandler->reportMatch(this);
|
|
consume();
|
|
}
|
|
setState(755);
|
|
expression(5);
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
auto newContext = _tracker.createInstance<RelationOperationContext>(_tracker.createInstance<ExpressionContext>(parentContext, parentState));
|
|
_localctx = newContext;
|
|
pushNewRecursionContext(newContext, startState, RuleExpression);
|
|
setState(756);
|
|
|
|
if (!(precpred(_ctx, 3))) throw FailedPredicateException(this, "precpred(_ctx, 3)");
|
|
setState(757);
|
|
antlrcpp::downCast<RelationOperationContext *>(_localctx)->rel_op = _input->LT(1);
|
|
_la = _input->LA(1);
|
|
if (!((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::EQUALS)
|
|
| (1ULL << GoParser::NOT_EQUALS)
|
|
| (1ULL << GoParser::LESS)
|
|
| (1ULL << GoParser::LESS_OR_EQUALS)
|
|
| (1ULL << GoParser::GREATER)
|
|
| (1ULL << GoParser::GREATER_OR_EQUALS))) != 0))) {
|
|
antlrcpp::downCast<RelationOperationContext *>(_localctx)->rel_op = _errHandler->recoverInline(this);
|
|
}
|
|
else {
|
|
_errHandler->reportMatch(this);
|
|
consume();
|
|
}
|
|
setState(758);
|
|
expression(4);
|
|
break;
|
|
}
|
|
|
|
case 4: {
|
|
auto newContext = _tracker.createInstance<LogicalAndOperationContext>(_tracker.createInstance<ExpressionContext>(parentContext, parentState));
|
|
_localctx = newContext;
|
|
pushNewRecursionContext(newContext, startState, RuleExpression);
|
|
setState(759);
|
|
|
|
if (!(precpred(_ctx, 2))) throw FailedPredicateException(this, "precpred(_ctx, 2)");
|
|
setState(760);
|
|
match(GoParser::LOGICAL_AND);
|
|
setState(761);
|
|
expression(3);
|
|
break;
|
|
}
|
|
|
|
case 5: {
|
|
auto newContext = _tracker.createInstance<LogicalOrOperationContext>(_tracker.createInstance<ExpressionContext>(parentContext, parentState));
|
|
_localctx = newContext;
|
|
pushNewRecursionContext(newContext, startState, RuleExpression);
|
|
setState(762);
|
|
|
|
if (!(precpred(_ctx, 1))) throw FailedPredicateException(this, "precpred(_ctx, 1)");
|
|
setState(763);
|
|
match(GoParser::LOGICAL_OR);
|
|
setState(764);
|
|
expression(2);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
setState(769);
|
|
_errHandler->sync(this);
|
|
alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 81, _ctx);
|
|
}
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- PrimaryExprContext ------------------------------------------------------------------
|
|
|
|
GoParser::PrimaryExprContext::PrimaryExprContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::OperandContext* GoParser::PrimaryExprContext::operand() {
|
|
return getRuleContext<GoParser::OperandContext>(0);
|
|
}
|
|
|
|
GoParser::ConversionContext* GoParser::PrimaryExprContext::conversion() {
|
|
return getRuleContext<GoParser::ConversionContext>(0);
|
|
}
|
|
|
|
GoParser::MethodExprContext* GoParser::PrimaryExprContext::methodExpr() {
|
|
return getRuleContext<GoParser::MethodExprContext>(0);
|
|
}
|
|
|
|
GoParser::PrimaryExprContext* GoParser::PrimaryExprContext::primaryExpr() {
|
|
return getRuleContext<GoParser::PrimaryExprContext>(0);
|
|
}
|
|
|
|
GoParser::IndexContext* GoParser::PrimaryExprContext::index() {
|
|
return getRuleContext<GoParser::IndexContext>(0);
|
|
}
|
|
|
|
GoParser::Slice_Context* GoParser::PrimaryExprContext::slice_() {
|
|
return getRuleContext<GoParser::Slice_Context>(0);
|
|
}
|
|
|
|
GoParser::TypeAssertionContext* GoParser::PrimaryExprContext::typeAssertion() {
|
|
return getRuleContext<GoParser::TypeAssertionContext>(0);
|
|
}
|
|
|
|
GoParser::ArgumentsContext* GoParser::PrimaryExprContext::arguments() {
|
|
return getRuleContext<GoParser::ArgumentsContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::PrimaryExprContext::DOT() {
|
|
return getToken(GoParser::DOT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::PrimaryExprContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::PrimaryExprContext::getRuleIndex() const {
|
|
return GoParser::RulePrimaryExpr;
|
|
}
|
|
|
|
void GoParser::PrimaryExprContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterPrimaryExpr(this);
|
|
}
|
|
|
|
void GoParser::PrimaryExprContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitPrimaryExpr(this);
|
|
}
|
|
|
|
|
|
GoParser::PrimaryExprContext* GoParser::primaryExpr() {
|
|
return primaryExpr(0);
|
|
}
|
|
|
|
GoParser::PrimaryExprContext* GoParser::primaryExpr(int precedence) {
|
|
ParserRuleContext *parentContext = _ctx;
|
|
size_t parentState = getState();
|
|
GoParser::PrimaryExprContext *_localctx = _tracker.createInstance<PrimaryExprContext>(_ctx, parentState);
|
|
GoParser::PrimaryExprContext *previousContext = _localctx;
|
|
(void)previousContext; // Silence compiler, in case the context is not used by generated code.
|
|
size_t startState = 142;
|
|
enterRecursionRule(_localctx, 142, GoParser::RulePrimaryExpr, precedence);
|
|
|
|
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
unrollRecursionContexts(parentContext);
|
|
});
|
|
try {
|
|
size_t alt;
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(774);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 82, _ctx)) {
|
|
case 1: {
|
|
setState(771);
|
|
operand();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(772);
|
|
conversion();
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
setState(773);
|
|
methodExpr();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
_ctx->stop = _input->LT(-1);
|
|
setState(787);
|
|
_errHandler->sync(this);
|
|
alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 84, _ctx);
|
|
while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) {
|
|
if (alt == 1) {
|
|
if (!_parseListeners.empty())
|
|
triggerExitRuleEvent();
|
|
previousContext = _localctx;
|
|
_localctx = _tracker.createInstance<PrimaryExprContext>(parentContext, parentState);
|
|
pushNewRecursionContext(_localctx, startState, RulePrimaryExpr);
|
|
setState(776);
|
|
|
|
if (!(precpred(_ctx, 1))) throw FailedPredicateException(this, "precpred(_ctx, 1)");
|
|
setState(783);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 83, _ctx)) {
|
|
case 1: {
|
|
setState(777);
|
|
match(GoParser::DOT);
|
|
setState(778);
|
|
match(GoParser::IDENTIFIER);
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(779);
|
|
index();
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
setState(780);
|
|
slice_();
|
|
break;
|
|
}
|
|
|
|
case 4: {
|
|
setState(781);
|
|
typeAssertion();
|
|
break;
|
|
}
|
|
|
|
case 5: {
|
|
setState(782);
|
|
arguments();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
setState(789);
|
|
_errHandler->sync(this);
|
|
alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 84, _ctx);
|
|
}
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ConversionContext ------------------------------------------------------------------
|
|
|
|
GoParser::ConversionContext::ConversionContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::NonNamedTypeContext* GoParser::ConversionContext::nonNamedType() {
|
|
return getRuleContext<GoParser::NonNamedTypeContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ConversionContext::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::ConversionContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ConversionContext::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ConversionContext::COMMA() {
|
|
return getToken(GoParser::COMMA, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ConversionContext::getRuleIndex() const {
|
|
return GoParser::RuleConversion;
|
|
}
|
|
|
|
void GoParser::ConversionContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterConversion(this);
|
|
}
|
|
|
|
void GoParser::ConversionContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitConversion(this);
|
|
}
|
|
|
|
GoParser::ConversionContext* GoParser::conversion() {
|
|
ConversionContext *_localctx = _tracker.createInstance<ConversionContext>(_ctx, getState());
|
|
enterRule(_localctx, 144, GoParser::RuleConversion);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(790);
|
|
nonNamedType();
|
|
setState(791);
|
|
match(GoParser::L_PAREN);
|
|
setState(792);
|
|
expression(0);
|
|
setState(794);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::COMMA) {
|
|
setState(793);
|
|
match(GoParser::COMMA);
|
|
}
|
|
setState(796);
|
|
match(GoParser::R_PAREN);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- NonNamedTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::NonNamedTypeContext::NonNamedTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::TypeLitContext* GoParser::NonNamedTypeContext::typeLit() {
|
|
return getRuleContext<GoParser::TypeLitContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::NonNamedTypeContext::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
GoParser::NonNamedTypeContext* GoParser::NonNamedTypeContext::nonNamedType() {
|
|
return getRuleContext<GoParser::NonNamedTypeContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::NonNamedTypeContext::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::NonNamedTypeContext::getRuleIndex() const {
|
|
return GoParser::RuleNonNamedType;
|
|
}
|
|
|
|
void GoParser::NonNamedTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterNonNamedType(this);
|
|
}
|
|
|
|
void GoParser::NonNamedTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitNonNamedType(this);
|
|
}
|
|
|
|
GoParser::NonNamedTypeContext* GoParser::nonNamedType() {
|
|
NonNamedTypeContext *_localctx = _tracker.createInstance<NonNamedTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 146, GoParser::RuleNonNamedType);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(803);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::FUNC:
|
|
case GoParser::INTERFACE:
|
|
case GoParser::MAP:
|
|
case GoParser::STRUCT:
|
|
case GoParser::CHAN:
|
|
case GoParser::L_BRACKET:
|
|
case GoParser::STAR:
|
|
case GoParser::RECEIVE: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(798);
|
|
typeLit();
|
|
break;
|
|
}
|
|
|
|
case GoParser::L_PAREN: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(799);
|
|
match(GoParser::L_PAREN);
|
|
setState(800);
|
|
nonNamedType();
|
|
setState(801);
|
|
match(GoParser::R_PAREN);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- OperandContext ------------------------------------------------------------------
|
|
|
|
GoParser::OperandContext::OperandContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::LiteralContext* GoParser::OperandContext::literal() {
|
|
return getRuleContext<GoParser::LiteralContext>(0);
|
|
}
|
|
|
|
GoParser::OperandNameContext* GoParser::OperandContext::operandName() {
|
|
return getRuleContext<GoParser::OperandNameContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::OperandContext::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::OperandContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::OperandContext::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::OperandContext::getRuleIndex() const {
|
|
return GoParser::RuleOperand;
|
|
}
|
|
|
|
void GoParser::OperandContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterOperand(this);
|
|
}
|
|
|
|
void GoParser::OperandContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitOperand(this);
|
|
}
|
|
|
|
GoParser::OperandContext* GoParser::operand() {
|
|
OperandContext *_localctx = _tracker.createInstance<OperandContext>(_ctx, getState());
|
|
enterRule(_localctx, 148, GoParser::RuleOperand);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(811);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 87, _ctx)) {
|
|
case 1: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(805);
|
|
literal();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(806);
|
|
operandName();
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
enterOuterAlt(_localctx, 3);
|
|
setState(807);
|
|
match(GoParser::L_PAREN);
|
|
setState(808);
|
|
expression(0);
|
|
setState(809);
|
|
match(GoParser::R_PAREN);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- LiteralContext ------------------------------------------------------------------
|
|
|
|
GoParser::LiteralContext::LiteralContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::BasicLitContext* GoParser::LiteralContext::basicLit() {
|
|
return getRuleContext<GoParser::BasicLitContext>(0);
|
|
}
|
|
|
|
GoParser::CompositeLitContext* GoParser::LiteralContext::compositeLit() {
|
|
return getRuleContext<GoParser::CompositeLitContext>(0);
|
|
}
|
|
|
|
GoParser::FunctionLitContext* GoParser::LiteralContext::functionLit() {
|
|
return getRuleContext<GoParser::FunctionLitContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::LiteralContext::getRuleIndex() const {
|
|
return GoParser::RuleLiteral;
|
|
}
|
|
|
|
void GoParser::LiteralContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterLiteral(this);
|
|
}
|
|
|
|
void GoParser::LiteralContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitLiteral(this);
|
|
}
|
|
|
|
GoParser::LiteralContext* GoParser::literal() {
|
|
LiteralContext *_localctx = _tracker.createInstance<LiteralContext>(_ctx, getState());
|
|
enterRule(_localctx, 150, GoParser::RuleLiteral);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(816);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::NIL_LIT:
|
|
case GoParser::DECIMAL_LIT:
|
|
case GoParser::BINARY_LIT:
|
|
case GoParser::OCTAL_LIT:
|
|
case GoParser::HEX_LIT:
|
|
case GoParser::FLOAT_LIT:
|
|
case GoParser::IMAGINARY_LIT:
|
|
case GoParser::RUNE_LIT:
|
|
case GoParser::RAW_STRING_LIT:
|
|
case GoParser::INTERPRETED_STRING_LIT: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(813);
|
|
basicLit();
|
|
break;
|
|
}
|
|
|
|
case GoParser::MAP:
|
|
case GoParser::STRUCT:
|
|
case GoParser::IDENTIFIER:
|
|
case GoParser::L_BRACKET: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(814);
|
|
compositeLit();
|
|
break;
|
|
}
|
|
|
|
case GoParser::FUNC: {
|
|
enterOuterAlt(_localctx, 3);
|
|
setState(815);
|
|
functionLit();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- BasicLitContext ------------------------------------------------------------------
|
|
|
|
GoParser::BasicLitContext::BasicLitContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::BasicLitContext::NIL_LIT() {
|
|
return getToken(GoParser::NIL_LIT, 0);
|
|
}
|
|
|
|
GoParser::IntegerContext* GoParser::BasicLitContext::integer() {
|
|
return getRuleContext<GoParser::IntegerContext>(0);
|
|
}
|
|
|
|
GoParser::String_Context* GoParser::BasicLitContext::string_() {
|
|
return getRuleContext<GoParser::String_Context>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::BasicLitContext::FLOAT_LIT() {
|
|
return getToken(GoParser::FLOAT_LIT, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::BasicLitContext::getRuleIndex() const {
|
|
return GoParser::RuleBasicLit;
|
|
}
|
|
|
|
void GoParser::BasicLitContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterBasicLit(this);
|
|
}
|
|
|
|
void GoParser::BasicLitContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitBasicLit(this);
|
|
}
|
|
|
|
GoParser::BasicLitContext* GoParser::basicLit() {
|
|
BasicLitContext *_localctx = _tracker.createInstance<BasicLitContext>(_ctx, getState());
|
|
enterRule(_localctx, 152, GoParser::RuleBasicLit);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(822);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::NIL_LIT: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(818);
|
|
match(GoParser::NIL_LIT);
|
|
break;
|
|
}
|
|
|
|
case GoParser::DECIMAL_LIT:
|
|
case GoParser::BINARY_LIT:
|
|
case GoParser::OCTAL_LIT:
|
|
case GoParser::HEX_LIT:
|
|
case GoParser::IMAGINARY_LIT:
|
|
case GoParser::RUNE_LIT: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(819);
|
|
integer();
|
|
break;
|
|
}
|
|
|
|
case GoParser::RAW_STRING_LIT:
|
|
case GoParser::INTERPRETED_STRING_LIT: {
|
|
enterOuterAlt(_localctx, 3);
|
|
setState(820);
|
|
string_();
|
|
break;
|
|
}
|
|
|
|
case GoParser::FLOAT_LIT: {
|
|
enterOuterAlt(_localctx, 4);
|
|
setState(821);
|
|
match(GoParser::FLOAT_LIT);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- IntegerContext ------------------------------------------------------------------
|
|
|
|
GoParser::IntegerContext::IntegerContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IntegerContext::DECIMAL_LIT() {
|
|
return getToken(GoParser::DECIMAL_LIT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IntegerContext::BINARY_LIT() {
|
|
return getToken(GoParser::BINARY_LIT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IntegerContext::OCTAL_LIT() {
|
|
return getToken(GoParser::OCTAL_LIT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IntegerContext::HEX_LIT() {
|
|
return getToken(GoParser::HEX_LIT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IntegerContext::IMAGINARY_LIT() {
|
|
return getToken(GoParser::IMAGINARY_LIT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IntegerContext::RUNE_LIT() {
|
|
return getToken(GoParser::RUNE_LIT, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::IntegerContext::getRuleIndex() const {
|
|
return GoParser::RuleInteger;
|
|
}
|
|
|
|
void GoParser::IntegerContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterInteger(this);
|
|
}
|
|
|
|
void GoParser::IntegerContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitInteger(this);
|
|
}
|
|
|
|
GoParser::IntegerContext* GoParser::integer() {
|
|
IntegerContext *_localctx = _tracker.createInstance<IntegerContext>(_ctx, getState());
|
|
enterRule(_localctx, 154, GoParser::RuleInteger);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(824);
|
|
_la = _input->LA(1);
|
|
if (!(((((_la - 67) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 67)) & ((1ULL << (GoParser::DECIMAL_LIT - 67))
|
|
| (1ULL << (GoParser::BINARY_LIT - 67))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 67))
|
|
| (1ULL << (GoParser::HEX_LIT - 67))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 67))
|
|
| (1ULL << (GoParser::RUNE_LIT - 67)))) != 0))) {
|
|
_errHandler->recoverInline(this);
|
|
}
|
|
else {
|
|
_errHandler->reportMatch(this);
|
|
consume();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- OperandNameContext ------------------------------------------------------------------
|
|
|
|
GoParser::OperandNameContext::OperandNameContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::OperandNameContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::OperandNameContext::getRuleIndex() const {
|
|
return GoParser::RuleOperandName;
|
|
}
|
|
|
|
void GoParser::OperandNameContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterOperandName(this);
|
|
}
|
|
|
|
void GoParser::OperandNameContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitOperandName(this);
|
|
}
|
|
|
|
GoParser::OperandNameContext* GoParser::operandName() {
|
|
OperandNameContext *_localctx = _tracker.createInstance<OperandNameContext>(_ctx, getState());
|
|
enterRule(_localctx, 156, GoParser::RuleOperandName);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(826);
|
|
match(GoParser::IDENTIFIER);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- QualifiedIdentContext ------------------------------------------------------------------
|
|
|
|
GoParser::QualifiedIdentContext::QualifiedIdentContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
std::vector<tree::TerminalNode *> GoParser::QualifiedIdentContext::IDENTIFIER() {
|
|
return getTokens(GoParser::IDENTIFIER);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::QualifiedIdentContext::IDENTIFIER(size_t i) {
|
|
return getToken(GoParser::IDENTIFIER, i);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::QualifiedIdentContext::DOT() {
|
|
return getToken(GoParser::DOT, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::QualifiedIdentContext::getRuleIndex() const {
|
|
return GoParser::RuleQualifiedIdent;
|
|
}
|
|
|
|
void GoParser::QualifiedIdentContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterQualifiedIdent(this);
|
|
}
|
|
|
|
void GoParser::QualifiedIdentContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitQualifiedIdent(this);
|
|
}
|
|
|
|
GoParser::QualifiedIdentContext* GoParser::qualifiedIdent() {
|
|
QualifiedIdentContext *_localctx = _tracker.createInstance<QualifiedIdentContext>(_ctx, getState());
|
|
enterRule(_localctx, 158, GoParser::RuleQualifiedIdent);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(828);
|
|
match(GoParser::IDENTIFIER);
|
|
setState(829);
|
|
match(GoParser::DOT);
|
|
setState(830);
|
|
match(GoParser::IDENTIFIER);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- CompositeLitContext ------------------------------------------------------------------
|
|
|
|
GoParser::CompositeLitContext::CompositeLitContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::LiteralTypeContext* GoParser::CompositeLitContext::literalType() {
|
|
return getRuleContext<GoParser::LiteralTypeContext>(0);
|
|
}
|
|
|
|
GoParser::LiteralValueContext* GoParser::CompositeLitContext::literalValue() {
|
|
return getRuleContext<GoParser::LiteralValueContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::CompositeLitContext::getRuleIndex() const {
|
|
return GoParser::RuleCompositeLit;
|
|
}
|
|
|
|
void GoParser::CompositeLitContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterCompositeLit(this);
|
|
}
|
|
|
|
void GoParser::CompositeLitContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitCompositeLit(this);
|
|
}
|
|
|
|
GoParser::CompositeLitContext* GoParser::compositeLit() {
|
|
CompositeLitContext *_localctx = _tracker.createInstance<CompositeLitContext>(_ctx, getState());
|
|
enterRule(_localctx, 160, GoParser::RuleCompositeLit);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(832);
|
|
literalType();
|
|
setState(833);
|
|
literalValue();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- LiteralTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::LiteralTypeContext::LiteralTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::StructTypeContext* GoParser::LiteralTypeContext::structType() {
|
|
return getRuleContext<GoParser::StructTypeContext>(0);
|
|
}
|
|
|
|
GoParser::ArrayTypeContext* GoParser::LiteralTypeContext::arrayType() {
|
|
return getRuleContext<GoParser::ArrayTypeContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::LiteralTypeContext::L_BRACKET() {
|
|
return getToken(GoParser::L_BRACKET, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::LiteralTypeContext::ELLIPSIS() {
|
|
return getToken(GoParser::ELLIPSIS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::LiteralTypeContext::R_BRACKET() {
|
|
return getToken(GoParser::R_BRACKET, 0);
|
|
}
|
|
|
|
GoParser::ElementTypeContext* GoParser::LiteralTypeContext::elementType() {
|
|
return getRuleContext<GoParser::ElementTypeContext>(0);
|
|
}
|
|
|
|
GoParser::SliceTypeContext* GoParser::LiteralTypeContext::sliceType() {
|
|
return getRuleContext<GoParser::SliceTypeContext>(0);
|
|
}
|
|
|
|
GoParser::MapTypeContext* GoParser::LiteralTypeContext::mapType() {
|
|
return getRuleContext<GoParser::MapTypeContext>(0);
|
|
}
|
|
|
|
GoParser::TypeNameContext* GoParser::LiteralTypeContext::typeName() {
|
|
return getRuleContext<GoParser::TypeNameContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::LiteralTypeContext::getRuleIndex() const {
|
|
return GoParser::RuleLiteralType;
|
|
}
|
|
|
|
void GoParser::LiteralTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterLiteralType(this);
|
|
}
|
|
|
|
void GoParser::LiteralTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitLiteralType(this);
|
|
}
|
|
|
|
GoParser::LiteralTypeContext* GoParser::literalType() {
|
|
LiteralTypeContext *_localctx = _tracker.createInstance<LiteralTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 162, GoParser::RuleLiteralType);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(844);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 90, _ctx)) {
|
|
case 1: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(835);
|
|
structType();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(836);
|
|
arrayType();
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
enterOuterAlt(_localctx, 3);
|
|
setState(837);
|
|
match(GoParser::L_BRACKET);
|
|
setState(838);
|
|
match(GoParser::ELLIPSIS);
|
|
setState(839);
|
|
match(GoParser::R_BRACKET);
|
|
setState(840);
|
|
elementType();
|
|
break;
|
|
}
|
|
|
|
case 4: {
|
|
enterOuterAlt(_localctx, 4);
|
|
setState(841);
|
|
sliceType();
|
|
break;
|
|
}
|
|
|
|
case 5: {
|
|
enterOuterAlt(_localctx, 5);
|
|
setState(842);
|
|
mapType();
|
|
break;
|
|
}
|
|
|
|
case 6: {
|
|
enterOuterAlt(_localctx, 6);
|
|
setState(843);
|
|
typeName();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- LiteralValueContext ------------------------------------------------------------------
|
|
|
|
GoParser::LiteralValueContext::LiteralValueContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::LiteralValueContext::L_CURLY() {
|
|
return getToken(GoParser::L_CURLY, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::LiteralValueContext::R_CURLY() {
|
|
return getToken(GoParser::R_CURLY, 0);
|
|
}
|
|
|
|
GoParser::ElementListContext* GoParser::LiteralValueContext::elementList() {
|
|
return getRuleContext<GoParser::ElementListContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::LiteralValueContext::COMMA() {
|
|
return getToken(GoParser::COMMA, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::LiteralValueContext::getRuleIndex() const {
|
|
return GoParser::RuleLiteralValue;
|
|
}
|
|
|
|
void GoParser::LiteralValueContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterLiteralValue(this);
|
|
}
|
|
|
|
void GoParser::LiteralValueContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitLiteralValue(this);
|
|
}
|
|
|
|
GoParser::LiteralValueContext* GoParser::literalValue() {
|
|
LiteralValueContext *_localctx = _tracker.createInstance<LiteralValueContext>(_ctx, getState());
|
|
enterRule(_localctx, 164, GoParser::RuleLiteralValue);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(846);
|
|
match(GoParser::L_CURLY);
|
|
setState(851);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_CURLY)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(847);
|
|
elementList();
|
|
setState(849);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::COMMA) {
|
|
setState(848);
|
|
match(GoParser::COMMA);
|
|
}
|
|
}
|
|
setState(853);
|
|
match(GoParser::R_CURLY);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ElementListContext ------------------------------------------------------------------
|
|
|
|
GoParser::ElementListContext::ElementListContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
std::vector<GoParser::KeyedElementContext *> GoParser::ElementListContext::keyedElement() {
|
|
return getRuleContexts<GoParser::KeyedElementContext>();
|
|
}
|
|
|
|
GoParser::KeyedElementContext* GoParser::ElementListContext::keyedElement(size_t i) {
|
|
return getRuleContext<GoParser::KeyedElementContext>(i);
|
|
}
|
|
|
|
std::vector<tree::TerminalNode *> GoParser::ElementListContext::COMMA() {
|
|
return getTokens(GoParser::COMMA);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ElementListContext::COMMA(size_t i) {
|
|
return getToken(GoParser::COMMA, i);
|
|
}
|
|
|
|
|
|
size_t GoParser::ElementListContext::getRuleIndex() const {
|
|
return GoParser::RuleElementList;
|
|
}
|
|
|
|
void GoParser::ElementListContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterElementList(this);
|
|
}
|
|
|
|
void GoParser::ElementListContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitElementList(this);
|
|
}
|
|
|
|
GoParser::ElementListContext* GoParser::elementList() {
|
|
ElementListContext *_localctx = _tracker.createInstance<ElementListContext>(_ctx, getState());
|
|
enterRule(_localctx, 166, GoParser::RuleElementList);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
size_t alt;
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(855);
|
|
keyedElement();
|
|
setState(860);
|
|
_errHandler->sync(this);
|
|
alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 93, _ctx);
|
|
while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) {
|
|
if (alt == 1) {
|
|
setState(856);
|
|
match(GoParser::COMMA);
|
|
setState(857);
|
|
keyedElement();
|
|
}
|
|
setState(862);
|
|
_errHandler->sync(this);
|
|
alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 93, _ctx);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- KeyedElementContext ------------------------------------------------------------------
|
|
|
|
GoParser::KeyedElementContext::KeyedElementContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ElementContext* GoParser::KeyedElementContext::element() {
|
|
return getRuleContext<GoParser::ElementContext>(0);
|
|
}
|
|
|
|
GoParser::KeyContext* GoParser::KeyedElementContext::key() {
|
|
return getRuleContext<GoParser::KeyContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::KeyedElementContext::COLON() {
|
|
return getToken(GoParser::COLON, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::KeyedElementContext::getRuleIndex() const {
|
|
return GoParser::RuleKeyedElement;
|
|
}
|
|
|
|
void GoParser::KeyedElementContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterKeyedElement(this);
|
|
}
|
|
|
|
void GoParser::KeyedElementContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitKeyedElement(this);
|
|
}
|
|
|
|
GoParser::KeyedElementContext* GoParser::keyedElement() {
|
|
KeyedElementContext *_localctx = _tracker.createInstance<KeyedElementContext>(_ctx, getState());
|
|
enterRule(_localctx, 168, GoParser::RuleKeyedElement);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(866);
|
|
_errHandler->sync(this);
|
|
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 94, _ctx)) {
|
|
case 1: {
|
|
setState(863);
|
|
key();
|
|
setState(864);
|
|
match(GoParser::COLON);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(868);
|
|
element();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- KeyContext ------------------------------------------------------------------
|
|
|
|
GoParser::KeyContext::KeyContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::KeyContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
GoParser::LiteralValueContext* GoParser::KeyContext::literalValue() {
|
|
return getRuleContext<GoParser::LiteralValueContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::KeyContext::getRuleIndex() const {
|
|
return GoParser::RuleKey;
|
|
}
|
|
|
|
void GoParser::KeyContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterKey(this);
|
|
}
|
|
|
|
void GoParser::KeyContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitKey(this);
|
|
}
|
|
|
|
GoParser::KeyContext* GoParser::key() {
|
|
KeyContext *_localctx = _tracker.createInstance<KeyContext>(_ctx, getState());
|
|
enterRule(_localctx, 170, GoParser::RuleKey);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(872);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::FUNC:
|
|
case GoParser::INTERFACE:
|
|
case GoParser::MAP:
|
|
case GoParser::STRUCT:
|
|
case GoParser::CHAN:
|
|
case GoParser::NIL_LIT:
|
|
case GoParser::IDENTIFIER:
|
|
case GoParser::L_PAREN:
|
|
case GoParser::L_BRACKET:
|
|
case GoParser::EXCLAMATION:
|
|
case GoParser::PLUS:
|
|
case GoParser::MINUS:
|
|
case GoParser::CARET:
|
|
case GoParser::STAR:
|
|
case GoParser::AMPERSAND:
|
|
case GoParser::RECEIVE:
|
|
case GoParser::DECIMAL_LIT:
|
|
case GoParser::BINARY_LIT:
|
|
case GoParser::OCTAL_LIT:
|
|
case GoParser::HEX_LIT:
|
|
case GoParser::FLOAT_LIT:
|
|
case GoParser::IMAGINARY_LIT:
|
|
case GoParser::RUNE_LIT:
|
|
case GoParser::RAW_STRING_LIT:
|
|
case GoParser::INTERPRETED_STRING_LIT: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(870);
|
|
expression(0);
|
|
break;
|
|
}
|
|
|
|
case GoParser::L_CURLY: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(871);
|
|
literalValue();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ElementContext ------------------------------------------------------------------
|
|
|
|
GoParser::ElementContext::ElementContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::ElementContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
GoParser::LiteralValueContext* GoParser::ElementContext::literalValue() {
|
|
return getRuleContext<GoParser::LiteralValueContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ElementContext::getRuleIndex() const {
|
|
return GoParser::RuleElement;
|
|
}
|
|
|
|
void GoParser::ElementContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterElement(this);
|
|
}
|
|
|
|
void GoParser::ElementContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitElement(this);
|
|
}
|
|
|
|
GoParser::ElementContext* GoParser::element() {
|
|
ElementContext *_localctx = _tracker.createInstance<ElementContext>(_ctx, getState());
|
|
enterRule(_localctx, 172, GoParser::RuleElement);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
setState(876);
|
|
_errHandler->sync(this);
|
|
switch (_input->LA(1)) {
|
|
case GoParser::FUNC:
|
|
case GoParser::INTERFACE:
|
|
case GoParser::MAP:
|
|
case GoParser::STRUCT:
|
|
case GoParser::CHAN:
|
|
case GoParser::NIL_LIT:
|
|
case GoParser::IDENTIFIER:
|
|
case GoParser::L_PAREN:
|
|
case GoParser::L_BRACKET:
|
|
case GoParser::EXCLAMATION:
|
|
case GoParser::PLUS:
|
|
case GoParser::MINUS:
|
|
case GoParser::CARET:
|
|
case GoParser::STAR:
|
|
case GoParser::AMPERSAND:
|
|
case GoParser::RECEIVE:
|
|
case GoParser::DECIMAL_LIT:
|
|
case GoParser::BINARY_LIT:
|
|
case GoParser::OCTAL_LIT:
|
|
case GoParser::HEX_LIT:
|
|
case GoParser::FLOAT_LIT:
|
|
case GoParser::IMAGINARY_LIT:
|
|
case GoParser::RUNE_LIT:
|
|
case GoParser::RAW_STRING_LIT:
|
|
case GoParser::INTERPRETED_STRING_LIT: {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(874);
|
|
expression(0);
|
|
break;
|
|
}
|
|
|
|
case GoParser::L_CURLY: {
|
|
enterOuterAlt(_localctx, 2);
|
|
setState(875);
|
|
literalValue();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw NoViableAltException(this);
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- StructTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::StructTypeContext::StructTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::StructTypeContext::STRUCT() {
|
|
return getToken(GoParser::STRUCT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::StructTypeContext::L_CURLY() {
|
|
return getToken(GoParser::L_CURLY, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::StructTypeContext::R_CURLY() {
|
|
return getToken(GoParser::R_CURLY, 0);
|
|
}
|
|
|
|
std::vector<GoParser::FieldDeclContext *> GoParser::StructTypeContext::fieldDecl() {
|
|
return getRuleContexts<GoParser::FieldDeclContext>();
|
|
}
|
|
|
|
GoParser::FieldDeclContext* GoParser::StructTypeContext::fieldDecl(size_t i) {
|
|
return getRuleContext<GoParser::FieldDeclContext>(i);
|
|
}
|
|
|
|
std::vector<GoParser::EossContext *> GoParser::StructTypeContext::eoss() {
|
|
return getRuleContexts<GoParser::EossContext>();
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::StructTypeContext::eoss(size_t i) {
|
|
return getRuleContext<GoParser::EossContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::StructTypeContext::getRuleIndex() const {
|
|
return GoParser::RuleStructType;
|
|
}
|
|
|
|
void GoParser::StructTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterStructType(this);
|
|
}
|
|
|
|
void GoParser::StructTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitStructType(this);
|
|
}
|
|
|
|
GoParser::StructTypeContext* GoParser::structType() {
|
|
StructTypeContext *_localctx = _tracker.createInstance<StructTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 174, GoParser::RuleStructType);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(878);
|
|
match(GoParser::STRUCT);
|
|
setState(879);
|
|
match(GoParser::L_CURLY);
|
|
setState(885);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
while (_la == GoParser::IDENTIFIER
|
|
|
|
|| _la == GoParser::STAR) {
|
|
setState(880);
|
|
fieldDecl();
|
|
setState(881);
|
|
eoss();
|
|
setState(887);
|
|
_errHandler->sync(this);
|
|
_la = _input->LA(1);
|
|
}
|
|
setState(888);
|
|
match(GoParser::R_CURLY);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- FieldDeclContext ------------------------------------------------------------------
|
|
|
|
GoParser::FieldDeclContext::FieldDeclContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::IdentifierListContext* GoParser::FieldDeclContext::identifierList() {
|
|
return getRuleContext<GoParser::IdentifierListContext>(0);
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::FieldDeclContext::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
GoParser::EmbeddedFieldContext* GoParser::FieldDeclContext::embeddedField() {
|
|
return getRuleContext<GoParser::EmbeddedFieldContext>(0);
|
|
}
|
|
|
|
GoParser::String_Context* GoParser::FieldDeclContext::string_() {
|
|
return getRuleContext<GoParser::String_Context>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::FieldDeclContext::getRuleIndex() const {
|
|
return GoParser::RuleFieldDecl;
|
|
}
|
|
|
|
void GoParser::FieldDeclContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterFieldDecl(this);
|
|
}
|
|
|
|
void GoParser::FieldDeclContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitFieldDecl(this);
|
|
}
|
|
|
|
GoParser::FieldDeclContext* GoParser::fieldDecl() {
|
|
FieldDeclContext *_localctx = _tracker.createInstance<FieldDeclContext>(_ctx, getState());
|
|
enterRule(_localctx, 176, GoParser::RuleFieldDecl);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(894);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 98, _ctx)) {
|
|
case 1: {
|
|
setState(890);
|
|
identifierList();
|
|
setState(891);
|
|
type_();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(893);
|
|
embeddedField();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(897);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::RAW_STRING_LIT
|
|
|
|
|| _la == GoParser::INTERPRETED_STRING_LIT) {
|
|
setState(896);
|
|
antlrcpp::downCast<FieldDeclContext *>(_localctx)->tag = string_();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- String_Context ------------------------------------------------------------------
|
|
|
|
GoParser::String_Context::String_Context(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::String_Context::RAW_STRING_LIT() {
|
|
return getToken(GoParser::RAW_STRING_LIT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::String_Context::INTERPRETED_STRING_LIT() {
|
|
return getToken(GoParser::INTERPRETED_STRING_LIT, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::String_Context::getRuleIndex() const {
|
|
return GoParser::RuleString_;
|
|
}
|
|
|
|
void GoParser::String_Context::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterString_(this);
|
|
}
|
|
|
|
void GoParser::String_Context::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitString_(this);
|
|
}
|
|
|
|
GoParser::String_Context* GoParser::string_() {
|
|
String_Context *_localctx = _tracker.createInstance<String_Context>(_ctx, getState());
|
|
enterRule(_localctx, 178, GoParser::RuleString_);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(899);
|
|
_la = _input->LA(1);
|
|
if (!(_la == GoParser::RAW_STRING_LIT
|
|
|
|
|| _la == GoParser::INTERPRETED_STRING_LIT)) {
|
|
_errHandler->recoverInline(this);
|
|
}
|
|
else {
|
|
_errHandler->reportMatch(this);
|
|
consume();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- EmbeddedFieldContext ------------------------------------------------------------------
|
|
|
|
GoParser::EmbeddedFieldContext::EmbeddedFieldContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::TypeNameContext* GoParser::EmbeddedFieldContext::typeName() {
|
|
return getRuleContext<GoParser::TypeNameContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::EmbeddedFieldContext::STAR() {
|
|
return getToken(GoParser::STAR, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::EmbeddedFieldContext::getRuleIndex() const {
|
|
return GoParser::RuleEmbeddedField;
|
|
}
|
|
|
|
void GoParser::EmbeddedFieldContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterEmbeddedField(this);
|
|
}
|
|
|
|
void GoParser::EmbeddedFieldContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitEmbeddedField(this);
|
|
}
|
|
|
|
GoParser::EmbeddedFieldContext* GoParser::embeddedField() {
|
|
EmbeddedFieldContext *_localctx = _tracker.createInstance<EmbeddedFieldContext>(_ctx, getState());
|
|
enterRule(_localctx, 180, GoParser::RuleEmbeddedField);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(902);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::STAR) {
|
|
setState(901);
|
|
match(GoParser::STAR);
|
|
}
|
|
setState(904);
|
|
typeName();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- FunctionLitContext ------------------------------------------------------------------
|
|
|
|
GoParser::FunctionLitContext::FunctionLitContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::FunctionLitContext::FUNC() {
|
|
return getToken(GoParser::FUNC, 0);
|
|
}
|
|
|
|
GoParser::SignatureContext* GoParser::FunctionLitContext::signature() {
|
|
return getRuleContext<GoParser::SignatureContext>(0);
|
|
}
|
|
|
|
GoParser::BlockContext* GoParser::FunctionLitContext::block() {
|
|
return getRuleContext<GoParser::BlockContext>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::FunctionLitContext::getRuleIndex() const {
|
|
return GoParser::RuleFunctionLit;
|
|
}
|
|
|
|
void GoParser::FunctionLitContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterFunctionLit(this);
|
|
}
|
|
|
|
void GoParser::FunctionLitContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitFunctionLit(this);
|
|
}
|
|
|
|
GoParser::FunctionLitContext* GoParser::functionLit() {
|
|
FunctionLitContext *_localctx = _tracker.createInstance<FunctionLitContext>(_ctx, getState());
|
|
enterRule(_localctx, 182, GoParser::RuleFunctionLit);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(906);
|
|
match(GoParser::FUNC);
|
|
setState(907);
|
|
signature();
|
|
setState(908);
|
|
block();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- IndexContext ------------------------------------------------------------------
|
|
|
|
GoParser::IndexContext::IndexContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IndexContext::L_BRACKET() {
|
|
return getToken(GoParser::L_BRACKET, 0);
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::IndexContext::expression() {
|
|
return getRuleContext<GoParser::ExpressionContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::IndexContext::R_BRACKET() {
|
|
return getToken(GoParser::R_BRACKET, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::IndexContext::getRuleIndex() const {
|
|
return GoParser::RuleIndex;
|
|
}
|
|
|
|
void GoParser::IndexContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterIndex(this);
|
|
}
|
|
|
|
void GoParser::IndexContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitIndex(this);
|
|
}
|
|
|
|
GoParser::IndexContext* GoParser::index() {
|
|
IndexContext *_localctx = _tracker.createInstance<IndexContext>(_ctx, getState());
|
|
enterRule(_localctx, 184, GoParser::RuleIndex);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(910);
|
|
match(GoParser::L_BRACKET);
|
|
setState(911);
|
|
expression(0);
|
|
setState(912);
|
|
match(GoParser::R_BRACKET);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- Slice_Context ------------------------------------------------------------------
|
|
|
|
GoParser::Slice_Context::Slice_Context(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Slice_Context::L_BRACKET() {
|
|
return getToken(GoParser::L_BRACKET, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Slice_Context::R_BRACKET() {
|
|
return getToken(GoParser::R_BRACKET, 0);
|
|
}
|
|
|
|
std::vector<tree::TerminalNode *> GoParser::Slice_Context::COLON() {
|
|
return getTokens(GoParser::COLON);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::Slice_Context::COLON(size_t i) {
|
|
return getToken(GoParser::COLON, i);
|
|
}
|
|
|
|
std::vector<GoParser::ExpressionContext *> GoParser::Slice_Context::expression() {
|
|
return getRuleContexts<GoParser::ExpressionContext>();
|
|
}
|
|
|
|
GoParser::ExpressionContext* GoParser::Slice_Context::expression(size_t i) {
|
|
return getRuleContext<GoParser::ExpressionContext>(i);
|
|
}
|
|
|
|
|
|
size_t GoParser::Slice_Context::getRuleIndex() const {
|
|
return GoParser::RuleSlice_;
|
|
}
|
|
|
|
void GoParser::Slice_Context::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterSlice_(this);
|
|
}
|
|
|
|
void GoParser::Slice_Context::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitSlice_(this);
|
|
}
|
|
|
|
GoParser::Slice_Context* GoParser::slice_() {
|
|
Slice_Context *_localctx = _tracker.createInstance<Slice_Context>(_ctx, getState());
|
|
enterRule(_localctx, 186, GoParser::RuleSlice_);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(914);
|
|
match(GoParser::L_BRACKET);
|
|
setState(930);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 104, _ctx)) {
|
|
case 1: {
|
|
setState(916);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(915);
|
|
expression(0);
|
|
}
|
|
setState(918);
|
|
match(GoParser::COLON);
|
|
setState(920);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(919);
|
|
expression(0);
|
|
}
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(923);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(922);
|
|
expression(0);
|
|
}
|
|
setState(925);
|
|
match(GoParser::COLON);
|
|
setState(926);
|
|
expression(0);
|
|
setState(927);
|
|
match(GoParser::COLON);
|
|
setState(928);
|
|
expression(0);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(932);
|
|
match(GoParser::R_BRACKET);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- TypeAssertionContext ------------------------------------------------------------------
|
|
|
|
GoParser::TypeAssertionContext::TypeAssertionContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeAssertionContext::DOT() {
|
|
return getToken(GoParser::DOT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeAssertionContext::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::TypeAssertionContext::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::TypeAssertionContext::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::TypeAssertionContext::getRuleIndex() const {
|
|
return GoParser::RuleTypeAssertion;
|
|
}
|
|
|
|
void GoParser::TypeAssertionContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterTypeAssertion(this);
|
|
}
|
|
|
|
void GoParser::TypeAssertionContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitTypeAssertion(this);
|
|
}
|
|
|
|
GoParser::TypeAssertionContext* GoParser::typeAssertion() {
|
|
TypeAssertionContext *_localctx = _tracker.createInstance<TypeAssertionContext>(_ctx, getState());
|
|
enterRule(_localctx, 188, GoParser::RuleTypeAssertion);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(934);
|
|
match(GoParser::DOT);
|
|
setState(935);
|
|
match(GoParser::L_PAREN);
|
|
setState(936);
|
|
type_();
|
|
setState(937);
|
|
match(GoParser::R_PAREN);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ArgumentsContext ------------------------------------------------------------------
|
|
|
|
GoParser::ArgumentsContext::ArgumentsContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ArgumentsContext::L_PAREN() {
|
|
return getToken(GoParser::L_PAREN, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ArgumentsContext::R_PAREN() {
|
|
return getToken(GoParser::R_PAREN, 0);
|
|
}
|
|
|
|
GoParser::ExpressionListContext* GoParser::ArgumentsContext::expressionList() {
|
|
return getRuleContext<GoParser::ExpressionListContext>(0);
|
|
}
|
|
|
|
GoParser::NonNamedTypeContext* GoParser::ArgumentsContext::nonNamedType() {
|
|
return getRuleContext<GoParser::NonNamedTypeContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ArgumentsContext::ELLIPSIS() {
|
|
return getToken(GoParser::ELLIPSIS, 0);
|
|
}
|
|
|
|
std::vector<tree::TerminalNode *> GoParser::ArgumentsContext::COMMA() {
|
|
return getTokens(GoParser::COMMA);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::ArgumentsContext::COMMA(size_t i) {
|
|
return getToken(GoParser::COMMA, i);
|
|
}
|
|
|
|
|
|
size_t GoParser::ArgumentsContext::getRuleIndex() const {
|
|
return GoParser::RuleArguments;
|
|
}
|
|
|
|
void GoParser::ArgumentsContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterArguments(this);
|
|
}
|
|
|
|
void GoParser::ArgumentsContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitArguments(this);
|
|
}
|
|
|
|
GoParser::ArgumentsContext* GoParser::arguments() {
|
|
ArgumentsContext *_localctx = _tracker.createInstance<ArgumentsContext>(_ctx, getState());
|
|
enterRule(_localctx, 190, GoParser::RuleArguments);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(939);
|
|
match(GoParser::L_PAREN);
|
|
setState(954);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if ((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::FUNC)
|
|
| (1ULL << GoParser::INTERFACE)
|
|
| (1ULL << GoParser::MAP)
|
|
| (1ULL << GoParser::STRUCT)
|
|
| (1ULL << GoParser::CHAN)
|
|
| (1ULL << GoParser::NIL_LIT)
|
|
| (1ULL << GoParser::IDENTIFIER)
|
|
| (1ULL << GoParser::L_PAREN)
|
|
| (1ULL << GoParser::L_BRACKET)
|
|
| (1ULL << GoParser::EXCLAMATION)
|
|
| (1ULL << GoParser::PLUS)
|
|
| (1ULL << GoParser::MINUS)
|
|
| (1ULL << GoParser::CARET))) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) &&
|
|
((1ULL << (_la - 64)) & ((1ULL << (GoParser::STAR - 64))
|
|
| (1ULL << (GoParser::AMPERSAND - 64))
|
|
| (1ULL << (GoParser::RECEIVE - 64))
|
|
| (1ULL << (GoParser::DECIMAL_LIT - 64))
|
|
| (1ULL << (GoParser::BINARY_LIT - 64))
|
|
| (1ULL << (GoParser::OCTAL_LIT - 64))
|
|
| (1ULL << (GoParser::HEX_LIT - 64))
|
|
| (1ULL << (GoParser::FLOAT_LIT - 64))
|
|
| (1ULL << (GoParser::IMAGINARY_LIT - 64))
|
|
| (1ULL << (GoParser::RUNE_LIT - 64))
|
|
| (1ULL << (GoParser::RAW_STRING_LIT - 64))
|
|
| (1ULL << (GoParser::INTERPRETED_STRING_LIT - 64)))) != 0)) {
|
|
setState(946);
|
|
_errHandler->sync(this);
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 106, _ctx)) {
|
|
case 1: {
|
|
setState(940);
|
|
expressionList();
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
setState(941);
|
|
nonNamedType();
|
|
setState(944);
|
|
_errHandler->sync(this);
|
|
|
|
switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 105, _ctx)) {
|
|
case 1: {
|
|
setState(942);
|
|
match(GoParser::COMMA);
|
|
setState(943);
|
|
expressionList();
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
setState(949);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::ELLIPSIS) {
|
|
setState(948);
|
|
match(GoParser::ELLIPSIS);
|
|
}
|
|
setState(952);
|
|
_errHandler->sync(this);
|
|
|
|
_la = _input->LA(1);
|
|
if (_la == GoParser::COMMA) {
|
|
setState(951);
|
|
match(GoParser::COMMA);
|
|
}
|
|
}
|
|
setState(956);
|
|
match(GoParser::R_PAREN);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- MethodExprContext ------------------------------------------------------------------
|
|
|
|
GoParser::MethodExprContext::MethodExprContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::NonNamedTypeContext* GoParser::MethodExprContext::nonNamedType() {
|
|
return getRuleContext<GoParser::NonNamedTypeContext>(0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MethodExprContext::DOT() {
|
|
return getToken(GoParser::DOT, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::MethodExprContext::IDENTIFIER() {
|
|
return getToken(GoParser::IDENTIFIER, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::MethodExprContext::getRuleIndex() const {
|
|
return GoParser::RuleMethodExpr;
|
|
}
|
|
|
|
void GoParser::MethodExprContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterMethodExpr(this);
|
|
}
|
|
|
|
void GoParser::MethodExprContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitMethodExpr(this);
|
|
}
|
|
|
|
GoParser::MethodExprContext* GoParser::methodExpr() {
|
|
MethodExprContext *_localctx = _tracker.createInstance<MethodExprContext>(_ctx, getState());
|
|
enterRule(_localctx, 192, GoParser::RuleMethodExpr);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(958);
|
|
nonNamedType();
|
|
setState(959);
|
|
match(GoParser::DOT);
|
|
setState(960);
|
|
match(GoParser::IDENTIFIER);
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- ReceiverTypeContext ------------------------------------------------------------------
|
|
|
|
GoParser::ReceiverTypeContext::ReceiverTypeContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
GoParser::Type_Context* GoParser::ReceiverTypeContext::type_() {
|
|
return getRuleContext<GoParser::Type_Context>(0);
|
|
}
|
|
|
|
|
|
size_t GoParser::ReceiverTypeContext::getRuleIndex() const {
|
|
return GoParser::RuleReceiverType;
|
|
}
|
|
|
|
void GoParser::ReceiverTypeContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterReceiverType(this);
|
|
}
|
|
|
|
void GoParser::ReceiverTypeContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitReceiverType(this);
|
|
}
|
|
|
|
GoParser::ReceiverTypeContext* GoParser::receiverType() {
|
|
ReceiverTypeContext *_localctx = _tracker.createInstance<ReceiverTypeContext>(_ctx, getState());
|
|
enterRule(_localctx, 194, GoParser::RuleReceiverType);
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(962);
|
|
type_();
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
//----------------- EossContext ------------------------------------------------------------------
|
|
|
|
GoParser::EossContext::EossContext(ParserRuleContext *parent, size_t invokingState)
|
|
: ParserRuleContext(parent, invokingState) {
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::EossContext::SEMI() {
|
|
return getToken(GoParser::SEMI, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::EossContext::EOSSS() {
|
|
return getToken(GoParser::EOSSS, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::EossContext::HUANHANG() {
|
|
return getToken(GoParser::HUANHANG, 0);
|
|
}
|
|
|
|
tree::TerminalNode* GoParser::EossContext::HUANHANGG() {
|
|
return getToken(GoParser::HUANHANGG, 0);
|
|
}
|
|
|
|
|
|
size_t GoParser::EossContext::getRuleIndex() const {
|
|
return GoParser::RuleEoss;
|
|
}
|
|
|
|
void GoParser::EossContext::enterRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->enterEoss(this);
|
|
}
|
|
|
|
void GoParser::EossContext::exitRule(tree::ParseTreeListener *listener) {
|
|
auto parserListener = dynamic_cast<GoParserListener *>(listener);
|
|
if (parserListener != nullptr)
|
|
parserListener->exitEoss(this);
|
|
}
|
|
|
|
GoParser::EossContext* GoParser::eoss() {
|
|
EossContext *_localctx = _tracker.createInstance<EossContext>(_ctx, getState());
|
|
enterRule(_localctx, 196, GoParser::RuleEoss);
|
|
size_t _la = 0;
|
|
|
|
#if __cplusplus > 201703L
|
|
auto onExit = finally([=, this] {
|
|
#else
|
|
auto onExit = finally([=] {
|
|
#endif
|
|
exitRule();
|
|
});
|
|
try {
|
|
enterOuterAlt(_localctx, 1);
|
|
setState(964);
|
|
_la = _input->LA(1);
|
|
if (!((((_la & ~ 0x3fULL) == 0) &&
|
|
((1ULL << _la) & ((1ULL << GoParser::SEMI)
|
|
| (1ULL << GoParser::HUANHANG)
|
|
| (1ULL << GoParser::HUANHANGG)
|
|
| (1ULL << GoParser::EOSSS))) != 0))) {
|
|
_errHandler->recoverInline(this);
|
|
}
|
|
else {
|
|
_errHandler->reportMatch(this);
|
|
consume();
|
|
}
|
|
|
|
}
|
|
catch (RecognitionException &e) {
|
|
_errHandler->reportError(this, e);
|
|
_localctx->exception = std::current_exception();
|
|
_errHandler->recover(this, _localctx->exception);
|
|
}
|
|
|
|
return _localctx;
|
|
}
|
|
|
|
bool GoParser::sempred(RuleContext *context, size_t ruleIndex, size_t predicateIndex) {
|
|
switch (ruleIndex) {
|
|
case 70: return expressionSempred(antlrcpp::downCast<ExpressionContext *>(context), predicateIndex);
|
|
case 71: return primaryExprSempred(antlrcpp::downCast<PrimaryExprContext *>(context), predicateIndex);
|
|
|
|
default:
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool GoParser::expressionSempred(ExpressionContext *_localctx, size_t predicateIndex) {
|
|
switch (predicateIndex) {
|
|
case 0: return precpred(_ctx, 5);
|
|
case 1: return precpred(_ctx, 4);
|
|
case 2: return precpred(_ctx, 3);
|
|
case 3: return precpred(_ctx, 2);
|
|
case 4: return precpred(_ctx, 1);
|
|
|
|
default:
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool GoParser::primaryExprSempred(PrimaryExprContext *_localctx, size_t predicateIndex) {
|
|
switch (predicateIndex) {
|
|
case 5: return precpred(_ctx, 1);
|
|
|
|
default:
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Static vars and initialization.
|
|
std::vector<dfa::DFA> GoParser::_decisionToDFA;
|
|
atn::PredictionContextCache GoParser::_sharedContextCache;
|
|
|
|
// We own the ATN which in turn owns the ATN states.
|
|
atn::ATN GoParser::_atn;
|
|
std::vector<uint16_t> GoParser::_serializedATN;
|
|
|
|
std::vector<std::string> GoParser::_ruleNames = {
|
|
"sourceFile", "packageClause", "importDecl", "importSpec", "importPath",
|
|
"declaration", "constDecl", "constSpec", "identifierList", "expressionList",
|
|
"typeDecl", "typeSpec", "functionDecl", "methodDecl", "receiver", "varDecl",
|
|
"varSpec", "block", "statementList", "statement", "simpleStmt", "expressionStmt",
|
|
"sendStmt", "incDecStmt", "assignment", "assign_op", "shortVarDecl", "emptyStmt",
|
|
"labeledStmt", "returnStmt", "breakStmt", "continueStmt", "gotoStmt",
|
|
"fallthroughStmt", "deferStmt", "ifStmt", "switchStmt", "exprSwitchStmt",
|
|
"exprCaseClause", "exprSwitchCase", "typeSwitchStmt", "typeSwitchGuard",
|
|
"typeCaseClause", "typeSwitchCase", "typeList", "selectStmt", "commClause",
|
|
"commCase", "recvStmt", "forStmt", "forClause", "rangeClause", "goStmt",
|
|
"type_", "typeName", "typeLit", "arrayType", "arrayLength", "elementType",
|
|
"pointerType", "interfaceType", "sliceType", "mapType", "channelType",
|
|
"methodSpec", "functionType", "signature", "result", "parameters", "parameterDecl",
|
|
"expression", "primaryExpr", "conversion", "nonNamedType", "operand",
|
|
"literal", "basicLit", "integer", "operandName", "qualifiedIdent", "compositeLit",
|
|
"literalType", "literalValue", "elementList", "keyedElement", "key", "element",
|
|
"structType", "fieldDecl", "string_", "embeddedField", "functionLit",
|
|
"index", "slice_", "typeAssertion", "arguments", "methodExpr", "receiverType",
|
|
"eoss"
|
|
};
|
|
|
|
std::vector<std::string> GoParser::_literalNames = {
|
|
"", "'break'", "'default'", "'func'", "'interface'", "'select'", "'case'",
|
|
"'defer'", "'go'", "'map'", "'struct'", "'chan'", "'else'", "'goto'",
|
|
"'package'", "'switch'", "'const'", "'fallthrough'", "'if'", "'range'",
|
|
"'type'", "'continue'", "'for'", "'import'", "'return'", "'var'", "'nil'",
|
|
"", "'('", "')'", "'{'", "'}'", "'['", "']'", "'='", "','", "';'", "'\n'",
|
|
"'\r\n'", "':'", "'.'", "'++'", "'--'", "':='", "'...'", "", "'||'", "'&&'",
|
|
"'=='", "'!='", "'<'", "'<='", "'>'", "'>='", "'|'", "'/'", "'%'", "'<<'",
|
|
"'>>'", "'&^'", "'!'", "'+'", "'-'", "'^'", "'*'", "'&'", "'<-'"
|
|
};
|
|
|
|
std::vector<std::string> GoParser::_symbolicNames = {
|
|
"", "BREAK", "DEFAULT", "FUNC", "INTERFACE", "SELECT", "CASE", "DEFER",
|
|
"GO", "MAP", "STRUCT", "CHAN", "ELSE", "GOTO", "PACKAGE", "SWITCH", "CONST",
|
|
"FALLTHROUGH", "IF", "RANGE", "TYPE", "CONTINUE", "FOR", "IMPORT", "RETURN",
|
|
"VAR", "NIL_LIT", "IDENTIFIER", "L_PAREN", "R_PAREN", "L_CURLY", "R_CURLY",
|
|
"L_BRACKET", "R_BRACKET", "ASSIGN", "COMMA", "SEMI", "HUANHANG", "HUANHANGG",
|
|
"COLON", "DOT", "PLUS_PLUS", "MINUS_MINUS", "DECLARE_ASSIGN", "ELLIPSIS",
|
|
"EOSSS", "LOGICAL_OR", "LOGICAL_AND", "EQUALS", "NOT_EQUALS", "LESS",
|
|
"LESS_OR_EQUALS", "GREATER", "GREATER_OR_EQUALS", "OR", "DIV", "MOD",
|
|
"LSHIFT", "RSHIFT", "BIT_CLEAR", "EXCLAMATION", "PLUS", "MINUS", "CARET",
|
|
"STAR", "AMPERSAND", "RECEIVE", "DECIMAL_LIT", "BINARY_LIT", "OCTAL_LIT",
|
|
"HEX_LIT", "FLOAT_LIT", "DECIMAL_FLOAT_LIT", "HEX_FLOAT_LIT", "IMAGINARY_LIT",
|
|
"RUNE_LIT", "BYTE_VALUE", "OCTAL_BYTE_VALUE", "HEX_BYTE_VALUE", "LITTLE_U_VALUE",
|
|
"BIG_U_VALUE", "RAW_STRING_LIT", "INTERPRETED_STRING_LIT", "WS", "COMMENT",
|
|
"TERMINATOR", "LINE_COMMENT", "WS_NLSEMI", "COMMENT_NLSEMI", "LINE_COMMENT_NLSEMI"
|
|
};
|
|
|
|
dfa::Vocabulary GoParser::_vocabulary(_literalNames, _symbolicNames);
|
|
|
|
std::vector<std::string> GoParser::_tokenNames;
|
|
|
|
GoParser::Initializer::Initializer() {
|
|
for (size_t i = 0; i < _symbolicNames.size(); ++i) {
|
|
std::string name = _vocabulary.getLiteralName(i);
|
|
if (name.empty()) {
|
|
name = _vocabulary.getSymbolicName(i);
|
|
}
|
|
|
|
if (name.empty()) {
|
|
_tokenNames.push_back("<INVALID>");
|
|
} else {
|
|
_tokenNames.push_back(name);
|
|
}
|
|
}
|
|
|
|
static const uint16_t serializedATNSegment0[] = {
|
|
0x3, 0x608b, 0xa72a, 0x8133, 0xb9ed, 0x417c, 0x3be7, 0x7786, 0x5964,
|
|
0x3, 0x5b, 0x3c9, 0x4, 0x2, 0x9, 0x2, 0x4, 0x3, 0x9, 0x3, 0x4, 0x4,
|
|
0x9, 0x4, 0x4, 0x5, 0x9, 0x5, 0x4, 0x6, 0x9, 0x6, 0x4, 0x7, 0x9,
|
|
0x7, 0x4, 0x8, 0x9, 0x8, 0x4, 0x9, 0x9, 0x9, 0x4, 0xa, 0x9, 0xa,
|
|
0x4, 0xb, 0x9, 0xb, 0x4, 0xc, 0x9, 0xc, 0x4, 0xd, 0x9, 0xd, 0x4,
|
|
0xe, 0x9, 0xe, 0x4, 0xf, 0x9, 0xf, 0x4, 0x10, 0x9, 0x10, 0x4, 0x11,
|
|
0x9, 0x11, 0x4, 0x12, 0x9, 0x12, 0x4, 0x13, 0x9, 0x13, 0x4, 0x14,
|
|
0x9, 0x14, 0x4, 0x15, 0x9, 0x15, 0x4, 0x16, 0x9, 0x16, 0x4, 0x17,
|
|
0x9, 0x17, 0x4, 0x18, 0x9, 0x18, 0x4, 0x19, 0x9, 0x19, 0x4, 0x1a,
|
|
0x9, 0x1a, 0x4, 0x1b, 0x9, 0x1b, 0x4, 0x1c, 0x9, 0x1c, 0x4, 0x1d,
|
|
0x9, 0x1d, 0x4, 0x1e, 0x9, 0x1e, 0x4, 0x1f, 0x9, 0x1f, 0x4, 0x20,
|
|
0x9, 0x20, 0x4, 0x21, 0x9, 0x21, 0x4, 0x22, 0x9, 0x22, 0x4, 0x23,
|
|
0x9, 0x23, 0x4, 0x24, 0x9, 0x24, 0x4, 0x25, 0x9, 0x25, 0x4, 0x26,
|
|
0x9, 0x26, 0x4, 0x27, 0x9, 0x27, 0x4, 0x28, 0x9, 0x28, 0x4, 0x29,
|
|
0x9, 0x29, 0x4, 0x2a, 0x9, 0x2a, 0x4, 0x2b, 0x9, 0x2b, 0x4, 0x2c,
|
|
0x9, 0x2c, 0x4, 0x2d, 0x9, 0x2d, 0x4, 0x2e, 0x9, 0x2e, 0x4, 0x2f,
|
|
0x9, 0x2f, 0x4, 0x30, 0x9, 0x30, 0x4, 0x31, 0x9, 0x31, 0x4, 0x32,
|
|
0x9, 0x32, 0x4, 0x33, 0x9, 0x33, 0x4, 0x34, 0x9, 0x34, 0x4, 0x35,
|
|
0x9, 0x35, 0x4, 0x36, 0x9, 0x36, 0x4, 0x37, 0x9, 0x37, 0x4, 0x38,
|
|
0x9, 0x38, 0x4, 0x39, 0x9, 0x39, 0x4, 0x3a, 0x9, 0x3a, 0x4, 0x3b,
|
|
0x9, 0x3b, 0x4, 0x3c, 0x9, 0x3c, 0x4, 0x3d, 0x9, 0x3d, 0x4, 0x3e,
|
|
0x9, 0x3e, 0x4, 0x3f, 0x9, 0x3f, 0x4, 0x40, 0x9, 0x40, 0x4, 0x41,
|
|
0x9, 0x41, 0x4, 0x42, 0x9, 0x42, 0x4, 0x43, 0x9, 0x43, 0x4, 0x44,
|
|
0x9, 0x44, 0x4, 0x45, 0x9, 0x45, 0x4, 0x46, 0x9, 0x46, 0x4, 0x47,
|
|
0x9, 0x47, 0x4, 0x48, 0x9, 0x48, 0x4, 0x49, 0x9, 0x49, 0x4, 0x4a,
|
|
0x9, 0x4a, 0x4, 0x4b, 0x9, 0x4b, 0x4, 0x4c, 0x9, 0x4c, 0x4, 0x4d,
|
|
0x9, 0x4d, 0x4, 0x4e, 0x9, 0x4e, 0x4, 0x4f, 0x9, 0x4f, 0x4, 0x50,
|
|
0x9, 0x50, 0x4, 0x51, 0x9, 0x51, 0x4, 0x52, 0x9, 0x52, 0x4, 0x53,
|
|
0x9, 0x53, 0x4, 0x54, 0x9, 0x54, 0x4, 0x55, 0x9, 0x55, 0x4, 0x56,
|
|
0x9, 0x56, 0x4, 0x57, 0x9, 0x57, 0x4, 0x58, 0x9, 0x58, 0x4, 0x59,
|
|
0x9, 0x59, 0x4, 0x5a, 0x9, 0x5a, 0x4, 0x5b, 0x9, 0x5b, 0x4, 0x5c,
|
|
0x9, 0x5c, 0x4, 0x5d, 0x9, 0x5d, 0x4, 0x5e, 0x9, 0x5e, 0x4, 0x5f,
|
|
0x9, 0x5f, 0x4, 0x60, 0x9, 0x60, 0x4, 0x61, 0x9, 0x61, 0x4, 0x62,
|
|
0x9, 0x62, 0x4, 0x63, 0x9, 0x63, 0x4, 0x64, 0x9, 0x64, 0x3, 0x2,
|
|
0x3, 0x2, 0x7, 0x2, 0xcb, 0xa, 0x2, 0xc, 0x2, 0xe, 0x2, 0xce, 0xb,
|
|
0x2, 0x3, 0x2, 0x3, 0x2, 0x7, 0x2, 0xd2, 0xa, 0x2, 0xc, 0x2, 0xe,
|
|
0x2, 0xd5, 0xb, 0x2, 0x7, 0x2, 0xd7, 0xa, 0x2, 0xc, 0x2, 0xe, 0x2,
|
|
0xda, 0xb, 0x2, 0x3, 0x2, 0x3, 0x2, 0x3, 0x2, 0x5, 0x2, 0xdf, 0xa,
|
|
0x2, 0x3, 0x2, 0x7, 0x2, 0xe2, 0xa, 0x2, 0xc, 0x2, 0xe, 0x2, 0xe5,
|
|
0xb, 0x2, 0x7, 0x2, 0xe7, 0xa, 0x2, 0xc, 0x2, 0xe, 0x2, 0xea, 0xb,
|
|
0x2, 0x3, 0x2, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x4,
|
|
0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x7, 0x4, 0xf7,
|
|
0xa, 0x4, 0xc, 0x4, 0xe, 0x4, 0xfa, 0xb, 0x4, 0x3, 0x4, 0x5, 0x4,
|
|
0xfd, 0xa, 0x4, 0x3, 0x5, 0x5, 0x5, 0x100, 0xa, 0x5, 0x3, 0x5, 0x3,
|
|
0x5, 0x3, 0x6, 0x3, 0x6, 0x3, 0x7, 0x3, 0x7, 0x3, 0x7, 0x5, 0x7,
|
|
0x109, 0xa, 0x7, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8,
|
|
0x3, 0x8, 0x7, 0x8, 0x111, 0xa, 0x8, 0xc, 0x8, 0xe, 0x8, 0x114, 0xb,
|
|
0x8, 0x3, 0x8, 0x5, 0x8, 0x117, 0xa, 0x8, 0x3, 0x9, 0x3, 0x9, 0x5,
|
|
0x9, 0x11b, 0xa, 0x9, 0x3, 0x9, 0x3, 0x9, 0x5, 0x9, 0x11f, 0xa, 0x9,
|
|
0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x7, 0xa, 0x124, 0xa, 0xa, 0xc, 0xa,
|
|
0xe, 0xa, 0x127, 0xb, 0xa, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb, 0x7, 0xb,
|
|
0x12c, 0xa, 0xb, 0xc, 0xb, 0xe, 0xb, 0x12f, 0xb, 0xb, 0x3, 0xc, 0x3,
|
|
0xc, 0x3, 0xc, 0x3, 0xc, 0x3, 0xc, 0x3, 0xc, 0x7, 0xc, 0x137, 0xa,
|
|
0xc, 0xc, 0xc, 0xe, 0xc, 0x13a, 0xb, 0xc, 0x3, 0xc, 0x5, 0xc, 0x13d,
|
|
0xa, 0xc, 0x3, 0xd, 0x3, 0xd, 0x5, 0xd, 0x141, 0xa, 0xd, 0x3, 0xd,
|
|
0x3, 0xd, 0x3, 0xe, 0x3, 0xe, 0x3, 0xe, 0x3, 0xe, 0x5, 0xe, 0x149,
|
|
0xa, 0xe, 0x3, 0xf, 0x3, 0xf, 0x3, 0xf, 0x3, 0xf, 0x3, 0xf, 0x5,
|
|
0xf, 0x150, 0xa, 0xf, 0x3, 0x10, 0x3, 0x10, 0x3, 0x11, 0x3, 0x11,
|
|
0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x7, 0x11, 0x15a, 0xa,
|
|
0x11, 0xc, 0x11, 0xe, 0x11, 0x15d, 0xb, 0x11, 0x3, 0x11, 0x5, 0x11,
|
|
0x160, 0xa, 0x11, 0x3, 0x12, 0x3, 0x12, 0x3, 0x12, 0x3, 0x12, 0x5,
|
|
0x12, 0x166, 0xa, 0x12, 0x3, 0x12, 0x3, 0x12, 0x5, 0x12, 0x16a, 0xa,
|
|
0x12, 0x3, 0x13, 0x3, 0x13, 0x7, 0x13, 0x16e, 0xa, 0x13, 0xc, 0x13,
|
|
0xe, 0x13, 0x171, 0xb, 0x13, 0x3, 0x13, 0x5, 0x13, 0x174, 0xa, 0x13,
|
|
0x3, 0x13, 0x3, 0x13, 0x3, 0x14, 0x3, 0x14, 0x6, 0x14, 0x17a, 0xa,
|
|
0x14, 0xd, 0x14, 0xe, 0x14, 0x17b, 0x6, 0x14, 0x17e, 0xa, 0x14, 0xd,
|
|
0x14, 0xe, 0x14, 0x17f, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15,
|
|
0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15,
|
|
0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x5, 0x15,
|
|
0x191, 0xa, 0x15, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3,
|
|
0x16, 0x5, 0x16, 0x198, 0xa, 0x16, 0x3, 0x17, 0x3, 0x17, 0x3, 0x18,
|
|
0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19,
|
|
0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1b, 0x5, 0x1b,
|
|
0x1a8, 0xa, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1c, 0x3, 0x1c, 0x3,
|
|
0x1c, 0x3, 0x1c, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1e, 0x3, 0x1e, 0x3,
|
|
0x1e, 0x5, 0x1e, 0x1b5, 0xa, 0x1e, 0x3, 0x1f, 0x3, 0x1f, 0x5, 0x1f,
|
|
0x1b9, 0xa, 0x1f, 0x3, 0x20, 0x3, 0x20, 0x5, 0x20, 0x1bd, 0xa, 0x20,
|
|
0x3, 0x21, 0x3, 0x21, 0x5, 0x21, 0x1c1, 0xa, 0x21, 0x3, 0x22, 0x3,
|
|
0x22, 0x3, 0x22, 0x3, 0x23, 0x3, 0x23, 0x3, 0x24, 0x3, 0x24, 0x3,
|
|
0x24, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3,
|
|
0x25, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x5, 0x25, 0x1d4, 0xa, 0x25,
|
|
0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x5, 0x25, 0x1da, 0xa,
|
|
0x25, 0x5, 0x25, 0x1dc, 0xa, 0x25, 0x3, 0x26, 0x3, 0x26, 0x5, 0x26,
|
|
0x1e0, 0xa, 0x26, 0x3, 0x27, 0x3, 0x27, 0x5, 0x27, 0x1e4, 0xa, 0x27,
|
|
0x3, 0x27, 0x5, 0x27, 0x1e7, 0xa, 0x27, 0x3, 0x27, 0x3, 0x27, 0x5,
|
|
0x27, 0x1eb, 0xa, 0x27, 0x5, 0x27, 0x1ed, 0xa, 0x27, 0x3, 0x27, 0x3,
|
|
0x27, 0x7, 0x27, 0x1f1, 0xa, 0x27, 0xc, 0x27, 0xe, 0x27, 0x1f4, 0xb,
|
|
0x27, 0x3, 0x27, 0x3, 0x27, 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, 0x5,
|
|
0x28, 0x1fb, 0xa, 0x28, 0x3, 0x29, 0x3, 0x29, 0x3, 0x29, 0x5, 0x29,
|
|
0x200, 0xa, 0x29, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3,
|
|
0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x5, 0x2a, 0x20b,
|
|
0xa, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x7, 0x2a, 0x20f, 0xa, 0x2a, 0xc,
|
|
0x2a, 0xe, 0x2a, 0x212, 0xb, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2b,
|
|
0x3, 0x2b, 0x5, 0x2b, 0x218, 0xa, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3,
|
|
0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2c, 0x3, 0x2c, 0x3,
|
|
0x2c, 0x5, 0x2c, 0x223, 0xa, 0x2c, 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2d,
|
|
0x5, 0x2d, 0x228, 0xa, 0x2d, 0x3, 0x2e, 0x3, 0x2e, 0x5, 0x2e, 0x22c,
|
|
0xa, 0x2e, 0x3, 0x2e, 0x3, 0x2e, 0x3, 0x2e, 0x5, 0x2e, 0x231, 0xa,
|
|
0x2e, 0x7, 0x2e, 0x233, 0xa, 0x2e, 0xc, 0x2e, 0xe, 0x2e, 0x236, 0xb,
|
|
0x2e, 0x3, 0x2f, 0x3, 0x2f, 0x3, 0x2f, 0x7, 0x2f, 0x23b, 0xa, 0x2f,
|
|
0xc, 0x2f, 0xe, 0x2f, 0x23e, 0xb, 0x2f, 0x3, 0x2f, 0x3, 0x2f, 0x3,
|
|
0x30, 0x3, 0x30, 0x3, 0x30, 0x5, 0x30, 0x245, 0xa, 0x30, 0x3, 0x31,
|
|
0x3, 0x31, 0x3, 0x31, 0x5, 0x31, 0x24a, 0xa, 0x31, 0x3, 0x31, 0x5,
|
|
0x31, 0x24d, 0xa, 0x31, 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, 0x3, 0x32,
|
|
0x3, 0x32, 0x3, 0x32, 0x5, 0x32, 0x255, 0xa, 0x32, 0x3, 0x32, 0x3,
|
|
0x32, 0x3, 0x33, 0x3, 0x33, 0x3, 0x33, 0x3, 0x33, 0x5, 0x33, 0x25d,
|
|
0xa, 0x33, 0x3, 0x33, 0x3, 0x33, 0x3, 0x34, 0x5, 0x34, 0x262, 0xa,
|
|
0x34, 0x3, 0x34, 0x3, 0x34, 0x5, 0x34, 0x266, 0xa, 0x34, 0x3, 0x34,
|
|
0x3, 0x34, 0x5, 0x34, 0x26a, 0xa, 0x34, 0x3, 0x35, 0x3, 0x35, 0x3,
|
|
0x35, 0x3, 0x35, 0x3, 0x35, 0x3, 0x35, 0x5, 0x35, 0x272, 0xa, 0x35,
|
|
0x3, 0x35, 0x3, 0x35, 0x3, 0x35, 0x3, 0x36, 0x3, 0x36, 0x3, 0x36,
|
|
0x3, 0x37, 0x3, 0x37, 0x3, 0x37, 0x3, 0x37, 0x3, 0x37, 0x3, 0x37,
|
|
0x5, 0x37, 0x280, 0xa, 0x37, 0x3, 0x38, 0x3, 0x38, 0x5, 0x38, 0x284,
|
|
0xa, 0x38, 0x3, 0x39, 0x3, 0x39, 0x3, 0x39, 0x3, 0x39, 0x3, 0x39,
|
|
0x3, 0x39, 0x3, 0x39, 0x3, 0x39, 0x5, 0x39, 0x28e, 0xa, 0x39, 0x3,
|
|
0x3a, 0x3, 0x3a, 0x3, 0x3a, 0x3, 0x3a, 0x3, 0x3a, 0x3, 0x3b, 0x3,
|
|
0x3b, 0x3, 0x3c, 0x3, 0x3c, 0x3, 0x3d, 0x3, 0x3d, 0x3, 0x3d, 0x3,
|
|
0x3e, 0x3, 0x3e, 0x3, 0x3e, 0x3, 0x3e, 0x5, 0x3e, 0x2a0, 0xa, 0x3e,
|
|
0x3, 0x3e, 0x3, 0x3e, 0x7, 0x3e, 0x2a4, 0xa, 0x3e, 0xc, 0x3e, 0xe,
|
|
0x3e, 0x2a7, 0xb, 0x3e, 0x3, 0x3e, 0x3, 0x3e, 0x3, 0x3f, 0x3, 0x3f,
|
|
0x3, 0x3f, 0x3, 0x3f, 0x3, 0x40, 0x3, 0x40, 0x3, 0x40, 0x3, 0x40,
|
|
0x3, 0x40, 0x3, 0x40, 0x3, 0x41, 0x3, 0x41, 0x3, 0x41, 0x3, 0x41,
|
|
0x3, 0x41, 0x5, 0x41, 0x2ba, 0xa, 0x41, 0x3, 0x41, 0x3, 0x41, 0x3,
|
|
0x42, 0x3, 0x42, 0x3, 0x42, 0x3, 0x42, 0x3, 0x42, 0x3, 0x42, 0x5,
|
|
0x42, 0x2c4, 0xa, 0x42, 0x3, 0x43, 0x3, 0x43, 0x3, 0x43, 0x3, 0x44,
|
|
0x3, 0x44, 0x3, 0x44, 0x3, 0x44, 0x5, 0x44, 0x2cd, 0xa, 0x44, 0x3,
|
|
0x45, 0x3, 0x45, 0x5, 0x45, 0x2d1, 0xa, 0x45, 0x3, 0x46, 0x3, 0x46,
|
|
0x3, 0x46, 0x3, 0x46, 0x7, 0x46, 0x2d7, 0xa, 0x46, 0xc, 0x46, 0xe,
|
|
0x46, 0x2da, 0xb, 0x46, 0x3, 0x46, 0x5, 0x46, 0x2dd, 0xa, 0x46, 0x5,
|
|
0x46, 0x2df, 0xa, 0x46, 0x3, 0x46, 0x3, 0x46, 0x3, 0x47, 0x5, 0x47,
|
|
0x2e4, 0xa, 0x47, 0x3, 0x47, 0x5, 0x47, 0x2e7, 0xa, 0x47, 0x3, 0x47,
|
|
0x3, 0x47, 0x3, 0x48, 0x3, 0x48, 0x3, 0x48, 0x3, 0x48, 0x5, 0x48,
|
|
0x2ef, 0xa, 0x48, 0x3, 0x48, 0x3, 0x48, 0x3, 0x48, 0x3, 0x48, 0x3,
|
|
0x48, 0x3, 0x48, 0x3, 0x48, 0x3, 0x48, 0x3, 0x48, 0x3, 0x48, 0x3,
|
|
0x48, 0x3, 0x48, 0x3, 0x48, 0x3, 0x48, 0x3, 0x48, 0x7, 0x48, 0x300,
|
|
0xa, 0x48, 0xc, 0x48, 0xe, 0x48, 0x303, 0xb, 0x48, 0x3, 0x49, 0x3,
|
|
0x49, 0x3, 0x49, 0x3, 0x49, 0x5, 0x49, 0x309, 0xa, 0x49, 0x3, 0x49,
|
|
0x3, 0x49, 0x3, 0x49, 0x3, 0x49, 0x3, 0x49, 0x3, 0x49, 0x3, 0x49,
|
|
0x5, 0x49, 0x312, 0xa, 0x49, 0x7, 0x49, 0x314, 0xa, 0x49, 0xc, 0x49,
|
|
0xe, 0x49, 0x317, 0xb, 0x49, 0x3, 0x4a, 0x3, 0x4a, 0x3, 0x4a, 0x3,
|
|
0x4a, 0x5, 0x4a, 0x31d, 0xa, 0x4a, 0x3, 0x4a, 0x3, 0x4a, 0x3, 0x4b,
|
|
0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x5, 0x4b, 0x326, 0xa,
|
|
0x4b, 0x3, 0x4c, 0x3, 0x4c, 0x3, 0x4c, 0x3, 0x4c, 0x3, 0x4c, 0x3,
|
|
0x4c, 0x5, 0x4c, 0x32e, 0xa, 0x4c, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d,
|
|
0x5, 0x4d, 0x333, 0xa, 0x4d, 0x3, 0x4e, 0x3, 0x4e, 0x3, 0x4e, 0x3,
|
|
0x4e, 0x5, 0x4e, 0x339, 0xa, 0x4e, 0x3, 0x4f, 0x3, 0x4f, 0x3, 0x50,
|
|
0x3, 0x50, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x52,
|
|
0x3, 0x52, 0x3, 0x52, 0x3, 0x53, 0x3, 0x53, 0x3, 0x53, 0x3, 0x53,
|
|
0x3, 0x53, 0x3, 0x53, 0x3, 0x53, 0x3, 0x53, 0x3, 0x53, 0x5, 0x53,
|
|
0x34f, 0xa, 0x53, 0x3, 0x54, 0x3, 0x54, 0x3, 0x54, 0x5, 0x54, 0x354,
|
|
0xa, 0x54, 0x5, 0x54, 0x356, 0xa, 0x54, 0x3, 0x54, 0x3, 0x54, 0x3,
|
|
0x55, 0x3, 0x55, 0x3, 0x55, 0x7, 0x55, 0x35d, 0xa, 0x55, 0xc, 0x55,
|
|
0xe, 0x55, 0x360, 0xb, 0x55, 0x3, 0x56, 0x3, 0x56, 0x3, 0x56, 0x5,
|
|
0x56, 0x365, 0xa, 0x56, 0x3, 0x56, 0x3, 0x56, 0x3, 0x57, 0x3, 0x57,
|
|
0x5, 0x57, 0x36b, 0xa, 0x57, 0x3, 0x58, 0x3, 0x58, 0x5, 0x58, 0x36f,
|
|
0xa, 0x58, 0x3, 0x59, 0x3, 0x59, 0x3, 0x59, 0x3, 0x59, 0x3, 0x59,
|
|
0x7, 0x59, 0x376, 0xa, 0x59, 0xc, 0x59, 0xe, 0x59, 0x379, 0xb, 0x59,
|
|
0x3, 0x59, 0x3, 0x59, 0x3, 0x5a, 0x3, 0x5a, 0x3, 0x5a, 0x3, 0x5a,
|
|
0x5, 0x5a, 0x381, 0xa, 0x5a, 0x3, 0x5a, 0x5, 0x5a, 0x384, 0xa, 0x5a,
|
|
0x3, 0x5b, 0x3, 0x5b, 0x3, 0x5c, 0x5, 0x5c, 0x389, 0xa, 0x5c, 0x3,
|
|
0x5c, 0x3, 0x5c, 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3,
|
|
0x5e, 0x3, 0x5e, 0x3, 0x5e, 0x3, 0x5e, 0x3, 0x5f, 0x3, 0x5f, 0x5,
|
|
0x5f, 0x397, 0xa, 0x5f, 0x3, 0x5f, 0x3, 0x5f, 0x5, 0x5f, 0x39b, 0xa,
|
|
0x5f, 0x3, 0x5f, 0x5, 0x5f, 0x39e, 0xa, 0x5f, 0x3, 0x5f, 0x3, 0x5f,
|
|
0x3, 0x5f, 0x3, 0x5f, 0x3, 0x5f, 0x5, 0x5f, 0x3a5, 0xa, 0x5f, 0x3,
|
|
0x5f, 0x3, 0x5f, 0x3, 0x60, 0x3, 0x60, 0x3, 0x60, 0x3, 0x60, 0x3,
|
|
0x60, 0x3, 0x61, 0x3, 0x61, 0x3, 0x61, 0x3, 0x61, 0x3, 0x61, 0x5,
|
|
0x61, 0x3b3, 0xa, 0x61, 0x5, 0x61, 0x3b5, 0xa, 0x61, 0x3, 0x61, 0x5,
|
|
0x61, 0x3b8, 0xa, 0x61, 0x3, 0x61, 0x5, 0x61, 0x3bb, 0xa, 0x61, 0x5,
|
|
0x61, 0x3bd, 0xa, 0x61, 0x3, 0x61, 0x3, 0x61, 0x3, 0x62, 0x3, 0x62,
|
|
0x3, 0x62, 0x3, 0x62, 0x3, 0x63, 0x3, 0x63, 0x3, 0x64, 0x3, 0x64,
|
|
0x3, 0x64, 0x2, 0x4, 0x8e, 0x90, 0x65, 0x2, 0x4, 0x6, 0x8, 0xa, 0xc,
|
|
0xe, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x22,
|
|
0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36, 0x38,
|
|
0x3a, 0x3c, 0x3e, 0x40, 0x42, 0x44, 0x46, 0x48, 0x4a, 0x4c, 0x4e,
|
|
0x50, 0x52, 0x54, 0x56, 0x58, 0x5a, 0x5c, 0x5e, 0x60, 0x62, 0x64,
|
|
0x66, 0x68, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x74, 0x76, 0x78, 0x7a,
|
|
0x7c, 0x7e, 0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c, 0x8e, 0x90,
|
|
0x92, 0x94, 0x96, 0x98, 0x9a, 0x9c, 0x9e, 0xa0, 0xa2, 0xa4, 0xa6,
|
|
0xa8, 0xaa, 0xac, 0xae, 0xb0, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc,
|
|
0xbe, 0xc0, 0xc2, 0xc4, 0xc6, 0x2, 0xd, 0x4, 0x2, 0x1d, 0x1d, 0x2a,
|
|
0x2a, 0x3, 0x2, 0x2b, 0x2c, 0x4, 0x2, 0x38, 0x3d, 0x3f, 0x43, 0x4,
|
|
0x2, 0x26, 0x26, 0x2f, 0x2f, 0x3, 0x2, 0x3e, 0x44, 0x4, 0x2, 0x39,
|
|
0x3d, 0x42, 0x43, 0x4, 0x2, 0x38, 0x38, 0x3f, 0x41, 0x3, 0x2, 0x32,
|
|
0x37, 0x4, 0x2, 0x45, 0x48, 0x4c, 0x4d, 0x3, 0x2, 0x53, 0x54, 0x4,
|
|
0x2, 0x26, 0x28, 0x2f, 0x2f, 0x2, 0x402, 0x2, 0xc8, 0x3, 0x2, 0x2,
|
|
0x2, 0x4, 0xed, 0x3, 0x2, 0x2, 0x2, 0x6, 0xf0, 0x3, 0x2, 0x2, 0x2,
|
|
0x8, 0xff, 0x3, 0x2, 0x2, 0x2, 0xa, 0x103, 0x3, 0x2, 0x2, 0x2, 0xc,
|
|
0x108, 0x3, 0x2, 0x2, 0x2, 0xe, 0x10a, 0x3, 0x2, 0x2, 0x2, 0x10,
|
|
0x118, 0x3, 0x2, 0x2, 0x2, 0x12, 0x120, 0x3, 0x2, 0x2, 0x2, 0x14,
|
|
0x128, 0x3, 0x2, 0x2, 0x2, 0x16, 0x130, 0x3, 0x2, 0x2, 0x2, 0x18,
|
|
0x13e, 0x3, 0x2, 0x2, 0x2, 0x1a, 0x144, 0x3, 0x2, 0x2, 0x2, 0x1c,
|
|
0x14a, 0x3, 0x2, 0x2, 0x2, 0x1e, 0x151, 0x3, 0x2, 0x2, 0x2, 0x20,
|
|
0x153, 0x3, 0x2, 0x2, 0x2, 0x22, 0x161, 0x3, 0x2, 0x2, 0x2, 0x24,
|
|
0x16b, 0x3, 0x2, 0x2, 0x2, 0x26, 0x17d, 0x3, 0x2, 0x2, 0x2, 0x28,
|
|
0x190, 0x3, 0x2, 0x2, 0x2, 0x2a, 0x197, 0x3, 0x2, 0x2, 0x2, 0x2c,
|
|
0x199, 0x3, 0x2, 0x2, 0x2, 0x2e, 0x19b, 0x3, 0x2, 0x2, 0x2, 0x30,
|
|
0x19f, 0x3, 0x2, 0x2, 0x2, 0x32, 0x1a2, 0x3, 0x2, 0x2, 0x2, 0x34,
|
|
0x1a7, 0x3, 0x2, 0x2, 0x2, 0x36, 0x1ab, 0x3, 0x2, 0x2, 0x2, 0x38,
|
|
0x1af, 0x3, 0x2, 0x2, 0x2, 0x3a, 0x1b1, 0x3, 0x2, 0x2, 0x2, 0x3c,
|
|
0x1b6, 0x3, 0x2, 0x2, 0x2, 0x3e, 0x1ba, 0x3, 0x2, 0x2, 0x2, 0x40,
|
|
0x1be, 0x3, 0x2, 0x2, 0x2, 0x42, 0x1c2, 0x3, 0x2, 0x2, 0x2, 0x44,
|
|
0x1c5, 0x3, 0x2, 0x2, 0x2, 0x46, 0x1c7, 0x3, 0x2, 0x2, 0x2, 0x48,
|
|
0x1ca, 0x3, 0x2, 0x2, 0x2, 0x4a, 0x1df, 0x3, 0x2, 0x2, 0x2, 0x4c,
|
|
0x1e1, 0x3, 0x2, 0x2, 0x2, 0x4e, 0x1f7, 0x3, 0x2, 0x2, 0x2, 0x50,
|
|
0x1ff, 0x3, 0x2, 0x2, 0x2, 0x52, 0x201, 0x3, 0x2, 0x2, 0x2, 0x54,
|
|
0x217, 0x3, 0x2, 0x2, 0x2, 0x56, 0x21f, 0x3, 0x2, 0x2, 0x2, 0x58,
|
|
0x227, 0x3, 0x2, 0x2, 0x2, 0x5a, 0x22b, 0x3, 0x2, 0x2, 0x2, 0x5c,
|
|
0x237, 0x3, 0x2, 0x2, 0x2, 0x5e, 0x241, 0x3, 0x2, 0x2, 0x2, 0x60,
|
|
0x24c, 0x3, 0x2, 0x2, 0x2, 0x62, 0x254, 0x3, 0x2, 0x2, 0x2, 0x64,
|
|
0x258, 0x3, 0x2, 0x2, 0x2, 0x66, 0x261, 0x3, 0x2, 0x2, 0x2, 0x68,
|
|
0x271, 0x3, 0x2, 0x2, 0x2, 0x6a, 0x276, 0x3, 0x2, 0x2, 0x2, 0x6c,
|
|
0x27f, 0x3, 0x2, 0x2, 0x2, 0x6e, 0x283, 0x3, 0x2, 0x2, 0x2, 0x70,
|
|
0x28d, 0x3, 0x2, 0x2, 0x2, 0x72, 0x28f, 0x3, 0x2, 0x2, 0x2, 0x74,
|
|
0x294, 0x3, 0x2, 0x2, 0x2, 0x76, 0x296, 0x3, 0x2, 0x2, 0x2, 0x78,
|
|
0x298, 0x3, 0x2, 0x2, 0x2, 0x7a, 0x29b, 0x3, 0x2, 0x2, 0x2, 0x7c,
|
|
0x2aa, 0x3, 0x2, 0x2, 0x2, 0x7e, 0x2ae, 0x3, 0x2, 0x2, 0x2, 0x80,
|
|
0x2b9, 0x3, 0x2, 0x2, 0x2, 0x82, 0x2c3, 0x3, 0x2, 0x2, 0x2, 0x84,
|
|
0x2c5, 0x3, 0x2, 0x2, 0x2, 0x86, 0x2cc, 0x3, 0x2, 0x2, 0x2, 0x88,
|
|
0x2d0, 0x3, 0x2, 0x2, 0x2, 0x8a, 0x2d2, 0x3, 0x2, 0x2, 0x2, 0x8c,
|
|
0x2e3, 0x3, 0x2, 0x2, 0x2, 0x8e, 0x2ee, 0x3, 0x2, 0x2, 0x2, 0x90,
|
|
0x308, 0x3, 0x2, 0x2, 0x2, 0x92, 0x318, 0x3, 0x2, 0x2, 0x2, 0x94,
|
|
0x325, 0x3, 0x2, 0x2, 0x2, 0x96, 0x32d, 0x3, 0x2, 0x2, 0x2, 0x98,
|
|
0x332, 0x3, 0x2, 0x2, 0x2, 0x9a, 0x338, 0x3, 0x2, 0x2, 0x2, 0x9c,
|
|
0x33a, 0x3, 0x2, 0x2, 0x2, 0x9e, 0x33c, 0x3, 0x2, 0x2, 0x2, 0xa0,
|
|
0x33e, 0x3, 0x2, 0x2, 0x2, 0xa2, 0x342, 0x3, 0x2, 0x2, 0x2, 0xa4,
|
|
0x34e, 0x3, 0x2, 0x2, 0x2, 0xa6, 0x350, 0x3, 0x2, 0x2, 0x2, 0xa8,
|
|
0x359, 0x3, 0x2, 0x2, 0x2, 0xaa, 0x364, 0x3, 0x2, 0x2, 0x2, 0xac,
|
|
0x36a, 0x3, 0x2, 0x2, 0x2, 0xae, 0x36e, 0x3, 0x2, 0x2, 0x2, 0xb0,
|
|
0x370, 0x3, 0x2, 0x2, 0x2, 0xb2, 0x380, 0x3, 0x2, 0x2, 0x2, 0xb4,
|
|
0x385, 0x3, 0x2, 0x2, 0x2, 0xb6, 0x388, 0x3, 0x2, 0x2, 0x2, 0xb8,
|
|
0x38c, 0x3, 0x2, 0x2, 0x2, 0xba, 0x390, 0x3, 0x2, 0x2, 0x2, 0xbc,
|
|
0x394, 0x3, 0x2, 0x2, 0x2, 0xbe, 0x3a8, 0x3, 0x2, 0x2, 0x2, 0xc0,
|
|
0x3ad, 0x3, 0x2, 0x2, 0x2, 0xc2, 0x3c0, 0x3, 0x2, 0x2, 0x2, 0xc4,
|
|
0x3c4, 0x3, 0x2, 0x2, 0x2, 0xc6, 0x3c6, 0x3, 0x2, 0x2, 0x2, 0xc8,
|
|
0xcc, 0x5, 0x4, 0x3, 0x2, 0xc9, 0xcb, 0x5, 0xc6, 0x64, 0x2, 0xca,
|
|
0xc9, 0x3, 0x2, 0x2, 0x2, 0xcb, 0xce, 0x3, 0x2, 0x2, 0x2, 0xcc, 0xca,
|
|
0x3, 0x2, 0x2, 0x2, 0xcc, 0xcd, 0x3, 0x2, 0x2, 0x2, 0xcd, 0xd8, 0x3,
|
|
0x2, 0x2, 0x2, 0xce, 0xcc, 0x3, 0x2, 0x2, 0x2, 0xcf, 0xd3, 0x5, 0x6,
|
|
0x4, 0x2, 0xd0, 0xd2, 0x5, 0xc6, 0x64, 0x2, 0xd1, 0xd0, 0x3, 0x2,
|
|
0x2, 0x2, 0xd2, 0xd5, 0x3, 0x2, 0x2, 0x2, 0xd3, 0xd1, 0x3, 0x2, 0x2,
|
|
0x2, 0xd3, 0xd4, 0x3, 0x2, 0x2, 0x2, 0xd4, 0xd7, 0x3, 0x2, 0x2, 0x2,
|
|
0xd5, 0xd3, 0x3, 0x2, 0x2, 0x2, 0xd6, 0xcf, 0x3, 0x2, 0x2, 0x2, 0xd7,
|
|
0xda, 0x3, 0x2, 0x2, 0x2, 0xd8, 0xd6, 0x3, 0x2, 0x2, 0x2, 0xd8, 0xd9,
|
|
0x3, 0x2, 0x2, 0x2, 0xd9, 0xe8, 0x3, 0x2, 0x2, 0x2, 0xda, 0xd8, 0x3,
|
|
0x2, 0x2, 0x2, 0xdb, 0xdf, 0x5, 0x1a, 0xe, 0x2, 0xdc, 0xdf, 0x5,
|
|
0x1c, 0xf, 0x2, 0xdd, 0xdf, 0x5, 0xc, 0x7, 0x2, 0xde, 0xdb, 0x3,
|
|
0x2, 0x2, 0x2, 0xde, 0xdc, 0x3, 0x2, 0x2, 0x2, 0xde, 0xdd, 0x3, 0x2,
|
|
0x2, 0x2, 0xdf, 0xe3, 0x3, 0x2, 0x2, 0x2, 0xe0, 0xe2, 0x5, 0xc6,
|
|
0x64, 0x2, 0xe1, 0xe0, 0x3, 0x2, 0x2, 0x2, 0xe2, 0xe5, 0x3, 0x2,
|
|
0x2, 0x2, 0xe3, 0xe1, 0x3, 0x2, 0x2, 0x2, 0xe3, 0xe4, 0x3, 0x2, 0x2,
|
|
0x2, 0xe4, 0xe7, 0x3, 0x2, 0x2, 0x2, 0xe5, 0xe3, 0x3, 0x2, 0x2, 0x2,
|
|
0xe6, 0xde, 0x3, 0x2, 0x2, 0x2, 0xe7, 0xea, 0x3, 0x2, 0x2, 0x2, 0xe8,
|
|
0xe6, 0x3, 0x2, 0x2, 0x2, 0xe8, 0xe9, 0x3, 0x2, 0x2, 0x2, 0xe9, 0xeb,
|
|
0x3, 0x2, 0x2, 0x2, 0xea, 0xe8, 0x3, 0x2, 0x2, 0x2, 0xeb, 0xec, 0x7,
|
|
0x2, 0x2, 0x3, 0xec, 0x3, 0x3, 0x2, 0x2, 0x2, 0xed, 0xee, 0x7, 0x10,
|
|
0x2, 0x2, 0xee, 0xef, 0x7, 0x1d, 0x2, 0x2, 0xef, 0x5, 0x3, 0x2, 0x2,
|
|
0x2, 0xf0, 0xfc, 0x7, 0x19, 0x2, 0x2, 0xf1, 0xfd, 0x5, 0x8, 0x5,
|
|
0x2, 0xf2, 0xf8, 0x7, 0x1e, 0x2, 0x2, 0xf3, 0xf4, 0x5, 0x8, 0x5,
|
|
0x2, 0xf4, 0xf5, 0x5, 0xc6, 0x64, 0x2, 0xf5, 0xf7, 0x3, 0x2, 0x2,
|
|
0x2, 0xf6, 0xf3, 0x3, 0x2, 0x2, 0x2, 0xf7, 0xfa, 0x3, 0x2, 0x2, 0x2,
|
|
0xf8, 0xf6, 0x3, 0x2, 0x2, 0x2, 0xf8, 0xf9, 0x3, 0x2, 0x2, 0x2, 0xf9,
|
|
0xfb, 0x3, 0x2, 0x2, 0x2, 0xfa, 0xf8, 0x3, 0x2, 0x2, 0x2, 0xfb, 0xfd,
|
|
0x7, 0x1f, 0x2, 0x2, 0xfc, 0xf1, 0x3, 0x2, 0x2, 0x2, 0xfc, 0xf2,
|
|
0x3, 0x2, 0x2, 0x2, 0xfd, 0x7, 0x3, 0x2, 0x2, 0x2, 0xfe, 0x100, 0x9,
|
|
0x2, 0x2, 0x2, 0xff, 0xfe, 0x3, 0x2, 0x2, 0x2, 0xff, 0x100, 0x3,
|
|
0x2, 0x2, 0x2, 0x100, 0x101, 0x3, 0x2, 0x2, 0x2, 0x101, 0x102, 0x5,
|
|
0xa, 0x6, 0x2, 0x102, 0x9, 0x3, 0x2, 0x2, 0x2, 0x103, 0x104, 0x5,
|
|
0xb4, 0x5b, 0x2, 0x104, 0xb, 0x3, 0x2, 0x2, 0x2, 0x105, 0x109, 0x5,
|
|
0xe, 0x8, 0x2, 0x106, 0x109, 0x5, 0x16, 0xc, 0x2, 0x107, 0x109, 0x5,
|
|
0x20, 0x11, 0x2, 0x108, 0x105, 0x3, 0x2, 0x2, 0x2, 0x108, 0x106,
|
|
0x3, 0x2, 0x2, 0x2, 0x108, 0x107, 0x3, 0x2, 0x2, 0x2, 0x109, 0xd,
|
|
0x3, 0x2, 0x2, 0x2, 0x10a, 0x116, 0x7, 0x12, 0x2, 0x2, 0x10b, 0x117,
|
|
0x5, 0x10, 0x9, 0x2, 0x10c, 0x112, 0x7, 0x1e, 0x2, 0x2, 0x10d, 0x10e,
|
|
0x5, 0x10, 0x9, 0x2, 0x10e, 0x10f, 0x5, 0xc6, 0x64, 0x2, 0x10f, 0x111,
|
|
0x3, 0x2, 0x2, 0x2, 0x110, 0x10d, 0x3, 0x2, 0x2, 0x2, 0x111, 0x114,
|
|
0x3, 0x2, 0x2, 0x2, 0x112, 0x110, 0x3, 0x2, 0x2, 0x2, 0x112, 0x113,
|
|
0x3, 0x2, 0x2, 0x2, 0x113, 0x115, 0x3, 0x2, 0x2, 0x2, 0x114, 0x112,
|
|
0x3, 0x2, 0x2, 0x2, 0x115, 0x117, 0x7, 0x1f, 0x2, 0x2, 0x116, 0x10b,
|
|
0x3, 0x2, 0x2, 0x2, 0x116, 0x10c, 0x3, 0x2, 0x2, 0x2, 0x117, 0xf,
|
|
0x3, 0x2, 0x2, 0x2, 0x118, 0x11e, 0x5, 0x12, 0xa, 0x2, 0x119, 0x11b,
|
|
0x5, 0x6c, 0x37, 0x2, 0x11a, 0x119, 0x3, 0x2, 0x2, 0x2, 0x11a, 0x11b,
|
|
0x3, 0x2, 0x2, 0x2, 0x11b, 0x11c, 0x3, 0x2, 0x2, 0x2, 0x11c, 0x11d,
|
|
0x7, 0x24, 0x2, 0x2, 0x11d, 0x11f, 0x5, 0x14, 0xb, 0x2, 0x11e, 0x11a,
|
|
0x3, 0x2, 0x2, 0x2, 0x11e, 0x11f, 0x3, 0x2, 0x2, 0x2, 0x11f, 0x11,
|
|
0x3, 0x2, 0x2, 0x2, 0x120, 0x125, 0x7, 0x1d, 0x2, 0x2, 0x121, 0x122,
|
|
0x7, 0x25, 0x2, 0x2, 0x122, 0x124, 0x7, 0x1d, 0x2, 0x2, 0x123, 0x121,
|
|
0x3, 0x2, 0x2, 0x2, 0x124, 0x127, 0x3, 0x2, 0x2, 0x2, 0x125, 0x123,
|
|
0x3, 0x2, 0x2, 0x2, 0x125, 0x126, 0x3, 0x2, 0x2, 0x2, 0x126, 0x13,
|
|
0x3, 0x2, 0x2, 0x2, 0x127, 0x125, 0x3, 0x2, 0x2, 0x2, 0x128, 0x12d,
|
|
0x5, 0x8e, 0x48, 0x2, 0x129, 0x12a, 0x7, 0x25, 0x2, 0x2, 0x12a, 0x12c,
|
|
0x5, 0x8e, 0x48, 0x2, 0x12b, 0x129, 0x3, 0x2, 0x2, 0x2, 0x12c, 0x12f,
|
|
0x3, 0x2, 0x2, 0x2, 0x12d, 0x12b, 0x3, 0x2, 0x2, 0x2, 0x12d, 0x12e,
|
|
0x3, 0x2, 0x2, 0x2, 0x12e, 0x15, 0x3, 0x2, 0x2, 0x2, 0x12f, 0x12d,
|
|
0x3, 0x2, 0x2, 0x2, 0x130, 0x13c, 0x7, 0x16, 0x2, 0x2, 0x131, 0x13d,
|
|
0x5, 0x18, 0xd, 0x2, 0x132, 0x138, 0x7, 0x1e, 0x2, 0x2, 0x133, 0x134,
|
|
0x5, 0x18, 0xd, 0x2, 0x134, 0x135, 0x5, 0xc6, 0x64, 0x2, 0x135, 0x137,
|
|
0x3, 0x2, 0x2, 0x2, 0x136, 0x133, 0x3, 0x2, 0x2, 0x2, 0x137, 0x13a,
|
|
0x3, 0x2, 0x2, 0x2, 0x138, 0x136, 0x3, 0x2, 0x2, 0x2, 0x138, 0x139,
|
|
0x3, 0x2, 0x2, 0x2, 0x139, 0x13b, 0x3, 0x2, 0x2, 0x2, 0x13a, 0x138,
|
|
0x3, 0x2, 0x2, 0x2, 0x13b, 0x13d, 0x7, 0x1f, 0x2, 0x2, 0x13c, 0x131,
|
|
0x3, 0x2, 0x2, 0x2, 0x13c, 0x132, 0x3, 0x2, 0x2, 0x2, 0x13d, 0x17,
|
|
0x3, 0x2, 0x2, 0x2, 0x13e, 0x140, 0x7, 0x1d, 0x2, 0x2, 0x13f, 0x141,
|
|
0x7, 0x24, 0x2, 0x2, 0x140, 0x13f, 0x3, 0x2, 0x2, 0x2, 0x140, 0x141,
|
|
0x3, 0x2, 0x2, 0x2, 0x141, 0x142, 0x3, 0x2, 0x2, 0x2, 0x142, 0x143,
|
|
0x5, 0x6c, 0x37, 0x2, 0x143, 0x19, 0x3, 0x2, 0x2, 0x2, 0x144, 0x145,
|
|
0x7, 0x5, 0x2, 0x2, 0x145, 0x146, 0x7, 0x1d, 0x2, 0x2, 0x146, 0x148,
|
|
0x5, 0x86, 0x44, 0x2, 0x147, 0x149, 0x5, 0x24, 0x13, 0x2, 0x148,
|
|
0x147, 0x3, 0x2, 0x2, 0x2, 0x148, 0x149, 0x3, 0x2, 0x2, 0x2, 0x149,
|
|
0x1b, 0x3, 0x2, 0x2, 0x2, 0x14a, 0x14b, 0x7, 0x5, 0x2, 0x2, 0x14b,
|
|
0x14c, 0x5, 0x1e, 0x10, 0x2, 0x14c, 0x14d, 0x7, 0x1d, 0x2, 0x2, 0x14d,
|
|
0x14f, 0x5, 0x86, 0x44, 0x2, 0x14e, 0x150, 0x5, 0x24, 0x13, 0x2,
|
|
0x14f, 0x14e, 0x3, 0x2, 0x2, 0x2, 0x14f, 0x150, 0x3, 0x2, 0x2, 0x2,
|
|
0x150, 0x1d, 0x3, 0x2, 0x2, 0x2, 0x151, 0x152, 0x5, 0x8a, 0x46, 0x2,
|
|
0x152, 0x1f, 0x3, 0x2, 0x2, 0x2, 0x153, 0x15f, 0x7, 0x1b, 0x2, 0x2,
|
|
0x154, 0x160, 0x5, 0x22, 0x12, 0x2, 0x155, 0x15b, 0x7, 0x1e, 0x2,
|
|
0x2, 0x156, 0x157, 0x5, 0x22, 0x12, 0x2, 0x157, 0x158, 0x5, 0xc6,
|
|
0x64, 0x2, 0x158, 0x15a, 0x3, 0x2, 0x2, 0x2, 0x159, 0x156, 0x3, 0x2,
|
|
0x2, 0x2, 0x15a, 0x15d, 0x3, 0x2, 0x2, 0x2, 0x15b, 0x159, 0x3, 0x2,
|
|
0x2, 0x2, 0x15b, 0x15c, 0x3, 0x2, 0x2, 0x2, 0x15c, 0x15e, 0x3, 0x2,
|
|
0x2, 0x2, 0x15d, 0x15b, 0x3, 0x2, 0x2, 0x2, 0x15e, 0x160, 0x7, 0x1f,
|
|
0x2, 0x2, 0x15f, 0x154, 0x3, 0x2, 0x2, 0x2, 0x15f, 0x155, 0x3, 0x2,
|
|
0x2, 0x2, 0x160, 0x21, 0x3, 0x2, 0x2, 0x2, 0x161, 0x169, 0x5, 0x12,
|
|
0xa, 0x2, 0x162, 0x165, 0x5, 0x6c, 0x37, 0x2, 0x163, 0x164, 0x7,
|
|
0x24, 0x2, 0x2, 0x164, 0x166, 0x5, 0x14, 0xb, 0x2, 0x165, 0x163,
|
|
0x3, 0x2, 0x2, 0x2, 0x165, 0x166, 0x3, 0x2, 0x2, 0x2, 0x166, 0x16a,
|
|
0x3, 0x2, 0x2, 0x2, 0x167, 0x168, 0x7, 0x24, 0x2, 0x2, 0x168, 0x16a,
|
|
0x5, 0x14, 0xb, 0x2, 0x169, 0x162, 0x3, 0x2, 0x2, 0x2, 0x169, 0x167,
|
|
0x3, 0x2, 0x2, 0x2, 0x16a, 0x23, 0x3, 0x2, 0x2, 0x2, 0x16b, 0x16f,
|
|
0x7, 0x20, 0x2, 0x2, 0x16c, 0x16e, 0x5, 0xc6, 0x64, 0x2, 0x16d, 0x16c,
|
|
0x3, 0x2, 0x2, 0x2, 0x16e, 0x171, 0x3, 0x2, 0x2, 0x2, 0x16f, 0x16d,
|
|
0x3, 0x2, 0x2, 0x2, 0x16f, 0x170, 0x3, 0x2, 0x2, 0x2, 0x170, 0x173,
|
|
0x3, 0x2, 0x2, 0x2, 0x171, 0x16f, 0x3, 0x2, 0x2, 0x2, 0x172, 0x174,
|
|
0x5, 0x26, 0x14, 0x2, 0x173, 0x172, 0x3, 0x2, 0x2, 0x2, 0x173, 0x174,
|
|
0x3, 0x2, 0x2, 0x2, 0x174, 0x175, 0x3, 0x2, 0x2, 0x2, 0x175, 0x176,
|
|
0x7, 0x21, 0x2, 0x2, 0x176, 0x25, 0x3, 0x2, 0x2, 0x2, 0x177, 0x179,
|
|
0x5, 0x28, 0x15, 0x2, 0x178, 0x17a, 0x5, 0xc6, 0x64, 0x2, 0x179,
|
|
0x178, 0x3, 0x2, 0x2, 0x2, 0x17a, 0x17b, 0x3, 0x2, 0x2, 0x2, 0x17b,
|
|
0x179, 0x3, 0x2, 0x2, 0x2, 0x17b, 0x17c, 0x3, 0x2, 0x2, 0x2, 0x17c,
|
|
0x17e, 0x3, 0x2, 0x2, 0x2, 0x17d, 0x177, 0x3, 0x2, 0x2, 0x2, 0x17e,
|
|
0x17f, 0x3, 0x2, 0x2, 0x2, 0x17f, 0x17d, 0x3, 0x2, 0x2, 0x2, 0x17f,
|
|
0x180, 0x3, 0x2, 0x2, 0x2, 0x180, 0x27, 0x3, 0x2, 0x2, 0x2, 0x181,
|
|
0x191, 0x5, 0xc, 0x7, 0x2, 0x182, 0x191, 0x5, 0x3a, 0x1e, 0x2, 0x183,
|
|
0x191, 0x5, 0x2a, 0x16, 0x2, 0x184, 0x191, 0x5, 0x6a, 0x36, 0x2,
|
|
0x185, 0x191, 0x5, 0x3c, 0x1f, 0x2, 0x186, 0x191, 0x5, 0x3e, 0x20,
|
|
0x2, 0x187, 0x191, 0x5, 0x40, 0x21, 0x2, 0x188, 0x191, 0x5, 0x42,
|
|
0x22, 0x2, 0x189, 0x191, 0x5, 0x44, 0x23, 0x2, 0x18a, 0x191, 0x5,
|
|
0x24, 0x13, 0x2, 0x18b, 0x191, 0x5, 0x48, 0x25, 0x2, 0x18c, 0x191,
|
|
0x5, 0x4a, 0x26, 0x2, 0x18d, 0x191, 0x5, 0x5c, 0x2f, 0x2, 0x18e,
|
|
0x191, 0x5, 0x64, 0x33, 0x2, 0x18f, 0x191, 0x5, 0x46, 0x24, 0x2,
|
|
0x190, 0x181, 0x3, 0x2, 0x2, 0x2, 0x190, 0x182, 0x3, 0x2, 0x2, 0x2,
|
|
0x190, 0x183, 0x3, 0x2, 0x2, 0x2, 0x190, 0x184, 0x3, 0x2, 0x2, 0x2,
|
|
0x190, 0x185, 0x3, 0x2, 0x2, 0x2, 0x190, 0x186, 0x3, 0x2, 0x2, 0x2,
|
|
0x190, 0x187, 0x3, 0x2, 0x2, 0x2, 0x190, 0x188, 0x3, 0x2, 0x2, 0x2,
|
|
0x190, 0x189, 0x3, 0x2, 0x2, 0x2, 0x190, 0x18a, 0x3, 0x2, 0x2, 0x2,
|
|
0x190, 0x18b, 0x3, 0x2, 0x2, 0x2, 0x190, 0x18c, 0x3, 0x2, 0x2, 0x2,
|
|
0x190, 0x18d, 0x3, 0x2, 0x2, 0x2, 0x190, 0x18e, 0x3, 0x2, 0x2, 0x2,
|
|
0x190, 0x18f, 0x3, 0x2, 0x2, 0x2, 0x191, 0x29, 0x3, 0x2, 0x2, 0x2,
|
|
0x192, 0x198, 0x5, 0x2e, 0x18, 0x2, 0x193, 0x198, 0x5, 0x30, 0x19,
|
|
0x2, 0x194, 0x198, 0x5, 0x32, 0x1a, 0x2, 0x195, 0x198, 0x5, 0x2c,
|
|
0x17, 0x2, 0x196, 0x198, 0x5, 0x36, 0x1c, 0x2, 0x197, 0x192, 0x3,
|
|
0x2, 0x2, 0x2, 0x197, 0x193, 0x3, 0x2, 0x2, 0x2, 0x197, 0x194, 0x3,
|
|
0x2, 0x2, 0x2, 0x197, 0x195, 0x3, 0x2, 0x2, 0x2, 0x197, 0x196, 0x3,
|
|
0x2, 0x2, 0x2, 0x198, 0x2b, 0x3, 0x2, 0x2, 0x2, 0x199, 0x19a, 0x5,
|
|
0x8e, 0x48, 0x2, 0x19a, 0x2d, 0x3, 0x2, 0x2, 0x2, 0x19b, 0x19c, 0x5,
|
|
0x8e, 0x48, 0x2, 0x19c, 0x19d, 0x7, 0x44, 0x2, 0x2, 0x19d, 0x19e,
|
|
0x5, 0x8e, 0x48, 0x2, 0x19e, 0x2f, 0x3, 0x2, 0x2, 0x2, 0x19f, 0x1a0,
|
|
0x5, 0x8e, 0x48, 0x2, 0x1a0, 0x1a1, 0x9, 0x3, 0x2, 0x2, 0x1a1, 0x31,
|
|
0x3, 0x2, 0x2, 0x2, 0x1a2, 0x1a3, 0x5, 0x14, 0xb, 0x2, 0x1a3, 0x1a4,
|
|
0x5, 0x34, 0x1b, 0x2, 0x1a4, 0x1a5, 0x5, 0x14, 0xb, 0x2, 0x1a5, 0x33,
|
|
0x3, 0x2, 0x2, 0x2, 0x1a6, 0x1a8, 0x9, 0x4, 0x2, 0x2, 0x1a7, 0x1a6,
|
|
0x3, 0x2, 0x2, 0x2, 0x1a7, 0x1a8, 0x3, 0x2, 0x2, 0x2, 0x1a8, 0x1a9,
|
|
0x3, 0x2, 0x2, 0x2, 0x1a9, 0x1aa, 0x7, 0x24, 0x2, 0x2, 0x1aa, 0x35,
|
|
0x3, 0x2, 0x2, 0x2, 0x1ab, 0x1ac, 0x5, 0x12, 0xa, 0x2, 0x1ac, 0x1ad,
|
|
0x7, 0x2d, 0x2, 0x2, 0x1ad, 0x1ae, 0x5, 0x14, 0xb, 0x2, 0x1ae, 0x37,
|
|
0x3, 0x2, 0x2, 0x2, 0x1af, 0x1b0, 0x9, 0x5, 0x2, 0x2, 0x1b0, 0x39,
|
|
0x3, 0x2, 0x2, 0x2, 0x1b1, 0x1b2, 0x7, 0x1d, 0x2, 0x2, 0x1b2, 0x1b4,
|
|
0x7, 0x29, 0x2, 0x2, 0x1b3, 0x1b5, 0x5, 0x28, 0x15, 0x2, 0x1b4, 0x1b3,
|
|
0x3, 0x2, 0x2, 0x2, 0x1b4, 0x1b5, 0x3, 0x2, 0x2, 0x2, 0x1b5, 0x3b,
|
|
0x3, 0x2, 0x2, 0x2, 0x1b6, 0x1b8, 0x7, 0x1a, 0x2, 0x2, 0x1b7, 0x1b9,
|
|
0x5, 0x14, 0xb, 0x2, 0x1b8, 0x1b7, 0x3, 0x2, 0x2, 0x2, 0x1b8, 0x1b9,
|
|
0x3, 0x2, 0x2, 0x2, 0x1b9, 0x3d, 0x3, 0x2, 0x2, 0x2, 0x1ba, 0x1bc,
|
|
0x7, 0x3, 0x2, 0x2, 0x1bb, 0x1bd, 0x7, 0x1d, 0x2, 0x2, 0x1bc, 0x1bb,
|
|
0x3, 0x2, 0x2, 0x2, 0x1bc, 0x1bd, 0x3, 0x2, 0x2, 0x2, 0x1bd, 0x3f,
|
|
0x3, 0x2, 0x2, 0x2, 0x1be, 0x1c0, 0x7, 0x17, 0x2, 0x2, 0x1bf, 0x1c1,
|
|
0x7, 0x1d, 0x2, 0x2, 0x1c0, 0x1bf, 0x3, 0x2, 0x2, 0x2, 0x1c0, 0x1c1,
|
|
0x3, 0x2, 0x2, 0x2, 0x1c1, 0x41, 0x3, 0x2, 0x2, 0x2, 0x1c2, 0x1c3,
|
|
0x7, 0xf, 0x2, 0x2, 0x1c3, 0x1c4, 0x7, 0x1d, 0x2, 0x2, 0x1c4, 0x43,
|
|
0x3, 0x2, 0x2, 0x2, 0x1c5, 0x1c6, 0x7, 0x13, 0x2, 0x2, 0x1c6, 0x45,
|
|
0x3, 0x2, 0x2, 0x2, 0x1c7, 0x1c8, 0x7, 0x9, 0x2, 0x2, 0x1c8, 0x1c9,
|
|
0x5, 0x8e, 0x48, 0x2, 0x1c9, 0x47, 0x3, 0x2, 0x2, 0x2, 0x1ca, 0x1d3,
|
|
0x7, 0x14, 0x2, 0x2, 0x1cb, 0x1d4, 0x5, 0x8e, 0x48, 0x2, 0x1cc, 0x1cd,
|
|
0x5, 0xc6, 0x64, 0x2, 0x1cd, 0x1ce, 0x5, 0x8e, 0x48, 0x2, 0x1ce,
|
|
0x1d4, 0x3, 0x2, 0x2, 0x2, 0x1cf, 0x1d0, 0x5, 0x2a, 0x16, 0x2, 0x1d0,
|
|
0x1d1, 0x5, 0xc6, 0x64, 0x2, 0x1d1, 0x1d2, 0x5, 0x8e, 0x48, 0x2,
|
|
0x1d2, 0x1d4, 0x3, 0x2, 0x2, 0x2, 0x1d3, 0x1cb, 0x3, 0x2, 0x2, 0x2,
|
|
0x1d3, 0x1cc, 0x3, 0x2, 0x2, 0x2, 0x1d3, 0x1cf, 0x3, 0x2, 0x2, 0x2,
|
|
0x1d4, 0x1d5, 0x3, 0x2, 0x2, 0x2, 0x1d5, 0x1db, 0x5, 0x24, 0x13,
|
|
0x2, 0x1d6, 0x1d9, 0x7, 0xe, 0x2, 0x2, 0x1d7, 0x1da, 0x5, 0x48, 0x25,
|
|
0x2, 0x1d8, 0x1da, 0x5, 0x24, 0x13, 0x2, 0x1d9, 0x1d7, 0x3, 0x2,
|
|
0x2, 0x2, 0x1d9, 0x1d8, 0x3, 0x2, 0x2, 0x2, 0x1da, 0x1dc, 0x3, 0x2,
|
|
0x2, 0x2, 0x1db, 0x1d6, 0x3, 0x2, 0x2, 0x2, 0x1db, 0x1dc, 0x3, 0x2,
|
|
0x2, 0x2, 0x1dc, 0x49, 0x3, 0x2, 0x2, 0x2, 0x1dd, 0x1e0, 0x5, 0x4c,
|
|
0x27, 0x2, 0x1de, 0x1e0, 0x5, 0x52, 0x2a, 0x2, 0x1df, 0x1dd, 0x3,
|
|
0x2, 0x2, 0x2, 0x1df, 0x1de, 0x3, 0x2, 0x2, 0x2, 0x1e0, 0x4b, 0x3,
|
|
0x2, 0x2, 0x2, 0x1e1, 0x1ec, 0x7, 0x11, 0x2, 0x2, 0x1e2, 0x1e4, 0x5,
|
|
0x8e, 0x48, 0x2, 0x1e3, 0x1e2, 0x3, 0x2, 0x2, 0x2, 0x1e3, 0x1e4,
|
|
0x3, 0x2, 0x2, 0x2, 0x1e4, 0x1ed, 0x3, 0x2, 0x2, 0x2, 0x1e5, 0x1e7,
|
|
0x5, 0x2a, 0x16, 0x2, 0x1e6, 0x1e5, 0x3, 0x2, 0x2, 0x2, 0x1e6, 0x1e7,
|
|
0x3, 0x2, 0x2, 0x2, 0x1e7, 0x1e8, 0x3, 0x2, 0x2, 0x2, 0x1e8, 0x1ea,
|
|
0x5, 0xc6, 0x64, 0x2, 0x1e9, 0x1eb, 0x5, 0x8e, 0x48, 0x2, 0x1ea,
|
|
0x1e9, 0x3, 0x2, 0x2, 0x2, 0x1ea, 0x1eb, 0x3, 0x2, 0x2, 0x2, 0x1eb,
|
|
0x1ed, 0x3, 0x2, 0x2, 0x2, 0x1ec, 0x1e3, 0x3, 0x2, 0x2, 0x2, 0x1ec,
|
|
0x1e6, 0x3, 0x2, 0x2, 0x2, 0x1ed, 0x1ee, 0x3, 0x2, 0x2, 0x2, 0x1ee,
|
|
0x1f2, 0x7, 0x20, 0x2, 0x2, 0x1ef, 0x1f1, 0x5, 0x4e, 0x28, 0x2, 0x1f0,
|
|
0x1ef, 0x3, 0x2, 0x2, 0x2, 0x1f1, 0x1f4, 0x3, 0x2, 0x2, 0x2, 0x1f2,
|
|
0x1f0, 0x3, 0x2, 0x2, 0x2, 0x1f2, 0x1f3, 0x3, 0x2, 0x2, 0x2, 0x1f3,
|
|
0x1f5, 0x3, 0x2, 0x2, 0x2, 0x1f4, 0x1f2, 0x3, 0x2, 0x2, 0x2, 0x1f5,
|
|
0x1f6, 0x7, 0x21, 0x2, 0x2, 0x1f6, 0x4d, 0x3, 0x2, 0x2, 0x2, 0x1f7,
|
|
0x1f8, 0x5, 0x50, 0x29, 0x2, 0x1f8, 0x1fa, 0x7, 0x29, 0x2, 0x2, 0x1f9,
|
|
0x1fb, 0x5, 0x26, 0x14, 0x2, 0x1fa, 0x1f9, 0x3, 0x2, 0x2, 0x2, 0x1fa,
|
|
0x1fb, 0x3, 0x2, 0x2, 0x2, 0x1fb, 0x4f, 0x3, 0x2, 0x2, 0x2, 0x1fc,
|
|
0x1fd, 0x7, 0x8, 0x2, 0x2, 0x1fd, 0x200, 0x5, 0x14, 0xb, 0x2, 0x1fe,
|
|
0x200, 0x7, 0x4, 0x2, 0x2, 0x1ff, 0x1fc, 0x3, 0x2, 0x2, 0x2, 0x1ff,
|
|
0x1fe, 0x3, 0x2, 0x2, 0x2, 0x200, 0x51, 0x3, 0x2, 0x2, 0x2, 0x201,
|
|
0x20a, 0x7, 0x11, 0x2, 0x2, 0x202, 0x20b, 0x5, 0x54, 0x2b, 0x2, 0x203,
|
|
0x204, 0x5, 0xc6, 0x64, 0x2, 0x204, 0x205, 0x5, 0x54, 0x2b, 0x2,
|
|
0x205, 0x20b, 0x3, 0x2, 0x2, 0x2, 0x206, 0x207, 0x5, 0x2a, 0x16,
|
|
0x2, 0x207, 0x208, 0x5, 0xc6, 0x64, 0x2, 0x208, 0x209, 0x5, 0x54,
|
|
0x2b, 0x2, 0x209, 0x20b, 0x3, 0x2, 0x2, 0x2, 0x20a, 0x202, 0x3, 0x2,
|
|
0x2, 0x2, 0x20a, 0x203, 0x3, 0x2, 0x2, 0x2, 0x20a, 0x206, 0x3, 0x2,
|
|
0x2, 0x2, 0x20b, 0x20c, 0x3, 0x2, 0x2, 0x2, 0x20c, 0x210, 0x7, 0x20,
|
|
0x2, 0x2, 0x20d, 0x20f, 0x5, 0x56, 0x2c, 0x2, 0x20e, 0x20d, 0x3,
|
|
0x2, 0x2, 0x2, 0x20f, 0x212, 0x3, 0x2, 0x2, 0x2, 0x210, 0x20e, 0x3,
|
|
0x2, 0x2, 0x2, 0x210, 0x211, 0x3, 0x2, 0x2, 0x2, 0x211, 0x213, 0x3,
|
|
0x2, 0x2, 0x2, 0x212, 0x210, 0x3, 0x2, 0x2, 0x2, 0x213, 0x214, 0x7,
|
|
0x21, 0x2, 0x2, 0x214, 0x53, 0x3, 0x2, 0x2, 0x2, 0x215, 0x216, 0x7,
|
|
0x1d, 0x2, 0x2, 0x216, 0x218, 0x7, 0x2d, 0x2, 0x2, 0x217, 0x215,
|
|
0x3, 0x2, 0x2, 0x2, 0x217, 0x218, 0x3, 0x2, 0x2, 0x2, 0x218, 0x219,
|
|
0x3, 0x2, 0x2, 0x2, 0x219, 0x21a, 0x5, 0x90, 0x49, 0x2, 0x21a, 0x21b,
|
|
0x7, 0x2a, 0x2, 0x2, 0x21b, 0x21c, 0x7, 0x1e, 0x2, 0x2, 0x21c, 0x21d,
|
|
0x7, 0x16, 0x2, 0x2, 0x21d, 0x21e, 0x7, 0x1f, 0x2, 0x2, 0x21e, 0x55,
|
|
0x3, 0x2, 0x2, 0x2, 0x21f, 0x220, 0x5, 0x58, 0x2d, 0x2, 0x220, 0x222,
|
|
0x7, 0x29, 0x2, 0x2, 0x221, 0x223, 0x5, 0x26, 0x14, 0x2, 0x222, 0x221,
|
|
0x3, 0x2, 0x2, 0x2, 0x222, 0x223, 0x3, 0x2, 0x2, 0x2, 0x223, 0x57,
|
|
0x3, 0x2, 0x2, 0x2, 0x224, 0x225, 0x7, 0x8, 0x2, 0x2, 0x225, 0x228,
|
|
0x5, 0x5a, 0x2e, 0x2, 0x226, 0x228, 0x7, 0x4, 0x2, 0x2, 0x227, 0x224,
|
|
0x3, 0x2, 0x2, 0x2, 0x227, 0x226, 0x3, 0x2, 0x2, 0x2, 0x228, 0x59,
|
|
0x3, 0x2, 0x2, 0x2, 0x229, 0x22c, 0x5, 0x6c, 0x37, 0x2, 0x22a, 0x22c,
|
|
0x7, 0x1c, 0x2, 0x2, 0x22b, 0x229, 0x3, 0x2, 0x2, 0x2, 0x22b, 0x22a,
|
|
0x3, 0x2, 0x2, 0x2, 0x22c, 0x234, 0x3, 0x2, 0x2, 0x2, 0x22d, 0x230,
|
|
0x7, 0x25, 0x2, 0x2, 0x22e, 0x231, 0x5, 0x6c, 0x37, 0x2, 0x22f, 0x231,
|
|
0x7, 0x1c, 0x2, 0x2, 0x230, 0x22e, 0x3, 0x2, 0x2, 0x2, 0x230, 0x22f,
|
|
0x3, 0x2, 0x2, 0x2, 0x231, 0x233, 0x3, 0x2, 0x2, 0x2, 0x232, 0x22d,
|
|
0x3, 0x2, 0x2, 0x2, 0x233, 0x236, 0x3, 0x2, 0x2, 0x2, 0x234, 0x232,
|
|
0x3, 0x2, 0x2, 0x2, 0x234, 0x235, 0x3, 0x2, 0x2, 0x2, 0x235, 0x5b,
|
|
0x3, 0x2, 0x2, 0x2, 0x236, 0x234, 0x3, 0x2, 0x2, 0x2, 0x237, 0x238,
|
|
0x7, 0x7, 0x2, 0x2, 0x238, 0x23c, 0x7, 0x20, 0x2, 0x2, 0x239, 0x23b,
|
|
0x5, 0x5e, 0x30, 0x2, 0x23a, 0x239, 0x3, 0x2, 0x2, 0x2, 0x23b, 0x23e,
|
|
0x3, 0x2, 0x2, 0x2, 0x23c, 0x23a, 0x3, 0x2, 0x2, 0x2, 0x23c, 0x23d,
|
|
0x3, 0x2, 0x2, 0x2, 0x23d, 0x23f, 0x3, 0x2, 0x2, 0x2, 0x23e, 0x23c,
|
|
0x3, 0x2, 0x2, 0x2, 0x23f, 0x240, 0x7, 0x21, 0x2, 0x2, 0x240, 0x5d,
|
|
0x3, 0x2, 0x2, 0x2, 0x241, 0x242, 0x5, 0x60, 0x31, 0x2, 0x242, 0x244,
|
|
0x7, 0x29, 0x2, 0x2, 0x243, 0x245, 0x5, 0x26, 0x14, 0x2, 0x244, 0x243,
|
|
0x3, 0x2, 0x2, 0x2, 0x244, 0x245, 0x3, 0x2, 0x2, 0x2, 0x245, 0x5f,
|
|
0x3, 0x2, 0x2, 0x2, 0x246, 0x249, 0x7, 0x8, 0x2, 0x2, 0x247, 0x24a,
|
|
0x5, 0x2e, 0x18, 0x2, 0x248, 0x24a, 0x5, 0x62, 0x32, 0x2, 0x249,
|
|
0x247, 0x3, 0x2, 0x2, 0x2, 0x249, 0x248, 0x3, 0x2, 0x2, 0x2, 0x24a,
|
|
0x24d, 0x3, 0x2, 0x2, 0x2, 0x24b, 0x24d, 0x7, 0x4, 0x2, 0x2, 0x24c,
|
|
0x246, 0x3, 0x2, 0x2, 0x2, 0x24c, 0x24b, 0x3, 0x2, 0x2, 0x2, 0x24d,
|
|
0x61, 0x3, 0x2, 0x2, 0x2, 0x24e, 0x24f, 0x5, 0x14, 0xb, 0x2, 0x24f,
|
|
0x250, 0x7, 0x24, 0x2, 0x2, 0x250, 0x255, 0x3, 0x2, 0x2, 0x2, 0x251,
|
|
0x252, 0x5, 0x12, 0xa, 0x2, 0x252, 0x253, 0x7, 0x2d, 0x2, 0x2, 0x253,
|
|
0x255, 0x3, 0x2, 0x2, 0x2, 0x254, 0x24e, 0x3, 0x2, 0x2, 0x2, 0x254,
|
|
0x251, 0x3, 0x2, 0x2, 0x2, 0x254, 0x255, 0x3, 0x2, 0x2, 0x2, 0x255,
|
|
0x256, 0x3, 0x2, 0x2, 0x2, 0x256, 0x257, 0x5, 0x8e, 0x48, 0x2, 0x257,
|
|
0x63, 0x3, 0x2, 0x2, 0x2, 0x258, 0x25c, 0x7, 0x18, 0x2, 0x2, 0x259,
|
|
0x25d, 0x5, 0x8e, 0x48, 0x2, 0x25a, 0x25d, 0x5, 0x66, 0x34, 0x2,
|
|
0x25b, 0x25d, 0x5, 0x68, 0x35, 0x2, 0x25c, 0x259, 0x3, 0x2, 0x2,
|
|
0x2, 0x25c, 0x25a, 0x3, 0x2, 0x2, 0x2, 0x25c, 0x25b, 0x3, 0x2, 0x2,
|
|
0x2, 0x25c, 0x25d, 0x3, 0x2, 0x2, 0x2, 0x25d, 0x25e, 0x3, 0x2, 0x2,
|
|
0x2, 0x25e, 0x25f, 0x5, 0x24, 0x13, 0x2, 0x25f, 0x65, 0x3, 0x2, 0x2,
|
|
0x2, 0x260, 0x262, 0x5, 0x2a, 0x16, 0x2, 0x261, 0x260, 0x3, 0x2,
|
|
0x2, 0x2, 0x261, 0x262, 0x3, 0x2, 0x2, 0x2, 0x262, 0x263, 0x3, 0x2,
|
|
0x2, 0x2, 0x263, 0x265, 0x5, 0xc6, 0x64, 0x2, 0x264, 0x266, 0x5,
|
|
0x8e, 0x48, 0x2, 0x265, 0x264, 0x3, 0x2, 0x2, 0x2, 0x265, 0x266,
|
|
0x3, 0x2, 0x2, 0x2, 0x266, 0x267, 0x3, 0x2, 0x2, 0x2, 0x267, 0x269,
|
|
0x5, 0xc6, 0x64, 0x2, 0x268, 0x26a, 0x5, 0x2a, 0x16, 0x2, 0x269,
|
|
0x268, 0x3, 0x2, 0x2, 0x2, 0x269, 0x26a, 0x3, 0x2, 0x2, 0x2, 0x26a,
|
|
0x67, 0x3, 0x2, 0x2, 0x2, 0x26b, 0x26c, 0x5, 0x14, 0xb, 0x2, 0x26c,
|
|
0x26d, 0x7, 0x24, 0x2, 0x2, 0x26d, 0x272, 0x3, 0x2, 0x2, 0x2, 0x26e,
|
|
0x26f, 0x5, 0x12, 0xa, 0x2, 0x26f, 0x270, 0x7, 0x2d, 0x2, 0x2, 0x270,
|
|
0x272, 0x3, 0x2, 0x2, 0x2, 0x271, 0x26b, 0x3, 0x2, 0x2, 0x2, 0x271,
|
|
0x26e, 0x3, 0x2, 0x2, 0x2, 0x271, 0x272, 0x3, 0x2, 0x2, 0x2, 0x272,
|
|
0x273, 0x3, 0x2, 0x2, 0x2, 0x273, 0x274, 0x7, 0x15, 0x2, 0x2, 0x274,
|
|
0x275, 0x5, 0x8e, 0x48, 0x2, 0x275, 0x69, 0x3, 0x2, 0x2, 0x2, 0x276,
|
|
0x277, 0x7, 0xa, 0x2, 0x2, 0x277, 0x278, 0x5, 0x8e, 0x48, 0x2, 0x278,
|
|
0x6b, 0x3, 0x2, 0x2, 0x2, 0x279, 0x280, 0x5, 0x6e, 0x38, 0x2, 0x27a,
|
|
0x280, 0x5, 0x70, 0x39, 0x2, 0x27b, 0x27c, 0x7, 0x1e, 0x2, 0x2, 0x27c,
|
|
0x27d, 0x5, 0x6c, 0x37, 0x2, 0x27d, 0x27e, 0x7, 0x1f, 0x2, 0x2, 0x27e,
|
|
0x280, 0x3, 0x2, 0x2, 0x2, 0x27f, 0x279, 0x3, 0x2, 0x2, 0x2, 0x27f,
|
|
0x27a, 0x3, 0x2, 0x2, 0x2, 0x27f, 0x27b, 0x3, 0x2, 0x2, 0x2, 0x280,
|
|
0x6d, 0x3, 0x2, 0x2, 0x2, 0x281, 0x284, 0x5, 0xa0, 0x51, 0x2, 0x282,
|
|
0x284, 0x7, 0x1d, 0x2, 0x2, 0x283, 0x281, 0x3, 0x2, 0x2, 0x2, 0x283,
|
|
0x282, 0x3, 0x2, 0x2, 0x2, 0x284, 0x6f, 0x3, 0x2, 0x2, 0x2, 0x285,
|
|
0x28e, 0x5, 0x72, 0x3a, 0x2, 0x286, 0x28e, 0x5, 0xb0, 0x59, 0x2,
|
|
0x287, 0x28e, 0x5, 0x78, 0x3d, 0x2, 0x288, 0x28e, 0x5, 0x84, 0x43,
|
|
0x2, 0x289, 0x28e, 0x5, 0x7a, 0x3e, 0x2, 0x28a, 0x28e, 0x5, 0x7c,
|
|
0x3f, 0x2, 0x28b, 0x28e, 0x5, 0x7e, 0x40, 0x2, 0x28c, 0x28e, 0x5,
|
|
0x80, 0x41, 0x2, 0x28d, 0x285, 0x3, 0x2, 0x2, 0x2, 0x28d, 0x286,
|
|
0x3, 0x2, 0x2, 0x2, 0x28d, 0x287, 0x3, 0x2, 0x2, 0x2, 0x28d, 0x288,
|
|
0x3, 0x2, 0x2, 0x2, 0x28d, 0x289, 0x3, 0x2, 0x2, 0x2, 0x28d, 0x28a,
|
|
0x3, 0x2, 0x2, 0x2, 0x28d, 0x28b, 0x3, 0x2, 0x2, 0x2, 0x28d, 0x28c,
|
|
0x3, 0x2, 0x2, 0x2, 0x28e, 0x71, 0x3, 0x2, 0x2, 0x2, 0x28f, 0x290,
|
|
0x7, 0x22, 0x2, 0x2, 0x290, 0x291, 0x5, 0x74, 0x3b, 0x2, 0x291, 0x292,
|
|
0x7, 0x23, 0x2, 0x2, 0x292, 0x293, 0x5, 0x76, 0x3c, 0x2, 0x293, 0x73,
|
|
0x3, 0x2, 0x2, 0x2, 0x294, 0x295, 0x5, 0x8e, 0x48, 0x2, 0x295, 0x75,
|
|
0x3, 0x2, 0x2, 0x2, 0x296, 0x297, 0x5, 0x6c, 0x37, 0x2, 0x297, 0x77,
|
|
0x3, 0x2, 0x2, 0x2, 0x298, 0x299, 0x7, 0x42, 0x2, 0x2, 0x299, 0x29a,
|
|
0x5, 0x6c, 0x37, 0x2, 0x29a, 0x79, 0x3, 0x2, 0x2, 0x2, 0x29b, 0x29c,
|
|
0x7, 0x6, 0x2, 0x2, 0x29c, 0x2a5, 0x7, 0x20, 0x2, 0x2, 0x29d, 0x2a0,
|
|
0x5, 0x82, 0x42, 0x2, 0x29e, 0x2a0, 0x5, 0x6e, 0x38, 0x2, 0x29f,
|
|
0x29d, 0x3, 0x2, 0x2, 0x2, 0x29f, 0x29e, 0x3, 0x2, 0x2, 0x2, 0x2a0,
|
|
0x2a1, 0x3, 0x2, 0x2, 0x2, 0x2a1, 0x2a2, 0x5, 0xc6, 0x64, 0x2, 0x2a2,
|
|
0x2a4, 0x3, 0x2, 0x2, 0x2, 0x2a3, 0x29f, 0x3, 0x2, 0x2, 0x2, 0x2a4,
|
|
0x2a7, 0x3, 0x2, 0x2, 0x2, 0x2a5, 0x2a3, 0x3, 0x2, 0x2, 0x2, 0x2a5,
|
|
0x2a6, 0x3, 0x2, 0x2, 0x2, 0x2a6, 0x2a8, 0x3, 0x2, 0x2, 0x2, 0x2a7,
|
|
0x2a5, 0x3, 0x2, 0x2, 0x2, 0x2a8, 0x2a9, 0x7, 0x21, 0x2, 0x2, 0x2a9,
|
|
0x7b, 0x3, 0x2, 0x2, 0x2, 0x2aa, 0x2ab, 0x7, 0x22, 0x2, 0x2, 0x2ab,
|
|
0x2ac, 0x7, 0x23, 0x2, 0x2, 0x2ac, 0x2ad, 0x5, 0x76, 0x3c, 0x2, 0x2ad,
|
|
0x7d, 0x3, 0x2, 0x2, 0x2, 0x2ae, 0x2af, 0x7, 0xb, 0x2, 0x2, 0x2af,
|
|
0x2b0, 0x7, 0x22, 0x2, 0x2, 0x2b0, 0x2b1, 0x5, 0x6c, 0x37, 0x2, 0x2b1,
|
|
0x2b2, 0x7, 0x23, 0x2, 0x2, 0x2b2, 0x2b3, 0x5, 0x76, 0x3c, 0x2, 0x2b3,
|
|
0x7f, 0x3, 0x2, 0x2, 0x2, 0x2b4, 0x2ba, 0x7, 0xd, 0x2, 0x2, 0x2b5,
|
|
0x2b6, 0x7, 0xd, 0x2, 0x2, 0x2b6, 0x2ba, 0x7, 0x44, 0x2, 0x2, 0x2b7,
|
|
0x2b8, 0x7, 0x44, 0x2, 0x2, 0x2b8, 0x2ba, 0x7, 0xd, 0x2, 0x2, 0x2b9,
|
|
0x2b4, 0x3, 0x2, 0x2, 0x2, 0x2b9, 0x2b5, 0x3, 0x2, 0x2, 0x2, 0x2b9,
|
|
0x2b7, 0x3, 0x2, 0x2, 0x2, 0x2ba, 0x2bb, 0x3, 0x2, 0x2, 0x2, 0x2bb,
|
|
0x2bc, 0x5, 0x76, 0x3c, 0x2, 0x2bc, 0x81, 0x3, 0x2, 0x2, 0x2, 0x2bd,
|
|
0x2be, 0x7, 0x1d, 0x2, 0x2, 0x2be, 0x2bf, 0x5, 0x8a, 0x46, 0x2, 0x2bf,
|
|
0x2c0, 0x5, 0x88, 0x45, 0x2, 0x2c0, 0x2c4, 0x3, 0x2, 0x2, 0x2, 0x2c1,
|
|
0x2c2, 0x7, 0x1d, 0x2, 0x2, 0x2c2, 0x2c4, 0x5, 0x8a, 0x46, 0x2, 0x2c3,
|
|
0x2bd, 0x3, 0x2, 0x2, 0x2, 0x2c3, 0x2c1, 0x3, 0x2, 0x2, 0x2, 0x2c4,
|
|
0x83, 0x3, 0x2, 0x2, 0x2, 0x2c5, 0x2c6, 0x7, 0x5, 0x2, 0x2, 0x2c6,
|
|
0x2c7, 0x5, 0x86, 0x44, 0x2, 0x2c7, 0x85, 0x3, 0x2, 0x2, 0x2, 0x2c8,
|
|
0x2c9, 0x5, 0x8a, 0x46, 0x2, 0x2c9, 0x2ca, 0x5, 0x88, 0x45, 0x2,
|
|
0x2ca, 0x2cd, 0x3, 0x2, 0x2, 0x2, 0x2cb, 0x2cd, 0x5, 0x8a, 0x46,
|
|
0x2, 0x2cc, 0x2c8, 0x3, 0x2, 0x2, 0x2, 0x2cc, 0x2cb, 0x3, 0x2, 0x2,
|
|
0x2, 0x2cd, 0x87, 0x3, 0x2, 0x2, 0x2, 0x2ce, 0x2d1, 0x5, 0x8a, 0x46,
|
|
0x2, 0x2cf, 0x2d1, 0x5, 0x6c, 0x37, 0x2, 0x2d0, 0x2ce, 0x3, 0x2,
|
|
0x2, 0x2, 0x2d0, 0x2cf, 0x3, 0x2, 0x2, 0x2, 0x2d1, 0x89, 0x3, 0x2,
|
|
0x2, 0x2, 0x2d2, 0x2de, 0x7, 0x1e, 0x2, 0x2, 0x2d3, 0x2d8, 0x5, 0x8c,
|
|
0x47, 0x2, 0x2d4, 0x2d5, 0x7, 0x25, 0x2, 0x2, 0x2d5, 0x2d7, 0x5,
|
|
0x8c, 0x47, 0x2, 0x2d6, 0x2d4, 0x3, 0x2, 0x2, 0x2, 0x2d7, 0x2da,
|
|
0x3, 0x2, 0x2, 0x2, 0x2d8, 0x2d6, 0x3, 0x2, 0x2, 0x2, 0x2d8, 0x2d9,
|
|
0x3, 0x2, 0x2, 0x2, 0x2d9, 0x2dc, 0x3, 0x2, 0x2, 0x2, 0x2da, 0x2d8,
|
|
0x3, 0x2, 0x2, 0x2, 0x2db, 0x2dd, 0x7, 0x25, 0x2, 0x2, 0x2dc, 0x2db,
|
|
0x3, 0x2, 0x2, 0x2, 0x2dc, 0x2dd, 0x3, 0x2, 0x2, 0x2, 0x2dd, 0x2df,
|
|
0x3, 0x2, 0x2, 0x2, 0x2de, 0x2d3, 0x3, 0x2, 0x2, 0x2, 0x2de, 0x2df,
|
|
0x3, 0x2, 0x2, 0x2, 0x2df, 0x2e0, 0x3, 0x2, 0x2, 0x2, 0x2e0, 0x2e1,
|
|
0x7, 0x1f, 0x2, 0x2, 0x2e1, 0x8b, 0x3, 0x2, 0x2, 0x2, 0x2e2, 0x2e4,
|
|
0x5, 0x12, 0xa, 0x2, 0x2e3, 0x2e2, 0x3, 0x2, 0x2, 0x2, 0x2e3, 0x2e4,
|
|
0x3, 0x2, 0x2, 0x2, 0x2e4, 0x2e6, 0x3, 0x2, 0x2, 0x2, 0x2e5, 0x2e7,
|
|
0x7, 0x2e, 0x2, 0x2, 0x2e6, 0x2e5, 0x3, 0x2, 0x2, 0x2, 0x2e6, 0x2e7,
|
|
0x3, 0x2, 0x2, 0x2, 0x2e7, 0x2e8, 0x3, 0x2, 0x2, 0x2, 0x2e8, 0x2e9,
|
|
0x5, 0x6c, 0x37, 0x2, 0x2e9, 0x8d, 0x3, 0x2, 0x2, 0x2, 0x2ea, 0x2eb,
|
|
0x8, 0x48, 0x1, 0x2, 0x2eb, 0x2ef, 0x5, 0x90, 0x49, 0x2, 0x2ec, 0x2ed,
|
|
0x9, 0x6, 0x2, 0x2, 0x2ed, 0x2ef, 0x5, 0x8e, 0x48, 0x8, 0x2ee, 0x2ea,
|
|
0x3, 0x2, 0x2, 0x2, 0x2ee, 0x2ec, 0x3, 0x2, 0x2, 0x2, 0x2ef, 0x301,
|
|
0x3, 0x2, 0x2, 0x2, 0x2f0, 0x2f1, 0xc, 0x7, 0x2, 0x2, 0x2f1, 0x2f2,
|
|
0x9, 0x7, 0x2, 0x2, 0x2f2, 0x300, 0x5, 0x8e, 0x48, 0x8, 0x2f3, 0x2f4,
|
|
0xc, 0x6, 0x2, 0x2, 0x2f4, 0x2f5, 0x9, 0x8, 0x2, 0x2, 0x2f5, 0x300,
|
|
0x5, 0x8e, 0x48, 0x7, 0x2f6, 0x2f7, 0xc, 0x5, 0x2, 0x2, 0x2f7, 0x2f8,
|
|
0x9, 0x9, 0x2, 0x2, 0x2f8, 0x300, 0x5, 0x8e, 0x48, 0x6, 0x2f9, 0x2fa,
|
|
0xc, 0x4, 0x2, 0x2, 0x2fa, 0x2fb, 0x7, 0x31, 0x2, 0x2, 0x2fb, 0x300,
|
|
0x5, 0x8e, 0x48, 0x5, 0x2fc, 0x2fd, 0xc, 0x3, 0x2, 0x2, 0x2fd, 0x2fe,
|
|
0x7, 0x30, 0x2, 0x2, 0x2fe, 0x300, 0x5, 0x8e, 0x48, 0x4, 0x2ff, 0x2f0,
|
|
0x3, 0x2, 0x2, 0x2, 0x2ff, 0x2f3, 0x3, 0x2, 0x2, 0x2, 0x2ff, 0x2f6,
|
|
0x3, 0x2, 0x2, 0x2, 0x2ff, 0x2f9, 0x3, 0x2, 0x2, 0x2, 0x2ff, 0x2fc,
|
|
0x3, 0x2, 0x2, 0x2, 0x300, 0x303, 0x3, 0x2, 0x2, 0x2, 0x301, 0x2ff,
|
|
0x3, 0x2, 0x2, 0x2, 0x301, 0x302, 0x3, 0x2, 0x2, 0x2, 0x302, 0x8f,
|
|
0x3, 0x2, 0x2, 0x2, 0x303, 0x301, 0x3, 0x2, 0x2, 0x2, 0x304, 0x305,
|
|
0x8, 0x49, 0x1, 0x2, 0x305, 0x309, 0x5, 0x96, 0x4c, 0x2, 0x306, 0x309,
|
|
0x5, 0x92, 0x4a, 0x2, 0x307, 0x309, 0x5, 0xc2, 0x62, 0x2, 0x308,
|
|
0x304, 0x3, 0x2, 0x2, 0x2, 0x308, 0x306, 0x3, 0x2, 0x2, 0x2, 0x308,
|
|
0x307, 0x3, 0x2, 0x2, 0x2, 0x309, 0x315, 0x3, 0x2, 0x2, 0x2, 0x30a,
|
|
0x311, 0xc, 0x3, 0x2, 0x2, 0x30b, 0x30c, 0x7, 0x2a, 0x2, 0x2, 0x30c,
|
|
0x312, 0x7, 0x1d, 0x2, 0x2, 0x30d, 0x312, 0x5, 0xba, 0x5e, 0x2, 0x30e,
|
|
0x312, 0x5, 0xbc, 0x5f, 0x2, 0x30f, 0x312, 0x5, 0xbe, 0x60, 0x2,
|
|
0x310, 0x312, 0x5, 0xc0, 0x61, 0x2, 0x311, 0x30b, 0x3, 0x2, 0x2,
|
|
0x2, 0x311, 0x30d, 0x3, 0x2, 0x2, 0x2, 0x311, 0x30e, 0x3, 0x2, 0x2,
|
|
0x2, 0x311, 0x30f, 0x3, 0x2, 0x2, 0x2, 0x311, 0x310, 0x3, 0x2, 0x2,
|
|
0x2, 0x312, 0x314, 0x3, 0x2, 0x2, 0x2, 0x313, 0x30a, 0x3, 0x2, 0x2,
|
|
0x2, 0x314, 0x317, 0x3, 0x2, 0x2, 0x2, 0x315, 0x313, 0x3, 0x2, 0x2,
|
|
0x2, 0x315, 0x316, 0x3, 0x2, 0x2, 0x2, 0x316, 0x91, 0x3, 0x2, 0x2,
|
|
0x2, 0x317, 0x315, 0x3, 0x2, 0x2, 0x2, 0x318, 0x319, 0x5, 0x94, 0x4b,
|
|
0x2, 0x319, 0x31a, 0x7, 0x1e, 0x2, 0x2, 0x31a, 0x31c, 0x5, 0x8e,
|
|
0x48, 0x2, 0x31b, 0x31d, 0x7, 0x25, 0x2, 0x2, 0x31c, 0x31b, 0x3,
|
|
0x2, 0x2, 0x2, 0x31c, 0x31d, 0x3, 0x2, 0x2, 0x2, 0x31d, 0x31e, 0x3,
|
|
0x2, 0x2, 0x2, 0x31e, 0x31f, 0x7, 0x1f, 0x2, 0x2, 0x31f, 0x93, 0x3,
|
|
0x2, 0x2, 0x2, 0x320, 0x326, 0x5, 0x70, 0x39, 0x2, 0x321, 0x322,
|
|
0x7, 0x1e, 0x2, 0x2, 0x322, 0x323, 0x5, 0x94, 0x4b, 0x2, 0x323, 0x324,
|
|
0x7, 0x1f, 0x2, 0x2, 0x324, 0x326, 0x3, 0x2, 0x2, 0x2, 0x325, 0x320,
|
|
0x3, 0x2, 0x2, 0x2, 0x325, 0x321, 0x3, 0x2, 0x2, 0x2, 0x326, 0x95,
|
|
0x3, 0x2, 0x2, 0x2, 0x327, 0x32e, 0x5, 0x98, 0x4d, 0x2, 0x328, 0x32e,
|
|
0x5, 0x9e, 0x50, 0x2, 0x329, 0x32a, 0x7, 0x1e, 0x2, 0x2, 0x32a, 0x32b,
|
|
0x5, 0x8e, 0x48, 0x2, 0x32b, 0x32c, 0x7, 0x1f, 0x2, 0x2, 0x32c, 0x32e,
|
|
0x3, 0x2, 0x2, 0x2, 0x32d, 0x327, 0x3, 0x2, 0x2, 0x2, 0x32d, 0x328,
|
|
0x3, 0x2, 0x2, 0x2, 0x32d, 0x329, 0x3, 0x2, 0x2, 0x2, 0x32e, 0x97,
|
|
0x3, 0x2, 0x2, 0x2, 0x32f, 0x333, 0x5, 0x9a, 0x4e, 0x2, 0x330, 0x333,
|
|
0x5, 0xa2, 0x52, 0x2, 0x331, 0x333, 0x5, 0xb8, 0x5d, 0x2, 0x332,
|
|
0x32f, 0x3, 0x2, 0x2, 0x2, 0x332, 0x330, 0x3, 0x2, 0x2, 0x2, 0x332,
|
|
0x331, 0x3, 0x2, 0x2, 0x2, 0x333, 0x99, 0x3, 0x2, 0x2, 0x2, 0x334,
|
|
0x339, 0x7, 0x1c, 0x2, 0x2, 0x335, 0x339, 0x5, 0x9c, 0x4f, 0x2, 0x336,
|
|
0x339, 0x5, 0xb4, 0x5b, 0x2, 0x337, 0x339, 0x7, 0x49, 0x2, 0x2, 0x338,
|
|
0x334, 0x3, 0x2, 0x2, 0x2, 0x338, 0x335, 0x3, 0x2, 0x2, 0x2, 0x338,
|
|
0x336, 0x3, 0x2, 0x2, 0x2, 0x338, 0x337, 0x3, 0x2, 0x2, 0x2, 0x339,
|
|
0x9b, 0x3, 0x2, 0x2, 0x2, 0x33a, 0x33b, 0x9, 0xa, 0x2, 0x2, 0x33b,
|
|
0x9d, 0x3, 0x2, 0x2, 0x2, 0x33c, 0x33d, 0x7, 0x1d, 0x2, 0x2, 0x33d,
|
|
0x9f, 0x3, 0x2, 0x2, 0x2, 0x33e, 0x33f, 0x7, 0x1d, 0x2, 0x2, 0x33f,
|
|
0x340, 0x7, 0x2a, 0x2, 0x2, 0x340, 0x341, 0x7, 0x1d, 0x2, 0x2, 0x341,
|
|
0xa1, 0x3, 0x2, 0x2, 0x2, 0x342, 0x343, 0x5, 0xa4, 0x53, 0x2, 0x343,
|
|
0x344, 0x5, 0xa6, 0x54, 0x2, 0x344, 0xa3, 0x3, 0x2, 0x2, 0x2, 0x345,
|
|
0x34f, 0x5, 0xb0, 0x59, 0x2, 0x346, 0x34f, 0x5, 0x72, 0x3a, 0x2,
|
|
0x347, 0x348, 0x7, 0x22, 0x2, 0x2, 0x348, 0x349, 0x7, 0x2e, 0x2,
|
|
0x2, 0x349, 0x34a, 0x7, 0x23, 0x2, 0x2, 0x34a, 0x34f, 0x5, 0x76,
|
|
0x3c, 0x2, 0x34b, 0x34f, 0x5, 0x7c, 0x3f, 0x2, 0x34c, 0x34f, 0x5,
|
|
0x7e, 0x40, 0x2, 0x34d, 0x34f, 0x5, 0x6e, 0x38, 0x2, 0x34e, 0x345,
|
|
0x3, 0x2, 0x2, 0x2, 0x34e, 0x346, 0x3, 0x2, 0x2, 0x2, 0x34e, 0x347,
|
|
0x3, 0x2, 0x2, 0x2, 0x34e, 0x34b, 0x3, 0x2, 0x2, 0x2, 0x34e, 0x34c,
|
|
0x3, 0x2, 0x2, 0x2, 0x34e, 0x34d, 0x3, 0x2, 0x2, 0x2, 0x34f, 0xa5,
|
|
0x3, 0x2, 0x2, 0x2, 0x350, 0x355, 0x7, 0x20, 0x2, 0x2, 0x351, 0x353,
|
|
0x5, 0xa8, 0x55, 0x2, 0x352, 0x354, 0x7, 0x25, 0x2, 0x2, 0x353, 0x352,
|
|
0x3, 0x2, 0x2, 0x2, 0x353, 0x354, 0x3, 0x2, 0x2, 0x2, 0x354, 0x356,
|
|
0x3, 0x2, 0x2, 0x2, 0x355, 0x351, 0x3, 0x2, 0x2, 0x2, 0x355, 0x356,
|
|
0x3, 0x2, 0x2, 0x2, 0x356, 0x357, 0x3, 0x2, 0x2, 0x2, 0x357, 0x358,
|
|
0x7, 0x21, 0x2, 0x2, 0x358, 0xa7, 0x3, 0x2, 0x2, 0x2, 0x359, 0x35e,
|
|
0x5, 0xaa, 0x56, 0x2, 0x35a, 0x35b, 0x7, 0x25, 0x2, 0x2, 0x35b, 0x35d,
|
|
0x5, 0xaa, 0x56, 0x2, 0x35c, 0x35a, 0x3, 0x2, 0x2, 0x2, 0x35d, 0x360,
|
|
0x3, 0x2, 0x2, 0x2, 0x35e, 0x35c, 0x3, 0x2, 0x2, 0x2, 0x35e, 0x35f,
|
|
0x3, 0x2, 0x2, 0x2, 0x35f, 0xa9, 0x3, 0x2, 0x2, 0x2, 0x360, 0x35e,
|
|
0x3, 0x2, 0x2, 0x2, 0x361, 0x362, 0x5, 0xac, 0x57, 0x2, 0x362, 0x363,
|
|
0x7, 0x29, 0x2, 0x2, 0x363, 0x365, 0x3, 0x2, 0x2, 0x2, 0x364, 0x361,
|
|
0x3, 0x2, 0x2, 0x2, 0x364, 0x365, 0x3, 0x2, 0x2, 0x2, 0x365, 0x366,
|
|
0x3, 0x2, 0x2, 0x2, 0x366, 0x367, 0x5, 0xae, 0x58, 0x2, 0x367, 0xab,
|
|
0x3, 0x2, 0x2, 0x2, 0x368, 0x36b, 0x5, 0x8e, 0x48, 0x2, 0x369, 0x36b,
|
|
0x5, 0xa6, 0x54, 0x2, 0x36a, 0x368, 0x3, 0x2, 0x2, 0x2, 0x36a, 0x369,
|
|
0x3, 0x2, 0x2, 0x2, 0x36b, 0xad, 0x3, 0x2, 0x2, 0x2, 0x36c, 0x36f,
|
|
0x5, 0x8e, 0x48, 0x2, 0x36d, 0x36f, 0x5, 0xa6, 0x54, 0x2, 0x36e,
|
|
0x36c, 0x3, 0x2, 0x2, 0x2, 0x36e, 0x36d, 0x3, 0x2, 0x2, 0x2, 0x36f,
|
|
0xaf, 0x3, 0x2, 0x2, 0x2, 0x370, 0x371, 0x7, 0xc, 0x2, 0x2, 0x371,
|
|
0x377, 0x7, 0x20, 0x2, 0x2, 0x372, 0x373, 0x5, 0xb2, 0x5a, 0x2, 0x373,
|
|
0x374, 0x5, 0xc6, 0x64, 0x2, 0x374, 0x376, 0x3, 0x2, 0x2, 0x2, 0x375,
|
|
0x372, 0x3, 0x2, 0x2, 0x2, 0x376, 0x379, 0x3, 0x2, 0x2, 0x2, 0x377,
|
|
0x375, 0x3, 0x2, 0x2, 0x2, 0x377, 0x378, 0x3, 0x2, 0x2, 0x2, 0x378,
|
|
0x37a, 0x3, 0x2, 0x2, 0x2, 0x379, 0x377, 0x3, 0x2, 0x2, 0x2, 0x37a,
|
|
0x37b, 0x7, 0x21, 0x2, 0x2, 0x37b, 0xb1, 0x3, 0x2, 0x2, 0x2, 0x37c,
|
|
0x37d, 0x5, 0x12, 0xa, 0x2, 0x37d, 0x37e, 0x5, 0x6c, 0x37, 0x2, 0x37e,
|
|
0x381, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x381, 0x5, 0xb6, 0x5c, 0x2, 0x380,
|
|
0x37c, 0x3, 0x2, 0x2, 0x2, 0x380, 0x37f, 0x3, 0x2, 0x2, 0x2, 0x381,
|
|
0x383, 0x3, 0x2, 0x2, 0x2, 0x382, 0x384, 0x5, 0xb4, 0x5b, 0x2, 0x383,
|
|
0x382, 0x3, 0x2, 0x2, 0x2, 0x383, 0x384, 0x3, 0x2, 0x2, 0x2, 0x384,
|
|
0xb3, 0x3, 0x2, 0x2, 0x2, 0x385, 0x386, 0x9, 0xb, 0x2, 0x2, 0x386,
|
|
0xb5, 0x3, 0x2, 0x2, 0x2, 0x387, 0x389, 0x7, 0x42, 0x2, 0x2, 0x388,
|
|
0x387, 0x3, 0x2, 0x2, 0x2, 0x388, 0x389, 0x3, 0x2, 0x2, 0x2, 0x389,
|
|
0x38a, 0x3, 0x2, 0x2, 0x2, 0x38a, 0x38b, 0x5, 0x6e, 0x38, 0x2, 0x38b,
|
|
0xb7, 0x3, 0x2, 0x2, 0x2, 0x38c, 0x38d, 0x7, 0x5, 0x2, 0x2, 0x38d,
|
|
0x38e, 0x5, 0x86, 0x44, 0x2, 0x38e, 0x38f, 0x5, 0x24, 0x13, 0x2,
|
|
0x38f, 0xb9, 0x3, 0x2, 0x2, 0x2, 0x390, 0x391, 0x7, 0x22, 0x2, 0x2,
|
|
0x391, 0x392, 0x5, 0x8e, 0x48, 0x2, 0x392, 0x393, 0x7, 0x23, 0x2,
|
|
0x2, 0x393, 0xbb, 0x3, 0x2, 0x2, 0x2, 0x394, 0x3a4, 0x7, 0x22, 0x2,
|
|
0x2, 0x395, 0x397, 0x5, 0x8e, 0x48, 0x2, 0x396, 0x395, 0x3, 0x2,
|
|
0x2, 0x2, 0x396, 0x397, 0x3, 0x2, 0x2, 0x2, 0x397, 0x398, 0x3, 0x2,
|
|
0x2, 0x2, 0x398, 0x39a, 0x7, 0x29, 0x2, 0x2, 0x399, 0x39b, 0x5, 0x8e,
|
|
0x48, 0x2, 0x39a, 0x399, 0x3, 0x2, 0x2, 0x2, 0x39a, 0x39b, 0x3, 0x2,
|
|
0x2, 0x2, 0x39b, 0x3a5, 0x3, 0x2, 0x2, 0x2, 0x39c, 0x39e, 0x5, 0x8e,
|
|
0x48, 0x2, 0x39d, 0x39c, 0x3, 0x2, 0x2, 0x2, 0x39d, 0x39e, 0x3, 0x2,
|
|
0x2, 0x2, 0x39e, 0x39f, 0x3, 0x2, 0x2, 0x2, 0x39f, 0x3a0, 0x7, 0x29,
|
|
0x2, 0x2, 0x3a0, 0x3a1, 0x5, 0x8e, 0x48, 0x2, 0x3a1, 0x3a2, 0x7,
|
|
0x29, 0x2, 0x2, 0x3a2, 0x3a3, 0x5, 0x8e, 0x48, 0x2, 0x3a3, 0x3a5,
|
|
0x3, 0x2, 0x2, 0x2, 0x3a4, 0x396, 0x3, 0x2, 0x2, 0x2, 0x3a4, 0x39d,
|
|
0x3, 0x2, 0x2, 0x2, 0x3a5, 0x3a6, 0x3, 0x2, 0x2, 0x2, 0x3a6, 0x3a7,
|
|
0x7, 0x23, 0x2, 0x2, 0x3a7, 0xbd, 0x3, 0x2, 0x2, 0x2, 0x3a8, 0x3a9,
|
|
0x7, 0x2a, 0x2, 0x2, 0x3a9, 0x3aa, 0x7, 0x1e, 0x2, 0x2, 0x3aa, 0x3ab,
|
|
0x5, 0x6c, 0x37, 0x2, 0x3ab, 0x3ac, 0x7, 0x1f, 0x2, 0x2, 0x3ac, 0xbf,
|
|
0x3, 0x2, 0x2, 0x2, 0x3ad, 0x3bc, 0x7, 0x1e, 0x2, 0x2, 0x3ae, 0x3b5,
|
|
0x5, 0x14, 0xb, 0x2, 0x3af, 0x3b2, 0x5, 0x94, 0x4b, 0x2, 0x3b0, 0x3b1,
|
|
0x7, 0x25, 0x2, 0x2, 0x3b1, 0x3b3, 0x5, 0x14, 0xb, 0x2, 0x3b2, 0x3b0,
|
|
0x3, 0x2, 0x2, 0x2, 0x3b2, 0x3b3, 0x3, 0x2, 0x2, 0x2, 0x3b3, 0x3b5,
|
|
0x3, 0x2, 0x2, 0x2, 0x3b4, 0x3ae, 0x3, 0x2, 0x2, 0x2, 0x3b4, 0x3af,
|
|
0x3, 0x2, 0x2, 0x2, 0x3b5, 0x3b7, 0x3, 0x2, 0x2, 0x2, 0x3b6, 0x3b8,
|
|
0x7, 0x2e, 0x2, 0x2, 0x3b7, 0x3b6, 0x3, 0x2, 0x2, 0x2, 0x3b7, 0x3b8,
|
|
0x3, 0x2, 0x2, 0x2, 0x3b8, 0x3ba, 0x3, 0x2, 0x2, 0x2, 0x3b9, 0x3bb,
|
|
0x7, 0x25, 0x2, 0x2, 0x3ba, 0x3b9, 0x3, 0x2, 0x2, 0x2, 0x3ba, 0x3bb,
|
|
0x3, 0x2, 0x2, 0x2, 0x3bb, 0x3bd, 0x3, 0x2, 0x2, 0x2, 0x3bc, 0x3b4,
|
|
0x3, 0x2, 0x2, 0x2, 0x3bc, 0x3bd, 0x3, 0x2, 0x2, 0x2, 0x3bd, 0x3be,
|
|
0x3, 0x2, 0x2, 0x2, 0x3be, 0x3bf, 0x7, 0x1f, 0x2, 0x2, 0x3bf, 0xc1,
|
|
0x3, 0x2, 0x2, 0x2, 0x3c0, 0x3c1, 0x5, 0x94, 0x4b, 0x2, 0x3c1, 0x3c2,
|
|
0x7, 0x2a, 0x2, 0x2, 0x3c2, 0x3c3, 0x7, 0x1d, 0x2, 0x2, 0x3c3, 0xc3,
|
|
0x3, 0x2, 0x2, 0x2, 0x3c4, 0x3c5, 0x5, 0x6c, 0x37, 0x2, 0x3c5, 0xc5,
|
|
0x3, 0x2, 0x2, 0x2, 0x3c6, 0x3c7, 0x9, 0xc, 0x2, 0x2, 0x3c7, 0xc7,
|
|
0x3, 0x2, 0x2, 0x2, 0x70, 0xcc, 0xd3, 0xd8, 0xde, 0xe3, 0xe8, 0xf8,
|
|
0xfc, 0xff, 0x108, 0x112, 0x116, 0x11a, 0x11e, 0x125, 0x12d, 0x138,
|
|
0x13c, 0x140, 0x148, 0x14f, 0x15b, 0x15f, 0x165, 0x169, 0x16f, 0x173,
|
|
0x17b, 0x17f, 0x190, 0x197, 0x1a7, 0x1b4, 0x1b8, 0x1bc, 0x1c0, 0x1d3,
|
|
0x1d9, 0x1db, 0x1df, 0x1e3, 0x1e6, 0x1ea, 0x1ec, 0x1f2, 0x1fa, 0x1ff,
|
|
0x20a, 0x210, 0x217, 0x222, 0x227, 0x22b, 0x230, 0x234, 0x23c, 0x244,
|
|
0x249, 0x24c, 0x254, 0x25c, 0x261, 0x265, 0x269, 0x271, 0x27f, 0x283,
|
|
0x28d, 0x29f, 0x2a5, 0x2b9, 0x2c3, 0x2cc, 0x2d0, 0x2d8, 0x2dc, 0x2de,
|
|
0x2e3, 0x2e6, 0x2ee, 0x2ff, 0x301, 0x308, 0x311, 0x315, 0x31c, 0x325,
|
|
0x32d, 0x332, 0x338, 0x34e, 0x353, 0x355, 0x35e, 0x364, 0x36a, 0x36e,
|
|
0x377, 0x380, 0x383, 0x388, 0x396, 0x39a, 0x39d, 0x3a4, 0x3b2, 0x3b4,
|
|
0x3b7, 0x3ba, 0x3bc,
|
|
};
|
|
|
|
_serializedATN.insert(_serializedATN.end(), serializedATNSegment0,
|
|
serializedATNSegment0 + sizeof(serializedATNSegment0) / sizeof(serializedATNSegment0[0]));
|
|
|
|
|
|
atn::ATNDeserializer deserializer;
|
|
_atn = deserializer.deserialize(_serializedATN);
|
|
|
|
size_t count = _atn.getNumberOfDecisions();
|
|
_decisionToDFA.reserve(count);
|
|
for (size_t i = 0; i < count; i++) {
|
|
_decisionToDFA.emplace_back(_atn.getDecisionState(i), i);
|
|
}
|
|
}
|
|
|
|
GoParser::Initializer GoParser::_init;
|