/* $ANTLR 2.7.7 (20061129): "pascal.g" -> "PascalParser.cpp"$ */ #include "PascalParser.hpp" #include #include #include #line 1 "pascal.g" #line 8 "PascalParser.cpp" PascalParser::PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k) : ANTLR_USE_NAMESPACE(antlr)LLkParser(tokenBuf,k) { } PascalParser::PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf) : ANTLR_USE_NAMESPACE(antlr)LLkParser(tokenBuf,2) { } PascalParser::PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k) : ANTLR_USE_NAMESPACE(antlr)LLkParser(lexer,k) { } PascalParser::PascalParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer) : ANTLR_USE_NAMESPACE(antlr)LLkParser(lexer,2) { } PascalParser::PascalParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state) : ANTLR_USE_NAMESPACE(antlr)LLkParser(state,2) { } void PascalParser::compilationUnit() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST compilationUnit_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case PROGRAM: { program(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } compilationUnit_AST = RefPascalAST(currentAST.root); break; } case LIBRARY: { library(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } compilationUnit_AST = RefPascalAST(currentAST.root); break; } case UNIT: { unit(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } compilationUnit_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_0); } else { throw; } } returnAST = compilationUnit_AST; } void PascalParser::program() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST program_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling programHeading(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case USES: { usesClause(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case BEGIN: case LABEL: case CONST: case RESOURCESTRING: case TYPE: case VAR: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } block(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(DOT); program_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_0); } else { throw; } } returnAST = program_AST; } void PascalParser::library() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST library_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp2_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp2_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp2_AST)); } match(LIBRARY); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); { switch ( LA(1)) { case USES: { usesClause(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case EXPORTS: case BEGIN: case LABEL: case CONST: case RESOURCESTRING: case TYPE: case VAR: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } libraryBlock(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } exportsClause(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(END); match(DOT); library_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_0); } else { throw; } } returnAST = library_AST; } void PascalParser::unit() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST unit_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp6_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp6_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp6_AST)); } match(UNIT); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); interfacePart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } implementationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case INITIALIZATION: { { initializationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case FINALIZATION: { finalizationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } } break; } case BEGIN: { realizationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(END); unit_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_0); } else { throw; } } returnAST = unit_AST; } void PascalParser::programHeading() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST programHeading_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp9_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp9_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp9_AST)); } match(PROGRAM); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case LPAREN: { match(LPAREN); identifierList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); break; } case SEMI: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(SEMI); programHeading_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_1); } else { throw; } } returnAST = programHeading_AST; } void PascalParser::usesClause() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST usesClause_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp13_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp13_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp13_AST)); } match(USES); identifierList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); usesClause_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_2); } else { throw; } } returnAST = usesClause_AST; } void PascalParser::block() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST block_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling declarationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } statementPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } block_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_3); } else { throw; } } returnAST = block_AST; } void PascalParser::identifier() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST identifier_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp15_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp15_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp15_AST)); } match(IDENT); identifier_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_4); } else { throw; } } returnAST = identifier_AST; } void PascalParser::libraryBlock() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST libraryBlock_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling declarationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case BEGIN: { statementPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case EXPORTS: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } libraryBlock_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_5); } else { throw; } } returnAST = libraryBlock_AST; } void PascalParser::exportsClause() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST exportsClause_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp16_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp16_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp16_AST)); } match(EXPORTS); exportsList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } exportsClause_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_6); } else { throw; } } returnAST = exportsClause_AST; } void PascalParser::declarationPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST declarationPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { // ( ... )* for (;;) { switch ( LA(1)) { case LABEL: { labelDeclarationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case CONST: { constantDeclarationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case RESOURCESTRING: { resourcestringDeclarationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case TYPE: { typeDeclarationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case VAR: { variableDeclarationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: { procedureAndFunctionDeclarationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { goto _loop41; } } } _loop41:; } // ( ... )* declarationPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_7); } else { throw; } } returnAST = declarationPart_AST; } void PascalParser::statementPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST statementPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling compoundStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } statementPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_3); } else { throw; } } returnAST = statementPart_AST; } void PascalParser::exportsList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST exportsList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling exportsEntry(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); exportsEntry(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop11; } } _loop11:; } // ( ... )* { switch ( LA(1)) { case SEMI: { match(SEMI); break; } case END: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } exportsList_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_6); } else { throw; } } returnAST = exportsList_AST; } void PascalParser::exportsEntry() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST exportsEntry_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case LITERAL_index: { RefPascalAST tmp19_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp19_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp19_AST)); } match(LITERAL_index); integerConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SEMI: case END: case COMMA: case LITERAL_name: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case LITERAL_name: { RefPascalAST tmp20_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp20_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp20_AST)); } match(LITERAL_name); stringConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SEMI: case END: case COMMA: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } exportsEntry_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_8); } else { throw; } } returnAST = exportsEntry_AST; } void PascalParser::integerConstant() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST integerConstant_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); RefPascalAST s_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); RefPascalAST n_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case NUM_INT: { unsignedInteger(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } integerConstant_AST = RefPascalAST(currentAST.root); break; } case PLUS: case MINUS: { sign(); if (inputState->guessing==0) { s_AST = returnAST; } unsignedInteger(); if (inputState->guessing==0) { n_AST = returnAST; } if ( inputState->guessing==0 ) { integerConstant_AST = RefPascalAST(currentAST.root); #line 880 "pascal.g" integerConstant_AST=RefPascalAST(astFactory->make((new ANTLR_USE_NAMESPACE(antlr)ASTArray(2))->add(ANTLR_USE_NAMESPACE(antlr)RefAST(s_AST))->add(ANTLR_USE_NAMESPACE(antlr)RefAST(n_AST)))); #line 780 "PascalParser.cpp" currentAST.root = integerConstant_AST; if ( integerConstant_AST!=RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) && integerConstant_AST->getFirstChild() != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) currentAST.child = integerConstant_AST->getFirstChild(); else currentAST.child = integerConstant_AST; currentAST.advanceChildToEnd(); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_9); } else { throw; } } returnAST = integerConstant_AST; } void PascalParser::stringConstant() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST stringConstant_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case STRING_LITERAL: { string(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } stringConstant_AST = RefPascalAST(currentAST.root); break; } case CHR: { constantChr(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } stringConstant_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_10); } else { throw; } } returnAST = stringConstant_AST; } void PascalParser::identifierList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST identifierList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop378; } } _loop378:; } // ( ... )* if ( inputState->guessing==0 ) { identifierList_AST = RefPascalAST(currentAST.root); #line 867 "pascal.g" identifierList_AST = RefPascalAST(astFactory->make((new ANTLR_USE_NAMESPACE(antlr)ASTArray(2))->add(ANTLR_USE_NAMESPACE(antlr)RefAST(astFactory->create(IDLIST)))->add(ANTLR_USE_NAMESPACE(antlr)RefAST(identifierList_AST)))); #line 880 "PascalParser.cpp" currentAST.root = identifierList_AST; if ( identifierList_AST!=RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) && identifierList_AST->getFirstChild() != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) currentAST.child = identifierList_AST->getFirstChild(); else currentAST.child = identifierList_AST; currentAST.advanceChildToEnd(); } identifierList_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_11); } else { throw; } } returnAST = identifierList_AST; } void PascalParser::interfacePart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST interfacePart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp22_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp22_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp22_AST)); } match(INTERFACE); { switch ( LA(1)) { case USES: { usesClause(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case IMPLEMENTATION: case CONST: case TYPE: case PROCEDURE: case FUNCTION: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { // ( ... )* for (;;) { switch ( LA(1)) { case CONST: { constantDeclarationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case TYPE: { typeDeclarationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case PROCEDURE: case FUNCTION: { procedureHeadersPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { goto _loop24; } } } _loop24:; } // ( ... )* interfacePart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_12); } else { throw; } } returnAST = interfacePart_AST; } void PascalParser::implementationPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST implementationPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp23_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp23_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp23_AST)); } match(IMPLEMENTATION); { switch ( LA(1)) { case USES: { usesClause(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: case BEGIN: case INITIALIZATION: case LABEL: case CONST: case RESOURCESTRING: case TYPE: case VAR: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } declarationPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } implementationPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_13); } else { throw; } } returnAST = implementationPart_AST; } void PascalParser::initializationPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST initializationPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp24_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp24_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp24_AST)); } match(INITIALIZATION); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop34; } } _loop34:; } // ( ... )* initializationPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_14); } else { throw; } } returnAST = initializationPart_AST; } void PascalParser::finalizationPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST finalizationPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp26_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp26_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp26_AST)); } match(FINALIZATION); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop37; } } _loop37:; } // ( ... )* finalizationPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_6); } else { throw; } } returnAST = finalizationPart_AST; } void PascalParser::realizationPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST realizationPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp28_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp28_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp28_AST)); } match(BEGIN); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop29; } } _loop29:; } // ( ... )* realizationPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_6); } else { throw; } } returnAST = realizationPart_AST; } void PascalParser::constantDeclarationPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST constantDeclarationPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp30_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp30_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp30_AST)); } match(CONST); { // ( ... )+ int _cnt47=0; for (;;) { if ((LA(1) == IDENT) && (LA(2) == EQUAL)) { constantDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else if ((LA(1) == IDENT) && (LA(2) == COLON)) { typedConstantDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { if ( _cnt47>=1 ) { goto _loop47; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());} } _cnt47++; } _loop47:; } // ( ... )+ constantDeclarationPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_2); } else { throw; } } returnAST = constantDeclarationPart_AST; } void PascalParser::typeDeclarationPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST typeDeclarationPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp31_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp31_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp31_AST)); } match(TYPE); { // ( ... )+ int _cnt54=0; for (;;) { if ((LA(1) == IDENT)) { typeDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { if ( _cnt54>=1 ) { goto _loop54; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());} } _cnt54++; } _loop54:; } // ( ... )+ typeDeclarationPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_2); } else { throw; } } returnAST = typeDeclarationPart_AST; } void PascalParser::procedureHeadersPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST procedureHeadersPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case PROCEDURE: { procedureHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } procedureHeadersPart_AST = RefPascalAST(currentAST.root); break; } case FUNCTION: { functionHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } procedureHeadersPart_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_15); } else { throw; } } returnAST = procedureHeadersPart_AST; } void PascalParser::statement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST statement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case NUM_INT: { label(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); break; } case BEGIN: case CASE: case GOTO: case IF: case WHILE: case REPEAT: case FOR: case WITH: case RAISE: case TRY: case IDENT: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case GOTO: case RAISE: case IDENT: { simpleStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case BEGIN: case CASE: case IF: case WHILE: case REPEAT: case FOR: case WITH: case TRY: { structuredStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } statement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = statement_AST; } void PascalParser::labelDeclarationPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST labelDeclarationPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp33_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp33_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp33_AST)); } match(LABEL); label(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); label(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop44; } } _loop44:; } // ( ... )* match(SEMI); labelDeclarationPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_17); } else { throw; } } returnAST = labelDeclarationPart_AST; } void PascalParser::resourcestringDeclarationPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST resourcestringDeclarationPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp36_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp36_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp36_AST)); } match(RESOURCESTRING); { // ( ... )* for (;;) { if ((LA(1) == IDENT)) { stringConstantDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop50; } } _loop50:; } // ( ... )* resourcestringDeclarationPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_17); } else { throw; } } returnAST = resourcestringDeclarationPart_AST; } void PascalParser::variableDeclarationPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST variableDeclarationPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp37_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp37_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp37_AST)); } match(VAR); variableDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI) && (LA(2) == IDENT)) { match(SEMI); variableDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop57; } } _loop57:; } // ( ... )* match(SEMI); variableDeclarationPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_17); } else { throw; } } returnAST = variableDeclarationPart_AST; } void PascalParser::procedureAndFunctionDeclarationPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST procedureAndFunctionDeclarationPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling procedureAndFunctionDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } procedureAndFunctionDeclarationPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_17); } else { throw; } } returnAST = procedureAndFunctionDeclarationPart_AST; } void PascalParser::label() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST label_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling unsignedInteger(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } label_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_18); } else { throw; } } returnAST = label_AST; } void PascalParser::constantDeclaration() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST constantDeclaration_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(EQUAL); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); constantDeclaration_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_19); } else { throw; } } returnAST = constantDeclaration_AST; } void PascalParser::typedConstantDeclaration() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST typedConstantDeclaration_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(EQUAL); typedConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); typedConstantDeclaration_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_19); } else { throw; } } returnAST = typedConstantDeclaration_AST; } void PascalParser::stringConstantDeclaration() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST stringConstantDeclaration_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(EQUAL); string(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } stringConstantDeclaration_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_20); } else { throw; } } returnAST = stringConstantDeclaration_AST; } void PascalParser::string() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST string_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp46_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp46_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp46_AST)); } match(STRING_LITERAL); string_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_21); } else { throw; } } returnAST = string_AST; } void PascalParser::typeDeclaration() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST typeDeclaration_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(EQUAL); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); typeDeclaration_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_19); } else { throw; } } returnAST = typeDeclaration_AST; } void PascalParser::variableDeclaration() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST variableDeclaration_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)RefToken c = ANTLR_USE_NAMESPACE(antlr)nullToken; RefPascalAST c_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifierList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } c = LT(1); if ( inputState->guessing == 0 ) { c_AST = astFactory->create(c); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(c_AST)); } match(COLON); if ( inputState->guessing==0 ) { #line 246 "pascal.g" c_AST->setType(VARDECL); #line 1741 "PascalParser.cpp" } type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } variableDeclaration_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_22); } else { throw; } } returnAST = variableDeclaration_AST; } void PascalParser::type() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST type_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case INTEGER: case SHORTINT: case SMALLINT: case LONGINT: case INT64: case BYTE: case WORD: case CARDINAL: case TQWORD: case BOOLEAN: case BYTEBOOL: case LONGBOOL: case CHAR: case REAL: case SINGLE: case DOUBLE: case EXTENDED: case COMP: { simpleType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } type_AST = RefPascalAST(currentAST.root); break; } case NUM_INT: case PLUS: case MINUS: case STRING_LITERAL: case CHR: case NUM_REAL: case IDENT: { subrangeTypeOrTypeIdentifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } type_AST = RefPascalAST(currentAST.root); break; } case LPAREN: { enumeratedType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } type_AST = RefPascalAST(currentAST.root); break; } case STRING: { stringType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } type_AST = RefPascalAST(currentAST.root); break; } case ARRAY: case PACKED: case RECORD: case SET: case FILE: case OBJECT: case CLASS: { structuredType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } type_AST = RefPascalAST(currentAST.root); break; } case POINTER: { pointerType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } type_AST = RefPascalAST(currentAST.root); break; } case PROCEDURE: case FUNCTION: { proceduralType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } type_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = type_AST; } void PascalParser::procedureAndFunctionDeclaration() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST procedureAndFunctionDeclaration_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case PROCEDURE: { procedureDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } procedureAndFunctionDeclaration_AST = RefPascalAST(currentAST.root); break; } case FUNCTION: { functionDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } procedureAndFunctionDeclaration_AST = RefPascalAST(currentAST.root); break; } case CONSTRUCTOR: { constructorDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } procedureAndFunctionDeclaration_AST = RefPascalAST(currentAST.root); break; } case DESTRUCTOR: { destructorDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } procedureAndFunctionDeclaration_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_17); } else { throw; } } returnAST = procedureAndFunctionDeclaration_AST; } void PascalParser::procedureDeclaration() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST procedureDeclaration_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling procedureHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } subroutineBlock(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); procedureDeclaration_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_17); } else { throw; } } returnAST = procedureDeclaration_AST; } void PascalParser::functionDeclaration() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST functionDeclaration_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling functionHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } subroutineBlock(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); functionDeclaration_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_17); } else { throw; } } returnAST = functionDeclaration_AST; } void PascalParser::constructorDeclaration() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST constructorDeclaration_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling constructorHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); subroutineBlock(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } constructorDeclaration_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_17); } else { throw; } } returnAST = constructorDeclaration_AST; } void PascalParser::destructorDeclaration() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST destructorDeclaration_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling destructorHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); subroutineBlock(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } destructorDeclaration_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_17); } else { throw; } } returnAST = destructorDeclaration_AST; } void PascalParser::compoundStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST compoundStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling if ((LA(1) == BEGIN) && (LA(2) == END)) { match(BEGIN); match(END); compoundStatement_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == BEGIN) && (LA(2) == SEMI)) { match(BEGIN); { // ( ... )+ int _cnt312=0; for (;;) { if ((LA(1) == SEMI)) { match(SEMI); } else { if ( _cnt312>=1 ) { goto _loop312; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());} } _cnt312++; } _loop312:; } // ( ... )+ match(END); compoundStatement_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == BEGIN) && (_tokenSet_24.member(LA(2)))) { match(BEGIN); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); { switch ( LA(1)) { case BEGIN: case NUM_INT: case CASE: case GOTO: case IF: case WHILE: case REPEAT: case FOR: case WITH: case RAISE: case TRY: case IDENT: { statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SEMI: case END: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } } else { goto _loop315; } } _loop315:; } // ( ... )* match(END); compoundStatement_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_25); } else { throw; } } returnAST = compoundStatement_AST; } void PascalParser::procedureHeader() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST procedureHeader_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp61_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp61_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp61_AST)); } match(PROCEDURE); { if ((LA(1) == IDENT) && (LA(2) == SEMI || LA(2) == LPAREN)) { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else if ((LA(1) == IDENT) && (LA(2) == COLON)) { qualifiedMethodIdentifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } { switch ( LA(1)) { case LPAREN: { formalParameterList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SEMI: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(SEMI); { // ( ... )* for (;;) { if (((LA(1) >= PUBLIC && LA(1) <= FAR))) { modifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); } else { goto _loop68; } } _loop68:; } // ( ... )* procedureHeader_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_26); } else { throw; } } returnAST = procedureHeader_AST; } void PascalParser::subroutineBlock() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST subroutineBlock_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case BEGIN: case LABEL: case CONST: case RESOURCESTRING: case TYPE: case VAR: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: { block(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } subroutineBlock_AST = RefPascalAST(currentAST.root); break; } case EXTERNAL: { externalDirective(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } subroutineBlock_AST = RefPascalAST(currentAST.root); break; } case FORWARD: { match(FORWARD); subroutineBlock_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_27); } else { throw; } } returnAST = subroutineBlock_AST; } void PascalParser::functionHeader() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST functionHeader_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling bool synPredMatched74 = false; if (((LA(1) == FUNCTION) && (LA(2) == IDENT))) { int _m74 = mark(); synPredMatched74 = true; inputState->guessing++; try { { match(FUNCTION); identifier(); match(COLON); type(); match(SEMI); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched74 = false; } rewind(_m74); inputState->guessing--; } if ( synPredMatched74 ) { RefPascalAST tmp65_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp65_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp65_AST)); } match(FUNCTION); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); { // ( ... )* for (;;) { if (((LA(1) >= PUBLIC && LA(1) <= FAR))) { modifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); } else { goto _loop76; } } _loop76:; } // ( ... )* functionHeader_AST = RefPascalAST(currentAST.root); } else { bool synPredMatched78 = false; if (((LA(1) == FUNCTION) && (LA(2) == IDENT))) { int _m78 = mark(); synPredMatched78 = true; inputState->guessing++; try { { match(FUNCTION); identifier(); match(COLON); match(COLON); identifier(); match(COLON); type(); match(SEMI); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched78 = false; } rewind(_m78); inputState->guessing--; } if ( synPredMatched78 ) { RefPascalAST tmp69_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp69_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp69_AST)); } match(FUNCTION); qualifiedMethodIdentifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); { // ( ... )* for (;;) { if (((LA(1) >= PUBLIC && LA(1) <= FAR))) { modifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); } else { goto _loop80; } } _loop80:; } // ( ... )* functionHeader_AST = RefPascalAST(currentAST.root); } else { bool synPredMatched82 = false; if (((LA(1) == FUNCTION) && (LA(2) == IDENT))) { int _m82 = mark(); synPredMatched82 = true; inputState->guessing++; try { { match(FUNCTION); identifier(); match(COLON); match(COLON); identifier(); match(LPAREN); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched82 = false; } rewind(_m82); inputState->guessing--; } if ( synPredMatched82 ) { RefPascalAST tmp73_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp73_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp73_AST)); } match(FUNCTION); qualifiedMethodIdentifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } formalParameterList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); { // ( ... )* for (;;) { if (((LA(1) >= PUBLIC && LA(1) <= FAR))) { modifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); } else { goto _loop84; } } _loop84:; } // ( ... )* functionHeader_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == FUNCTION) && (LA(2) == IDENT)) { RefPascalAST tmp77_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp77_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp77_AST)); } match(FUNCTION); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } formalParameterList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); { // ( ... )* for (;;) { if (((LA(1) >= PUBLIC && LA(1) <= FAR))) { modifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); } else { goto _loop86; } } _loop86:; } // ( ... )* functionHeader_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } }} } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_26); } else { throw; } } returnAST = functionHeader_AST; } void PascalParser::qualifiedMethodIdentifier() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST qualifiedMethodIdentifier_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); match(COLON); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } qualifiedMethodIdentifier_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_28); } else { throw; } } returnAST = qualifiedMethodIdentifier_AST; } void PascalParser::formalParameterList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST formalParameterList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling match(LPAREN); parameterDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); parameterDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop96; } } _loop96:; } // ( ... )* match(RPAREN); formalParameterList_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_29); } else { throw; } } returnAST = formalParameterList_AST; } void PascalParser::modifiers() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST modifiers_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case PUBLIC: { match(PUBLIC); modifiers_AST = RefPascalAST(currentAST.root); break; } case ALIAS: { { match(ALIAS); stringConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } modifiers_AST = RefPascalAST(currentAST.root); break; } case INTERRUPT: { match(INTERRUPT); modifiers_AST = RefPascalAST(currentAST.root); break; } case REGISTER: case PASCAL: case CDECL: case STDCALL: case POPSTACK: case SAVEREGISTERS: case INLINE: case SAFECALL: case NEAR: case FAR: { callModifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } modifiers_AST = RefPascalAST(currentAST.root); break; } case EXPORT: { match(EXPORT); modifiers_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_22); } else { throw; } } returnAST = modifiers_AST; } void PascalParser::externalDirective() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST externalDirective_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp90_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp90_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp90_AST)); } match(EXTERNAL); { switch ( LA(1)) { case STRING_LITERAL: case CHR: { stringConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case LITERAL_name: { { RefPascalAST tmp91_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp91_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp91_AST)); } match(LITERAL_name); stringConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } break; } case LITERAL_index: { { RefPascalAST tmp92_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp92_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp92_AST)); } match(LITERAL_index); integerConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } break; } case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE: case SEMI: case END: case EXPORTS: case BEGIN: case INITIALIZATION: case LABEL: case CONST: case RESOURCESTRING: case TYPE: case VAR: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } break; } case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE: case SEMI: case END: case EXPORTS: case BEGIN: case INITIALIZATION: case LABEL: case CONST: case RESOURCESTRING: case TYPE: case VAR: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } externalDirective_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_27); } else { throw; } } returnAST = externalDirective_AST; } void PascalParser::functionHeaderEnding() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST functionHeaderEnding_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case COLON: { match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); { // ( ... )* for (;;) { if (((LA(1) >= PUBLIC && LA(1) <= FAR))) { modifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); } else { goto _loop91; } } _loop91:; } // ( ... )* functionHeaderEnding_AST = RefPascalAST(currentAST.root); break; } case LPAREN: { formalParameterList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); { // ( ... )* for (;;) { if (((LA(1) >= PUBLIC && LA(1) <= FAR))) { modifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); } else { goto _loop93; } } _loop93:; } // ( ... )* functionHeaderEnding_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_0); } else { throw; } } returnAST = functionHeaderEnding_AST; } void PascalParser::parameterDeclaration() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST parameterDeclaration_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case IDENT: { valueParameter(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } parameterDeclaration_AST = RefPascalAST(currentAST.root); break; } case VAR: { variableParameter(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } parameterDeclaration_AST = RefPascalAST(currentAST.root); break; } case CONST: { constantParameter(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } parameterDeclaration_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_30); } else { throw; } } returnAST = parameterDeclaration_AST; } void PascalParser::valueParameter() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST valueParameter_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling bool synPredMatched100 = false; if (((LA(1) == IDENT) && (LA(2) == COMMA || LA(2) == COLON))) { int _m100 = mark(); synPredMatched100 = true; inputState->guessing++; try { { identifierList(); match(COLON); match(ARRAY); match(OF); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched100 = false; } rewind(_m100); inputState->guessing--; } if ( synPredMatched100 ) { identifierList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); match(ARRAY); match(OF); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } valueParameter_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == IDENT) && (LA(2) == COMMA || LA(2) == COLON)) { identifierList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } valueParameter_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_30); } else { throw; } } returnAST = valueParameter_AST; } void PascalParser::variableParameter() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST variableParameter_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp103_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp103_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp103_AST)); } match(VAR); identifierList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case COLON: { untypedParameterPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SEMI: case RPAREN: case RBRACK: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } variableParameter_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_30); } else { throw; } } returnAST = variableParameter_AST; } void PascalParser::constantParameter() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST constantParameter_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp104_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp104_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp104_AST)); } match(CONST); identifierList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case COLON: { untypedParameterPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SEMI: case RPAREN: case RBRACK: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } constantParameter_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_30); } else { throw; } } returnAST = constantParameter_AST; } void PascalParser::untypedParameterPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST untypedParameterPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling bool synPredMatched105 = false; if (((LA(1) == COLON) && (LA(2) == ARRAY))) { int _m105 = mark(); synPredMatched105 = true; inputState->guessing++; try { { match(COLON); match(ARRAY); match(OF); type(); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched105 = false; } rewind(_m105); inputState->guessing--; } if ( synPredMatched105 ) { match(COLON); match(ARRAY); match(OF); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } untypedParameterPart_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == COLON) && (_tokenSet_31.member(LA(2)))) { match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } untypedParameterPart_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_30); } else { throw; } } returnAST = untypedParameterPart_AST; } void PascalParser::callModifiers() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST callModifiers_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case REGISTER: { match(REGISTER); callModifiers_AST = RefPascalAST(currentAST.root); break; } case PASCAL: { match(PASCAL); callModifiers_AST = RefPascalAST(currentAST.root); break; } case CDECL: { match(CDECL); callModifiers_AST = RefPascalAST(currentAST.root); break; } case STDCALL: { match(STDCALL); callModifiers_AST = RefPascalAST(currentAST.root); break; } case POPSTACK: { match(POPSTACK); callModifiers_AST = RefPascalAST(currentAST.root); break; } case SAVEREGISTERS: { match(SAVEREGISTERS); callModifiers_AST = RefPascalAST(currentAST.root); break; } case INLINE: { match(INLINE); callModifiers_AST = RefPascalAST(currentAST.root); break; } case SAFECALL: { match(SAFECALL); callModifiers_AST = RefPascalAST(currentAST.root); break; } case NEAR: { match(NEAR); callModifiers_AST = RefPascalAST(currentAST.root); break; } case FAR: { match(FAR); callModifiers_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = callModifiers_AST; } void PascalParser::expression() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST expression_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling simpleExpression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case EQUAL: case LE: case GE: case LTH: case GT: case NOT_EQUAL: case IN: case IS: { expressionSign(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } simpleExpression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case DOT: case SEMI: case END: case COMMA: case RPAREN: case FINALIZATION: case OF: case DOTDOT: case RBRACK: case THEN: case ELSE: case DO: case UNTIL: case TO: case DOWNTO: case RBRACK2: case EXCEPT: case FINALLY: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } expression_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_32); } else { throw; } } returnAST = expression_AST; } void PascalParser::typedConstant() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST typedConstant_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling bool synPredMatched120 = false; if (((_tokenSet_33.member(LA(1))) && (_tokenSet_34.member(LA(2))))) { int _m120 = mark(); synPredMatched120 = true; inputState->guessing++; try { { constant(); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched120 = false; } rewind(_m120); inputState->guessing--; } if ( synPredMatched120 ) { constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } typedConstant_AST = RefPascalAST(currentAST.root); } else { bool synPredMatched122 = false; if (((LA(1) == LPAREN) && (LA(2) == IDENT))) { int _m122 = mark(); synPredMatched122 = true; inputState->guessing++; try { { match(LPAREN); identifier(); match(COLON); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched122 = false; } rewind(_m122); inputState->guessing--; } if ( synPredMatched122 ) { recordConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } typedConstant_AST = RefPascalAST(currentAST.root); } else { bool synPredMatched124 = false; if (((LA(1) == LPAREN) && (_tokenSet_35.member(LA(2))))) { int _m124 = mark(); synPredMatched124 = true; inputState->guessing++; try { { arrayConstant(); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched124 = false; } rewind(_m124); inputState->guessing--; } if ( synPredMatched124 ) { arrayConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } typedConstant_AST = RefPascalAST(currentAST.root); } else if ((_tokenSet_36.member(LA(1))) && (_tokenSet_37.member(LA(2)))) { proceduralConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } typedConstant_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } }} } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_22); } else { throw; } } returnAST = typedConstant_AST; } void PascalParser::constant() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST constant_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); RefPascalAST s_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); RefPascalAST n_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); RefPascalAST s2_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); RefPascalAST id_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case NUM_INT: case NUM_REAL: { unsignedNumber(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } constant_AST = RefPascalAST(currentAST.root); break; } case IDENT: { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } constant_AST = RefPascalAST(currentAST.root); break; } case STRING_LITERAL: { string(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } constant_AST = RefPascalAST(currentAST.root); break; } case CHR: { constantChr(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } constant_AST = RefPascalAST(currentAST.root); break; } default: if ((LA(1) == PLUS || LA(1) == MINUS) && (LA(2) == NUM_INT || LA(2) == NUM_REAL)) { sign(); if (inputState->guessing==0) { s_AST = returnAST; } unsignedNumber(); if (inputState->guessing==0) { n_AST = returnAST; } if ( inputState->guessing==0 ) { constant_AST = RefPascalAST(currentAST.root); #line 901 "pascal.g" constant_AST=RefPascalAST(astFactory->make((new ANTLR_USE_NAMESPACE(antlr)ASTArray(2))->add(ANTLR_USE_NAMESPACE(antlr)RefAST(s_AST))->add(ANTLR_USE_NAMESPACE(antlr)RefAST(n_AST)))); #line 3461 "PascalParser.cpp" currentAST.root = constant_AST; if ( constant_AST!=RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) && constant_AST->getFirstChild() != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) currentAST.child = constant_AST->getFirstChild(); else currentAST.child = constant_AST; currentAST.advanceChildToEnd(); } } else if ((LA(1) == PLUS || LA(1) == MINUS) && (LA(2) == IDENT)) { sign(); if (inputState->guessing==0) { s2_AST = returnAST; } identifier(); if (inputState->guessing==0) { id_AST = returnAST; } if ( inputState->guessing==0 ) { constant_AST = RefPascalAST(currentAST.root); #line 903 "pascal.g" constant_AST=RefPascalAST(astFactory->make((new ANTLR_USE_NAMESPACE(antlr)ASTArray(2))->add(ANTLR_USE_NAMESPACE(antlr)RefAST(s2_AST))->add(ANTLR_USE_NAMESPACE(antlr)RefAST(id_AST)))); #line 3484 "PascalParser.cpp" currentAST.root = constant_AST; if ( constant_AST!=RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) && constant_AST->getFirstChild() != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) currentAST.child = constant_AST->getFirstChild(); else currentAST.child = constant_AST; currentAST.advanceChildToEnd(); } } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_38); } else { throw; } } returnAST = constant_AST; } void PascalParser::recordConstant() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST recordConstant_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling match(LPAREN); { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } } else { goto _loop134; } } _loop134:; } // ( ... )* match(RPAREN); recordConstant_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_22); } else { throw; } } returnAST = recordConstant_AST; } void PascalParser::arrayConstant() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST arrayConstant_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling match(LPAREN); { switch ( LA(1)) { case NUM_INT: case PLUS: case MINUS: case STRING_LITERAL: case CHR: case NUM_REAL: case IDENT: { constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case LPAREN: { arrayConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); { switch ( LA(1)) { case NUM_INT: case PLUS: case MINUS: case STRING_LITERAL: case CHR: case NUM_REAL: case IDENT: { constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case LPAREN: { arrayConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } } else { goto _loop129; } } _loop129:; } // ( ... )* match(RPAREN); arrayConstant_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_39); } else { throw; } } returnAST = arrayConstant_AST; } void PascalParser::proceduralConstant() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST proceduralConstant_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } proceduralConstant_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_22); } else { throw; } } returnAST = proceduralConstant_AST; } void PascalParser::addressConstant() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST addressConstant_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp127_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp127_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp127_AST)); } match(NUM_INT); addressConstant_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = addressConstant_AST; } void PascalParser::simpleType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST simpleType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case INTEGER: case SHORTINT: case SMALLINT: case LONGINT: case INT64: case BYTE: case WORD: case CARDINAL: case TQWORD: case BOOLEAN: case BYTEBOOL: case LONGBOOL: case CHAR: { ordinalType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } simpleType_AST = RefPascalAST(currentAST.root); break; } case REAL: case SINGLE: case DOUBLE: case EXTENDED: case COMP: { realType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } simpleType_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = simpleType_AST; } void PascalParser::subrangeTypeOrTypeIdentifier() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST subrangeTypeOrTypeIdentifier_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case DOTDOT: { match(DOTDOT); constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SEMI: case RPAREN: case EQUAL: case RBRACK: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } subrangeTypeOrTypeIdentifier_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = subrangeTypeOrTypeIdentifier_AST; } void PascalParser::enumeratedType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST enumeratedType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling bool synPredMatched147 = false; if (((LA(1) == LPAREN) && (LA(2) == IDENT))) { int _m147 = mark(); synPredMatched147 = true; inputState->guessing++; try { { match(LPAREN); identifier(); match(ASSIGN); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched147 = false; } rewind(_m147); inputState->guessing--; } if ( synPredMatched147 ) { match(LPAREN); assignedEnumList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); enumeratedType_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == LPAREN) && (LA(2) == IDENT)) { match(LPAREN); identifierList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); enumeratedType_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_40); } else { throw; } } returnAST = enumeratedType_AST; } void PascalParser::stringType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST stringType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp133_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp133_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp133_AST)); } match(STRING); { switch ( LA(1)) { case LBRACK: { match(LBRACK); unsignedInteger(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RBRACK); break; } case SEMI: case RPAREN: case EQUAL: case RBRACK: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } stringType_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = stringType_AST; } void PascalParser::structuredType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST structuredType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case PACKED: { match(PACKED); break; } case ARRAY: case RECORD: case SET: case FILE: case OBJECT: case CLASS: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case ARRAY: { arrayType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case RECORD: { recordType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case OBJECT: { objectType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case CLASS: { classType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SET: { setType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case FILE: { fileType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } structuredType_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = structuredType_AST; } void PascalParser::pointerType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST pointerType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp137_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp137_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp137_AST)); } match(POINTER); typeIdentifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } pointerType_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = pointerType_AST; } void PascalParser::proceduralType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST proceduralType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling bool synPredMatched185 = false; if (((LA(1) == PROCEDURE || LA(1) == FUNCTION) && (LA(2) == IDENT))) { int _m185 = mark(); synPredMatched185 = true; inputState->guessing++; try { { proceduralTypePart1(); match(SEMI); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched185 = false; } rewind(_m185); inputState->guessing--; } if ( synPredMatched185 ) { proceduralTypePart1(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); callModifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } proceduralType_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == PROCEDURE || LA(1) == FUNCTION) && (LA(2) == IDENT)) { proceduralTypePart1(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } proceduralType_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = proceduralType_AST; } void PascalParser::ordinalType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST ordinalType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case INTEGER: { match(INTEGER); ordinalType_AST = RefPascalAST(currentAST.root); break; } case SHORTINT: { match(SHORTINT); ordinalType_AST = RefPascalAST(currentAST.root); break; } case SMALLINT: { match(SMALLINT); ordinalType_AST = RefPascalAST(currentAST.root); break; } case LONGINT: { match(LONGINT); ordinalType_AST = RefPascalAST(currentAST.root); break; } case INT64: { match(INT64); ordinalType_AST = RefPascalAST(currentAST.root); break; } case BYTE: { match(BYTE); ordinalType_AST = RefPascalAST(currentAST.root); break; } case WORD: { match(WORD); ordinalType_AST = RefPascalAST(currentAST.root); break; } case CARDINAL: { match(CARDINAL); ordinalType_AST = RefPascalAST(currentAST.root); break; } case TQWORD: { match(TQWORD); ordinalType_AST = RefPascalAST(currentAST.root); break; } case BOOLEAN: { match(BOOLEAN); ordinalType_AST = RefPascalAST(currentAST.root); break; } case BYTEBOOL: { match(BYTEBOOL); ordinalType_AST = RefPascalAST(currentAST.root); break; } case LONGBOOL: { match(LONGBOOL); ordinalType_AST = RefPascalAST(currentAST.root); break; } case CHAR: { match(CHAR); ordinalType_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_40); } else { throw; } } returnAST = ordinalType_AST; } void PascalParser::realType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST realType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case REAL: { match(REAL); realType_AST = RefPascalAST(currentAST.root); break; } case SINGLE: { match(SINGLE); realType_AST = RefPascalAST(currentAST.root); break; } case DOUBLE: { match(DOUBLE); realType_AST = RefPascalAST(currentAST.root); break; } case EXTENDED: { match(EXTENDED); realType_AST = RefPascalAST(currentAST.root); break; } case COMP: { match(COMP); realType_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = realType_AST; } void PascalParser::typeIdentifier() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST typeIdentifier_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } typeIdentifier_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_41); } else { throw; } } returnAST = typeIdentifier_AST; } void PascalParser::subrangeType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST subrangeType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(DOTDOT); constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } subrangeType_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_0); } else { throw; } } returnAST = subrangeType_AST; } void PascalParser::assignedEnumList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST assignedEnumList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(ASSIGN); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(ASSIGN); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } } else { goto _loop152; } } _loop152:; } // ( ... )* assignedEnumList_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_42); } else { throw; } } returnAST = assignedEnumList_AST; } void PascalParser::unsignedInteger() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST unsignedInteger_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp161_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp161_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp161_AST)); } match(NUM_INT); unsignedInteger_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_43); } else { throw; } } returnAST = unsignedInteger_AST; } void PascalParser::arrayType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST arrayType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp162_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp162_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp162_AST)); } match(ARRAY); match(LBRACK); arrayIndexType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); arrayIndexType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop161; } } _loop161:; } // ( ... )* match(RBRACK); match(OF); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } arrayType_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = arrayType_AST; } void PascalParser::recordType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST recordType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp167_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp167_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp167_AST)); } match(RECORD); { // ( ... )* for (;;) { if ((LA(1) == CASE || LA(1) == IDENT)) { fieldList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop168; } } _loop168:; } // ( ... )* match(END); recordType_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = recordType_AST; } void PascalParser::objectType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST objectType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp169_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp169_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp169_AST)); } match(OBJECT); { switch ( LA(1)) { case LPAREN: { heritage(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: case PROCEDURE: case FUNCTION: case PUBLIC: case PRIVATE: case PROTECTED: case CONSTRUCTOR: case DESTRUCTOR: case IDENT: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case IDENT: { componentList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case PUBLIC: case PRIVATE: case PROTECTED: { objectVisibilitySpecifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(END); objectType_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = objectType_AST; } void PascalParser::classType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST classType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp171_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp171_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp171_AST)); } match(CLASS); { switch ( LA(1)) { case LPAREN: { heritage(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: case PROCEDURE: case FUNCTION: case PUBLIC: case PRIVATE: case PROTECTED: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PUBLISHED: case PROPERTY: case IDENT: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PROPERTY: case IDENT: { classComponentList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case PUBLIC: case PRIVATE: case PROTECTED: case PUBLISHED: { classVisibilitySpecifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(END); classType_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = classType_AST; } void PascalParser::setType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST setType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp173_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp173_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp173_AST)); } match(SET); match(OF); ordinalType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } setType_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = setType_AST; } void PascalParser::fileType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST fileType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp175_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp175_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp175_AST)); } match(FILE); match(OF); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } fileType_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = fileType_AST; } void PascalParser::arrayIndexType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST arrayIndexType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling if (((LA(1) >= INTEGER && LA(1) <= CHAR))) { ordinalType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } arrayIndexType_AST = RefPascalAST(currentAST.root); } else { bool synPredMatched164 = false; if (((_tokenSet_36.member(LA(1))) && (_tokenSet_44.member(LA(2))))) { int _m164 = mark(); synPredMatched164 = true; inputState->guessing++; try { { expression(); match(DOTDOT); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched164 = false; } rewind(_m164); inputState->guessing--; } if ( synPredMatched164 ) { arraySubrangeType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } arrayIndexType_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == LPAREN) && (LA(2) == IDENT)) { enumeratedType(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } arrayIndexType_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_45); } else { throw; } } returnAST = arrayIndexType_AST; } void PascalParser::arraySubrangeType() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST arraySubrangeType_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(DOTDOT); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } arraySubrangeType_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_45); } else { throw; } } returnAST = arraySubrangeType_AST; } void PascalParser::fieldList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST fieldList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case IDENT: { fixedField(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } fieldList_AST = RefPascalAST(currentAST.root); break; } case CASE: { variantPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } fieldList_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_46); } else { throw; } } returnAST = fieldList_AST; } void PascalParser::fixedField() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST fixedField_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifierList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); fixedField_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_46); } else { throw; } } returnAST = fixedField_AST; } void PascalParser::variantPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST variantPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp180_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp180_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp180_AST)); } match(CASE); { if ((LA(1) == IDENT) && (LA(2) == COLON)) { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); } else if ((LA(1) == IDENT) && (LA(2) == OF)) { } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(OF); variant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); variant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop174; } } _loop174:; } // ( ... )* variantPart_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_46); } else { throw; } } returnAST = variantPart_AST; } void PascalParser::variant() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST variant_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { // ( ... )+ int _cnt177=0; for (;;) { if ((_tokenSet_33.member(LA(1)))) { constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COMMA); } else { if ( _cnt177>=1 ) { goto _loop177; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());} } _cnt177++; } _loop177:; } // ( ... )+ match(COLON); match(LPAREN); { // ( ... )* for (;;) { if ((LA(1) == CASE || LA(1) == IDENT)) { fieldList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop179; } } _loop179:; } // ( ... )* match(RPAREN); variant_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_47); } else { throw; } } returnAST = variant_AST; } void PascalParser::proceduralTypePart1() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST proceduralTypePart1_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case FUNCTION: { functionHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case PROCEDURE: { procedureHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case OF: { match(OF); match(OBJECT); break; } case SEMI: case RPAREN: case EQUAL: case RBRACK: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } proceduralTypePart1_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_23); } else { throw; } } returnAST = proceduralTypePart1_AST; } void PascalParser::heritage() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST heritage_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling match(LPAREN); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); heritage_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_48); } else { throw; } } returnAST = heritage_AST; } void PascalParser::componentList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST componentList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case IDENT: { { // ( ... )+ int _cnt196=0; for (;;) { if ((LA(1) == IDENT)) { fieldDefinition(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { if ( _cnt196>=1 ) { goto _loop196; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());} } _cnt196++; } _loop196:; } // ( ... )+ break; } case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: { { // ( ... )+ int _cnt199=0; for (;;) { if ((_tokenSet_49.member(LA(1)))) { methodDefinition(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { if ( _cnt199>=1 ) { goto _loop199; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());} } _cnt199++; } _loop199:; } // ( ... )+ break; } case END: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } componentList_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_6); } else { throw; } } returnAST = componentList_AST; } void PascalParser::objectVisibilitySpecifier() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST objectVisibilitySpecifier_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case PRIVATE: { match(PRIVATE); objectVisibilitySpecifier_AST = RefPascalAST(currentAST.root); break; } case PROTECTED: { match(PROTECTED); objectVisibilitySpecifier_AST = RefPascalAST(currentAST.root); break; } case PUBLIC: { match(PUBLIC); objectVisibilitySpecifier_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_6); } else { throw; } } returnAST = objectVisibilitySpecifier_AST; } void PascalParser::fieldDefinition() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST fieldDefinition_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifierList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); fieldDefinition_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_50); } else { throw; } } returnAST = fieldDefinition_AST; } void PascalParser::methodDefinition() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST methodDefinition_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case FUNCTION: { functionHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case PROCEDURE: { procedureHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case CONSTRUCTOR: { constructorHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case DESTRUCTOR: { destructorHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(SEMI); methodDirectives(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } methodDefinition_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_51); } else { throw; } } returnAST = methodDefinition_AST; } void PascalParser::constructorHeader() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST constructorHeader_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp198_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp198_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp198_AST)); } match(CONSTRUCTOR); { if ((LA(1) == IDENT) && (LA(2) == LPAREN)) { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else if ((LA(1) == IDENT) && (LA(2) == COLON)) { qualifiedMethodIdentifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } formalParameterList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } constructorHeader_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_22); } else { throw; } } returnAST = constructorHeader_AST; } void PascalParser::destructorHeader() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST destructorHeader_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp199_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp199_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp199_AST)); } match(DESTRUCTOR); { if ((LA(1) == IDENT) && (LA(2) == LPAREN)) { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else if ((LA(1) == IDENT) && (LA(2) == COLON)) { qualifiedMethodIdentifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } formalParameterList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } destructorHeader_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_22); } else { throw; } } returnAST = destructorHeader_AST; } void PascalParser::methodDirectives() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST methodDirectives_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case VIRTUAL: { match(VIRTUAL); match(SEMI); { switch ( LA(1)) { case ABSTRACT: { match(ABSTRACT); match(SEMI); break; } case END: case PROCEDURE: case FUNCTION: case REGISTER: case PASCAL: case CDECL: case STDCALL: case POPSTACK: case SAVEREGISTERS: case INLINE: case SAFECALL: case NEAR: case FAR: case CONSTRUCTOR: case DESTRUCTOR: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } break; } case END: case PROCEDURE: case FUNCTION: case REGISTER: case PASCAL: case CDECL: case STDCALL: case POPSTACK: case SAVEREGISTERS: case INLINE: case SAFECALL: case NEAR: case FAR: case CONSTRUCTOR: case DESTRUCTOR: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case REGISTER: case PASCAL: case CDECL: case STDCALL: case POPSTACK: case SAVEREGISTERS: case INLINE: case SAFECALL: case NEAR: case FAR: { callModifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); break; } case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } methodDirectives_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_51); } else { throw; } } returnAST = methodDirectives_AST; } void PascalParser::classComponentList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST classComponentList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case IDENT: { { // ( ... )+ int _cnt220=0; for (;;) { if ((LA(1) == IDENT)) { fieldDefinition(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { if ( _cnt220>=1 ) { goto _loop220; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());} } _cnt220++; } _loop220:; } // ( ... )+ break; } case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PROPERTY: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PROPERTY: { { // ( ... )+ int _cnt224=0; for (;;) { if ((_tokenSet_52.member(LA(1)))) { { switch ( LA(1)) { case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: { classMethodDefinition(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case PROPERTY: { propertyDefinition(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } } else { if ( _cnt224>=1 ) { goto _loop224; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());} } _cnt224++; } _loop224:; } // ( ... )+ break; } case END: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } classComponentList_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_6); } else { throw; } } returnAST = classComponentList_AST; } void PascalParser::classVisibilitySpecifier() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST classVisibilitySpecifier_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case PRIVATE: { match(PRIVATE); classVisibilitySpecifier_AST = RefPascalAST(currentAST.root); break; } case PROTECTED: { match(PROTECTED); classVisibilitySpecifier_AST = RefPascalAST(currentAST.root); break; } case PUBLIC: { match(PUBLIC); classVisibilitySpecifier_AST = RefPascalAST(currentAST.root); break; } case PUBLISHED: { match(PUBLISHED); classVisibilitySpecifier_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_6); } else { throw; } } returnAST = classVisibilitySpecifier_AST; } void PascalParser::classMethodDefinition() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST classMethodDefinition_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case PROCEDURE: case FUNCTION: case CLASS: { { { switch ( LA(1)) { case CLASS: { match(CLASS); break; } case PROCEDURE: case FUNCTION: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case FUNCTION: { functionHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case PROCEDURE: { procedureHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } } break; } case CONSTRUCTOR: { constructorHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case DESTRUCTOR: { destructorHeader(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(SEMI); classMethodDirectives(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } classMethodDefinition_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_53); } else { throw; } } returnAST = classMethodDefinition_AST; } void PascalParser::propertyDefinition() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST propertyDefinition_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp211_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp211_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp211_AST)); } match(PROPERTY); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case COLON: case LBRACK: { propertyInterface(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PROPERTY: case LITERAL_read: case LITERAL_write: case DEFAULT: case LITERAL_nodefault: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } propertySpecifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } propertyDefinition_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_53); } else { throw; } } returnAST = propertyDefinition_AST; } void PascalParser::classMethodDirectives() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST classMethodDirectives_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case VIRTUAL: case OVERRIDE: case MESSAGE: { directiveVariants(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); break; } case END: case PROCEDURE: case FUNCTION: case REGISTER: case PASCAL: case CDECL: case STDCALL: case POPSTACK: case SAVEREGISTERS: case INLINE: case SAFECALL: case NEAR: case FAR: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PROPERTY: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case REGISTER: case PASCAL: case CDECL: case STDCALL: case POPSTACK: case SAVEREGISTERS: case INLINE: case SAFECALL: case NEAR: case FAR: { callModifiers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); break; } case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PROPERTY: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } classMethodDirectives_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_53); } else { throw; } } returnAST = classMethodDirectives_AST; } void PascalParser::directiveVariants() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST directiveVariants_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case VIRTUAL: { { match(VIRTUAL); { switch ( LA(1)) { case ABSTRACT: { match(ABSTRACT); match(SEMI); break; } case SEMI: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } } directiveVariants_AST = RefPascalAST(currentAST.root); break; } case OVERRIDE: { match(OVERRIDE); directiveVariants_AST = RefPascalAST(currentAST.root); break; } case MESSAGE: { { match(MESSAGE); { switch ( LA(1)) { case NUM_INT: case PLUS: case MINUS: { integerConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case STRING_LITERAL: case CHR: { stringConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } } directiveVariants_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_22); } else { throw; } } returnAST = directiveVariants_AST; } void PascalParser::propertyInterface() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST propertyInterface_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case LBRACK: { propertyParameterList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case COLON: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(COLON); typeIdentifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case LITERAL_index: { RefPascalAST tmp220_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp220_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp220_AST)); } match(LITERAL_index); integerConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PROPERTY: case LITERAL_read: case LITERAL_write: case DEFAULT: case LITERAL_nodefault: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } propertyInterface_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_54); } else { throw; } } returnAST = propertyInterface_AST; } void PascalParser::propertySpecifiers() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST propertySpecifiers_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case LITERAL_read: { readSpecifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PROPERTY: case LITERAL_write: case DEFAULT: case LITERAL_nodefault: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case LITERAL_write: { writeSpecifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PROPERTY: case DEFAULT: case LITERAL_nodefault: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1)) { case DEFAULT: case LITERAL_nodefault: { defaultSpecifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PROPERTY: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } propertySpecifiers_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_53); } else { throw; } } returnAST = propertySpecifiers_AST; } void PascalParser::propertyParameterList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST propertyParameterList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling match(LBRACK); parameterDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); parameterDeclaration(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop246; } } _loop246:; } // ( ... )* match(RBRACK); propertyParameterList_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_55); } else { throw; } } returnAST = propertyParameterList_AST; } void PascalParser::readSpecifier() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST readSpecifier_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp224_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp224_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp224_AST)); } match(LITERAL_read); fieldOrMethod(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } readSpecifier_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_56); } else { throw; } } returnAST = readSpecifier_AST; } void PascalParser::writeSpecifier() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST writeSpecifier_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp225_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp225_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp225_AST)); } match(LITERAL_write); fieldOrMethod(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } writeSpecifier_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_57); } else { throw; } } returnAST = writeSpecifier_AST; } void PascalParser::defaultSpecifier() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST defaultSpecifier_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case DEFAULT: { { RefPascalAST tmp226_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp226_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp226_AST)); } match(DEFAULT); { switch ( LA(1)) { case NUM_INT: case PLUS: case MINUS: case STRING_LITERAL: case CHR: case NUM_REAL: case IDENT: { constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: case PROCEDURE: case FUNCTION: case CONSTRUCTOR: case DESTRUCTOR: case CLASS: case PROPERTY: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } } defaultSpecifier_AST = RefPascalAST(currentAST.root); break; } case LITERAL_nodefault: { RefPascalAST tmp227_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp227_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp227_AST)); } match(LITERAL_nodefault); defaultSpecifier_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_53); } else { throw; } } returnAST = defaultSpecifier_AST; } void PascalParser::fieldOrMethod() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST fieldOrMethod_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } fieldOrMethod_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_56); } else { throw; } } returnAST = fieldOrMethod_AST; } void PascalParser::simpleExpression() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST simpleExpression_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling term(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if (((LA(1) >= PLUS && LA(1) <= XOR))) { { switch ( LA(1)) { case PLUS: { match(PLUS); break; } case MINUS: { match(MINUS); break; } case OR: { match(OR); break; } case XOR: { match(XOR); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } term(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop263; } } _loop263:; } // ( ... )* simpleExpression_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_58); } else { throw; } } returnAST = simpleExpression_AST; } void PascalParser::expressionSign() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST expressionSign_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case LE: { match(LE); expressionSign_AST = RefPascalAST(currentAST.root); break; } case GE: { match(GE); expressionSign_AST = RefPascalAST(currentAST.root); break; } case LTH: { match(LTH); expressionSign_AST = RefPascalAST(currentAST.root); break; } case GT: { match(GT); expressionSign_AST = RefPascalAST(currentAST.root); break; } case NOT_EQUAL: { match(NOT_EQUAL); expressionSign_AST = RefPascalAST(currentAST.root); break; } case IN: { match(IN); expressionSign_AST = RefPascalAST(currentAST.root); break; } case IS: { match(IS); expressionSign_AST = RefPascalAST(currentAST.root); break; } case EQUAL: { match(EQUAL); expressionSign_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_36); } else { throw; } } returnAST = expressionSign_AST; } void PascalParser::term() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST term_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling factor(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if (((LA(1) >= STAR && LA(1) <= SHR))) { { switch ( LA(1)) { case STAR: { match(STAR); break; } case SLASH: { match(SLASH); break; } case DIV: { match(DIV); break; } case MOD: { match(MOD); break; } case AND: { match(AND); break; } case SHL: { match(SHL); break; } case SHR: { match(SHR); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } factor(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop267; } } _loop267:; } // ( ... )* term_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_59); } else { throw; } } returnAST = term_AST; } void PascalParser::factor() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST factor_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case LPAREN: { { match(LPAREN); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); } factor_AST = RefPascalAST(currentAST.root); break; } case NUM_INT: case STRING_LITERAL: case CHR: case NIL: case NUM_REAL: { unsignedConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } factor_AST = RefPascalAST(currentAST.root); break; } case NOT: { { match(NOT); factor(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } factor_AST = RefPascalAST(currentAST.root); break; } case PLUS: case MINUS: { { { switch ( LA(1)) { case PLUS: { match(PLUS); break; } case MINUS: { match(MINUS); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } factor(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } factor_AST = RefPascalAST(currentAST.root); break; } case LBRACK: { setConstructor(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } factor_AST = RefPascalAST(currentAST.root); break; } case AT: { addressFactor(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } factor_AST = RefPascalAST(currentAST.root); break; } case TRUE: { RefPascalAST tmp252_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp252_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp252_AST)); } match(TRUE); factor_AST = RefPascalAST(currentAST.root); break; } case FALSE: { RefPascalAST tmp253_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp253_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp253_AST)); } match(FALSE); factor_AST = RefPascalAST(currentAST.root); break; } default: if ((LA(1) == IDENT) && (_tokenSet_60.member(LA(2)))) { identifierOrValueTypecastOrFunctionCall(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } factor_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == IDENT) && (LA(2) == LBRACK)) { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(LBRACK); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop274; } } _loop274:; } // ( ... )* match(RBRACK); factor_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_61); } else { throw; } } returnAST = factor_AST; } void PascalParser::identifierOrValueTypecastOrFunctionCall() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST identifierOrValueTypecastOrFunctionCall_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling bool synPredMatched277 = false; if (((LA(1) == IDENT) && (LA(2) == LPAREN))) { int _m277 = mark(); synPredMatched277 = true; inputState->guessing++; try { { identifier(); match(LPAREN); expression(); match(COMMA); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched277 = false; } rewind(_m277); inputState->guessing--; } if ( synPredMatched277 ) { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(LPAREN); expressions(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); identifierOrValueTypecastOrFunctionCall_AST = RefPascalAST(currentAST.root); } else { bool synPredMatched279 = false; if (((LA(1) == IDENT) && (LA(2) == LPAREN))) { int _m279 = mark(); synPredMatched279 = true; inputState->guessing++; try { { identifier(); match(LPAREN); expression(); match(RPAREN); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { synPredMatched279 = false; } rewind(_m279); inputState->guessing--; } if ( synPredMatched279 ) { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(LPAREN); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); identifierOrValueTypecastOrFunctionCall_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == IDENT) && (_tokenSet_61.member(LA(2)))) { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } identifierOrValueTypecastOrFunctionCall_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_61); } else { throw; } } returnAST = identifierOrValueTypecastOrFunctionCall_AST; } void PascalParser::unsignedConstant() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST unsignedConstant_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case NUM_INT: case NUM_REAL: { unsignedNumber(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } unsignedConstant_AST = RefPascalAST(currentAST.root); break; } case CHR: { constantChr(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } unsignedConstant_AST = RefPascalAST(currentAST.root); break; } case STRING_LITERAL: { string(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } unsignedConstant_AST = RefPascalAST(currentAST.root); break; } case NIL: { match(NIL); unsignedConstant_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_61); } else { throw; } } returnAST = unsignedConstant_AST; } void PascalParser::setConstructor() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST setConstructor_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling match(LBRACK); { switch ( LA(1)) { case LPAREN: case NUM_INT: case LBRACK: case PLUS: case MINUS: case NOT: case TRUE: case FALSE: case AT: case STRING_LITERAL: case CHR: case NIL: case NUM_REAL: case IDENT: { setGroup(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); setGroup(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop290; } } _loop290:; } // ( ... )* break; } case RBRACK: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(RBRACK); setConstructor_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_61); } else { throw; } } returnAST = setConstructor_AST; } void PascalParser::addressFactor() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST addressFactor_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling match(AT); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } addressFactor_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_61); } else { throw; } } returnAST = addressFactor_AST; } void PascalParser::expressions() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST expressions_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop286; } } _loop286:; } // ( ... )* expressions_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_42); } else { throw; } } returnAST = expressions_AST; } void PascalParser::functionCall() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST functionCall_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case LPAREN: { actualParameterList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SEMI: case END: case FINALIZATION: case AT: case ELSE: case UNTIL: case EXCEPT: case FINALLY: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } functionCall_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_62); } else { throw; } } returnAST = functionCall_AST; } void PascalParser::actualParameterList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST actualParameterList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling match(LPAREN); { switch ( LA(1)) { case LPAREN: case NUM_INT: case LBRACK: case PLUS: case MINUS: case NOT: case TRUE: case FALSE: case AT: case STRING_LITERAL: case CHR: case NIL: case NUM_REAL: case IDENT: { expressions(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case RPAREN: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(RPAREN); actualParameterList_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_62); } else { throw; } } returnAST = actualParameterList_AST; } void PascalParser::setGroup() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST setGroup_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case DOT: { match(DOT); match(DOT); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case COMMA: case RBRACK: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } setGroup_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_45); } else { throw; } } returnAST = setGroup_AST; } void PascalParser::valueTypecast() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST valueTypecast_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling typeIdentifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(LPAREN); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); valueTypecast_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_0); } else { throw; } } returnAST = valueTypecast_AST; } void PascalParser::simpleStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST simpleStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case GOTO: { gotoStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } simpleStatement_AST = RefPascalAST(currentAST.root); break; } case RAISE: { raiseStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } simpleStatement_AST = RefPascalAST(currentAST.root); break; } default: if ((LA(1) == IDENT) && (_tokenSet_63.member(LA(2)))) { assignmentStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } simpleStatement_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == IDENT) && (_tokenSet_64.member(LA(2)))) { procedureStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } simpleStatement_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = simpleStatement_AST; } void PascalParser::structuredStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST structuredStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case BEGIN: { compoundStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } structuredStatement_AST = RefPascalAST(currentAST.root); break; } case WHILE: case REPEAT: case FOR: { repetitiveStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } structuredStatement_AST = RefPascalAST(currentAST.root); break; } case CASE: case IF: { conditionalStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } structuredStatement_AST = RefPascalAST(currentAST.root); break; } case TRY: { exceptionStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } structuredStatement_AST = RefPascalAST(currentAST.root); break; } case WITH: { withStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } structuredStatement_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = structuredStatement_AST; } void PascalParser::assignmentStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST assignmentStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifierOrArrayIdentifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } assignmentOperator(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } assignmentStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = assignmentStatement_AST; } void PascalParser::procedureStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST procedureStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case LPAREN: { actualParameterList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SEMI: case END: case FINALIZATION: case ELSE: case UNTIL: case EXCEPT: case FINALLY: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } procedureStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = procedureStatement_AST; } void PascalParser::gotoStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST gotoStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling match(GOTO); label(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } gotoStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = gotoStatement_AST; } void PascalParser::raiseStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST raiseStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp274_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp274_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp274_AST)); } match(RAISE); { switch ( LA(1)) { case IDENT: { functionCall(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case AT: { match(AT); addressConstant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SEMI: case END: case FINALIZATION: case ELSE: case UNTIL: case EXCEPT: case FINALLY: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } break; } case SEMI: case END: case FINALIZATION: case ELSE: case UNTIL: case EXCEPT: case FINALLY: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } raiseStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = raiseStatement_AST; } void PascalParser::identifierOrArrayIdentifier() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST identifierOrArrayIdentifier_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling if ((LA(1) == IDENT) && (_tokenSet_65.member(LA(2)))) { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } identifierOrArrayIdentifier_AST = RefPascalAST(currentAST.root); } else if ((LA(1) == IDENT) && (LA(2) == LBRACK)) { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(LBRACK); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop302; } } _loop302:; } // ( ... )* match(RBRACK); identifierOrArrayIdentifier_AST = RefPascalAST(currentAST.root); } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_65); } else { throw; } } returnAST = identifierOrArrayIdentifier_AST; } void PascalParser::assignmentOperator() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST assignmentOperator_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case ASSIGN: { match(ASSIGN); assignmentOperator_AST = RefPascalAST(currentAST.root); break; } case PLUSEQ: { RefPascalAST tmp280_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp280_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp280_AST)); } match(PLUSEQ); assignmentOperator_AST = RefPascalAST(currentAST.root); break; } case MINUSEQ: { RefPascalAST tmp281_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp281_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp281_AST)); } match(MINUSEQ); assignmentOperator_AST = RefPascalAST(currentAST.root); break; } case STAREQ: { RefPascalAST tmp282_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp282_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp282_AST)); } match(STAREQ); assignmentOperator_AST = RefPascalAST(currentAST.root); break; } case SLASHQE: { RefPascalAST tmp283_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp283_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp283_AST)); } match(SLASHQE); assignmentOperator_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_36); } else { throw; } } returnAST = assignmentOperator_AST; } void PascalParser::repetitiveStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST repetitiveStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case FOR: { forStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } repetitiveStatement_AST = RefPascalAST(currentAST.root); break; } case REPEAT: { repeatStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } repetitiveStatement_AST = RefPascalAST(currentAST.root); break; } case WHILE: { whileStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } repetitiveStatement_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = repetitiveStatement_AST; } void PascalParser::conditionalStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST conditionalStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case IF: { ifStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } conditionalStatement_AST = RefPascalAST(currentAST.root); break; } case CASE: { caseStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } conditionalStatement_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = conditionalStatement_AST; } void PascalParser::exceptionStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST exceptionStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling tryStatement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } exceptionStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = exceptionStatement_AST; } void PascalParser::withStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST withStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp284_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp284_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp284_AST)); } match(WITH); recordVariableList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(DO); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } withStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = withStatement_AST; } void PascalParser::ifStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST ifStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp286_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp286_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp286_AST)); } match(IF); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(THEN); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { if ((LA(1) == ELSE) && (_tokenSet_24.member(LA(2)))) { match(ELSE); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else if ((_tokenSet_16.member(LA(1))) && (_tokenSet_66.member(LA(2)))) { } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } ifStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = ifStatement_AST; } void PascalParser::caseStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST caseStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp289_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp289_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp289_AST)); } match(CASE); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(OF); caseListElement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI) && (_tokenSet_33.member(LA(2)))) { match(SEMI); caseListElement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop320; } } _loop320:; } // ( ... )* { switch ( LA(1)) { case SEMI: { match(SEMI); match(ELSE); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop323; } } _loop323:; } // ( ... )* break; } case END: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(END); caseStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = caseStatement_AST; } void PascalParser::forStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST forStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp296_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp296_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp296_AST)); } match(FOR); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(ASSIGN); forList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(DO); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } forStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = forStatement_AST; } void PascalParser::repeatStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST repeatStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp299_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp299_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp299_AST)); } match(REPEAT); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); { switch ( LA(1)) { case BEGIN: case NUM_INT: case CASE: case GOTO: case IF: case WHILE: case REPEAT: case FOR: case WITH: case RAISE: case TRY: case IDENT: { statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case SEMI: case UNTIL: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } } else { goto _loop332; } } _loop332:; } // ( ... )* match(UNTIL); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } repeatStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = repeatStatement_AST; } void PascalParser::whileStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST whileStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp302_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp302_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp302_AST)); } match(WHILE); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(DO); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } whileStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = whileStatement_AST; } void PascalParser::caseListElement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST caseListElement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling constList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } RefPascalAST tmp304_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp304_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp304_AST)); } match(COLON); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } caseListElement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_67); } else { throw; } } returnAST = caseListElement_AST; } void PascalParser::constList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST constList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); constant(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop327; } } _loop327:; } // ( ... )* if ( inputState->guessing==0 ) { constList_AST = RefPascalAST(currentAST.root); #line 746 "pascal.g" constList_AST = RefPascalAST(astFactory->make((new ANTLR_USE_NAMESPACE(antlr)ASTArray(2))->add(ANTLR_USE_NAMESPACE(antlr)RefAST(astFactory->create(CONSTLIST)))->add(ANTLR_USE_NAMESPACE(antlr)RefAST(constList_AST)))); #line 8219 "PascalParser.cpp" currentAST.root = constList_AST; if ( constList_AST!=RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) && constList_AST->getFirstChild() != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) currentAST.child = constList_AST->getFirstChild(); else currentAST.child = constList_AST; currentAST.advanceChildToEnd(); } constList_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_55); } else { throw; } } returnAST = constList_AST; } void PascalParser::forList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST forList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling initialValue(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { switch ( LA(1)) { case TO: { RefPascalAST tmp306_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp306_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp306_AST)); } match(TO); break; } case DOWNTO: { RefPascalAST tmp307_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp307_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp307_AST)); } match(DOWNTO); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } finalValue(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } forList_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_68); } else { throw; } } returnAST = forList_AST; } void PascalParser::initialValue() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST initialValue_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } initialValue_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_69); } else { throw; } } returnAST = initialValue_AST; } void PascalParser::finalValue() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST finalValue_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } finalValue_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_68); } else { throw; } } returnAST = finalValue_AST; } void PascalParser::recordVariableList() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST recordVariableList_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling variable(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); variable(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop341; } } _loop341:; } // ( ... )* recordVariableList_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_68); } else { throw; } } returnAST = recordVariableList_AST; } /** A variable is an id with a suffix and can look like: * id * id[expr,...] * id.id * id.id[expr,...] * id^ * id^.id * id^.id[expr,...] * ... * * LL has a really hard time with this construct as it's naturally * left-recursive. We have to turn into a simple loop rather than * recursive loop, hence, the suffixes. I keep in the same rule * for easy tree construction. */ void PascalParser::variable() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST variable_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case AT: { RefPascalAST tmp309_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp309_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp309_AST)); } match(AT); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case IDENT: { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } { // ( ... )* for (;;) { switch ( LA(1)) { case LBRACK: { RefPascalAST tmp310_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp310_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp310_AST)); } match(LBRACK); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop346; } } _loop346:; } // ( ... )* match(RBRACK); break; } case LBRACK2: { RefPascalAST tmp313_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp313_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp313_AST)); } match(LBRACK2); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == COMMA)) { match(COMMA); expression(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop348; } } _loop348:; } // ( ... )* match(RBRACK2); break; } case DOT: { RefPascalAST tmp316_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp316_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp316_AST)); } match(DOT); identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case POINTER: { RefPascalAST tmp317_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp317_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp317_AST)); } match(POINTER); break; } default: { goto _loop349; } } } _loop349:; } // ( ... )* variable_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_70); } else { throw; } } returnAST = variable_AST; } void PascalParser::operatorDefinition() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST operatorDefinition_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp318_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp318_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp318_AST)); } match(OPERATOR); { switch ( LA(1)) { case ASSIGN: { assignmentOperatorDefinition(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case PLUS: case MINUS: case STAR: case SLASH: { arithmeticOperatorDefinition(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case EQUAL: case LE: case GE: case LTH: case GT: { comparisonOperatorDefinition(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); type(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(SEMI); subroutineBlock(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } operatorDefinition_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_0); } else { throw; } } returnAST = operatorDefinition_AST; } void PascalParser::assignmentOperatorDefinition() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST assignmentOperatorDefinition_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling match(ASSIGN); match(LPAREN); valueParameter(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); assignmentOperatorDefinition_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_71); } else { throw; } } returnAST = assignmentOperatorDefinition_AST; } void PascalParser::arithmeticOperatorDefinition() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST arithmeticOperatorDefinition_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case PLUS: { match(PLUS); break; } case MINUS: { match(MINUS); break; } case SLASH: { match(SLASH); break; } default: if ((LA(1) == STAR) && (LA(2) == LPAREN)) { match(STAR); } else if ((LA(1) == STAR) && (LA(2) == STAR)) { { match(STAR); match(STAR); } } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(LPAREN); formalParameterList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); arithmeticOperatorDefinition_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_71); } else { throw; } } returnAST = arithmeticOperatorDefinition_AST; } void PascalParser::comparisonOperatorDefinition() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST comparisonOperatorDefinition_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling { switch ( LA(1)) { case EQUAL: { match(EQUAL); break; } case LE: { match(LE); break; } case GE: { match(GE); break; } case GT: { match(GT); break; } case LTH: { match(LTH); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } match(LPAREN); formalParameterList(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); comparisonOperatorDefinition_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_71); } else { throw; } } returnAST = comparisonOperatorDefinition_AST; } void PascalParser::tryStatement() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST tryStatement_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp339_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp339_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp339_AST)); } match(TRY); { switch ( LA(1)) { case BEGIN: case NUM_INT: case CASE: case GOTO: case IF: case WHILE: case REPEAT: case FOR: case WITH: case RAISE: case TRY: case IDENT: { statements(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case EXCEPT: case FINALLY: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } exceptOrFinallyPart(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(END); tryStatement_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_16); } else { throw; } } returnAST = tryStatement_AST; } void PascalParser::statements() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST statements_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop369; } } _loop369:; } // ( ... )* statements_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_72); } else { throw; } } returnAST = statements_AST; } void PascalParser::exceptOrFinallyPart() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST exceptOrFinallyPart_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case EXCEPT: { match(EXCEPT); { switch ( LA(1)) { case BEGIN: case NUM_INT: case CASE: case GOTO: case IF: case WHILE: case REPEAT: case FOR: case WITH: case RAISE: case TRY: case ON: case IDENT: { exceptionHandlers(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } exceptOrFinallyPart_AST = RefPascalAST(currentAST.root); break; } case FINALLY: { match(FINALLY); { switch ( LA(1)) { case BEGIN: case NUM_INT: case CASE: case GOTO: case IF: case WHILE: case REPEAT: case FOR: case WITH: case RAISE: case TRY: case IDENT: { statements(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } exceptOrFinallyPart_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_6); } else { throw; } } returnAST = exceptOrFinallyPart_AST; } void PascalParser::exceptionHandlers() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST exceptionHandlers_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case BEGIN: case NUM_INT: case CASE: case GOTO: case IF: case WHILE: case REPEAT: case FOR: case WITH: case RAISE: case TRY: case IDENT: { statements(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } exceptionHandlers_AST = RefPascalAST(currentAST.root); break; } case ON: { exceptionHandler(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } { // ( ... )* for (;;) { if ((LA(1) == SEMI)) { match(SEMI); exceptionHandler(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } } else { goto _loop372; } } _loop372:; } // ( ... )* { switch ( LA(1)) { case ELSE: { match(ELSE); statements(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } break; } case END: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } exceptionHandlers_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_6); } else { throw; } } returnAST = exceptionHandlers_AST; } void PascalParser::exceptionHandler() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST exceptionHandler_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling match(ON); { if ((LA(1) == IDENT) && (LA(2) == COLON)) { identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(COLON); } else if ((LA(1) == IDENT) && (LA(2) == DO)) { } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } identifier(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(DO); statement(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } exceptionHandler_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_73); } else { throw; } } returnAST = exceptionHandler_AST; } void PascalParser::sign() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST sign_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case PLUS: { RefPascalAST tmp349_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp349_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp349_AST)); } match(PLUS); sign_AST = RefPascalAST(currentAST.root); break; } case MINUS: { RefPascalAST tmp350_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp350_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp350_AST)); } match(MINUS); sign_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_74); } else { throw; } } returnAST = sign_AST; } void PascalParser::constantChr() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST constantChr_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp351_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp351_AST = astFactory->create(LT(1)); astFactory->makeASTRoot(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp351_AST)); } match(CHR); match(LPAREN); unsignedInteger(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } match(RPAREN); constantChr_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_75); } else { throw; } } returnAST = constantChr_AST; } void PascalParser::unsignedNumber() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST unsignedNumber_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling switch ( LA(1)) { case NUM_INT: { unsignedInteger(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } unsignedNumber_AST = RefPascalAST(currentAST.root); break; } case NUM_REAL: { unsignedReal(); if (inputState->guessing==0) { astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(returnAST)); } unsignedNumber_AST = RefPascalAST(currentAST.root); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_76); } else { throw; } } returnAST = unsignedNumber_AST; } void PascalParser::unsignedReal() { returnAST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST; RefPascalAST unsignedReal_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); try { // for error handling RefPascalAST tmp354_AST = RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST); if ( inputState->guessing == 0 ) { tmp354_AST = astFactory->create(LT(1)); astFactory->addASTChild(currentAST, ANTLR_USE_NAMESPACE(antlr)RefAST(tmp354_AST)); } match(NUM_REAL); unsignedReal_AST = RefPascalAST(currentAST.root); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); recover(ex,_tokenSet_76); } else { throw; } } returnAST = unsignedReal_AST; } void PascalParser::initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& factory ) { factory.setMaxNodeType(189); } const char* PascalParser::tokenNames[] = { "<0>", "EOF", "<2>", "NULL_TREE_LOOKAHEAD", "BLOCK", "IDLIST", "ELIST", "FUNC_CALL", "PROC_CALL", "SCALARTYPE", "TYPELIST", "VARIANT_TAG", "VARIANT_TAG_NO_ID", "VARIANT_CASE", "CONSTLIST", "FIELDLIST", "ARGDECLS", "VARDECL", "ARGDECL", "ARGLIST", "TYPEDECL", "FIELD", "DOT", "\"library\"", "SEMI", "\"end\"", "\"exports\"", "COMMA", "\"index\"", "\"name\"", "\"uses\"", "\"unit\"", "\"interface\"", "\"implementation\"", "\"begin\"", "\"program\"", "LPAREN", "RPAREN", "\"initialization\"", "\"finalization\"", "\"label\"", "\"const\"", "\"resourcestring\"", "EQUAL", "\"type\"", "\"var\"", "COLON", "\"procedure\"", "\"forward\"", "\"function\"", "\"array\"", "\"of\"", "\"external\"", "\"public\"", "\"alias\"", "INTERRUPT", "\"export\"", "\"register\"", "\"pascal\"", "\"cdecl\"", "\"stdcall\"", "\"popstack\"", "\"saveregisters\"", "\"inline\"", "\"safecall\"", "\"near\"", "\"far\"", "NUM_INT", "\"integer\"", "\"shortint\"", "\"smallint\"", "\"longint\"", "\"int64\"", "\"byte\"", "\"word\"", "\"cardinal\"", "\"qword\"", "\"boolean\"", "BYTEBOOL", "LONGBOOL", "\"char\"", "DOTDOT", "ASSIGN", "\"real\"", "\"single\"", "\"double\"", "\"extended\"", "\"comp\"", "\"string\"", "LBRACK", "RBRACK", "\"packed\"", "\"record\"", "\"case\"", "\"set\"", "\"file\"", "POINTER", "\"object\"", "\"virtual\"", "\"abstract\"", "\"private\"", "\"protected\"", "\"constructor\"", "\"destructor\"", "\"class\"", "\"override\"", "MESSAGE", "\"published\"", "\"property\"", "\"read\"", "\"write\"", "\"default\"", "\"nodefault\"", "LE", "GE", "LTH", "GT", "NOT_EQUAL", "\"in\"", "\"is\"", "PLUS", "MINUS", "\"or\"", "\"xor\"", "STAR", "SLASH", "\"div\"", "\"mod\"", "\"and\"", "\"shl\"", "\"shr\"", "\"not\"", "\"true\"", "\"false\"", "AT", "PLUSEQ", "MINUSEQ", "STAREQ", "SLASHQE", "\"goto\"", "\"if\"", "\"then\"", "\"else\"", "\"while\"", "\"do\"", "\"repeat\"", "\"until\"", "\"for\"", "\"to\"", "\"downto\"", "\"with\"", "LBRACK2", "RBRACK2", "\"operator\"", "\"raise\"", "\"try\"", "\"except\"", "\"finally\"", "\"on\"", "STRING_LITERAL", "\"chr\"", "\"nil\"", "NUM_REAL", "IDENT", "\"absolute\"", "\"as\"", "\"asm\"", "\"assembler\"", "\"break\"", "\"continue\"", "\"dispose\"", "\"exit\"", "\"inherited\"", "\"new\"", "\"self\"", "METHOD", "ADDSUBOR", "ASSIGNEQUAL", "SIGN", "FUNC", "NODE_NOT_EMIT", "MYASTVAR", "LF", "LCURLY", "RCURLY", "WS", "COMMENT_1", "COMMENT_2", "COMMENT_3", "EXPONENT", 0 }; const unsigned long PascalParser::_tokenSet_0_data_[] = { 2UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_0(_tokenSet_0_data_,6); const unsigned long PascalParser::_tokenSet_1_data_[] = { 1073741824UL, 177924UL, 0UL, 192UL, 0UL, 0UL, 0UL, 0UL }; // "uses" "begin" "label" "const" "resourcestring" "type" "var" "procedure" // "function" "constructor" "destructor" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_1(_tokenSet_1_data_,8); const unsigned long PascalParser::_tokenSet_2_data_[] = { 100663296UL, 177990UL, 0UL, 192UL, 0UL, 0UL, 0UL, 0UL }; // "end" "exports" "implementation" "begin" "initialization" "label" "const" // "resourcestring" "type" "var" "procedure" "function" "constructor" "destructor" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_2(_tokenSet_2_data_,8); const unsigned long PascalParser::_tokenSet_3_data_[] = { 121634818UL, 177988UL, 0UL, 192UL, 0UL, 0UL, 0UL, 0UL }; // EOF DOT SEMI "end" "exports" "begin" "initialization" "label" "const" // "resourcestring" "type" "var" "procedure" "function" "constructor" "destructor" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_3(_tokenSet_3_data_,8); const unsigned long PascalParser::_tokenSet_4_data_[] = { 994050050UL, 706736UL, 101056512UL, 4294963649UL, 833972167UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF DOT SEMI "end" COMMA "index" "name" LPAREN RPAREN "finalization" // EQUAL COLON "procedure" "function" "of" DOTDOT ASSIGN LBRACK RBRACK // POINTER "constructor" "destructor" "class" "property" "read" "write" // "default" "nodefault" LE GE LTH GT NOT_EQUAL "in" "is" PLUS MINUS "or" // "xor" STAR SLASH "div" "mod" "and" "shl" "shr" AT PLUSEQ MINUSEQ STAREQ // SLASHQE "then" "else" "do" "until" "to" "downto" LBRACK2 RBRACK2 "except" // "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_4(_tokenSet_4_data_,12); const unsigned long PascalParser::_tokenSet_5_data_[] = { 67108864UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "exports" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_5(_tokenSet_5_data_,6); const unsigned long PascalParser::_tokenSet_6_data_[] = { 33554432UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "end" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_6(_tokenSet_6_data_,6); const unsigned long PascalParser::_tokenSet_7_data_[] = { 100663296UL, 68UL, 0UL, 0UL, 0UL, 0UL }; // "end" "exports" "begin" "initialization" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_7(_tokenSet_7_data_,6); const unsigned long PascalParser::_tokenSet_8_data_[] = { 184549376UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI "end" COMMA const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_8(_tokenSet_8_data_,6); const unsigned long PascalParser::_tokenSet_9_data_[] = { 788529154UL, 177988UL, 0UL, 127424UL, 0UL, 0UL, 0UL, 0UL }; // EOF SEMI "end" "exports" COMMA "name" "begin" "initialization" "label" // "const" "resourcestring" "type" "var" "procedure" "function" "constructor" // "destructor" "class" "property" "read" "write" "default" "nodefault" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_9(_tokenSet_9_data_,8); const unsigned long PascalParser::_tokenSet_10_data_[] = { 1056964610UL, 177988UL, 0UL, 192UL, 0UL, 0UL, 0UL, 0UL }; // EOF SEMI "end" "exports" COMMA "index" "name" "begin" "initialization" // "label" "const" "resourcestring" "type" "var" "procedure" "function" // "constructor" "destructor" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_10(_tokenSet_10_data_,8); const unsigned long PascalParser::_tokenSet_11_data_[] = { 16777216UL, 16416UL, 67108864UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI RPAREN COLON RBRACK const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_11(_tokenSet_11_data_,8); const unsigned long PascalParser::_tokenSet_12_data_[] = { 0UL, 2UL, 0UL, 0UL, 0UL, 0UL }; // "implementation" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_12(_tokenSet_12_data_,6); const unsigned long PascalParser::_tokenSet_13_data_[] = { 33554432UL, 68UL, 0UL, 0UL, 0UL, 0UL }; // "end" "begin" "initialization" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_13(_tokenSet_13_data_,6); const unsigned long PascalParser::_tokenSet_14_data_[] = { 33554432UL, 128UL, 0UL, 0UL, 0UL, 0UL }; // "end" "finalization" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_14(_tokenSet_14_data_,6); const unsigned long PascalParser::_tokenSet_15_data_[] = { 0UL, 168450UL, 0UL, 0UL, 0UL, 0UL }; // "implementation" "const" "type" "procedure" "function" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_15(_tokenSet_15_data_,6); const unsigned long PascalParser::_tokenSet_16_data_[] = { 50331648UL, 128UL, 0UL, 0UL, 805584896UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI "end" "finalization" "else" "until" "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_16(_tokenSet_16_data_,12); const unsigned long PascalParser::_tokenSet_17_data_[] = { 100663296UL, 177988UL, 0UL, 192UL, 0UL, 0UL, 0UL, 0UL }; // "end" "exports" "begin" "initialization" "label" "const" "resourcestring" // "type" "var" "procedure" "function" "constructor" "destructor" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_17(_tokenSet_17_data_,8); const unsigned long PascalParser::_tokenSet_18_data_[] = { 184549376UL, 16512UL, 0UL, 0UL, 805584896UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI "end" COMMA "finalization" COLON "else" "until" "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_18(_tokenSet_18_data_,12); const unsigned long PascalParser::_tokenSet_19_data_[] = { 100663296UL, 177990UL, 0UL, 192UL, 0UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "end" "exports" "implementation" "begin" "initialization" "label" "const" // "resourcestring" "type" "var" "procedure" "function" "constructor" "destructor" // IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_19(_tokenSet_19_data_,12); const unsigned long PascalParser::_tokenSet_20_data_[] = { 100663296UL, 177988UL, 0UL, 192UL, 0UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "end" "exports" "begin" "initialization" "label" "const" "resourcestring" // "type" "var" "procedure" "function" "constructor" "destructor" IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_20(_tokenSet_20_data_,12); const unsigned long PascalParser::_tokenSet_21_data_[] = { 1061158914UL, 720868UL, 67239936UL, 4294840768UL, 825581575UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF DOT SEMI "end" "exports" COMMA "index" "name" "begin" RPAREN "initialization" // "finalization" "label" "const" "resourcestring" EQUAL "type" "var" COLON // "procedure" "function" "of" DOTDOT RBRACK "constructor" "destructor" // "class" "property" LE GE LTH GT NOT_EQUAL "in" "is" PLUS MINUS "or" // "xor" STAR SLASH "div" "mod" "and" "shl" "shr" "then" "else" "do" "until" // "to" "downto" RBRACK2 "except" "finally" IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_21(_tokenSet_21_data_,12); const unsigned long PascalParser::_tokenSet_22_data_[] = { 16777216UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_22(_tokenSet_22_data_,6); const unsigned long PascalParser::_tokenSet_23_data_[] = { 16777216UL, 2080UL, 67108864UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI RPAREN EQUAL RBRACK const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_23(_tokenSet_23_data_,8); const unsigned long PascalParser::_tokenSet_24_data_[] = { 0UL, 4UL, 536870920UL, 0UL, 206215168UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "begin" NUM_INT "case" "goto" "if" "while" "repeat" "for" "with" "raise" // "try" IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_24(_tokenSet_24_data_,12); const unsigned long PascalParser::_tokenSet_25_data_[] = { 121634818UL, 178116UL, 0UL, 192UL, 805584896UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF DOT SEMI "end" "exports" "begin" "initialization" "finalization" // "label" "const" "resourcestring" "type" "var" "procedure" "function" // "constructor" "destructor" "else" "until" "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_25(_tokenSet_25_data_,12); const unsigned long PascalParser::_tokenSet_26_data_[] = { 16777216UL, 1818406UL, 67108864UL, 192UL, 0UL, 0UL, 0UL, 0UL }; // SEMI "implementation" "begin" RPAREN "label" "const" "resourcestring" // EQUAL "type" "var" "procedure" "forward" "function" "of" "external" // RBRACK "constructor" "destructor" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_26(_tokenSet_26_data_,8); const unsigned long PascalParser::_tokenSet_27_data_[] = { 117440514UL, 177988UL, 0UL, 192UL, 0UL, 0UL, 0UL, 0UL }; // EOF SEMI "end" "exports" "begin" "initialization" "label" "const" "resourcestring" // "type" "var" "procedure" "function" "constructor" "destructor" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_27(_tokenSet_27_data_,8); const unsigned long PascalParser::_tokenSet_28_data_[] = { 16777216UL, 16400UL, 0UL, 0UL, 0UL, 0UL }; // SEMI LPAREN COLON const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_28(_tokenSet_28_data_,6); const unsigned long PascalParser::_tokenSet_29_data_[] = { 16777216UL, 16416UL, 0UL, 0UL, 0UL, 0UL }; // SEMI RPAREN COLON const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_29(_tokenSet_29_data_,6); const unsigned long PascalParser::_tokenSet_30_data_[] = { 16777216UL, 32UL, 67108864UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI RPAREN RBRACK const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_30(_tokenSet_30_data_,8); const unsigned long PascalParser::_tokenSet_31_data_[] = { 0UL, 426000UL, 3657039864UL, 50331907UL, 2147483648UL, 13UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // LPAREN "procedure" "function" "array" NUM_INT "integer" "shortint" "smallint" // "longint" "int64" "byte" "word" "cardinal" "qword" "boolean" BYTEBOOL // LONGBOOL "char" "real" "single" "double" "extended" "comp" "string" // "packed" "record" "set" "file" POINTER "object" "class" PLUS MINUS STRING_LITERAL // "chr" NUM_REAL IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_31(_tokenSet_31_data_,12); const unsigned long PascalParser::_tokenSet_32_data_[] = { 188743680UL, 524448UL, 67239936UL, 0UL, 825581568UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // DOT SEMI "end" COMMA RPAREN "finalization" "of" DOTDOT RBRACK "then" // "else" "do" "until" "to" "downto" RBRACK2 "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_32(_tokenSet_32_data_,12); const unsigned long PascalParser::_tokenSet_33_data_[] = { 0UL, 0UL, 8UL, 50331648UL, 2147483648UL, 13UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // NUM_INT PLUS MINUS STRING_LITERAL "chr" NUM_REAL IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_33(_tokenSet_33_data_,12); const unsigned long PascalParser::_tokenSet_34_data_[] = { 16777216UL, 16UL, 8UL, 0UL, 0UL, 12UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI LPAREN NUM_INT NUM_REAL IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_34(_tokenSet_34_data_,12); const unsigned long PascalParser::_tokenSet_35_data_[] = { 0UL, 16UL, 8UL, 50331648UL, 2147483648UL, 13UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // LPAREN NUM_INT PLUS MINUS STRING_LITERAL "chr" NUM_REAL IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_35(_tokenSet_35_data_,12); const unsigned long PascalParser::_tokenSet_36_data_[] = { 0UL, 16UL, 33554440UL, 50331648UL, 2147483768UL, 15UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // LPAREN NUM_INT LBRACK PLUS MINUS "not" "true" "false" AT STRING_LITERAL // "chr" "nil" NUM_REAL IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_36(_tokenSet_36_data_,12); const unsigned long PascalParser::_tokenSet_37_data_[] = { 16777216UL, 2064UL, 100663304UL, 4294836224UL, 2147483775UL, 15UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI LPAREN EQUAL NUM_INT LBRACK RBRACK LE GE LTH GT NOT_EQUAL "in" // "is" PLUS MINUS "or" "xor" STAR SLASH "div" "mod" "and" "shl" "shr" // "not" "true" "false" AT STRING_LITERAL "chr" "nil" NUM_REAL IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_37(_tokenSet_37_data_,12); const unsigned long PascalParser::_tokenSet_38_data_[] = { 184549378UL, 182304UL, 67239936UL, 4544UL, 0UL, 0UL, 0UL, 0UL }; // EOF SEMI "end" COMMA RPAREN EQUAL COLON "procedure" "function" DOTDOT // RBRACK "constructor" "destructor" "class" "property" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_38(_tokenSet_38_data_,8); const unsigned long PascalParser::_tokenSet_39_data_[] = { 150994944UL, 32UL, 0UL, 0UL, 0UL, 0UL }; // SEMI COMMA RPAREN const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_39(_tokenSet_39_data_,6); const unsigned long PascalParser::_tokenSet_40_data_[] = { 150994944UL, 2080UL, 67108864UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI COMMA RPAREN EQUAL RBRACK const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_40(_tokenSet_40_data_,8); const unsigned long PascalParser::_tokenSet_41_data_[] = { 318767104UL, 165936UL, 67108864UL, 127424UL, 0UL, 0UL, 0UL, 0UL }; // SEMI "end" "index" LPAREN RPAREN EQUAL "procedure" "function" RBRACK // "constructor" "destructor" "class" "property" "read" "write" "default" // "nodefault" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_41(_tokenSet_41_data_,8); const unsigned long PascalParser::_tokenSet_42_data_[] = { 0UL, 32UL, 0UL, 0UL, 0UL, 0UL }; // RPAREN const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_42(_tokenSet_42_data_,6); const unsigned long PascalParser::_tokenSet_43_data_[] = { 792723458UL, 720868UL, 67239936UL, 4294963648UL, 825581575UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF DOT SEMI "end" "exports" COMMA "name" "begin" RPAREN "initialization" // "finalization" "label" "const" "resourcestring" EQUAL "type" "var" COLON // "procedure" "function" "of" DOTDOT RBRACK "constructor" "destructor" // "class" "property" "read" "write" "default" "nodefault" LE GE LTH GT // NOT_EQUAL "in" "is" PLUS MINUS "or" "xor" STAR SLASH "div" "mod" "and" // "shl" "shr" "then" "else" "do" "until" "to" "downto" RBRACK2 "except" // "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_43(_tokenSet_43_data_,12); const unsigned long PascalParser::_tokenSet_44_data_[] = { 0UL, 2064UL, 100794376UL, 4294836224UL, 2147483775UL, 15UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // LPAREN EQUAL NUM_INT DOTDOT LBRACK RBRACK LE GE LTH GT NOT_EQUAL "in" // "is" PLUS MINUS "or" "xor" STAR SLASH "div" "mod" "and" "shl" "shr" // "not" "true" "false" AT STRING_LITERAL "chr" "nil" NUM_REAL IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_44(_tokenSet_44_data_,12); const unsigned long PascalParser::_tokenSet_45_data_[] = { 134217728UL, 0UL, 67108864UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // COMMA RBRACK const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_45(_tokenSet_45_data_,8); const unsigned long PascalParser::_tokenSet_46_data_[] = { 33554432UL, 32UL, 536870912UL, 0UL, 0UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "end" RPAREN "case" IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_46(_tokenSet_46_data_,12); const unsigned long PascalParser::_tokenSet_47_data_[] = { 50331648UL, 32UL, 536870912UL, 0UL, 0UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI "end" RPAREN "case" IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_47(_tokenSet_47_data_,12); const unsigned long PascalParser::_tokenSet_48_data_[] = { 33554432UL, 2260992UL, 0UL, 6640UL, 0UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "end" "procedure" "function" "public" "private" "protected" "constructor" // "destructor" "class" "published" "property" IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_48(_tokenSet_48_data_,12); const unsigned long PascalParser::_tokenSet_49_data_[] = { 0UL, 163840UL, 0UL, 192UL, 0UL, 0UL, 0UL, 0UL }; // "procedure" "function" "constructor" "destructor" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_49(_tokenSet_49_data_,8); const unsigned long PascalParser::_tokenSet_50_data_[] = { 33554432UL, 163840UL, 0UL, 4544UL, 0UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "end" "procedure" "function" "constructor" "destructor" "class" "property" // IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_50(_tokenSet_50_data_,12); const unsigned long PascalParser::_tokenSet_51_data_[] = { 33554432UL, 163840UL, 0UL, 192UL, 0UL, 0UL, 0UL, 0UL }; // "end" "procedure" "function" "constructor" "destructor" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_51(_tokenSet_51_data_,8); const unsigned long PascalParser::_tokenSet_52_data_[] = { 0UL, 163840UL, 0UL, 4544UL, 0UL, 0UL, 0UL, 0UL }; // "procedure" "function" "constructor" "destructor" "class" "property" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_52(_tokenSet_52_data_,8); const unsigned long PascalParser::_tokenSet_53_data_[] = { 33554432UL, 163840UL, 0UL, 4544UL, 0UL, 0UL, 0UL, 0UL }; // "end" "procedure" "function" "constructor" "destructor" "class" "property" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_53(_tokenSet_53_data_,8); const unsigned long PascalParser::_tokenSet_54_data_[] = { 33554432UL, 163840UL, 0UL, 127424UL, 0UL, 0UL, 0UL, 0UL }; // "end" "procedure" "function" "constructor" "destructor" "class" "property" // "read" "write" "default" "nodefault" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_54(_tokenSet_54_data_,8); const unsigned long PascalParser::_tokenSet_55_data_[] = { 0UL, 16384UL, 0UL, 0UL, 0UL, 0UL }; // COLON const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_55(_tokenSet_55_data_,6); const unsigned long PascalParser::_tokenSet_56_data_[] = { 33554432UL, 163840UL, 0UL, 119232UL, 0UL, 0UL, 0UL, 0UL }; // "end" "procedure" "function" "constructor" "destructor" "class" "property" // "write" "default" "nodefault" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_56(_tokenSet_56_data_,8); const unsigned long PascalParser::_tokenSet_57_data_[] = { 33554432UL, 163840UL, 0UL, 102848UL, 0UL, 0UL, 0UL, 0UL }; // "end" "procedure" "function" "constructor" "destructor" "class" "property" // "default" "nodefault" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_57(_tokenSet_57_data_,8); const unsigned long PascalParser::_tokenSet_58_data_[] = { 188743680UL, 526496UL, 67239936UL, 16646144UL, 825581568UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // DOT SEMI "end" COMMA RPAREN "finalization" EQUAL "of" DOTDOT RBRACK // LE GE LTH GT NOT_EQUAL "in" "is" "then" "else" "do" "until" "to" "downto" // RBRACK2 "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_58(_tokenSet_58_data_,12); const unsigned long PascalParser::_tokenSet_59_data_[] = { 188743680UL, 526496UL, 67239936UL, 268304384UL, 825581568UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // DOT SEMI "end" COMMA RPAREN "finalization" EQUAL "of" DOTDOT RBRACK // LE GE LTH GT NOT_EQUAL "in" "is" PLUS MINUS "or" "xor" "then" "else" // "do" "until" "to" "downto" RBRACK2 "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_59(_tokenSet_59_data_,12); const unsigned long PascalParser::_tokenSet_60_data_[] = { 188743680UL, 526512UL, 67239936UL, 4294836224UL, 825581575UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // DOT SEMI "end" COMMA LPAREN RPAREN "finalization" EQUAL "of" DOTDOT // RBRACK LE GE LTH GT NOT_EQUAL "in" "is" PLUS MINUS "or" "xor" STAR SLASH // "div" "mod" "and" "shl" "shr" "then" "else" "do" "until" "to" "downto" // RBRACK2 "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_60(_tokenSet_60_data_,12); const unsigned long PascalParser::_tokenSet_61_data_[] = { 188743680UL, 526496UL, 67239936UL, 4294836224UL, 825581575UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // DOT SEMI "end" COMMA RPAREN "finalization" EQUAL "of" DOTDOT RBRACK // LE GE LTH GT NOT_EQUAL "in" "is" PLUS MINUS "or" "xor" STAR SLASH "div" // "mod" "and" "shl" "shr" "then" "else" "do" "until" "to" "downto" RBRACK2 // "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_61(_tokenSet_61_data_,12); const unsigned long PascalParser::_tokenSet_62_data_[] = { 50331648UL, 128UL, 0UL, 0UL, 805584960UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI "end" "finalization" AT "else" "until" "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_62(_tokenSet_62_data_,12); const unsigned long PascalParser::_tokenSet_63_data_[] = { 0UL, 0UL, 33816576UL, 0UL, 1920UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // ASSIGN LBRACK PLUSEQ MINUSEQ STAREQ SLASHQE const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_63(_tokenSet_63_data_,12); const unsigned long PascalParser::_tokenSet_64_data_[] = { 50331648UL, 144UL, 0UL, 0UL, 805584896UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI "end" LPAREN "finalization" "else" "until" "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_64(_tokenSet_64_data_,12); const unsigned long PascalParser::_tokenSet_65_data_[] = { 0UL, 0UL, 262144UL, 0UL, 1920UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // ASSIGN PLUSEQ MINUSEQ STAREQ SLASHQE const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_65(_tokenSet_65_data_,12); const unsigned long PascalParser::_tokenSet_66_data_[] = { 121634818UL, 178132UL, 570425352UL, 50331840UL, 4233025656UL, 15UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF DOT SEMI "end" "exports" "begin" LPAREN "initialization" "finalization" // "label" "const" "resourcestring" "type" "var" "procedure" "function" // NUM_INT LBRACK "case" "constructor" "destructor" PLUS MINUS "not" "true" // "false" AT "goto" "if" "else" "while" "repeat" "until" "for" "with" // "raise" "try" "except" "finally" "on" STRING_LITERAL "chr" "nil" NUM_REAL // IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_66(_tokenSet_66_data_,12); const unsigned long PascalParser::_tokenSet_67_data_[] = { 50331648UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI "end" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_67(_tokenSet_67_data_,6); const unsigned long PascalParser::_tokenSet_68_data_[] = { 0UL, 0UL, 0UL, 0UL, 65536UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "do" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_68(_tokenSet_68_data_,12); const unsigned long PascalParser::_tokenSet_69_data_[] = { 0UL, 0UL, 0UL, 0UL, 3145728UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "to" "downto" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_69(_tokenSet_69_data_,12); const unsigned long PascalParser::_tokenSet_70_data_[] = { 134217728UL, 0UL, 0UL, 0UL, 65536UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // COMMA "do" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_70(_tokenSet_70_data_,12); const unsigned long PascalParser::_tokenSet_71_data_[] = { 0UL, 0UL, 0UL, 0UL, 0UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_71(_tokenSet_71_data_,12); const unsigned long PascalParser::_tokenSet_72_data_[] = { 33554432UL, 0UL, 0UL, 0UL, 805306368UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "end" "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_72(_tokenSet_72_data_,12); const unsigned long PascalParser::_tokenSet_73_data_[] = { 50331648UL, 0UL, 0UL, 0UL, 16384UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SEMI "end" "else" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_73(_tokenSet_73_data_,12); const unsigned long PascalParser::_tokenSet_74_data_[] = { 0UL, 0UL, 8UL, 0UL, 0UL, 12UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // NUM_INT NUM_REAL IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_74(_tokenSet_74_data_,12); const unsigned long PascalParser::_tokenSet_75_data_[] = { 1061158914UL, 720868UL, 67239936UL, 4294840768UL, 825581575UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF DOT SEMI "end" "exports" COMMA "index" "name" "begin" RPAREN "initialization" // "finalization" "label" "const" "resourcestring" EQUAL "type" "var" COLON // "procedure" "function" "of" DOTDOT RBRACK "constructor" "destructor" // "class" "property" LE GE LTH GT NOT_EQUAL "in" "is" PLUS MINUS "or" // "xor" STAR SLASH "div" "mod" "and" "shl" "shr" "then" "else" "do" "until" // "to" "downto" RBRACK2 "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_75(_tokenSet_75_data_,12); const unsigned long PascalParser::_tokenSet_76_data_[] = { 188743682UL, 706720UL, 67239936UL, 4294840768UL, 825581575UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF DOT SEMI "end" COMMA RPAREN "finalization" EQUAL COLON "procedure" // "function" "of" DOTDOT RBRACK "constructor" "destructor" "class" "property" // LE GE LTH GT NOT_EQUAL "in" "is" PLUS MINUS "or" "xor" STAR SLASH "div" // "mod" "and" "shl" "shr" "then" "else" "do" "until" "to" "downto" RBRACK2 // "except" "finally" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalParser::_tokenSet_76(_tokenSet_76_data_,12);