/* $ANTLR 2.7.7 (20061129): "pascal.tree.g" -> "PascalStoreWalker.cpp"$ */ #include "PascalStoreWalker.hpp" #include #include #include #include #include #include #line 1 "pascal.tree.g" #line 11 "PascalStoreWalker.cpp" PascalStoreWalker::PascalStoreWalker() : ANTLR_USE_NAMESPACE(antlr)TreeParser() { } void PascalStoreWalker::program(RefPascalAST _t) { RefPascalAST program_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling programHeading(_t); _t = _retTree; block(_t); _t = _retTree; } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::programHeading(RefPascalAST _t) { RefPascalAST programHeading_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case PROGRAM: { RefPascalAST __t3 = _t; RefPascalAST tmp1_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),PROGRAM); _t = _t->getFirstChild(); RefPascalAST tmp2_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); identifierList(_t); _t = _retTree; _t = __t3; _t = _t->getNextSibling(); break; } case UNIT: { RefPascalAST __t4 = _t; RefPascalAST tmp3_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),UNIT); _t = _t->getFirstChild(); RefPascalAST tmp4_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); _t = __t4; _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::block(RefPascalAST _t) { RefPascalAST block_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling { // ( ... )* for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case LABEL: { labelDeclarationPart(_t); _t = _retTree; break; } case CONST: { constantDefinitionPart(_t); _t = _retTree; break; } case TYPE: { typeDefinitionPart(_t); _t = _retTree; break; } case VAR: { variableDeclarationPart(_t); _t = _retTree; break; } case PROCEDURE: case FUNCTION: { procedureAndFunctionDeclarationPart(_t); _t = _retTree; break; } case USES: { usesUnitsPart(_t); _t = _retTree; break; } case IMPLEMENTATION: { RefPascalAST tmp5_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IMPLEMENTATION); _t = _t->getNextSibling(); break; } default: { goto _loop8; } } } _loop8:; } // ( ... )* compoundStatement(_t); _t = _retTree; } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::identifierList(RefPascalAST _t) { RefPascalAST identifierList_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t104 = _t; RefPascalAST tmp6_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDLIST); _t = _t->getFirstChild(); { // ( ... )+ int _cnt106=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_t->getType() == IDENT)) { RefPascalAST tmp7_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); } else { if ( _cnt106>=1 ) { goto _loop106; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt106++; } _loop106:; } // ( ... )+ _t = __t104; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::identifier(RefPascalAST _t) { RefPascalAST identifier_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST tmp8_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::labelDeclarationPart(RefPascalAST _t) { RefPascalAST labelDeclarationPart_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t12 = _t; RefPascalAST tmp9_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),LABEL); _t = _t->getFirstChild(); { // ( ... )+ int _cnt14=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_t->getType() == NUM_INT)) { label(_t); _t = _retTree; } else { if ( _cnt14>=1 ) { goto _loop14; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt14++; } _loop14:; } // ( ... )+ _t = __t12; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::constantDefinitionPart(RefPascalAST _t) { RefPascalAST constantDefinitionPart_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t17 = _t; RefPascalAST tmp10_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),CONST); _t = _t->getFirstChild(); { // ( ... )+ int _cnt19=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_t->getType() == EQUAL)) { constantDefinition(_t); _t = _retTree; } else { if ( _cnt19>=1 ) { goto _loop19; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt19++; } _loop19:; } // ( ... )+ _t = __t17; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::typeDefinitionPart(RefPascalAST _t) { RefPascalAST typeDefinitionPart_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t31 = _t; RefPascalAST tmp11_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),TYPE); _t = _t->getFirstChild(); { // ( ... )+ int _cnt33=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_t->getType() == TYPEDECL)) { typeDefinition(_t); _t = _retTree; } else { if ( _cnt33>=1 ) { goto _loop33; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt33++; } _loop33:; } // ( ... )+ _t = __t31; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } /** Yields a list of VARDECL-rooted subtrees with VAR at the overall root */ void PascalStoreWalker::variableDeclarationPart(RefPascalAST _t) { RefPascalAST variableDeclarationPart_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t83 = _t; RefPascalAST tmp12_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),VAR); _t = _t->getFirstChild(); { // ( ... )+ int _cnt85=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_t->getType() == VARDECL)) { variableDeclaration(_t); _t = _retTree; } else { if ( _cnt85>=1 ) { goto _loop85; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt85++; } _loop85:; } // ( ... )+ _t = __t83; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::procedureAndFunctionDeclarationPart(RefPascalAST _t) { RefPascalAST procedureAndFunctionDeclarationPart_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling procedureOrFunctionDeclaration(_t); _t = _retTree; } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::usesUnitsPart(RefPascalAST _t) { RefPascalAST usesUnitsPart_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t10 = _t; RefPascalAST tmp13_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),USES); _t = _t->getFirstChild(); identifierList(_t); _t = _retTree; _t = __t10; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::compoundStatement(RefPascalAST _t) { RefPascalAST compoundStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling statements(_t); _t = _retTree; } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::label(RefPascalAST _t) { RefPascalAST label_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST tmp14_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_INT); _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::constantDefinition(RefPascalAST _t) { RefPascalAST constantDefinition_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t21 = _t; RefPascalAST tmp15_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),EQUAL); _t = _t->getFirstChild(); RefPascalAST tmp16_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); constant(_t); _t = _retTree; _t = __t21; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::constant(RefPascalAST _t) { RefPascalAST constant_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case NUM_INT: { RefPascalAST tmp17_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_INT); _t = _t->getNextSibling(); break; } case NUM_REAL: { RefPascalAST tmp18_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_REAL); _t = _t->getNextSibling(); break; } case PLUS: { RefPascalAST __t23 = _t; RefPascalAST tmp19_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),PLUS); _t = _t->getFirstChild(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case NUM_INT: { RefPascalAST tmp20_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_INT); _t = _t->getNextSibling(); break; } case NUM_REAL: { RefPascalAST tmp21_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_REAL); _t = _t->getNextSibling(); break; } case IDENT: { RefPascalAST tmp22_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t23; _t = _t->getNextSibling(); break; } case MINUS: { RefPascalAST __t25 = _t; RefPascalAST tmp23_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),MINUS); _t = _t->getFirstChild(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case NUM_INT: { RefPascalAST tmp24_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_INT); _t = _t->getNextSibling(); break; } case NUM_REAL: { RefPascalAST tmp25_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_REAL); _t = _t->getNextSibling(); break; } case IDENT: { RefPascalAST tmp26_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t25; _t = _t->getNextSibling(); break; } case IDENT: { RefPascalAST tmp27_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); break; } case STRING_LITERAL: { RefPascalAST tmp28_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),STRING_LITERAL); _t = _t->getNextSibling(); break; } case CHR: { RefPascalAST __t27 = _t; RefPascalAST tmp29_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),CHR); _t = _t->getFirstChild(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case NUM_INT: { RefPascalAST tmp30_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_INT); _t = _t->getNextSibling(); break; } case NUM_REAL: { RefPascalAST tmp31_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_REAL); _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t27; _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::string(RefPascalAST _t) { RefPascalAST string_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST tmp32_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),STRING_LITERAL); _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::typeDefinition(RefPascalAST _t) { RefPascalAST typeDefinition_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t35 = _t; RefPascalAST tmp33_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),TYPEDECL); _t = _t->getFirstChild(); RefPascalAST tmp34_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case SCALARTYPE: case ARRAY: case INTEGER: case BOOLEAN: case CHAR: case DOTDOT: case REAL: case STRING: case PACKED: case RECORD: case SET: case FILE: case POINTER: case IDENT: { type(_t); _t = _retTree; break; } case FUNCTION: { RefPascalAST __t37 = _t; RefPascalAST tmp35_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),FUNCTION); _t = _t->getFirstChild(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case ARGDECLS: { formalParameterList(_t); _t = _retTree; break; } case INTEGER: case BOOLEAN: case CHAR: case REAL: case STRING: case IDENT: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } resultType(_t); _t = _retTree; _t = __t37; _t = _t->getNextSibling(); break; } case PROCEDURE: { RefPascalAST __t39 = _t; RefPascalAST tmp36_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),PROCEDURE); _t = _t->getFirstChild(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case ARGDECLS: { formalParameterList(_t); _t = _retTree; break; } case 3: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t39; _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t35; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::type(RefPascalAST _t) { RefPascalAST type_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case SCALARTYPE: { RefPascalAST __t42 = _t; RefPascalAST tmp37_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),SCALARTYPE); _t = _t->getFirstChild(); identifierList(_t); _t = _retTree; _t = __t42; _t = _t->getNextSibling(); break; } case DOTDOT: { RefPascalAST __t43 = _t; RefPascalAST tmp38_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),DOTDOT); _t = _t->getFirstChild(); constant(_t); _t = _retTree; constant(_t); _t = _retTree; _t = __t43; _t = _t->getNextSibling(); break; } case INTEGER: case BOOLEAN: case CHAR: case REAL: case STRING: case IDENT: { typeIdentifier(_t); _t = _retTree; break; } case ARRAY: case PACKED: case RECORD: case SET: case FILE: { structuredType(_t); _t = _retTree; break; } case POINTER: { RefPascalAST __t44 = _t; RefPascalAST tmp39_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),POINTER); _t = _t->getFirstChild(); typeIdentifier(_t); _t = _retTree; _t = __t44; _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::formalParameterList(RefPascalAST _t) { RefPascalAST formalParameterList_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t94 = _t; RefPascalAST tmp40_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),ARGDECLS); _t = _t->getFirstChild(); { // ( ... )+ int _cnt96=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_tokenSet_0.member(_t->getType()))) { formalParameterSection(_t); _t = _retTree; } else { if ( _cnt96>=1 ) { goto _loop96; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt96++; } _loop96:; } // ( ... )+ _t = __t94; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::resultType(RefPascalAST _t) { RefPascalAST resultType_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling typeIdentifier(_t); _t = _retTree; } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::typeIdentifier(RefPascalAST _t) { RefPascalAST typeIdentifier_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case IDENT: { RefPascalAST tmp41_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); break; } case CHAR: { RefPascalAST tmp42_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),CHAR); _t = _t->getNextSibling(); break; } case BOOLEAN: { RefPascalAST tmp43_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),BOOLEAN); _t = _t->getNextSibling(); break; } case INTEGER: { RefPascalAST tmp44_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),INTEGER); _t = _t->getNextSibling(); break; } case REAL: { RefPascalAST tmp45_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),REAL); _t = _t->getNextSibling(); break; } case STRING: { RefPascalAST __t46 = _t; RefPascalAST tmp46_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),STRING); _t = _t->getFirstChild(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case IDENT: { RefPascalAST tmp47_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); break; } case NUM_INT: { RefPascalAST tmp48_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_INT); _t = _t->getNextSibling(); break; } case NUM_REAL: { RefPascalAST tmp49_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_REAL); _t = _t->getNextSibling(); break; } case 3: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t46; _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::structuredType(RefPascalAST _t) { RefPascalAST structuredType_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case PACKED: { RefPascalAST __t49 = _t; RefPascalAST tmp50_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),PACKED); _t = _t->getFirstChild(); unpackedStructuredType(_t); _t = _retTree; _t = __t49; _t = _t->getNextSibling(); break; } case ARRAY: case RECORD: case SET: case FILE: { unpackedStructuredType(_t); _t = _retTree; break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::unpackedStructuredType(RefPascalAST _t) { RefPascalAST unpackedStructuredType_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case ARRAY: { arrayType(_t); _t = _retTree; break; } case RECORD: { recordType(_t); _t = _retTree; break; } case SET: { setType(_t); _t = _retTree; break; } case FILE: { fileType(_t); _t = _retTree; break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } /** Note here that the syntactic diff between brackets disappears. * If the brackets mean different things semantically, we need * two different alternatives here. */ void PascalStoreWalker::arrayType(RefPascalAST _t) { RefPascalAST arrayType_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t52 = _t; RefPascalAST tmp51_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),ARRAY); _t = _t->getFirstChild(); typeList(_t); _t = _retTree; type(_t); _t = _retTree; _t = __t52; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::recordType(RefPascalAST _t) { RefPascalAST recordType_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t58 = _t; RefPascalAST tmp52_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),RECORD); _t = _t->getFirstChild(); fieldList(_t); _t = _retTree; _t = __t58; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::setType(RefPascalAST _t) { RefPascalAST setType_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t78 = _t; RefPascalAST tmp53_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),SET); _t = _t->getFirstChild(); type(_t); _t = _retTree; _t = __t78; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::fileType(RefPascalAST _t) { RefPascalAST fileType_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t80 = _t; RefPascalAST tmp54_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),FILE); _t = _t->getFirstChild(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case SCALARTYPE: case ARRAY: case INTEGER: case BOOLEAN: case CHAR: case DOTDOT: case REAL: case STRING: case PACKED: case RECORD: case SET: case FILE: case POINTER: case IDENT: { type(_t); _t = _retTree; break; } case 3: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t80; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::typeList(RefPascalAST _t) { RefPascalAST typeList_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t54 = _t; RefPascalAST tmp55_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),TYPELIST); _t = _t->getFirstChild(); { // ( ... )+ int _cnt56=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_tokenSet_1.member(_t->getType()))) { type(_t); _t = _retTree; } else { if ( _cnt56>=1 ) { goto _loop56; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt56++; } _loop56:; } // ( ... )+ _t = __t54; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::fieldList(RefPascalAST _t) { RefPascalAST fieldList_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t60 = _t; RefPascalAST tmp56_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),FIELDLIST); _t = _t->getFirstChild(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case FIELD: { fixedPart(_t); _t = _retTree; { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case CASE: { variantPart(_t); _t = _retTree; break; } case 3: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } break; } case CASE: { variantPart(_t); _t = _retTree; break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t60; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::fixedPart(RefPascalAST _t) { RefPascalAST fixedPart_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling { // ( ... )+ int _cnt65=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_t->getType() == FIELD)) { recordSection(_t); _t = _retTree; } else { if ( _cnt65>=1 ) { goto _loop65; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt65++; } _loop65:; } // ( ... )+ } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::variantPart(RefPascalAST _t) { RefPascalAST variantPart_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t69 = _t; RefPascalAST tmp57_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),CASE); _t = _t->getFirstChild(); tag(_t); _t = _retTree; { // ( ... )+ int _cnt71=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_t->getType() == VARIANT_CASE)) { variant(_t); _t = _retTree; } else { if ( _cnt71>=1 ) { goto _loop71; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt71++; } _loop71:; } // ( ... )+ _t = __t69; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::recordSection(RefPascalAST _t) { RefPascalAST recordSection_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t67 = _t; RefPascalAST tmp58_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),FIELD); _t = _t->getFirstChild(); identifierList(_t); _t = _retTree; type(_t); _t = _retTree; _t = __t67; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::tag(RefPascalAST _t) { RefPascalAST tag_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case VARIANT_TAG: { RefPascalAST __t73 = _t; RefPascalAST tmp59_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),VARIANT_TAG); _t = _t->getFirstChild(); identifier(_t); _t = _retTree; typeIdentifier(_t); _t = _retTree; _t = __t73; _t = _t->getNextSibling(); break; } case VARIANT_TAG_NO_ID: { RefPascalAST __t74 = _t; RefPascalAST tmp60_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),VARIANT_TAG_NO_ID); _t = _t->getFirstChild(); typeIdentifier(_t); _t = _retTree; _t = __t74; _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::variant(RefPascalAST _t) { RefPascalAST variant_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t76 = _t; RefPascalAST tmp61_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),VARIANT_CASE); _t = _t->getFirstChild(); constList(_t); _t = _retTree; fieldList(_t); _t = _retTree; _t = __t76; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::constList(RefPascalAST _t) { RefPascalAST constList_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t108 = _t; RefPascalAST tmp62_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),CONSTLIST); _t = _t->getFirstChild(); { // ( ... )+ int _cnt110=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_tokenSet_2.member(_t->getType()))) { constant(_t); _t = _retTree; } else { if ( _cnt110>=1 ) { goto _loop110; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt110++; } _loop110:; } // ( ... )+ _t = __t108; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::variableDeclaration(RefPascalAST _t) { RefPascalAST variableDeclaration_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t87 = _t; RefPascalAST tmp63_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),VARDECL); _t = _t->getFirstChild(); identifierList(_t); _t = _retTree; type(_t); _t = _retTree; _t = __t87; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::procedureOrFunctionDeclaration(RefPascalAST _t) { RefPascalAST procedureOrFunctionDeclaration_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case PROCEDURE: { procedureDeclaration(_t); _t = _retTree; break; } case FUNCTION: { functionDeclaration(_t); _t = _retTree; break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::procedureDeclaration(RefPascalAST _t) { RefPascalAST procedureDeclaration_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t91 = _t; RefPascalAST tmp64_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),PROCEDURE); _t = _t->getFirstChild(); RefPascalAST tmp65_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case ARGDECLS: { formalParameterList(_t); _t = _retTree; break; } case BLOCK: case USES: case IMPLEMENTATION: case LABEL: case CONST: case TYPE: case VAR: case PROCEDURE: case FUNCTION: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } block(_t); _t = _retTree; _t = __t91; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::functionDeclaration(RefPascalAST _t) { RefPascalAST functionDeclaration_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t112 = _t; RefPascalAST tmp66_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),FUNCTION); _t = _t->getFirstChild(); RefPascalAST tmp67_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case ARGDECLS: { formalParameterList(_t); _t = _retTree; break; } case INTEGER: case BOOLEAN: case CHAR: case REAL: case STRING: case IDENT: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } resultType(_t); _t = _retTree; block(_t); _t = _retTree; _t = __t112; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::formalParameterSection(RefPascalAST _t) { RefPascalAST formalParameterSection_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case ARGDECL: { parameterGroup(_t); _t = _retTree; break; } case VAR: { RefPascalAST __t98 = _t; RefPascalAST tmp68_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),VAR); _t = _t->getFirstChild(); parameterGroup(_t); _t = _retTree; _t = __t98; _t = _t->getNextSibling(); break; } case FUNCTION: { RefPascalAST __t99 = _t; RefPascalAST tmp69_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),FUNCTION); _t = _t->getFirstChild(); parameterGroup(_t); _t = _retTree; _t = __t99; _t = _t->getNextSibling(); break; } case PROCEDURE: { RefPascalAST __t100 = _t; RefPascalAST tmp70_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),PROCEDURE); _t = _t->getFirstChild(); parameterGroup(_t); _t = _retTree; _t = __t100; _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::parameterGroup(RefPascalAST _t) { RefPascalAST parameterGroup_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t102 = _t; RefPascalAST tmp71_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),ARGDECL); _t = _t->getFirstChild(); identifierList(_t); _t = _retTree; typeIdentifier(_t); _t = _retTree; _t = __t102; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::statement(RefPascalAST _t) { RefPascalAST statement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case COLON: { RefPascalAST __t116 = _t; RefPascalAST tmp72_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),COLON); _t = _t->getFirstChild(); label(_t); _t = _retTree; unlabelledStatement(_t); _t = _retTree; _t = __t116; _t = _t->getNextSibling(); break; } case BLOCK: case PROC_CALL: case ASSIGN: case CASE: case GOTO: case IF: case WHILE: case REPEAT: case FOR: case WITH: { unlabelledStatement(_t); _t = _retTree; break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::unlabelledStatement(RefPascalAST _t) { RefPascalAST unlabelledStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case PROC_CALL: case ASSIGN: case GOTO: { simpleStatement(_t); _t = _retTree; break; } case BLOCK: case CASE: case IF: case WHILE: case REPEAT: case FOR: case WITH: { structuredStatement(_t); _t = _retTree; break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::simpleStatement(RefPascalAST _t) { RefPascalAST simpleStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case ASSIGN: { assignmentStatement(_t); _t = _retTree; break; } case PROC_CALL: { procedureStatement(_t); _t = _retTree; break; } case GOTO: { gotoStatement(_t); _t = _retTree; break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::structuredStatement(RefPascalAST _t) { RefPascalAST structuredStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case BLOCK: { compoundStatement(_t); _t = _retTree; break; } case CASE: case IF: { conditionalStatement(_t); _t = _retTree; break; } case WHILE: case REPEAT: case FOR: { repetetiveStatement(_t); _t = _retTree; break; } case WITH: { withStatement(_t); _t = _retTree; break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::assignmentStatement(RefPascalAST _t) { RefPascalAST assignmentStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t120 = _t; RefPascalAST tmp73_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),ASSIGN); _t = _t->getFirstChild(); variable(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t120; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::procedureStatement(RefPascalAST _t) { RefPascalAST procedureStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t166 = _t; RefPascalAST tmp74_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),PROC_CALL); _t = _t->getFirstChild(); RefPascalAST tmp75_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case ARGLIST: { parameterList(_t); _t = _retTree; break; } case 3: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t166; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::gotoStatement(RefPascalAST _t) { RefPascalAST gotoStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t170 = _t; RefPascalAST tmp76_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),GOTO); _t = _t->getFirstChild(); label(_t); _t = _retTree; _t = __t170; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } /** 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 PascalStoreWalker::variable(RefPascalAST _t) { RefPascalAST variable_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case LBRACK: { RefPascalAST __t122 = _t; RefPascalAST tmp77_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),LBRACK); _t = _t->getFirstChild(); variable(_t); _t = _retTree; { // ( ... )+ int _cnt124=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_tokenSet_3.member(_t->getType()))) { expression(_t); _t = _retTree; } else { if ( _cnt124>=1 ) { goto _loop124; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt124++; } _loop124:; } // ( ... )+ _t = __t122; _t = _t->getNextSibling(); break; } case LBRACK2: { RefPascalAST __t125 = _t; RefPascalAST tmp78_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),LBRACK2); _t = _t->getFirstChild(); variable(_t); _t = _retTree; { // ( ... )+ int _cnt127=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_tokenSet_3.member(_t->getType()))) { expression(_t); _t = _retTree; } else { if ( _cnt127>=1 ) { goto _loop127; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt127++; } _loop127:; } // ( ... )+ _t = __t125; _t = _t->getNextSibling(); break; } case DOT: { RefPascalAST __t128 = _t; RefPascalAST tmp79_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),DOT); _t = _t->getFirstChild(); variable(_t); _t = _retTree; RefPascalAST tmp80_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); _t = __t128; _t = _t->getNextSibling(); break; } case POINTER: { RefPascalAST __t129 = _t; RefPascalAST tmp81_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),POINTER); _t = _t->getFirstChild(); variable(_t); _t = _retTree; _t = __t129; _t = _t->getNextSibling(); break; } case AT: { RefPascalAST __t130 = _t; RefPascalAST tmp82_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),AT); _t = _t->getFirstChild(); RefPascalAST tmp83_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); _t = __t130; _t = _t->getNextSibling(); break; } case IDENT: { RefPascalAST tmp84_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::expression(RefPascalAST _t) { RefPascalAST expression_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case EQUAL: { RefPascalAST __t132 = _t; RefPascalAST tmp85_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),EQUAL); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t132; _t = _t->getNextSibling(); break; } case NOT_EQUAL: { RefPascalAST __t133 = _t; RefPascalAST tmp86_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NOT_EQUAL); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t133; _t = _t->getNextSibling(); break; } case LTH: { RefPascalAST __t134 = _t; RefPascalAST tmp87_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),LTH); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t134; _t = _t->getNextSibling(); break; } case LE: { RefPascalAST __t135 = _t; RefPascalAST tmp88_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),LE); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t135; _t = _t->getNextSibling(); break; } case GE: { RefPascalAST __t136 = _t; RefPascalAST tmp89_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),GE); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t136; _t = _t->getNextSibling(); break; } case GT: { RefPascalAST __t137 = _t; RefPascalAST tmp90_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),GT); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t137; _t = _t->getNextSibling(); break; } case IN: { RefPascalAST __t138 = _t; RefPascalAST tmp91_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IN); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t138; _t = _t->getNextSibling(); break; } case PLUS: { RefPascalAST __t139 = _t; RefPascalAST tmp92_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),PLUS); _t = _t->getFirstChild(); expression(_t); _t = _retTree; { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case FUNC_CALL: case DOT: case EQUAL: case NUM_INT: case LBRACK: case SET: case POINTER: case LE: case GE: case LTH: case GT: case NOT_EQUAL: case IN: case PLUS: case MINUS: case OR: case STAR: case SLASH: case DIV: case MOD: case AND: case NOT: case AT: case LBRACK2: case STRING_LITERAL: case CHR: case NIL: case NUM_REAL: case IDENT: { expression(_t); _t = _retTree; break; } case 3: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t139; _t = _t->getNextSibling(); break; } case MINUS: { RefPascalAST __t141 = _t; RefPascalAST tmp93_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),MINUS); _t = _t->getFirstChild(); expression(_t); _t = _retTree; { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case FUNC_CALL: case DOT: case EQUAL: case NUM_INT: case LBRACK: case SET: case POINTER: case LE: case GE: case LTH: case GT: case NOT_EQUAL: case IN: case PLUS: case MINUS: case OR: case STAR: case SLASH: case DIV: case MOD: case AND: case NOT: case AT: case LBRACK2: case STRING_LITERAL: case CHR: case NIL: case NUM_REAL: case IDENT: { expression(_t); _t = _retTree; break; } case 3: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t141; _t = _t->getNextSibling(); break; } case OR: { RefPascalAST __t143 = _t; RefPascalAST tmp94_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),OR); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t143; _t = _t->getNextSibling(); break; } case STAR: { RefPascalAST __t144 = _t; RefPascalAST tmp95_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),STAR); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t144; _t = _t->getNextSibling(); break; } case SLASH: { RefPascalAST __t145 = _t; RefPascalAST tmp96_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),SLASH); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t145; _t = _t->getNextSibling(); break; } case DIV: { RefPascalAST __t146 = _t; RefPascalAST tmp97_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),DIV); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t146; _t = _t->getNextSibling(); break; } case MOD: { RefPascalAST __t147 = _t; RefPascalAST tmp98_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),MOD); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t147; _t = _t->getNextSibling(); break; } case AND: { RefPascalAST __t148 = _t; RefPascalAST tmp99_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),AND); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t148; _t = _t->getNextSibling(); break; } case NOT: { RefPascalAST __t149 = _t; RefPascalAST tmp100_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NOT); _t = _t->getFirstChild(); expression(_t); _t = _retTree; _t = __t149; _t = _t->getNextSibling(); break; } case DOT: case LBRACK: case POINTER: case AT: case LBRACK2: case IDENT: { variable(_t); _t = _retTree; break; } case FUNC_CALL: { functionDesignator(_t); _t = _retTree; break; } case SET: { set(_t); _t = _retTree; break; } case NUM_INT: { RefPascalAST tmp101_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_INT); _t = _t->getNextSibling(); break; } case NUM_REAL: { RefPascalAST tmp102_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_REAL); _t = _t->getNextSibling(); break; } case CHR: { RefPascalAST __t150 = _t; RefPascalAST tmp103_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),CHR); _t = _t->getFirstChild(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case NUM_INT: { RefPascalAST tmp104_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_INT); _t = _t->getNextSibling(); break; } case NUM_REAL: { RefPascalAST tmp105_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NUM_REAL); _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t150; _t = _t->getNextSibling(); break; } case STRING_LITERAL: { string(_t); _t = _retTree; break; } case NIL: { RefPascalAST tmp106_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),NIL); _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::functionDesignator(RefPascalAST _t) { RefPascalAST functionDesignator_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t153 = _t; RefPascalAST tmp107_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),FUNC_CALL); _t = _t->getFirstChild(); RefPascalAST tmp108_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case ARGLIST: { parameterList(_t); _t = _retTree; break; } case 3: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t153; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::set(RefPascalAST _t) { RefPascalAST set_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t160 = _t; RefPascalAST tmp109_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),SET); _t = _t->getFirstChild(); { // ( ... )* for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_tokenSet_4.member(_t->getType()))) { element(_t); _t = _retTree; } else { goto _loop162; } } _loop162:; } // ( ... )* _t = __t160; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::parameterList(RefPascalAST _t) { RefPascalAST parameterList_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t156 = _t; RefPascalAST tmp110_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),ARGLIST); _t = _t->getFirstChild(); { // ( ... )+ int _cnt158=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_tokenSet_3.member(_t->getType()))) { actualParameter(_t); _t = _retTree; } else { if ( _cnt158>=1 ) { goto _loop158; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt158++; } _loop158:; } // ( ... )+ _t = __t156; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::actualParameter(RefPascalAST _t) { RefPascalAST actualParameter_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling expression(_t); _t = _retTree; } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::element(RefPascalAST _t) { RefPascalAST element_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case DOTDOT: { RefPascalAST __t164 = _t; RefPascalAST tmp111_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),DOTDOT); _t = _t->getFirstChild(); expression(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t164; _t = _t->getNextSibling(); break; } case FUNC_CALL: case DOT: case EQUAL: case NUM_INT: case LBRACK: case SET: case POINTER: case LE: case GE: case LTH: case GT: case NOT_EQUAL: case IN: case PLUS: case MINUS: case OR: case STAR: case SLASH: case DIV: case MOD: case AND: case NOT: case AT: case LBRACK2: case STRING_LITERAL: case CHR: case NIL: case NUM_REAL: case IDENT: { expression(_t); _t = _retTree; break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::conditionalStatement(RefPascalAST _t) { RefPascalAST conditionalStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case IF: { ifStatement(_t); _t = _retTree; break; } case CASE: { caseStatement(_t); _t = _retTree; break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::repetetiveStatement(RefPascalAST _t) { RefPascalAST repetetiveStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case WHILE: { whileStatement(_t); _t = _retTree; break; } case REPEAT: { repeatStatement(_t); _t = _retTree; break; } case FOR: { forStatement(_t); _t = _retTree; break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::withStatement(RefPascalAST _t) { RefPascalAST withStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t201 = _t; RefPascalAST tmp112_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),WITH); _t = _t->getFirstChild(); recordVariableList(_t); _t = _retTree; statement(_t); _t = _retTree; _t = __t201; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::statements(RefPascalAST _t) { RefPascalAST statements_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t174 = _t; RefPascalAST tmp113_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),BLOCK); _t = _t->getFirstChild(); { // ( ... )* for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_tokenSet_5.member(_t->getType()))) { statement(_t); _t = _retTree; } else { goto _loop176; } } _loop176:; } // ( ... )* _t = __t174; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::ifStatement(RefPascalAST _t) { RefPascalAST ifStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t179 = _t; RefPascalAST tmp114_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IF); _t = _t->getFirstChild(); expression(_t); _t = _retTree; statement(_t); _t = _retTree; { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case BLOCK: case PROC_CALL: case COLON: case ASSIGN: case CASE: case GOTO: case IF: case WHILE: case REPEAT: case FOR: case WITH: { statement(_t); _t = _retTree; break; } case 3: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t179; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::caseStatement(RefPascalAST _t) { RefPascalAST caseStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t182 = _t; RefPascalAST tmp115_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),CASE); _t = _t->getFirstChild(); expression(_t); _t = _retTree; { // ( ... )+ int _cnt184=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_t->getType() == COLON)) { caseListElement(_t); _t = _retTree; } else { if ( _cnt184>=1 ) { goto _loop184; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt184++; } _loop184:; } // ( ... )+ { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case BLOCK: { statements(_t); _t = _retTree; break; } case 3: { break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } _t = __t182; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::caseListElement(RefPascalAST _t) { RefPascalAST caseListElement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t187 = _t; RefPascalAST tmp116_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),COLON); _t = _t->getFirstChild(); constList(_t); _t = _retTree; statement(_t); _t = _retTree; _t = __t187; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::whileStatement(RefPascalAST _t) { RefPascalAST whileStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t190 = _t; RefPascalAST tmp117_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),WHILE); _t = _t->getFirstChild(); expression(_t); _t = _retTree; statement(_t); _t = _retTree; _t = __t190; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::repeatStatement(RefPascalAST _t) { RefPascalAST repeatStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t192 = _t; RefPascalAST tmp118_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),REPEAT); _t = _t->getFirstChild(); statements(_t); _t = _retTree; expression(_t); _t = _retTree; _t = __t192; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::forStatement(RefPascalAST _t) { RefPascalAST forStatement_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling RefPascalAST __t194 = _t; RefPascalAST tmp119_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),FOR); _t = _t->getFirstChild(); RefPascalAST tmp120_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),IDENT); _t = _t->getNextSibling(); forList(_t); _t = _retTree; statement(_t); _t = _retTree; _t = __t194; _t = _t->getNextSibling(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::forList(RefPascalAST _t) { RefPascalAST forList_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; switch ( _t->getType()) { case TO: { RefPascalAST __t196 = _t; RefPascalAST tmp121_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),TO); _t = _t->getFirstChild(); initialValue(_t); _t = _retTree; finalValue(_t); _t = _retTree; _t = __t196; _t = _t->getNextSibling(); break; } case DOWNTO: { RefPascalAST __t197 = _t; RefPascalAST tmp122_AST_in = _t; match(ANTLR_USE_NAMESPACE(antlr)RefAST(_t),DOWNTO); _t = _t->getFirstChild(); initialValue(_t); _t = _retTree; finalValue(_t); _t = _retTree; _t = __t197; _t = _t->getNextSibling(); break; } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t)); } } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::initialValue(RefPascalAST _t) { RefPascalAST initialValue_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling expression(_t); _t = _retTree; } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::finalValue(RefPascalAST _t) { RefPascalAST finalValue_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling expression(_t); _t = _retTree; } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::recordVariableList(RefPascalAST _t) { RefPascalAST recordVariableList_AST_in = (_t == RefPascalAST(ASTNULL)) ? RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) : _t; try { // for error handling { // ( ... )+ int _cnt204=0; for (;;) { if (_t == RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = ASTNULL; if ((_tokenSet_6.member(_t->getType()))) { variable(_t); _t = _retTree; } else { if ( _cnt204>=1 ) { goto _loop204; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(ANTLR_USE_NAMESPACE(antlr)RefAST(_t));} } _cnt204++; } _loop204:; } // ( ... )+ } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { reportError(ex); if ( _t != RefPascalAST(ANTLR_USE_NAMESPACE(antlr)nullAST) ) _t = _t->getNextSibling(); } _retTree = _t; } void PascalStoreWalker::initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& ) { } const char* PascalStoreWalker::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 PascalStoreWalker::_tokenSet_0_data_[] = { 262144UL, 172032UL, 0UL, 0UL, 0UL, 0UL }; // ARGDECL "var" "procedure" "function" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalStoreWalker::_tokenSet_0(_tokenSet_0_data_,6); const unsigned long PascalStoreWalker::_tokenSet_1_data_[] = { 512UL, 262144UL, 3641384976UL, 1UL, 0UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // SCALARTYPE "array" "integer" "boolean" "char" DOTDOT "real" "string" // "packed" "record" "set" "file" POINTER IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalStoreWalker::_tokenSet_1(_tokenSet_1_data_,12); const unsigned long PascalStoreWalker::_tokenSet_2_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 PascalStoreWalker::_tokenSet_2(_tokenSet_2_data_,12); const unsigned long PascalStoreWalker::_tokenSet_3_data_[] = { 4194432UL, 2048UL, 1107296264UL, 4152229889UL, 2155872329UL, 15UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // FUNC_CALL DOT EQUAL NUM_INT LBRACK "set" POINTER LE GE LTH GT NOT_EQUAL // "in" PLUS MINUS "or" STAR SLASH "div" "mod" "and" "not" AT LBRACK2 STRING_LITERAL // "chr" "nil" NUM_REAL IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalStoreWalker::_tokenSet_3(_tokenSet_3_data_,12); const unsigned long PascalStoreWalker::_tokenSet_4_data_[] = { 4194432UL, 2048UL, 1107427336UL, 4152229889UL, 2155872329UL, 15UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // FUNC_CALL DOT EQUAL NUM_INT DOTDOT LBRACK "set" POINTER LE GE LTH GT // NOT_EQUAL "in" PLUS MINUS "or" STAR SLASH "div" "mod" "and" "not" AT // LBRACK2 STRING_LITERAL "chr" "nil" NUM_REAL IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalStoreWalker::_tokenSet_4(_tokenSet_4_data_,12); const unsigned long PascalStoreWalker::_tokenSet_5_data_[] = { 272UL, 16384UL, 537133056UL, 0UL, 4888576UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // BLOCK PROC_CALL COLON ASSIGN "case" "goto" "if" "while" "repeat" "for" // "with" const ANTLR_USE_NAMESPACE(antlr)BitSet PascalStoreWalker::_tokenSet_5(_tokenSet_5_data_,12); const unsigned long PascalStoreWalker::_tokenSet_6_data_[] = { 4194304UL, 0UL, 33554432UL, 1UL, 8388672UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // DOT LBRACK POINTER AT LBRACK2 IDENT const ANTLR_USE_NAMESPACE(antlr)BitSet PascalStoreWalker::_tokenSet_6(_tokenSet_6_data_,12);