au.com.integradev.delphi.antlr.DelphiParser Maven / Gradle / Ivy
The newest version!
// $ANTLR 3.5.3 au/com/integradev/delphi/antlr/Delphi.g 2024-12-06 07:24:56
/*
* Sonar Delphi Plugin
* Copyright (C) 2010 SonarSource
* [email protected]
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
*/
package au.com.integradev.delphi.antlr;
import au.com.integradev.delphi.antlr.ast.node.*;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import org.antlr.runtime.tree.*;
@SuppressWarnings({"cast","rawtypes","unchecked"})
@javax.annotation.processing.Generated("ANTLR")
public class DelphiParser extends Parser {
public static final String[] tokenNames = new String[] {
"", "", "", "", "A", "ABSOLUTE", "ABSTRACT", "ADDRESS",
"ALIGN", "AMPERSAND__deprecated", "AND", "ARRAY", "AS", "ASM", "ASSEMBLER",
"ASSEMBLY", "ASSIGN", "AT", "AUTOMATED", "Alpha", "B", "BEGIN", "BinaryDigit",
"BinaryDigitSeq", "C", "CASE", "CDECL", "CLASS", "COLON", "COMMA", "COMMENT",
"CONST", "CONSTRUCTOR", "CONTAINS", "D", "DEFAULT", "DELAYED", "DEPRECATED",
"DEREFERENCE", "DESTRUCTOR", "DISPID", "DISPINTERFACE", "DIV", "DIVIDE",
"DO", "DOT", "DOT_DOT", "DOWNTO", "DYNAMIC", "Digit", "DigitSeq", "E",
"ELSE", "END", "EQUAL", "EXCEPT", "EXPERIMENTAL", "EXPORT", "EXPORTS",
"EXTERNAL", "F", "FAR", "FILE", "FINAL", "FINALIZATION", "FINALLY", "FOR",
"FORWARD", "FUNCTION", "FullWidthNumeral", "G", "GOTO", "GREATER_THAN",
"GREATER_THAN_EQUAL", "H", "HELPER", "HexDigit", "HexDigitSeq", "I", "IF",
"IMPLEMENTATION", "IMPLEMENTS", "IN", "INDEX", "INHERITED", "INITIALIZATION",
"INLINE", "INTERFACE", "IS", "J", "K", "L", "LABEL", "LESS_THAN", "LESS_THAN_EQUAL",
"LIBRARY", "LOCAL", "M", "MESSAGE", "MINUS", "MOD", "MULTIPLY", "N", "NAME",
"NEAR", "NIL", "NODEFAULT", "NOT", "NOT_EQUAL", "O", "OBJECT", "OF", "ON",
"OPERATOR", "OR", "OUT", "OVERLOAD", "OVERRIDE", "P", "PACKAGE", "PACKED",
"PAREN_BRACKET_LEFT", "PAREN_BRACKET_RIGHT", "PAREN_LEFT", "PAREN_RIGHT",
"PASCAL", "PLATFORM", "PLUS", "PRIVATE", "PROCEDURE", "PROGRAM", "PROPERTY",
"PROTECTED", "PUBLIC", "PUBLISHED", "Q", "R", "RAISE", "READ", "READONLY",
"RECORD", "REFERENCE", "REGISTER", "REINTRODUCE", "REPEAT", "REQUIRES",
"RESIDENT", "RESOURCESTRING", "S", "SAFECALL", "SEALED", "SEMICOLON",
"SET", "SHL", "SHR", "SQUARE_BRACKET_LEFT", "SQUARE_BRACKET_RIGHT", "STATIC",
"STDCALL", "STORED", "STRICT", "STRING", "ScaleFactor", "T", "THEN", "THREADVAR",
"TO", "TRY", "TYPE", "TkAnonymousMethod", "TkAnonymousMethodHeading",
"TkAnyChar", "TkArgument", "TkArrayAccessorNode", "TkArrayConstructor",
"TkArrayIndices", "TkAsmDoubleQuotedString", "TkAsmHexNum", "TkAsmId",
"TkAttribute", "TkAttributeGroup", "TkAttributeList", "TkBinaryNumber",
"TkCaseItem", "TkCharacterEscapeCode", "TkClassParents", "TkCompilerDirective",
"TkConstDeclaration", "TkEnumElement", "TkEscapedCharacter", "TkExpressionStatement",
"TkFieldDeclaration", "TkFieldSection", "TkForLoopVar", "TkFormalParameter",
"TkFormalParameterList", "TkGenericArguments", "TkGenericDefinition",
"TkGuid", "TkHexNumber", "TkIdentifier", "TkIntNumber", "TkLabelStatement",
"TkLocalDeclarations", "TkMethodResolveClause", "TkMultilineString", "TkNameDeclaration",
"TkNameDeclarationList", "TkNameReference", "TkNestedExpression", "TkPrimaryExpression",
"TkProcedureType", "TkQuotedString", "TkRealNumber", "TkRecordExpressionItem",
"TkRecordVariantItem", "TkRecordVariantTag", "TkRootNode", "TkRoutineBody",
"TkRoutineDeclaration", "TkRoutineHeading", "TkRoutineImplementation",
"TkRoutineName", "TkRoutineParameters", "TkRoutineReturn", "TkStatementList",
"TkTextLiteral", "TkTypeDeclaration", "TkTypeParameter", "TkTypeReference",
"TkUnitImport", "TkVarDeclaration", "TkVisibility", "TkVisibilitySection",
"TkWeakAlias", "U", "UNIT", "UNSAFE", "UNTIL", "USES", "V", "VAR", "VARARGS",
"VIRTUAL", "W", "WHILE", "WHITESPACE", "WINAPI", "WITH", "WRITE", "WRITEONLY",
"X", "XOR", "Y", "Z"
};
public static final int EOF=-1;
public static final int A=4;
public static final int ABSOLUTE=5;
public static final int ABSTRACT=6;
public static final int ADDRESS=7;
public static final int ALIGN=8;
public static final int AMPERSAND__deprecated=9;
public static final int AND=10;
public static final int ARRAY=11;
public static final int AS=12;
public static final int ASM=13;
public static final int ASSEMBLER=14;
public static final int ASSEMBLY=15;
public static final int ASSIGN=16;
public static final int AT=17;
public static final int AUTOMATED=18;
public static final int Alpha=19;
public static final int B=20;
public static final int BEGIN=21;
public static final int BinaryDigit=22;
public static final int BinaryDigitSeq=23;
public static final int C=24;
public static final int CASE=25;
public static final int CDECL=26;
public static final int CLASS=27;
public static final int COLON=28;
public static final int COMMA=29;
public static final int COMMENT=30;
public static final int CONST=31;
public static final int CONSTRUCTOR=32;
public static final int CONTAINS=33;
public static final int D=34;
public static final int DEFAULT=35;
public static final int DELAYED=36;
public static final int DEPRECATED=37;
public static final int DEREFERENCE=38;
public static final int DESTRUCTOR=39;
public static final int DISPID=40;
public static final int DISPINTERFACE=41;
public static final int DIV=42;
public static final int DIVIDE=43;
public static final int DO=44;
public static final int DOT=45;
public static final int DOT_DOT=46;
public static final int DOWNTO=47;
public static final int DYNAMIC=48;
public static final int Digit=49;
public static final int DigitSeq=50;
public static final int E=51;
public static final int ELSE=52;
public static final int END=53;
public static final int EQUAL=54;
public static final int EXCEPT=55;
public static final int EXPERIMENTAL=56;
public static final int EXPORT=57;
public static final int EXPORTS=58;
public static final int EXTERNAL=59;
public static final int F=60;
public static final int FAR=61;
public static final int FILE=62;
public static final int FINAL=63;
public static final int FINALIZATION=64;
public static final int FINALLY=65;
public static final int FOR=66;
public static final int FORWARD=67;
public static final int FUNCTION=68;
public static final int FullWidthNumeral=69;
public static final int G=70;
public static final int GOTO=71;
public static final int GREATER_THAN=72;
public static final int GREATER_THAN_EQUAL=73;
public static final int H=74;
public static final int HELPER=75;
public static final int HexDigit=76;
public static final int HexDigitSeq=77;
public static final int I=78;
public static final int IF=79;
public static final int IMPLEMENTATION=80;
public static final int IMPLEMENTS=81;
public static final int IN=82;
public static final int INDEX=83;
public static final int INHERITED=84;
public static final int INITIALIZATION=85;
public static final int INLINE=86;
public static final int INTERFACE=87;
public static final int IS=88;
public static final int J=89;
public static final int K=90;
public static final int L=91;
public static final int LABEL=92;
public static final int LESS_THAN=93;
public static final int LESS_THAN_EQUAL=94;
public static final int LIBRARY=95;
public static final int LOCAL=96;
public static final int M=97;
public static final int MESSAGE=98;
public static final int MINUS=99;
public static final int MOD=100;
public static final int MULTIPLY=101;
public static final int N=102;
public static final int NAME=103;
public static final int NEAR=104;
public static final int NIL=105;
public static final int NODEFAULT=106;
public static final int NOT=107;
public static final int NOT_EQUAL=108;
public static final int O=109;
public static final int OBJECT=110;
public static final int OF=111;
public static final int ON=112;
public static final int OPERATOR=113;
public static final int OR=114;
public static final int OUT=115;
public static final int OVERLOAD=116;
public static final int OVERRIDE=117;
public static final int P=118;
public static final int PACKAGE=119;
public static final int PACKED=120;
public static final int PAREN_BRACKET_LEFT=121;
public static final int PAREN_BRACKET_RIGHT=122;
public static final int PAREN_LEFT=123;
public static final int PAREN_RIGHT=124;
public static final int PASCAL=125;
public static final int PLATFORM=126;
public static final int PLUS=127;
public static final int PRIVATE=128;
public static final int PROCEDURE=129;
public static final int PROGRAM=130;
public static final int PROPERTY=131;
public static final int PROTECTED=132;
public static final int PUBLIC=133;
public static final int PUBLISHED=134;
public static final int Q=135;
public static final int R=136;
public static final int RAISE=137;
public static final int READ=138;
public static final int READONLY=139;
public static final int RECORD=140;
public static final int REFERENCE=141;
public static final int REGISTER=142;
public static final int REINTRODUCE=143;
public static final int REPEAT=144;
public static final int REQUIRES=145;
public static final int RESIDENT=146;
public static final int RESOURCESTRING=147;
public static final int S=148;
public static final int SAFECALL=149;
public static final int SEALED=150;
public static final int SEMICOLON=151;
public static final int SET=152;
public static final int SHL=153;
public static final int SHR=154;
public static final int SQUARE_BRACKET_LEFT=155;
public static final int SQUARE_BRACKET_RIGHT=156;
public static final int STATIC=157;
public static final int STDCALL=158;
public static final int STORED=159;
public static final int STRICT=160;
public static final int STRING=161;
public static final int ScaleFactor=162;
public static final int T=163;
public static final int THEN=164;
public static final int THREADVAR=165;
public static final int TO=166;
public static final int TRY=167;
public static final int TYPE=168;
public static final int TkAnonymousMethod=169;
public static final int TkAnonymousMethodHeading=170;
public static final int TkAnyChar=171;
public static final int TkArgument=172;
public static final int TkArrayAccessorNode=173;
public static final int TkArrayConstructor=174;
public static final int TkArrayIndices=175;
public static final int TkAsmDoubleQuotedString=176;
public static final int TkAsmHexNum=177;
public static final int TkAsmId=178;
public static final int TkAttribute=179;
public static final int TkAttributeGroup=180;
public static final int TkAttributeList=181;
public static final int TkBinaryNumber=182;
public static final int TkCaseItem=183;
public static final int TkCharacterEscapeCode=184;
public static final int TkClassParents=185;
public static final int TkCompilerDirective=186;
public static final int TkConstDeclaration=187;
public static final int TkEnumElement=188;
public static final int TkEscapedCharacter=189;
public static final int TkExpressionStatement=190;
public static final int TkFieldDeclaration=191;
public static final int TkFieldSection=192;
public static final int TkForLoopVar=193;
public static final int TkFormalParameter=194;
public static final int TkFormalParameterList=195;
public static final int TkGenericArguments=196;
public static final int TkGenericDefinition=197;
public static final int TkGuid=198;
public static final int TkHexNumber=199;
public static final int TkIdentifier=200;
public static final int TkIntNumber=201;
public static final int TkLabelStatement=202;
public static final int TkLocalDeclarations=203;
public static final int TkMethodResolveClause=204;
public static final int TkMultilineString=205;
public static final int TkNameDeclaration=206;
public static final int TkNameDeclarationList=207;
public static final int TkNameReference=208;
public static final int TkNestedExpression=209;
public static final int TkPrimaryExpression=210;
public static final int TkProcedureType=211;
public static final int TkQuotedString=212;
public static final int TkRealNumber=213;
public static final int TkRecordExpressionItem=214;
public static final int TkRecordVariantItem=215;
public static final int TkRecordVariantTag=216;
public static final int TkRootNode=217;
public static final int TkRoutineBody=218;
public static final int TkRoutineDeclaration=219;
public static final int TkRoutineHeading=220;
public static final int TkRoutineImplementation=221;
public static final int TkRoutineName=222;
public static final int TkRoutineParameters=223;
public static final int TkRoutineReturn=224;
public static final int TkStatementList=225;
public static final int TkTextLiteral=226;
public static final int TkTypeDeclaration=227;
public static final int TkTypeParameter=228;
public static final int TkTypeReference=229;
public static final int TkUnitImport=230;
public static final int TkVarDeclaration=231;
public static final int TkVisibility=232;
public static final int TkVisibilitySection=233;
public static final int TkWeakAlias=234;
public static final int U=235;
public static final int UNIT=236;
public static final int UNSAFE=237;
public static final int UNTIL=238;
public static final int USES=239;
public static final int V=240;
public static final int VAR=241;
public static final int VARARGS=242;
public static final int VIRTUAL=243;
public static final int W=244;
public static final int WHILE=245;
public static final int WHITESPACE=246;
public static final int WINAPI=247;
public static final int WITH=248;
public static final int WRITE=249;
public static final int WRITEONLY=250;
public static final int X=251;
public static final int XOR=252;
public static final int Y=253;
public static final int Z=254;
// delegates
public Parser[] getDelegates() {
return new Parser[] {};
}
// delegators
public DelphiParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public DelphiParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
this.state.ruleMemo = new HashMap[872+1];
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
@Override public String[] getTokenNames() { return DelphiParser.tokenNames; }
@Override public String getGrammarFileName() { return "au/com/integradev/delphi/antlr/Delphi.g"; }
private Token changeTokenType(int type) {
return changeTokenType(type, -1);
}
private Token changeTokenType(int type, int offset) {
CommonToken t = new CommonToken(input.LT(offset));
t.setType(type);
return t;
}
private Token combineLastNTokens(int count) {
CommonToken firstToken = (CommonToken) input.LT(-count);
CommonToken lastToken = (CommonToken) input.LT(-1);
lastToken.setStartIndex(firstToken.getStartIndex());
return lastToken;
}
@Override
public void reportError(RecognitionException e) {
String hdr = this.getErrorHeader(e);
String msg = this.getErrorMessage(e, this.getTokenNames());
throw new ParserException(hdr + " " + msg, e);
}
@Override
public String getErrorHeader(RecognitionException e) {
return "line " + e.line + ":" + e.charPositionInLine;
}
private void resetBinaryExpressionTokens(Object rootExpression) {
if (!(rootExpression instanceof BinaryExpressionNodeImpl)) {
return;
}
var binaryExpression = (BinaryExpressionNodeImpl) rootExpression;
binaryExpression.setFirstToken(null);
binaryExpression.setLastToken(null);
resetBinaryExpressionTokens(binaryExpression.getLeft());
resetBinaryExpressionTokens(binaryExpression.getRight());
}
public static class ParserException extends RuntimeException {
public ParserException(String message, Throwable cause) {
super(message, cause);
}
}
public static class file_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "file"
// au/com/integradev/delphi/antlr/Delphi.g:374:1: file : ( program | library | unit | package_ );
public final DelphiParser.file_return file() throws RecognitionException {
DelphiParser.file_return retval = new DelphiParser.file_return();
retval.start = input.LT(1);
int file_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope program1 =null;
ParserRuleReturnScope library2 =null;
ParserRuleReturnScope unit3 =null;
ParserRuleReturnScope package_4 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 1) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:374:30: ( program | library | unit | package_ )
int alt1=4;
switch ( input.LA(1) ) {
case BEGIN:
case CLASS:
case CONST:
case CONSTRUCTOR:
case DESTRUCTOR:
case END:
case EXPORTS:
case FUNCTION:
case LABEL:
case OPERATOR:
case PAREN_BRACKET_LEFT:
case PROCEDURE:
case PROGRAM:
case RESOURCESTRING:
case SQUARE_BRACKET_LEFT:
case THREADVAR:
case TYPE:
case USES:
case VAR:
{
alt1=1;
}
break;
case LIBRARY:
{
alt1=2;
}
break;
case UNIT:
{
alt1=3;
}
break;
case PACKAGE:
{
alt1=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 1, 0, input);
throw nvae;
}
switch (alt1) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:374:32: program
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_program_in_file405);
program1=program();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, program1.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:374:42: library
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_library_in_file409);
library2=library();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, library2.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:374:52: unit
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unit_in_file413);
unit3=unit();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unit3.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:374:59: package_
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_package__in_file417);
package_4=package_();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, package_4.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 1, file_StartIndex); }
}
return retval;
}
// $ANTLR end "file"
public static class fileWithoutImplementation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "fileWithoutImplementation"
// au/com/integradev/delphi/antlr/Delphi.g:376:1: fileWithoutImplementation : ( program | library | unitWithoutImplementation | package_ );
public final DelphiParser.fileWithoutImplementation_return fileWithoutImplementation() throws RecognitionException {
DelphiParser.fileWithoutImplementation_return retval = new DelphiParser.fileWithoutImplementation_return();
retval.start = input.LT(1);
int fileWithoutImplementation_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope program5 =null;
ParserRuleReturnScope library6 =null;
ParserRuleReturnScope unitWithoutImplementation7 =null;
ParserRuleReturnScope package_8 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 2) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:376:30: ( program | library | unitWithoutImplementation | package_ )
int alt2=4;
switch ( input.LA(1) ) {
case BEGIN:
case CLASS:
case CONST:
case CONSTRUCTOR:
case DESTRUCTOR:
case END:
case EXPORTS:
case FUNCTION:
case LABEL:
case OPERATOR:
case PAREN_BRACKET_LEFT:
case PROCEDURE:
case PROGRAM:
case RESOURCESTRING:
case SQUARE_BRACKET_LEFT:
case THREADVAR:
case TYPE:
case USES:
case VAR:
{
alt2=1;
}
break;
case LIBRARY:
{
alt2=2;
}
break;
case UNIT:
{
alt2=3;
}
break;
case PACKAGE:
{
alt2=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 2, 0, input);
throw nvae;
}
switch (alt2) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:376:32: program
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_program_in_fileWithoutImplementation457);
program5=program();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, program5.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:376:42: library
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_library_in_fileWithoutImplementation461);
library6=library();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, library6.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:376:52: unitWithoutImplementation
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unitWithoutImplementation_in_fileWithoutImplementation465);
unitWithoutImplementation7=unitWithoutImplementation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitWithoutImplementation7.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:376:80: package_
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_package__in_fileWithoutImplementation469);
package_8=package_();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, package_8.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 2, fileWithoutImplementation_StartIndex); }
}
return retval;
}
// $ANTLR end "fileWithoutImplementation"
public static class program_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "program"
// au/com/integradev/delphi/antlr/Delphi.g:383:1: program : ( programHead )? ( usesFileClause )? programBody '.' ;
public final DelphiParser.program_return program() throws RecognitionException {
DelphiParser.program_return retval = new DelphiParser.program_return();
retval.start = input.LT(1);
int program_StartIndex = input.index();
Object root_0 = null;
Token char_literal12=null;
ParserRuleReturnScope programHead9 =null;
ParserRuleReturnScope usesFileClause10 =null;
ParserRuleReturnScope programBody11 =null;
Object char_literal12_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 3) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:383:30: ( ( programHead )? ( usesFileClause )? programBody '.' )
// au/com/integradev/delphi/antlr/Delphi.g:383:32: ( programHead )? ( usesFileClause )? programBody '.'
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:383:32: ( programHead )?
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==PROGRAM) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:383:32: programHead
{
pushFollow(FOLLOW_programHead_in_program532);
programHead9=programHead();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, programHead9.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:383:45: ( usesFileClause )?
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==USES) ) {
alt4=1;
}
switch (alt4) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:383:45: usesFileClause
{
pushFollow(FOLLOW_usesFileClause_in_program535);
usesFileClause10=usesFileClause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, usesFileClause10.getTree());
}
break;
}
pushFollow(FOLLOW_programBody_in_program538);
programBody11=programBody();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, programBody11.getTree());
char_literal12=(Token)match(input,DOT,FOLLOW_DOT_in_program540); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal12_tree = (Object)adaptor.create(char_literal12);
adaptor.addChild(root_0, char_literal12_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 3, program_StartIndex); }
}
return retval;
}
// $ANTLR end "program"
public static class programHead_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "programHead"
// au/com/integradev/delphi/antlr/Delphi.g:385:1: programHead : PROGRAM ^ qualifiedNameDeclaration ( programParameters )? ';' !;
public final DelphiParser.programHead_return programHead() throws RecognitionException {
DelphiParser.programHead_return retval = new DelphiParser.programHead_return();
retval.start = input.LT(1);
int programHead_StartIndex = input.index();
Object root_0 = null;
Token PROGRAM13=null;
Token char_literal16=null;
ParserRuleReturnScope qualifiedNameDeclaration14 =null;
ParserRuleReturnScope programParameters15 =null;
Object PROGRAM13_tree=null;
Object char_literal16_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 4) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:385:30: ( PROGRAM ^ qualifiedNameDeclaration ( programParameters )? ';' !)
// au/com/integradev/delphi/antlr/Delphi.g:385:32: PROGRAM ^ qualifiedNameDeclaration ( programParameters )? ';' !
{
root_0 = (Object)adaptor.nil();
PROGRAM13=(Token)match(input,PROGRAM,FOLLOW_PROGRAM_in_programHead594); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PROGRAM13_tree = new ProgramDeclarationNodeImpl(PROGRAM13) ;
root_0 = (Object)adaptor.becomeRoot(PROGRAM13_tree, root_0);
}
pushFollow(FOLLOW_qualifiedNameDeclaration_in_programHead600);
qualifiedNameDeclaration14=qualifiedNameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, qualifiedNameDeclaration14.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:385:94: ( programParameters )?
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==PAREN_LEFT) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:385:94: programParameters
{
pushFollow(FOLLOW_programParameters_in_programHead602);
programParameters15=programParameters();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, programParameters15.getTree());
}
break;
}
char_literal16=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_programHead605); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 4, programHead_StartIndex); }
}
return retval;
}
// $ANTLR end "programHead"
public static class programParameters_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "programParameters"
// au/com/integradev/delphi/antlr/Delphi.g:387:1: programParameters : '(' ( ident ( ',' ident )* )? ')' ;
public final DelphiParser.programParameters_return programParameters() throws RecognitionException {
DelphiParser.programParameters_return retval = new DelphiParser.programParameters_return();
retval.start = input.LT(1);
int programParameters_StartIndex = input.index();
Object root_0 = null;
Token char_literal17=null;
Token char_literal19=null;
Token char_literal21=null;
ParserRuleReturnScope ident18 =null;
ParserRuleReturnScope ident20 =null;
Object char_literal17_tree=null;
Object char_literal19_tree=null;
Object char_literal21_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 5) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:387:30: ( '(' ( ident ( ',' ident )* )? ')' )
// au/com/integradev/delphi/antlr/Delphi.g:387:32: '(' ( ident ( ',' ident )* )? ')'
{
root_0 = (Object)adaptor.nil();
char_literal17=(Token)match(input,PAREN_LEFT,FOLLOW_PAREN_LEFT_in_programParameters654); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal17_tree = (Object)adaptor.create(char_literal17);
adaptor.addChild(root_0, char_literal17_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:387:36: ( ident ( ',' ident )* )?
int alt7=2;
int LA7_0 = input.LA(1);
if ( ((LA7_0 >= ABSOLUTE && LA7_0 <= ABSTRACT)||LA7_0==ALIGN||(LA7_0 >= ASSEMBLER && LA7_0 <= ASSEMBLY)||(LA7_0 >= AT && LA7_0 <= AUTOMATED)||LA7_0==CDECL||LA7_0==CONTAINS||(LA7_0 >= DEFAULT && LA7_0 <= DEPRECATED)||LA7_0==DISPID||LA7_0==DYNAMIC||(LA7_0 >= EXPERIMENTAL && LA7_0 <= EXPORT)||LA7_0==EXTERNAL||LA7_0==FAR||LA7_0==FINAL||LA7_0==FORWARD||LA7_0==HELPER||LA7_0==IMPLEMENTS||LA7_0==INDEX||LA7_0==LABEL||LA7_0==LOCAL||LA7_0==MESSAGE||(LA7_0 >= NAME && LA7_0 <= NEAR)||LA7_0==NODEFAULT||(LA7_0 >= ON && LA7_0 <= OPERATOR)||(LA7_0 >= OUT && LA7_0 <= OVERRIDE)||LA7_0==PACKAGE||(LA7_0 >= PASCAL && LA7_0 <= PLATFORM)||LA7_0==PRIVATE||(LA7_0 >= PROTECTED && LA7_0 <= PUBLISHED)||(LA7_0 >= READ && LA7_0 <= READONLY)||(LA7_0 >= REFERENCE && LA7_0 <= REINTRODUCE)||(LA7_0 >= REQUIRES && LA7_0 <= RESIDENT)||(LA7_0 >= SAFECALL && LA7_0 <= SEALED)||(LA7_0 >= STATIC && LA7_0 <= STRICT)||LA7_0==TkIdentifier||LA7_0==UNSAFE||(LA7_0 >= VARARGS && LA7_0 <= VIRTUAL)||LA7_0==WINAPI||(LA7_0 >= WRITE && LA7_0 <= WRITEONLY)) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:387:37: ident ( ',' ident )*
{
pushFollow(FOLLOW_ident_in_programParameters657);
ident18=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ident18.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:387:43: ( ',' ident )*
loop6:
while (true) {
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==COMMA) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:387:44: ',' ident
{
char_literal19=(Token)match(input,COMMA,FOLLOW_COMMA_in_programParameters660); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal19_tree = (Object)adaptor.create(char_literal19);
adaptor.addChild(root_0, char_literal19_tree);
}
pushFollow(FOLLOW_ident_in_programParameters662);
ident20=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ident20.getTree());
}
break;
default :
break loop6;
}
}
}
break;
}
char_literal21=(Token)match(input,PAREN_RIGHT,FOLLOW_PAREN_RIGHT_in_programParameters669); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal21_tree = (Object)adaptor.create(char_literal21);
adaptor.addChild(root_0, char_literal21_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 5, programParameters_StartIndex); }
}
return retval;
}
// $ANTLR end "programParameters"
public static class programBody_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "programBody"
// au/com/integradev/delphi/antlr/Delphi.g:389:1: programBody : ( localDeclSection )? ( compoundStatement | END ) ;
public final DelphiParser.programBody_return programBody() throws RecognitionException {
DelphiParser.programBody_return retval = new DelphiParser.programBody_return();
retval.start = input.LT(1);
int programBody_StartIndex = input.index();
Object root_0 = null;
Token END24=null;
ParserRuleReturnScope localDeclSection22 =null;
ParserRuleReturnScope compoundStatement23 =null;
Object END24_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 6) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:389:30: ( ( localDeclSection )? ( compoundStatement | END ) )
// au/com/integradev/delphi/antlr/Delphi.g:389:32: ( localDeclSection )? ( compoundStatement | END )
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:389:32: ( localDeclSection )?
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==CLASS||(LA8_0 >= CONST && LA8_0 <= CONSTRUCTOR)||LA8_0==DESTRUCTOR||LA8_0==EXPORTS||LA8_0==FUNCTION||LA8_0==LABEL||LA8_0==OPERATOR||LA8_0==PAREN_BRACKET_LEFT||LA8_0==PROCEDURE||LA8_0==RESOURCESTRING||LA8_0==SQUARE_BRACKET_LEFT||LA8_0==THREADVAR||LA8_0==TYPE||LA8_0==VAR) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:389:32: localDeclSection
{
pushFollow(FOLLOW_localDeclSection_in_programBody724);
localDeclSection22=localDeclSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, localDeclSection22.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:389:50: ( compoundStatement | END )
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==BEGIN) ) {
alt9=1;
}
else if ( (LA9_0==END) ) {
alt9=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 9, 0, input);
throw nvae;
}
switch (alt9) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:389:51: compoundStatement
{
pushFollow(FOLLOW_compoundStatement_in_programBody728);
compoundStatement23=compoundStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, compoundStatement23.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:389:71: END
{
END24=(Token)match(input,END,FOLLOW_END_in_programBody732); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END24_tree = (Object)adaptor.create(END24);
adaptor.addChild(root_0, END24_tree);
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 6, programBody_StartIndex); }
}
return retval;
}
// $ANTLR end "programBody"
public static class library_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "library"
// au/com/integradev/delphi/antlr/Delphi.g:391:1: library : libraryHead ( usesFileClause )? programBody '.' ;
public final DelphiParser.library_return library() throws RecognitionException {
DelphiParser.library_return retval = new DelphiParser.library_return();
retval.start = input.LT(1);
int library_StartIndex = input.index();
Object root_0 = null;
Token char_literal28=null;
ParserRuleReturnScope libraryHead25 =null;
ParserRuleReturnScope usesFileClause26 =null;
ParserRuleReturnScope programBody27 =null;
Object char_literal28_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 7) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:391:30: ( libraryHead ( usesFileClause )? programBody '.' )
// au/com/integradev/delphi/antlr/Delphi.g:391:32: libraryHead ( usesFileClause )? programBody '.'
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_libraryHead_in_library791);
libraryHead25=libraryHead();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, libraryHead25.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:391:44: ( usesFileClause )?
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==USES) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:391:44: usesFileClause
{
pushFollow(FOLLOW_usesFileClause_in_library793);
usesFileClause26=usesFileClause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, usesFileClause26.getTree());
}
break;
}
pushFollow(FOLLOW_programBody_in_library796);
programBody27=programBody();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, programBody27.getTree());
char_literal28=(Token)match(input,DOT,FOLLOW_DOT_in_library798); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal28_tree = (Object)adaptor.create(char_literal28);
adaptor.addChild(root_0, char_literal28_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 7, library_StartIndex); }
}
return retval;
}
// $ANTLR end "library"
public static class libraryHead_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "libraryHead"
// au/com/integradev/delphi/antlr/Delphi.g:393:1: libraryHead : LIBRARY ^ qualifiedNameDeclaration ( portabilityDirective !)* ';' !;
public final DelphiParser.libraryHead_return libraryHead() throws RecognitionException {
DelphiParser.libraryHead_return retval = new DelphiParser.libraryHead_return();
retval.start = input.LT(1);
int libraryHead_StartIndex = input.index();
Object root_0 = null;
Token LIBRARY29=null;
Token char_literal32=null;
ParserRuleReturnScope qualifiedNameDeclaration30 =null;
ParserRuleReturnScope portabilityDirective31 =null;
Object LIBRARY29_tree=null;
Object char_literal32_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 8) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:393:30: ( LIBRARY ^ qualifiedNameDeclaration ( portabilityDirective !)* ';' !)
// au/com/integradev/delphi/antlr/Delphi.g:393:32: LIBRARY ^ qualifiedNameDeclaration ( portabilityDirective !)* ';' !
{
root_0 = (Object)adaptor.nil();
LIBRARY29=(Token)match(input,LIBRARY,FOLLOW_LIBRARY_in_libraryHead852); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LIBRARY29_tree = new LibraryDeclarationNodeImpl(LIBRARY29) ;
root_0 = (Object)adaptor.becomeRoot(LIBRARY29_tree, root_0);
}
pushFollow(FOLLOW_qualifiedNameDeclaration_in_libraryHead858);
qualifiedNameDeclaration30=qualifiedNameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, qualifiedNameDeclaration30.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:393:94: ( portabilityDirective !)*
loop11:
while (true) {
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==DEPRECATED||LA11_0==EXPERIMENTAL||LA11_0==LIBRARY||LA11_0==PLATFORM) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:393:95: portabilityDirective !
{
pushFollow(FOLLOW_portabilityDirective_in_libraryHead861);
portabilityDirective31=portabilityDirective();
state._fsp--;
if (state.failed) return retval;
}
break;
default :
break loop11;
}
}
char_literal32=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_libraryHead866); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 8, libraryHead_StartIndex); }
}
return retval;
}
// $ANTLR end "libraryHead"
public static class package__return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "package_"
// au/com/integradev/delphi/antlr/Delphi.g:395:1: package_ : packageHead ( requiresClause )? ( containsClause )? ( attributeList )* END '.' ;
public final DelphiParser.package__return package_() throws RecognitionException {
DelphiParser.package__return retval = new DelphiParser.package__return();
retval.start = input.LT(1);
int package__StartIndex = input.index();
Object root_0 = null;
Token END37=null;
Token char_literal38=null;
ParserRuleReturnScope packageHead33 =null;
ParserRuleReturnScope requiresClause34 =null;
ParserRuleReturnScope containsClause35 =null;
ParserRuleReturnScope attributeList36 =null;
Object END37_tree=null;
Object char_literal38_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 9) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:395:30: ( packageHead ( requiresClause )? ( containsClause )? ( attributeList )* END '.' )
// au/com/integradev/delphi/antlr/Delphi.g:395:32: packageHead ( requiresClause )? ( containsClause )? ( attributeList )* END '.'
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_packageHead_in_package_924);
packageHead33=packageHead();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, packageHead33.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:395:44: ( requiresClause )?
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==REQUIRES) ) {
alt12=1;
}
switch (alt12) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:395:44: requiresClause
{
pushFollow(FOLLOW_requiresClause_in_package_926);
requiresClause34=requiresClause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, requiresClause34.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:395:60: ( containsClause )?
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==CONTAINS) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:395:60: containsClause
{
pushFollow(FOLLOW_containsClause_in_package_929);
containsClause35=containsClause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, containsClause35.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:395:76: ( attributeList )*
loop14:
while (true) {
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==PAREN_BRACKET_LEFT||LA14_0==SQUARE_BRACKET_LEFT) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:395:76: attributeList
{
pushFollow(FOLLOW_attributeList_in_package_932);
attributeList36=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, attributeList36.getTree());
}
break;
default :
break loop14;
}
}
END37=(Token)match(input,END,FOLLOW_END_in_package_935); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END37_tree = (Object)adaptor.create(END37);
adaptor.addChild(root_0, END37_tree);
}
char_literal38=(Token)match(input,DOT,FOLLOW_DOT_in_package_937); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal38_tree = (Object)adaptor.create(char_literal38);
adaptor.addChild(root_0, char_literal38_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 9, package__StartIndex); }
}
return retval;
}
// $ANTLR end "package_"
public static class packageHead_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "packageHead"
// au/com/integradev/delphi/antlr/Delphi.g:397:1: packageHead : PACKAGE ^ qualifiedNameDeclaration ';' !;
public final DelphiParser.packageHead_return packageHead() throws RecognitionException {
DelphiParser.packageHead_return retval = new DelphiParser.packageHead_return();
retval.start = input.LT(1);
int packageHead_StartIndex = input.index();
Object root_0 = null;
Token PACKAGE39=null;
Token char_literal41=null;
ParserRuleReturnScope qualifiedNameDeclaration40 =null;
Object PACKAGE39_tree=null;
Object char_literal41_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 10) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:397:30: ( PACKAGE ^ qualifiedNameDeclaration ';' !)
// au/com/integradev/delphi/antlr/Delphi.g:397:32: PACKAGE ^ qualifiedNameDeclaration ';' !
{
root_0 = (Object)adaptor.nil();
PACKAGE39=(Token)match(input,PACKAGE,FOLLOW_PACKAGE_in_packageHead991); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PACKAGE39_tree = new PackageDeclarationNodeImpl(PACKAGE39) ;
root_0 = (Object)adaptor.becomeRoot(PACKAGE39_tree, root_0);
}
pushFollow(FOLLOW_qualifiedNameDeclaration_in_packageHead997);
qualifiedNameDeclaration40=qualifiedNameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, qualifiedNameDeclaration40.getTree());
char_literal41=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_packageHead999); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 10, packageHead_StartIndex); }
}
return retval;
}
// $ANTLR end "packageHead"
public static class unit_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unit"
// au/com/integradev/delphi/antlr/Delphi.g:399:1: unit : unitHead unitInterface unitImplementation unitBlock '.' ;
public final DelphiParser.unit_return unit() throws RecognitionException {
DelphiParser.unit_return retval = new DelphiParser.unit_return();
retval.start = input.LT(1);
int unit_StartIndex = input.index();
Object root_0 = null;
Token char_literal46=null;
ParserRuleReturnScope unitHead42 =null;
ParserRuleReturnScope unitInterface43 =null;
ParserRuleReturnScope unitImplementation44 =null;
ParserRuleReturnScope unitBlock45 =null;
Object char_literal46_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 11) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:399:30: ( unitHead unitInterface unitImplementation unitBlock '.' )
// au/com/integradev/delphi/antlr/Delphi.g:399:32: unitHead unitInterface unitImplementation unitBlock '.'
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unitHead_in_unit1061);
unitHead42=unitHead();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitHead42.getTree());
pushFollow(FOLLOW_unitInterface_in_unit1063);
unitInterface43=unitInterface();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitInterface43.getTree());
pushFollow(FOLLOW_unitImplementation_in_unit1065);
unitImplementation44=unitImplementation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitImplementation44.getTree());
pushFollow(FOLLOW_unitBlock_in_unit1067);
unitBlock45=unitBlock();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitBlock45.getTree());
char_literal46=(Token)match(input,DOT,FOLLOW_DOT_in_unit1069); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal46_tree = (Object)adaptor.create(char_literal46);
adaptor.addChild(root_0, char_literal46_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 11, unit_StartIndex); }
}
return retval;
}
// $ANTLR end "unit"
public static class unitWithoutImplementation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unitWithoutImplementation"
// au/com/integradev/delphi/antlr/Delphi.g:401:1: unitWithoutImplementation : unitHead unitInterface ;
public final DelphiParser.unitWithoutImplementation_return unitWithoutImplementation() throws RecognitionException {
DelphiParser.unitWithoutImplementation_return retval = new DelphiParser.unitWithoutImplementation_return();
retval.start = input.LT(1);
int unitWithoutImplementation_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope unitHead47 =null;
ParserRuleReturnScope unitInterface48 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 12) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:401:30: ( unitHead unitInterface )
// au/com/integradev/delphi/antlr/Delphi.g:401:32: unitHead unitInterface
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unitHead_in_unitWithoutImplementation1109);
unitHead47=unitHead();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitHead47.getTree());
pushFollow(FOLLOW_unitInterface_in_unitWithoutImplementation1111);
unitInterface48=unitInterface();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitInterface48.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 12, unitWithoutImplementation_StartIndex); }
}
return retval;
}
// $ANTLR end "unitWithoutImplementation"
public static class unitHead_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unitHead"
// au/com/integradev/delphi/antlr/Delphi.g:403:1: unitHead : UNIT ^ qualifiedNameDeclaration ( portabilityDirective )* ';' !;
public final DelphiParser.unitHead_return unitHead() throws RecognitionException {
DelphiParser.unitHead_return retval = new DelphiParser.unitHead_return();
retval.start = input.LT(1);
int unitHead_StartIndex = input.index();
Object root_0 = null;
Token UNIT49=null;
Token char_literal52=null;
ParserRuleReturnScope qualifiedNameDeclaration50 =null;
ParserRuleReturnScope portabilityDirective51 =null;
Object UNIT49_tree=null;
Object char_literal52_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 13) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:403:30: ( UNIT ^ qualifiedNameDeclaration ( portabilityDirective )* ';' !)
// au/com/integradev/delphi/antlr/Delphi.g:403:32: UNIT ^ qualifiedNameDeclaration ( portabilityDirective )* ';' !
{
root_0 = (Object)adaptor.nil();
UNIT49=(Token)match(input,UNIT,FOLLOW_UNIT_in_unitHead1168); if (state.failed) return retval;
if ( state.backtracking==0 ) {
UNIT49_tree = new UnitDeclarationNodeImpl(UNIT49) ;
root_0 = (Object)adaptor.becomeRoot(UNIT49_tree, root_0);
}
pushFollow(FOLLOW_qualifiedNameDeclaration_in_unitHead1174);
qualifiedNameDeclaration50=qualifiedNameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, qualifiedNameDeclaration50.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:403:88: ( portabilityDirective )*
loop15:
while (true) {
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==DEPRECATED||LA15_0==EXPERIMENTAL||LA15_0==LIBRARY||LA15_0==PLATFORM) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:403:88: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_unitHead1176);
portabilityDirective51=portabilityDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, portabilityDirective51.getTree());
}
break;
default :
break loop15;
}
}
char_literal52=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_unitHead1179); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 13, unitHead_StartIndex); }
}
return retval;
}
// $ANTLR end "unitHead"
public static class unitInterface_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unitInterface"
// au/com/integradev/delphi/antlr/Delphi.g:405:1: unitInterface : INTERFACE ^ ( usesClause )? ( interfaceDecl )* ;
public final DelphiParser.unitInterface_return unitInterface() throws RecognitionException {
DelphiParser.unitInterface_return retval = new DelphiParser.unitInterface_return();
retval.start = input.LT(1);
int unitInterface_StartIndex = input.index();
Object root_0 = null;
Token INTERFACE53=null;
ParserRuleReturnScope usesClause54 =null;
ParserRuleReturnScope interfaceDecl55 =null;
Object INTERFACE53_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:405:30: ( INTERFACE ^ ( usesClause )? ( interfaceDecl )* )
// au/com/integradev/delphi/antlr/Delphi.g:405:32: INTERFACE ^ ( usesClause )? ( interfaceDecl )*
{
root_0 = (Object)adaptor.nil();
INTERFACE53=(Token)match(input,INTERFACE,FOLLOW_INTERFACE_in_unitInterface1232); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INTERFACE53_tree = new InterfaceSectionNodeImpl(INTERFACE53) ;
root_0 = (Object)adaptor.becomeRoot(INTERFACE53_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:405:69: ( usesClause )?
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==USES) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:405:69: usesClause
{
pushFollow(FOLLOW_usesClause_in_unitInterface1238);
usesClause54=usesClause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, usesClause54.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:405:81: ( interfaceDecl )*
loop17:
while (true) {
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==CLASS||(LA17_0 >= CONST && LA17_0 <= CONSTRUCTOR)||LA17_0==DESTRUCTOR||LA17_0==EXPORTS||LA17_0==FUNCTION||LA17_0==OPERATOR||LA17_0==PAREN_BRACKET_LEFT||LA17_0==PROCEDURE||LA17_0==RESOURCESTRING||LA17_0==SQUARE_BRACKET_LEFT||LA17_0==THREADVAR||LA17_0==TYPE||LA17_0==VAR) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:405:81: interfaceDecl
{
pushFollow(FOLLOW_interfaceDecl_in_unitInterface1241);
interfaceDecl55=interfaceDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceDecl55.getTree());
}
break;
default :
break loop17;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 14, unitInterface_StartIndex); }
}
return retval;
}
// $ANTLR end "unitInterface"
public static class unitImplementation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unitImplementation"
// au/com/integradev/delphi/antlr/Delphi.g:407:1: unitImplementation : IMPLEMENTATION ^ ( usesClause )? ( declSection )* ;
public final DelphiParser.unitImplementation_return unitImplementation() throws RecognitionException {
DelphiParser.unitImplementation_return retval = new DelphiParser.unitImplementation_return();
retval.start = input.LT(1);
int unitImplementation_StartIndex = input.index();
Object root_0 = null;
Token IMPLEMENTATION56=null;
ParserRuleReturnScope usesClause57 =null;
ParserRuleReturnScope declSection58 =null;
Object IMPLEMENTATION56_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:407:30: ( IMPLEMENTATION ^ ( usesClause )? ( declSection )* )
// au/com/integradev/delphi/antlr/Delphi.g:407:32: IMPLEMENTATION ^ ( usesClause )? ( declSection )*
{
root_0 = (Object)adaptor.nil();
IMPLEMENTATION56=(Token)match(input,IMPLEMENTATION,FOLLOW_IMPLEMENTATION_in_unitImplementation1289); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IMPLEMENTATION56_tree = new ImplementationSectionNodeImpl(IMPLEMENTATION56) ;
root_0 = (Object)adaptor.becomeRoot(IMPLEMENTATION56_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:407:79: ( usesClause )?
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==USES) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:407:79: usesClause
{
pushFollow(FOLLOW_usesClause_in_unitImplementation1295);
usesClause57=usesClause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, usesClause57.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:407:91: ( declSection )*
loop19:
while (true) {
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==CLASS||(LA19_0 >= CONST && LA19_0 <= CONSTRUCTOR)||LA19_0==DESTRUCTOR||LA19_0==EXPORTS||LA19_0==FUNCTION||LA19_0==LABEL||LA19_0==OPERATOR||LA19_0==PAREN_BRACKET_LEFT||LA19_0==PROCEDURE||LA19_0==RESOURCESTRING||LA19_0==SQUARE_BRACKET_LEFT||LA19_0==THREADVAR||LA19_0==TYPE||LA19_0==VAR) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:407:91: declSection
{
pushFollow(FOLLOW_declSection_in_unitImplementation1298);
declSection58=declSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declSection58.getTree());
}
break;
default :
break loop19;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 15, unitImplementation_StartIndex); }
}
return retval;
}
// $ANTLR end "unitImplementation"
public static class unitBlock_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unitBlock"
// au/com/integradev/delphi/antlr/Delphi.g:409:1: unitBlock : ( ( initializationFinalization )? END | compoundStatement );
public final DelphiParser.unitBlock_return unitBlock() throws RecognitionException {
DelphiParser.unitBlock_return retval = new DelphiParser.unitBlock_return();
retval.start = input.LT(1);
int unitBlock_StartIndex = input.index();
Object root_0 = null;
Token END60=null;
ParserRuleReturnScope initializationFinalization59 =null;
ParserRuleReturnScope compoundStatement61 =null;
Object END60_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:409:30: ( ( initializationFinalization )? END | compoundStatement )
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==END||LA21_0==INITIALIZATION) ) {
alt21=1;
}
else if ( (LA21_0==BEGIN) ) {
alt21=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 21, 0, input);
throw nvae;
}
switch (alt21) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:409:32: ( initializationFinalization )? END
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:409:32: ( initializationFinalization )?
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==INITIALIZATION) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:409:32: initializationFinalization
{
pushFollow(FOLLOW_initializationFinalization_in_unitBlock1355);
initializationFinalization59=initializationFinalization();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, initializationFinalization59.getTree());
}
break;
}
END60=(Token)match(input,END,FOLLOW_END_in_unitBlock1358); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END60_tree = (Object)adaptor.create(END60);
adaptor.addChild(root_0, END60_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:410:32: compoundStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_compoundStatement_in_unitBlock1391);
compoundStatement61=compoundStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, compoundStatement61.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 16, unitBlock_StartIndex); }
}
return retval;
}
// $ANTLR end "unitBlock"
public static class initializationFinalization_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "initializationFinalization"
// au/com/integradev/delphi/antlr/Delphi.g:412:1: initializationFinalization : initializationSection ( finalizationSection )? ;
public final DelphiParser.initializationFinalization_return initializationFinalization() throws RecognitionException {
DelphiParser.initializationFinalization_return retval = new DelphiParser.initializationFinalization_return();
retval.start = input.LT(1);
int initializationFinalization_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope initializationSection62 =null;
ParserRuleReturnScope finalizationSection63 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:412:30: ( initializationSection ( finalizationSection )? )
// au/com/integradev/delphi/antlr/Delphi.g:412:32: initializationSection ( finalizationSection )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_initializationSection_in_initializationFinalization1430);
initializationSection62=initializationSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, initializationSection62.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:412:54: ( finalizationSection )?
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==FINALIZATION) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:412:54: finalizationSection
{
pushFollow(FOLLOW_finalizationSection_in_initializationFinalization1432);
finalizationSection63=finalizationSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, finalizationSection63.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 17, initializationFinalization_StartIndex); }
}
return retval;
}
// $ANTLR end "initializationFinalization"
public static class initializationSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "initializationSection"
// au/com/integradev/delphi/antlr/Delphi.g:414:1: initializationSection : INITIALIZATION ^ statementList ;
public final DelphiParser.initializationSection_return initializationSection() throws RecognitionException {
DelphiParser.initializationSection_return retval = new DelphiParser.initializationSection_return();
retval.start = input.LT(1);
int initializationSection_StartIndex = input.index();
Object root_0 = null;
Token INITIALIZATION64=null;
ParserRuleReturnScope statementList65 =null;
Object INITIALIZATION64_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 18) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:414:30: ( INITIALIZATION ^ statementList )
// au/com/integradev/delphi/antlr/Delphi.g:414:32: INITIALIZATION ^ statementList
{
root_0 = (Object)adaptor.nil();
INITIALIZATION64=(Token)match(input,INITIALIZATION,FOLLOW_INITIALIZATION_in_initializationSection1477); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INITIALIZATION64_tree = new InitializationSectionNodeImpl(INITIALIZATION64) ;
root_0 = (Object)adaptor.becomeRoot(INITIALIZATION64_tree, root_0);
}
pushFollow(FOLLOW_statementList_in_initializationSection1483);
statementList65=statementList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statementList65.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 18, initializationSection_StartIndex); }
}
return retval;
}
// $ANTLR end "initializationSection"
public static class finalizationSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "finalizationSection"
// au/com/integradev/delphi/antlr/Delphi.g:416:1: finalizationSection : FINALIZATION ^ statementList ;
public final DelphiParser.finalizationSection_return finalizationSection() throws RecognitionException {
DelphiParser.finalizationSection_return retval = new DelphiParser.finalizationSection_return();
retval.start = input.LT(1);
int finalizationSection_StartIndex = input.index();
Object root_0 = null;
Token FINALIZATION66=null;
ParserRuleReturnScope statementList67 =null;
Object FINALIZATION66_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 19) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:416:30: ( FINALIZATION ^ statementList )
// au/com/integradev/delphi/antlr/Delphi.g:416:32: FINALIZATION ^ statementList
{
root_0 = (Object)adaptor.nil();
FINALIZATION66=(Token)match(input,FINALIZATION,FOLLOW_FINALIZATION_in_finalizationSection1529); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FINALIZATION66_tree = new FinalizationSectionNodeImpl(FINALIZATION66) ;
root_0 = (Object)adaptor.becomeRoot(FINALIZATION66_tree, root_0);
}
pushFollow(FOLLOW_statementList_in_finalizationSection1535);
statementList67=statementList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statementList67.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 19, finalizationSection_StartIndex); }
}
return retval;
}
// $ANTLR end "finalizationSection"
public static class containsClause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "containsClause"
// au/com/integradev/delphi/antlr/Delphi.g:422:1: containsClause : CONTAINS ^ unitInFileImportList ;
public final DelphiParser.containsClause_return containsClause() throws RecognitionException {
DelphiParser.containsClause_return retval = new DelphiParser.containsClause_return();
retval.start = input.LT(1);
int containsClause_StartIndex = input.index();
Object root_0 = null;
Token CONTAINS68=null;
ParserRuleReturnScope unitInFileImportList69 =null;
Object CONTAINS68_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 20) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:422:30: ( CONTAINS ^ unitInFileImportList )
// au/com/integradev/delphi/antlr/Delphi.g:422:32: CONTAINS ^ unitInFileImportList
{
root_0 = (Object)adaptor.nil();
CONTAINS68=(Token)match(input,CONTAINS,FOLLOW_CONTAINS_in_containsClause1590); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CONTAINS68_tree = new ContainsClauseNodeImpl(CONTAINS68) ;
root_0 = (Object)adaptor.becomeRoot(CONTAINS68_tree, root_0);
}
pushFollow(FOLLOW_unitInFileImportList_in_containsClause1596);
unitInFileImportList69=unitInFileImportList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitInFileImportList69.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 20, containsClause_StartIndex); }
}
return retval;
}
// $ANTLR end "containsClause"
public static class requiresClause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "requiresClause"
// au/com/integradev/delphi/antlr/Delphi.g:424:1: requiresClause : REQUIRES ^ unitImportList ;
public final DelphiParser.requiresClause_return requiresClause() throws RecognitionException {
DelphiParser.requiresClause_return retval = new DelphiParser.requiresClause_return();
retval.start = input.LT(1);
int requiresClause_StartIndex = input.index();
Object root_0 = null;
Token REQUIRES70=null;
ParserRuleReturnScope unitImportList71 =null;
Object REQUIRES70_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:424:30: ( REQUIRES ^ unitImportList )
// au/com/integradev/delphi/antlr/Delphi.g:424:32: REQUIRES ^ unitImportList
{
root_0 = (Object)adaptor.nil();
REQUIRES70=(Token)match(input,REQUIRES,FOLLOW_REQUIRES_in_requiresClause1647); if (state.failed) return retval;
if ( state.backtracking==0 ) {
REQUIRES70_tree = new RequiresClauseNodeImpl(REQUIRES70) ;
root_0 = (Object)adaptor.becomeRoot(REQUIRES70_tree, root_0);
}
pushFollow(FOLLOW_unitImportList_in_requiresClause1653);
unitImportList71=unitImportList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitImportList71.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 21, requiresClause_StartIndex); }
}
return retval;
}
// $ANTLR end "requiresClause"
public static class usesClause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "usesClause"
// au/com/integradev/delphi/antlr/Delphi.g:426:1: usesClause : USES ^ unitImportList ;
public final DelphiParser.usesClause_return usesClause() throws RecognitionException {
DelphiParser.usesClause_return retval = new DelphiParser.usesClause_return();
retval.start = input.LT(1);
int usesClause_StartIndex = input.index();
Object root_0 = null;
Token USES72=null;
ParserRuleReturnScope unitImportList73 =null;
Object USES72_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 22) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:426:30: ( USES ^ unitImportList )
// au/com/integradev/delphi/antlr/Delphi.g:426:32: USES ^ unitImportList
{
root_0 = (Object)adaptor.nil();
USES72=(Token)match(input,USES,FOLLOW_USES_in_usesClause1708); if (state.failed) return retval;
if ( state.backtracking==0 ) {
USES72_tree = new UsesClauseNodeImpl(USES72) ;
root_0 = (Object)adaptor.becomeRoot(USES72_tree, root_0);
}
pushFollow(FOLLOW_unitImportList_in_usesClause1714);
unitImportList73=unitImportList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitImportList73.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 22, usesClause_StartIndex); }
}
return retval;
}
// $ANTLR end "usesClause"
public static class usesFileClause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "usesFileClause"
// au/com/integradev/delphi/antlr/Delphi.g:428:1: usesFileClause : USES ^ unitInFileImportList ;
public final DelphiParser.usesFileClause_return usesFileClause() throws RecognitionException {
DelphiParser.usesFileClause_return retval = new DelphiParser.usesFileClause_return();
retval.start = input.LT(1);
int usesFileClause_StartIndex = input.index();
Object root_0 = null;
Token USES74=null;
ParserRuleReturnScope unitInFileImportList75 =null;
Object USES74_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 23) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:428:30: ( USES ^ unitInFileImportList )
// au/com/integradev/delphi/antlr/Delphi.g:428:32: USES ^ unitInFileImportList
{
root_0 = (Object)adaptor.nil();
USES74=(Token)match(input,USES,FOLLOW_USES_in_usesFileClause1765); if (state.failed) return retval;
if ( state.backtracking==0 ) {
USES74_tree = new UsesClauseNodeImpl(USES74) ;
root_0 = (Object)adaptor.becomeRoot(USES74_tree, root_0);
}
pushFollow(FOLLOW_unitInFileImportList_in_usesFileClause1771);
unitInFileImportList75=unitInFileImportList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitInFileImportList75.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 23, usesFileClause_StartIndex); }
}
return retval;
}
// $ANTLR end "usesFileClause"
public static class unitInFileImportList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unitInFileImportList"
// au/com/integradev/delphi/antlr/Delphi.g:430:1: unitInFileImportList : unitInFileImport ( ',' unitInFileImport )* ';' ;
public final DelphiParser.unitInFileImportList_return unitInFileImportList() throws RecognitionException {
DelphiParser.unitInFileImportList_return retval = new DelphiParser.unitInFileImportList_return();
retval.start = input.LT(1);
int unitInFileImportList_StartIndex = input.index();
Object root_0 = null;
Token char_literal77=null;
Token char_literal79=null;
ParserRuleReturnScope unitInFileImport76 =null;
ParserRuleReturnScope unitInFileImport78 =null;
Object char_literal77_tree=null;
Object char_literal79_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 24) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:430:30: ( unitInFileImport ( ',' unitInFileImport )* ';' )
// au/com/integradev/delphi/antlr/Delphi.g:430:32: unitInFileImport ( ',' unitInFileImport )* ';'
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unitInFileImport_in_unitInFileImportList1816);
unitInFileImport76=unitInFileImport();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitInFileImport76.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:430:49: ( ',' unitInFileImport )*
loop23:
while (true) {
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==COMMA) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:430:50: ',' unitInFileImport
{
char_literal77=(Token)match(input,COMMA,FOLLOW_COMMA_in_unitInFileImportList1819); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal77_tree = (Object)adaptor.create(char_literal77);
adaptor.addChild(root_0, char_literal77_tree);
}
pushFollow(FOLLOW_unitInFileImport_in_unitInFileImportList1821);
unitInFileImport78=unitInFileImport();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitInFileImport78.getTree());
}
break;
default :
break loop23;
}
}
char_literal79=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_unitInFileImportList1825); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal79_tree = (Object)adaptor.create(char_literal79);
adaptor.addChild(root_0, char_literal79_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 24, unitInFileImportList_StartIndex); }
}
return retval;
}
// $ANTLR end "unitInFileImportList"
public static class unitImportList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unitImportList"
// au/com/integradev/delphi/antlr/Delphi.g:432:1: unitImportList : unitImport ( ',' unitImport )* ';' ;
public final DelphiParser.unitImportList_return unitImportList() throws RecognitionException {
DelphiParser.unitImportList_return retval = new DelphiParser.unitImportList_return();
retval.start = input.LT(1);
int unitImportList_StartIndex = input.index();
Object root_0 = null;
Token char_literal81=null;
Token char_literal83=null;
ParserRuleReturnScope unitImport80 =null;
ParserRuleReturnScope unitImport82 =null;
Object char_literal81_tree=null;
Object char_literal83_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 25) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:432:30: ( unitImport ( ',' unitImport )* ';' )
// au/com/integradev/delphi/antlr/Delphi.g:432:32: unitImport ( ',' unitImport )* ';'
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unitImport_in_unitImportList1876);
unitImport80=unitImport();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitImport80.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:432:43: ( ',' unitImport )*
loop24:
while (true) {
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==COMMA) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:432:44: ',' unitImport
{
char_literal81=(Token)match(input,COMMA,FOLLOW_COMMA_in_unitImportList1879); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal81_tree = (Object)adaptor.create(char_literal81);
adaptor.addChild(root_0, char_literal81_tree);
}
pushFollow(FOLLOW_unitImport_in_unitImportList1881);
unitImport82=unitImport();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unitImport82.getTree());
}
break;
default :
break loop24;
}
}
char_literal83=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_unitImportList1885); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal83_tree = (Object)adaptor.create(char_literal83);
adaptor.addChild(root_0, char_literal83_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 25, unitImportList_StartIndex); }
}
return retval;
}
// $ANTLR end "unitImportList"
public static class unitImport_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unitImport"
// au/com/integradev/delphi/antlr/Delphi.g:434:1: unitImport : qualifiedNameDeclaration -> ^( TkUnitImport qualifiedNameDeclaration ) ;
public final DelphiParser.unitImport_return unitImport() throws RecognitionException {
DelphiParser.unitImport_return retval = new DelphiParser.unitImport_return();
retval.start = input.LT(1);
int unitImport_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope qualifiedNameDeclaration84 =null;
RewriteRuleSubtreeStream stream_qualifiedNameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule qualifiedNameDeclaration");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 26) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:434:30: ( qualifiedNameDeclaration -> ^( TkUnitImport qualifiedNameDeclaration ) )
// au/com/integradev/delphi/antlr/Delphi.g:434:32: qualifiedNameDeclaration
{
pushFollow(FOLLOW_qualifiedNameDeclaration_in_unitImport1940);
qualifiedNameDeclaration84=qualifiedNameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_qualifiedNameDeclaration.add(qualifiedNameDeclaration84.getTree());
// AST REWRITE
// elements: qualifiedNameDeclaration
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 435:30: -> ^( TkUnitImport qualifiedNameDeclaration )
{
// au/com/integradev/delphi/antlr/Delphi.g:435:33: ^( TkUnitImport qualifiedNameDeclaration )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new UnitImportNodeImpl(TkUnitImport), root_1);
adaptor.addChild(root_1, stream_qualifiedNameDeclaration.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 26, unitImport_StartIndex); }
}
return retval;
}
// $ANTLR end "unitImport"
public static class unitInFileImport_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unitInFileImport"
// au/com/integradev/delphi/antlr/Delphi.g:437:1: unitInFileImport : qualifiedNameDeclaration ( IN textLiteral )? -> ^( TkUnitImport qualifiedNameDeclaration ( IN textLiteral )? ) ;
public final DelphiParser.unitInFileImport_return unitInFileImport() throws RecognitionException {
DelphiParser.unitInFileImport_return retval = new DelphiParser.unitInFileImport_return();
retval.start = input.LT(1);
int unitInFileImport_StartIndex = input.index();
Object root_0 = null;
Token IN86=null;
ParserRuleReturnScope qualifiedNameDeclaration85 =null;
ParserRuleReturnScope textLiteral87 =null;
Object IN86_tree=null;
RewriteRuleTokenStream stream_IN=new RewriteRuleTokenStream(adaptor,"token IN");
RewriteRuleSubtreeStream stream_textLiteral=new RewriteRuleSubtreeStream(adaptor,"rule textLiteral");
RewriteRuleSubtreeStream stream_qualifiedNameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule qualifiedNameDeclaration");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:437:30: ( qualifiedNameDeclaration ( IN textLiteral )? -> ^( TkUnitImport qualifiedNameDeclaration ( IN textLiteral )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:437:32: qualifiedNameDeclaration ( IN textLiteral )?
{
pushFollow(FOLLOW_qualifiedNameDeclaration_in_unitInFileImport2029);
qualifiedNameDeclaration85=qualifiedNameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_qualifiedNameDeclaration.add(qualifiedNameDeclaration85.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:437:57: ( IN textLiteral )?
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==IN) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:437:58: IN textLiteral
{
IN86=(Token)match(input,IN,FOLLOW_IN_in_unitInFileImport2032); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IN.add(IN86);
pushFollow(FOLLOW_textLiteral_in_unitInFileImport2034);
textLiteral87=textLiteral();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_textLiteral.add(textLiteral87.getTree());
}
break;
}
// AST REWRITE
// elements: qualifiedNameDeclaration, IN, textLiteral
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 438:30: -> ^( TkUnitImport qualifiedNameDeclaration ( IN textLiteral )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:438:33: ^( TkUnitImport qualifiedNameDeclaration ( IN textLiteral )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new UnitImportNodeImpl(TkUnitImport), root_1);
adaptor.addChild(root_1, stream_qualifiedNameDeclaration.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:438:93: ( IN textLiteral )?
if ( stream_IN.hasNext()||stream_textLiteral.hasNext() ) {
adaptor.addChild(root_1, stream_IN.nextNode());
adaptor.addChild(root_1, stream_textLiteral.nextTree());
}
stream_IN.reset();
stream_textLiteral.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 27, unitInFileImport_StartIndex); }
}
return retval;
}
// $ANTLR end "unitInFileImport"
public static class block_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "block"
// au/com/integradev/delphi/antlr/Delphi.g:444:1: block : ( localDeclSection )? blockBody ;
public final DelphiParser.block_return block() throws RecognitionException {
DelphiParser.block_return retval = new DelphiParser.block_return();
retval.start = input.LT(1);
int block_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope localDeclSection88 =null;
ParserRuleReturnScope blockBody89 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:444:30: ( ( localDeclSection )? blockBody )
// au/com/integradev/delphi/antlr/Delphi.g:444:32: ( localDeclSection )? blockBody
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:444:32: ( localDeclSection )?
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==CLASS||(LA26_0 >= CONST && LA26_0 <= CONSTRUCTOR)||LA26_0==DESTRUCTOR||LA26_0==EXPORTS||LA26_0==FUNCTION||LA26_0==LABEL||LA26_0==OPERATOR||LA26_0==PAREN_BRACKET_LEFT||LA26_0==PROCEDURE||LA26_0==RESOURCESTRING||LA26_0==SQUARE_BRACKET_LEFT||LA26_0==THREADVAR||LA26_0==TYPE||LA26_0==VAR) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:444:32: localDeclSection
{
pushFollow(FOLLOW_localDeclSection_in_block2147);
localDeclSection88=localDeclSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, localDeclSection88.getTree());
}
break;
}
pushFollow(FOLLOW_blockBody_in_block2150);
blockBody89=blockBody();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, blockBody89.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 28, block_StartIndex); }
}
return retval;
}
// $ANTLR end "block"
public static class localDeclSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "localDeclSection"
// au/com/integradev/delphi/antlr/Delphi.g:446:1: localDeclSection : ( declSection )+ -> ^( TkLocalDeclarations ( declSection )+ ) ;
public final DelphiParser.localDeclSection_return localDeclSection() throws RecognitionException {
DelphiParser.localDeclSection_return retval = new DelphiParser.localDeclSection_return();
retval.start = input.LT(1);
int localDeclSection_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope declSection90 =null;
RewriteRuleSubtreeStream stream_declSection=new RewriteRuleSubtreeStream(adaptor,"rule declSection");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 29) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:446:30: ( ( declSection )+ -> ^( TkLocalDeclarations ( declSection )+ ) )
// au/com/integradev/delphi/antlr/Delphi.g:446:32: ( declSection )+
{
// au/com/integradev/delphi/antlr/Delphi.g:446:32: ( declSection )+
int cnt27=0;
loop27:
while (true) {
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==CLASS||(LA27_0 >= CONST && LA27_0 <= CONSTRUCTOR)||LA27_0==DESTRUCTOR||LA27_0==EXPORTS||LA27_0==FUNCTION||LA27_0==LABEL||LA27_0==OPERATOR||LA27_0==PAREN_BRACKET_LEFT||LA27_0==PROCEDURE||LA27_0==RESOURCESTRING||LA27_0==SQUARE_BRACKET_LEFT||LA27_0==THREADVAR||LA27_0==TYPE||LA27_0==VAR) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:446:32: declSection
{
pushFollow(FOLLOW_declSection_in_localDeclSection2199);
declSection90=declSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declSection.add(declSection90.getTree());
}
break;
default :
if ( cnt27 >= 1 ) break loop27;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(27, input);
throw eee;
}
cnt27++;
}
// AST REWRITE
// elements: declSection
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 446:45: -> ^( TkLocalDeclarations ( declSection )+ )
{
// au/com/integradev/delphi/antlr/Delphi.g:446:48: ^( TkLocalDeclarations ( declSection )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new LocalDeclarationSectionNodeImpl(TkLocalDeclarations), root_1);
if ( !(stream_declSection.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_declSection.hasNext() ) {
adaptor.addChild(root_1, stream_declSection.nextTree());
}
stream_declSection.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 29, localDeclSection_StartIndex); }
}
return retval;
}
// $ANTLR end "localDeclSection"
public static class blockBody_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "blockBody"
// au/com/integradev/delphi/antlr/Delphi.g:448:1: blockBody : ( compoundStatement | assemblerStatement );
public final DelphiParser.blockBody_return blockBody() throws RecognitionException {
DelphiParser.blockBody_return retval = new DelphiParser.blockBody_return();
retval.start = input.LT(1);
int blockBody_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope compoundStatement91 =null;
ParserRuleReturnScope assemblerStatement92 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 30) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:448:30: ( compoundStatement | assemblerStatement )
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==BEGIN) ) {
alt28=1;
}
else if ( (LA28_0==ASM) ) {
alt28=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 28, 0, input);
throw nvae;
}
switch (alt28) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:448:32: compoundStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_compoundStatement_in_blockBody2268);
compoundStatement91=compoundStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, compoundStatement91.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:449:32: assemblerStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assemblerStatement_in_blockBody2301);
assemblerStatement92=assemblerStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assemblerStatement92.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 30, blockBody_StartIndex); }
}
return retval;
}
// $ANTLR end "blockBody"
public static class declSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declSection"
// au/com/integradev/delphi/antlr/Delphi.g:451:1: declSection : ( labelDeclSection | constSection | typeSection | varSection | routineImplementation | exportsSection | attributeList );
public final DelphiParser.declSection_return declSection() throws RecognitionException {
DelphiParser.declSection_return retval = new DelphiParser.declSection_return();
retval.start = input.LT(1);
int declSection_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope labelDeclSection93 =null;
ParserRuleReturnScope constSection94 =null;
ParserRuleReturnScope typeSection95 =null;
ParserRuleReturnScope varSection96 =null;
ParserRuleReturnScope routineImplementation97 =null;
ParserRuleReturnScope exportsSection98 =null;
ParserRuleReturnScope attributeList99 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 31) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:451:30: ( labelDeclSection | constSection | typeSection | varSection | routineImplementation | exportsSection | attributeList )
int alt29=7;
switch ( input.LA(1) ) {
case LABEL:
{
alt29=1;
}
break;
case CONST:
case RESOURCESTRING:
{
alt29=2;
}
break;
case TYPE:
{
alt29=3;
}
break;
case THREADVAR:
case VAR:
{
alt29=4;
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA29_7 = input.LA(2);
if ( (synpred37_Delphi()) ) {
alt29=5;
}
else if ( (true) ) {
alt29=7;
}
}
break;
case CLASS:
case CONSTRUCTOR:
case DESTRUCTOR:
case FUNCTION:
case OPERATOR:
case PROCEDURE:
{
alt29=5;
}
break;
case EXPORTS:
{
alt29=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 29, 0, input);
throw nvae;
}
switch (alt29) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:451:32: labelDeclSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_labelDeclSection_in_declSection2355);
labelDeclSection93=labelDeclSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, labelDeclSection93.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:452:32: constSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_constSection_in_declSection2388);
constSection94=constSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, constSection94.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:453:32: typeSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeSection_in_declSection2421);
typeSection95=typeSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeSection95.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:454:32: varSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_varSection_in_declSection2454);
varSection96=varSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varSection96.getTree());
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:455:32: routineImplementation
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_routineImplementation_in_declSection2487);
routineImplementation97=routineImplementation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, routineImplementation97.getTree());
}
break;
case 6 :
// au/com/integradev/delphi/antlr/Delphi.g:456:32: exportsSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_exportsSection_in_declSection2520);
exportsSection98=exportsSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, exportsSection98.getTree());
}
break;
case 7 :
// au/com/integradev/delphi/antlr/Delphi.g:457:32: attributeList
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_attributeList_in_declSection2553);
attributeList99=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, attributeList99.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 31, declSection_StartIndex); }
}
return retval;
}
// $ANTLR end "declSection"
public static class interfaceDecl_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "interfaceDecl"
// au/com/integradev/delphi/antlr/Delphi.g:459:1: interfaceDecl : ( constSection | typeSection | varSection | exportsSection | routineInterface | attributeList );
public final DelphiParser.interfaceDecl_return interfaceDecl() throws RecognitionException {
DelphiParser.interfaceDecl_return retval = new DelphiParser.interfaceDecl_return();
retval.start = input.LT(1);
int interfaceDecl_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope constSection100 =null;
ParserRuleReturnScope typeSection101 =null;
ParserRuleReturnScope varSection102 =null;
ParserRuleReturnScope exportsSection103 =null;
ParserRuleReturnScope routineInterface104 =null;
ParserRuleReturnScope attributeList105 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 32) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:459:30: ( constSection | typeSection | varSection | exportsSection | routineInterface | attributeList )
int alt30=6;
switch ( input.LA(1) ) {
case CONST:
case RESOURCESTRING:
{
alt30=1;
}
break;
case TYPE:
{
alt30=2;
}
break;
case THREADVAR:
case VAR:
{
alt30=3;
}
break;
case EXPORTS:
{
alt30=4;
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA30_7 = input.LA(2);
if ( (synpred43_Delphi()) ) {
alt30=5;
}
else if ( (true) ) {
alt30=6;
}
}
break;
case CLASS:
case CONSTRUCTOR:
case DESTRUCTOR:
case FUNCTION:
case OPERATOR:
case PROCEDURE:
{
alt30=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 30, 0, input);
throw nvae;
}
switch (alt30) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:459:32: constSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_constSection_in_interfaceDecl2605);
constSection100=constSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, constSection100.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:460:32: typeSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeSection_in_interfaceDecl2638);
typeSection101=typeSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeSection101.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:461:32: varSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_varSection_in_interfaceDecl2671);
varSection102=varSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varSection102.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:462:32: exportsSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_exportsSection_in_interfaceDecl2704);
exportsSection103=exportsSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, exportsSection103.getTree());
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:463:32: routineInterface
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_routineInterface_in_interfaceDecl2737);
routineInterface104=routineInterface();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, routineInterface104.getTree());
}
break;
case 6 :
// au/com/integradev/delphi/antlr/Delphi.g:464:32: attributeList
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_attributeList_in_interfaceDecl2770);
attributeList105=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, attributeList105.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 32, interfaceDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "interfaceDecl"
public static class labelDeclSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "labelDeclSection"
// au/com/integradev/delphi/antlr/Delphi.g:466:1: labelDeclSection : LABEL ^ labelNameDeclaration ( ',' labelNameDeclaration )* ';' ;
public final DelphiParser.labelDeclSection_return labelDeclSection() throws RecognitionException {
DelphiParser.labelDeclSection_return retval = new DelphiParser.labelDeclSection_return();
retval.start = input.LT(1);
int labelDeclSection_StartIndex = input.index();
Object root_0 = null;
Token LABEL106=null;
Token char_literal108=null;
Token char_literal110=null;
ParserRuleReturnScope labelNameDeclaration107 =null;
ParserRuleReturnScope labelNameDeclaration109 =null;
Object LABEL106_tree=null;
Object char_literal108_tree=null;
Object char_literal110_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 33) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:466:30: ( LABEL ^ labelNameDeclaration ( ',' labelNameDeclaration )* ';' )
// au/com/integradev/delphi/antlr/Delphi.g:466:32: LABEL ^ labelNameDeclaration ( ',' labelNameDeclaration )* ';'
{
root_0 = (Object)adaptor.nil();
LABEL106=(Token)match(input,LABEL,FOLLOW_LABEL_in_labelDeclSection2819); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LABEL106_tree = new LabelDeclarationNodeImpl(LABEL106) ;
root_0 = (Object)adaptor.becomeRoot(LABEL106_tree, root_0);
}
pushFollow(FOLLOW_labelNameDeclaration_in_labelDeclSection2825);
labelNameDeclaration107=labelNameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, labelNameDeclaration107.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:466:86: ( ',' labelNameDeclaration )*
loop31:
while (true) {
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==COMMA) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:466:87: ',' labelNameDeclaration
{
char_literal108=(Token)match(input,COMMA,FOLLOW_COMMA_in_labelDeclSection2828); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal108_tree = (Object)adaptor.create(char_literal108);
adaptor.addChild(root_0, char_literal108_tree);
}
pushFollow(FOLLOW_labelNameDeclaration_in_labelDeclSection2830);
labelNameDeclaration109=labelNameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, labelNameDeclaration109.getTree());
}
break;
default :
break loop31;
}
}
char_literal110=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_labelDeclSection2834); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal110_tree = (Object)adaptor.create(char_literal110);
adaptor.addChild(root_0, char_literal110_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 33, labelDeclSection_StartIndex); }
}
return retval;
}
// $ANTLR end "labelDeclSection"
public static class constSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "constSection"
// au/com/integradev/delphi/antlr/Delphi.g:468:1: constSection : ( CONST ^| RESOURCESTRING ^) ( constDeclaration )* ;
public final DelphiParser.constSection_return constSection() throws RecognitionException {
DelphiParser.constSection_return retval = new DelphiParser.constSection_return();
retval.start = input.LT(1);
int constSection_StartIndex = input.index();
Object root_0 = null;
Token CONST111=null;
Token RESOURCESTRING112=null;
ParserRuleReturnScope constDeclaration113 =null;
Object CONST111_tree=null;
Object RESOURCESTRING112_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 34) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:468:30: ( ( CONST ^| RESOURCESTRING ^) ( constDeclaration )* )
// au/com/integradev/delphi/antlr/Delphi.g:468:32: ( CONST ^| RESOURCESTRING ^) ( constDeclaration )*
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:468:32: ( CONST ^| RESOURCESTRING ^)
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==CONST) ) {
alt32=1;
}
else if ( (LA32_0==RESOURCESTRING) ) {
alt32=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 32, 0, input);
throw nvae;
}
switch (alt32) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:468:33: CONST ^
{
CONST111=(Token)match(input,CONST,FOLLOW_CONST_in_constSection2888); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CONST111_tree = new ConstSectionNodeImpl(CONST111) ;
root_0 = (Object)adaptor.becomeRoot(CONST111_tree, root_0);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:468:64: RESOURCESTRING ^
{
RESOURCESTRING112=(Token)match(input,RESOURCESTRING,FOLLOW_RESOURCESTRING_in_constSection2896); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RESOURCESTRING112_tree = new ConstSectionNodeImpl(RESOURCESTRING112) ;
root_0 = (Object)adaptor.becomeRoot(RESOURCESTRING112_tree, root_0);
}
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:468:103: ( constDeclaration )*
loop33:
while (true) {
int alt33=2;
switch ( input.LA(1) ) {
case LABEL:
{
int LA33_4 = input.LA(2);
if ( (synpred46_Delphi()) ) {
alt33=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA33_10 = input.LA(2);
if ( (synpred46_Delphi()) ) {
alt33=1;
}
}
break;
case OPERATOR:
{
int LA33_12 = input.LA(2);
if ( (synpred46_Delphi()) ) {
alt33=1;
}
}
break;
case STRICT:
{
int LA33_17 = input.LA(2);
if ( (synpred46_Delphi()) ) {
alt33=1;
}
}
break;
case PROTECTED:
{
int LA33_18 = input.LA(2);
if ( (synpred46_Delphi()) ) {
alt33=1;
}
}
break;
case PRIVATE:
{
int LA33_19 = input.LA(2);
if ( (synpred46_Delphi()) ) {
alt33=1;
}
}
break;
case PUBLIC:
{
int LA33_20 = input.LA(2);
if ( (synpred46_Delphi()) ) {
alt33=1;
}
}
break;
case PUBLISHED:
{
int LA33_21 = input.LA(2);
if ( (synpred46_Delphi()) ) {
alt33=1;
}
}
break;
case AUTOMATED:
{
int LA33_22 = input.LA(2);
if ( (synpred46_Delphi()) ) {
alt33=1;
}
}
break;
case TkIdentifier:
{
int LA33_23 = input.LA(2);
if ( (synpred46_Delphi()) ) {
alt33=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA33_25 = input.LA(2);
if ( (synpred46_Delphi()) ) {
alt33=1;
}
}
break;
}
switch (alt33) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:468:103: constDeclaration
{
pushFollow(FOLLOW_constDeclaration_in_constSection2903);
constDeclaration113=constDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, constDeclaration113.getTree());
}
break;
default :
break loop33;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 34, constSection_StartIndex); }
}
return retval;
}
// $ANTLR end "constSection"
public static class constDeclaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "constDeclaration"
// au/com/integradev/delphi/antlr/Delphi.g:473:1: constDeclaration : ( ( attributeList )? nameDeclaration ':' fixedArrayType '=' arrayExpression ( portabilityDirective )* ';' -> ^( TkConstDeclaration nameDeclaration arrayExpression fixedArrayType ( attributeList )? ( portabilityDirective )* ) | ( attributeList )? nameDeclaration ( ':' varType )? '=' constExpression ( portabilityDirective )* ';' -> ^( TkConstDeclaration nameDeclaration constExpression ( varType )? ( attributeList )? ( portabilityDirective )* ) );
public final DelphiParser.constDeclaration_return constDeclaration() throws RecognitionException {
DelphiParser.constDeclaration_return retval = new DelphiParser.constDeclaration_return();
retval.start = input.LT(1);
int constDeclaration_StartIndex = input.index();
Object root_0 = null;
Token char_literal116=null;
Token char_literal118=null;
Token char_literal121=null;
Token char_literal124=null;
Token char_literal126=null;
Token char_literal129=null;
ParserRuleReturnScope attributeList114 =null;
ParserRuleReturnScope nameDeclaration115 =null;
ParserRuleReturnScope fixedArrayType117 =null;
ParserRuleReturnScope arrayExpression119 =null;
ParserRuleReturnScope portabilityDirective120 =null;
ParserRuleReturnScope attributeList122 =null;
ParserRuleReturnScope nameDeclaration123 =null;
ParserRuleReturnScope varType125 =null;
ParserRuleReturnScope constExpression127 =null;
ParserRuleReturnScope portabilityDirective128 =null;
Object char_literal116_tree=null;
Object char_literal118_tree=null;
Object char_literal121_tree=null;
Object char_literal124_tree=null;
Object char_literal126_tree=null;
Object char_literal129_tree=null;
RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_fixedArrayType=new RewriteRuleSubtreeStream(adaptor,"rule fixedArrayType");
RewriteRuleSubtreeStream stream_portabilityDirective=new RewriteRuleSubtreeStream(adaptor,"rule portabilityDirective");
RewriteRuleSubtreeStream stream_varType=new RewriteRuleSubtreeStream(adaptor,"rule varType");
RewriteRuleSubtreeStream stream_arrayExpression=new RewriteRuleSubtreeStream(adaptor,"rule arrayExpression");
RewriteRuleSubtreeStream stream_constExpression=new RewriteRuleSubtreeStream(adaptor,"rule constExpression");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
RewriteRuleSubtreeStream stream_nameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclaration");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 35) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:473:30: ( ( attributeList )? nameDeclaration ':' fixedArrayType '=' arrayExpression ( portabilityDirective )* ';' -> ^( TkConstDeclaration nameDeclaration arrayExpression fixedArrayType ( attributeList )? ( portabilityDirective )* ) | ( attributeList )? nameDeclaration ( ':' varType )? '=' constExpression ( portabilityDirective )* ';' -> ^( TkConstDeclaration nameDeclaration constExpression ( varType )? ( attributeList )? ( portabilityDirective )* ) )
int alt39=2;
switch ( input.LA(1) ) {
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA39_1 = input.LA(2);
if ( (synpred49_Delphi()) ) {
alt39=1;
}
else if ( (true) ) {
alt39=2;
}
}
break;
case TkIdentifier:
{
int LA39_2 = input.LA(2);
if ( (synpred49_Delphi()) ) {
alt39=1;
}
else if ( (true) ) {
alt39=2;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA39_3 = input.LA(2);
if ( (synpred49_Delphi()) ) {
alt39=1;
}
else if ( (true) ) {
alt39=2;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 39, 0, input);
throw nvae;
}
switch (alt39) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:473:32: ( attributeList )? nameDeclaration ':' fixedArrayType '=' arrayExpression ( portabilityDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:473:32: ( attributeList )?
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==PAREN_BRACKET_LEFT||LA34_0==SQUARE_BRACKET_LEFT) ) {
alt34=1;
}
switch (alt34) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:473:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_constDeclaration3043);
attributeList114=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList114.getTree());
}
break;
}
pushFollow(FOLLOW_nameDeclaration_in_constDeclaration3046);
nameDeclaration115=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclaration.add(nameDeclaration115.getTree());
char_literal116=(Token)match(input,COLON,FOLLOW_COLON_in_constDeclaration3048); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal116);
pushFollow(FOLLOW_fixedArrayType_in_constDeclaration3050);
fixedArrayType117=fixedArrayType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_fixedArrayType.add(fixedArrayType117.getTree());
char_literal118=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_constDeclaration3052); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EQUAL.add(char_literal118);
pushFollow(FOLLOW_arrayExpression_in_constDeclaration3054);
arrayExpression119=arrayExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arrayExpression.add(arrayExpression119.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:473:102: ( portabilityDirective )*
loop35:
while (true) {
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==DEPRECATED||LA35_0==EXPERIMENTAL||LA35_0==LIBRARY||LA35_0==PLATFORM) ) {
alt35=1;
}
switch (alt35) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:473:102: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_constDeclaration3056);
portabilityDirective120=portabilityDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_portabilityDirective.add(portabilityDirective120.getTree());
}
break;
default :
break loop35;
}
}
char_literal121=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_constDeclaration3059); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal121);
// AST REWRITE
// elements: arrayExpression, attributeList, fixedArrayType, portabilityDirective, nameDeclaration
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 474:30: -> ^( TkConstDeclaration nameDeclaration arrayExpression fixedArrayType ( attributeList )? ( portabilityDirective )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:474:33: ^( TkConstDeclaration nameDeclaration arrayExpression fixedArrayType ( attributeList )? ( portabilityDirective )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ConstDeclarationNodeImpl(TkConstDeclaration), root_1);
adaptor.addChild(root_1, stream_nameDeclaration.nextTree());
adaptor.addChild(root_1, stream_arrayExpression.nextTree());
adaptor.addChild(root_1, stream_fixedArrayType.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:474:127: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
// au/com/integradev/delphi/antlr/Delphi.g:474:142: ( portabilityDirective )*
while ( stream_portabilityDirective.hasNext() ) {
adaptor.addChild(root_1, stream_portabilityDirective.nextTree());
}
stream_portabilityDirective.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:475:32: ( attributeList )? nameDeclaration ( ':' varType )? '=' constExpression ( portabilityDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:475:32: ( attributeList )?
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==PAREN_BRACKET_LEFT||LA36_0==SQUARE_BRACKET_LEFT) ) {
alt36=1;
}
switch (alt36) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:475:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_constDeclaration3142);
attributeList122=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList122.getTree());
}
break;
}
pushFollow(FOLLOW_nameDeclaration_in_constDeclaration3145);
nameDeclaration123=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclaration.add(nameDeclaration123.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:475:63: ( ':' varType )?
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==COLON) ) {
alt37=1;
}
switch (alt37) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:475:64: ':' varType
{
char_literal124=(Token)match(input,COLON,FOLLOW_COLON_in_constDeclaration3148); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal124);
pushFollow(FOLLOW_varType_in_constDeclaration3150);
varType125=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_varType.add(varType125.getTree());
}
break;
}
char_literal126=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_constDeclaration3154); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EQUAL.add(char_literal126);
pushFollow(FOLLOW_constExpression_in_constDeclaration3156);
constExpression127=constExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constExpression.add(constExpression127.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:475:98: ( portabilityDirective )*
loop38:
while (true) {
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==DEPRECATED||LA38_0==EXPERIMENTAL||LA38_0==LIBRARY||LA38_0==PLATFORM) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:475:98: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_constDeclaration3158);
portabilityDirective128=portabilityDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_portabilityDirective.add(portabilityDirective128.getTree());
}
break;
default :
break loop38;
}
}
char_literal129=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_constDeclaration3161); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal129);
// AST REWRITE
// elements: varType, nameDeclaration, constExpression, portabilityDirective, attributeList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 476:30: -> ^( TkConstDeclaration nameDeclaration constExpression ( varType )? ( attributeList )? ( portabilityDirective )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:476:33: ^( TkConstDeclaration nameDeclaration constExpression ( varType )? ( attributeList )? ( portabilityDirective )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ConstDeclarationNodeImpl(TkConstDeclaration), root_1);
adaptor.addChild(root_1, stream_nameDeclaration.nextTree());
adaptor.addChild(root_1, stream_constExpression.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:476:112: ( varType )?
if ( stream_varType.hasNext() ) {
adaptor.addChild(root_1, stream_varType.nextTree());
}
stream_varType.reset();
// au/com/integradev/delphi/antlr/Delphi.g:476:121: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
// au/com/integradev/delphi/antlr/Delphi.g:476:136: ( portabilityDirective )*
while ( stream_portabilityDirective.hasNext() ) {
adaptor.addChild(root_1, stream_portabilityDirective.nextTree());
}
stream_portabilityDirective.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 35, constDeclaration_StartIndex); }
}
return retval;
}
// $ANTLR end "constDeclaration"
public static class typeSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeSection"
// au/com/integradev/delphi/antlr/Delphi.g:478:1: typeSection : TYPE ^ ( typeDeclaration )+ ;
public final DelphiParser.typeSection_return typeSection() throws RecognitionException {
DelphiParser.typeSection_return retval = new DelphiParser.typeSection_return();
retval.start = input.LT(1);
int typeSection_StartIndex = input.index();
Object root_0 = null;
Token TYPE130=null;
ParserRuleReturnScope typeDeclaration131 =null;
Object TYPE130_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:478:30: ( TYPE ^ ( typeDeclaration )+ )
// au/com/integradev/delphi/antlr/Delphi.g:478:32: TYPE ^ ( typeDeclaration )+
{
root_0 = (Object)adaptor.nil();
TYPE130=(Token)match(input,TYPE,FOLLOW_TYPE_in_typeSection3266); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TYPE130_tree = new TypeSectionNodeImpl(TYPE130) ;
root_0 = (Object)adaptor.becomeRoot(TYPE130_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:478:59: ( typeDeclaration )+
int cnt40=0;
loop40:
while (true) {
int alt40=2;
switch ( input.LA(1) ) {
case LABEL:
{
int LA40_4 = input.LA(2);
if ( (synpred53_Delphi()) ) {
alt40=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA40_10 = input.LA(2);
if ( (synpred53_Delphi()) ) {
alt40=1;
}
}
break;
case OPERATOR:
{
int LA40_12 = input.LA(2);
if ( (synpred53_Delphi()) ) {
alt40=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case TkIdentifier:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
alt40=1;
}
break;
}
switch (alt40) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:478:59: typeDeclaration
{
pushFollow(FOLLOW_typeDeclaration_in_typeSection3272);
typeDeclaration131=typeDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeDeclaration131.getTree());
}
break;
default :
if ( cnt40 >= 1 ) break loop40;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(40, input);
throw eee;
}
cnt40++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 36, typeSection_StartIndex); }
}
return retval;
}
// $ANTLR end "typeSection"
public static class innerTypeSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "innerTypeSection"
// au/com/integradev/delphi/antlr/Delphi.g:480:1: innerTypeSection : TYPE ^ ( typeDeclaration )* ;
public final DelphiParser.innerTypeSection_return innerTypeSection() throws RecognitionException {
DelphiParser.innerTypeSection_return retval = new DelphiParser.innerTypeSection_return();
retval.start = input.LT(1);
int innerTypeSection_StartIndex = input.index();
Object root_0 = null;
Token TYPE132=null;
ParserRuleReturnScope typeDeclaration133 =null;
Object TYPE132_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 37) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:480:30: ( TYPE ^ ( typeDeclaration )* )
// au/com/integradev/delphi/antlr/Delphi.g:480:32: TYPE ^ ( typeDeclaration )*
{
root_0 = (Object)adaptor.nil();
TYPE132=(Token)match(input,TYPE,FOLLOW_TYPE_in_innerTypeSection3322); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TYPE132_tree = new TypeSectionNodeImpl(TYPE132) ;
root_0 = (Object)adaptor.becomeRoot(TYPE132_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:480:59: ( typeDeclaration )*
loop41:
while (true) {
int alt41=2;
switch ( input.LA(1) ) {
case STRICT:
{
int LA41_2 = input.LA(2);
if ( (synpred54_Delphi()) ) {
alt41=1;
}
}
break;
case PROTECTED:
{
int LA41_3 = input.LA(2);
if ( (synpred54_Delphi()) ) {
alt41=1;
}
}
break;
case PRIVATE:
{
int LA41_4 = input.LA(2);
if ( (synpred54_Delphi()) ) {
alt41=1;
}
}
break;
case PUBLIC:
{
int LA41_5 = input.LA(2);
if ( (synpred54_Delphi()) ) {
alt41=1;
}
}
break;
case PUBLISHED:
{
int LA41_6 = input.LA(2);
if ( (synpred54_Delphi()) ) {
alt41=1;
}
}
break;
case AUTOMATED:
{
int LA41_7 = input.LA(2);
if ( (synpred54_Delphi()) ) {
alt41=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA41_10 = input.LA(2);
if ( (synpred54_Delphi()) ) {
alt41=1;
}
}
break;
case TkIdentifier:
{
int LA41_11 = input.LA(2);
if ( (synpred54_Delphi()) ) {
alt41=1;
}
}
break;
case OPERATOR:
{
int LA41_12 = input.LA(2);
if ( (synpred54_Delphi()) ) {
alt41=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA41_13 = input.LA(2);
if ( (synpred54_Delphi()) ) {
alt41=1;
}
}
break;
}
switch (alt41) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:480:59: typeDeclaration
{
pushFollow(FOLLOW_typeDeclaration_in_innerTypeSection3328);
typeDeclaration133=typeDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeDeclaration133.getTree());
}
break;
default :
break loop41;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 37, innerTypeSection_StartIndex); }
}
return retval;
}
// $ANTLR end "innerTypeSection"
public static class typeDeclaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeDeclaration"
// au/com/integradev/delphi/antlr/Delphi.g:482:1: typeDeclaration : ( attributeList )? genericNameDeclaration '=' typeDecl ( portabilityDirective )* ';' -> ^( TkTypeDeclaration genericNameDeclaration typeDecl ( attributeList )? ( portabilityDirective )* ) ;
public final DelphiParser.typeDeclaration_return typeDeclaration() throws RecognitionException {
DelphiParser.typeDeclaration_return retval = new DelphiParser.typeDeclaration_return();
retval.start = input.LT(1);
int typeDeclaration_StartIndex = input.index();
Object root_0 = null;
Token char_literal136=null;
Token char_literal139=null;
ParserRuleReturnScope attributeList134 =null;
ParserRuleReturnScope genericNameDeclaration135 =null;
ParserRuleReturnScope typeDecl137 =null;
ParserRuleReturnScope portabilityDirective138 =null;
Object char_literal136_tree=null;
Object char_literal139_tree=null;
RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleSubtreeStream stream_portabilityDirective=new RewriteRuleSubtreeStream(adaptor,"rule portabilityDirective");
RewriteRuleSubtreeStream stream_genericNameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule genericNameDeclaration");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
RewriteRuleSubtreeStream stream_typeDecl=new RewriteRuleSubtreeStream(adaptor,"rule typeDecl");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:482:30: ( ( attributeList )? genericNameDeclaration '=' typeDecl ( portabilityDirective )* ';' -> ^( TkTypeDeclaration genericNameDeclaration typeDecl ( attributeList )? ( portabilityDirective )* ) )
// au/com/integradev/delphi/antlr/Delphi.g:482:32: ( attributeList )? genericNameDeclaration '=' typeDecl ( portabilityDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:482:32: ( attributeList )?
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==PAREN_BRACKET_LEFT||LA42_0==SQUARE_BRACKET_LEFT) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:482:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_typeDeclaration3379);
attributeList134=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList134.getTree());
}
break;
}
pushFollow(FOLLOW_genericNameDeclaration_in_typeDeclaration3382);
genericNameDeclaration135=genericNameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_genericNameDeclaration.add(genericNameDeclaration135.getTree());
char_literal136=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_typeDeclaration3384); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EQUAL.add(char_literal136);
pushFollow(FOLLOW_typeDecl_in_typeDeclaration3386);
typeDecl137=typeDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeDecl.add(typeDecl137.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:482:83: ( portabilityDirective )*
loop43:
while (true) {
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==DEPRECATED||LA43_0==EXPERIMENTAL||LA43_0==LIBRARY||LA43_0==PLATFORM) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:482:83: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_typeDeclaration3388);
portabilityDirective138=portabilityDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_portabilityDirective.add(portabilityDirective138.getTree());
}
break;
default :
break loop43;
}
}
char_literal139=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_typeDeclaration3391); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal139);
// AST REWRITE
// elements: typeDecl, attributeList, genericNameDeclaration, portabilityDirective
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 483:30: -> ^( TkTypeDeclaration genericNameDeclaration typeDecl ( attributeList )? ( portabilityDirective )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:483:33: ^( TkTypeDeclaration genericNameDeclaration typeDecl ( attributeList )? ( portabilityDirective )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new TypeDeclarationNodeImpl(TkTypeDeclaration), root_1);
adaptor.addChild(root_1, stream_genericNameDeclaration.nextTree());
adaptor.addChild(root_1, stream_typeDecl.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:483:110: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
// au/com/integradev/delphi/antlr/Delphi.g:483:125: ( portabilityDirective )*
while ( stream_portabilityDirective.hasNext() ) {
adaptor.addChild(root_1, stream_portabilityDirective.nextTree());
}
stream_portabilityDirective.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 38, typeDeclaration_StartIndex); }
}
return retval;
}
// $ANTLR end "typeDeclaration"
public static class varSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "varSection"
// au/com/integradev/delphi/antlr/Delphi.g:485:1: varSection : ( VAR ^| THREADVAR ^) varDeclaration ( varDeclaration )* ;
public final DelphiParser.varSection_return varSection() throws RecognitionException {
DelphiParser.varSection_return retval = new DelphiParser.varSection_return();
retval.start = input.LT(1);
int varSection_StartIndex = input.index();
Object root_0 = null;
Token VAR140=null;
Token THREADVAR141=null;
ParserRuleReturnScope varDeclaration142 =null;
ParserRuleReturnScope varDeclaration143 =null;
Object VAR140_tree=null;
Object THREADVAR141_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 39) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:485:30: ( ( VAR ^| THREADVAR ^) varDeclaration ( varDeclaration )* )
// au/com/integradev/delphi/antlr/Delphi.g:485:32: ( VAR ^| THREADVAR ^) varDeclaration ( varDeclaration )*
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:485:32: ( VAR ^| THREADVAR ^)
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==VAR) ) {
alt44=1;
}
else if ( (LA44_0==THREADVAR) ) {
alt44=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 44, 0, input);
throw nvae;
}
switch (alt44) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:485:33: VAR ^
{
VAR140=(Token)match(input,VAR,FOLLOW_VAR_in_varSection3495); if (state.failed) return retval;
if ( state.backtracking==0 ) {
VAR140_tree = new VarSectionNodeImpl(VAR140) ;
root_0 = (Object)adaptor.becomeRoot(VAR140_tree, root_0);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:485:60: THREADVAR ^
{
THREADVAR141=(Token)match(input,THREADVAR,FOLLOW_THREADVAR_in_varSection3503); if (state.failed) return retval;
if ( state.backtracking==0 ) {
THREADVAR141_tree = new VarSectionNodeImpl(THREADVAR141) ;
root_0 = (Object)adaptor.becomeRoot(THREADVAR141_tree, root_0);
}
}
break;
}
pushFollow(FOLLOW_varDeclaration_in_varSection3510);
varDeclaration142=varDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varDeclaration142.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:485:107: ( varDeclaration )*
loop45:
while (true) {
int alt45=2;
switch ( input.LA(1) ) {
case LABEL:
{
int LA45_4 = input.LA(2);
if ( (synpred58_Delphi()) ) {
alt45=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA45_10 = input.LA(2);
if ( (synpred58_Delphi()) ) {
alt45=1;
}
}
break;
case OPERATOR:
{
int LA45_12 = input.LA(2);
if ( (synpred58_Delphi()) ) {
alt45=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case TkIdentifier:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
alt45=1;
}
break;
}
switch (alt45) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:485:107: varDeclaration
{
pushFollow(FOLLOW_varDeclaration_in_varSection3512);
varDeclaration143=varDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varDeclaration143.getTree());
}
break;
default :
break loop45;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 39, varSection_StartIndex); }
}
return retval;
}
// $ANTLR end "varSection"
public static class varDeclaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "varDeclaration"
// au/com/integradev/delphi/antlr/Delphi.g:487:1: varDeclaration : ( ( attributeList )? nameDeclarationList ':' fixedArrayType ( portabilityDirective )* ( arrayVarValueSpec )? ( portabilityDirective )* ';' -> ^( TkVarDeclaration nameDeclarationList fixedArrayType ( arrayVarValueSpec )? ( attributeList )? ) | ( attributeList )? nameDeclarationList ':' varType ( portabilityDirective )* ( varValueSpec )? ( portabilityDirective )* ';' -> ^( TkVarDeclaration nameDeclarationList varType ( varValueSpec )? ( attributeList )? ) );
public final DelphiParser.varDeclaration_return varDeclaration() throws RecognitionException {
DelphiParser.varDeclaration_return retval = new DelphiParser.varDeclaration_return();
retval.start = input.LT(1);
int varDeclaration_StartIndex = input.index();
Object root_0 = null;
Token char_literal146=null;
Token char_literal151=null;
Token char_literal154=null;
Token char_literal159=null;
ParserRuleReturnScope attributeList144 =null;
ParserRuleReturnScope nameDeclarationList145 =null;
ParserRuleReturnScope fixedArrayType147 =null;
ParserRuleReturnScope portabilityDirective148 =null;
ParserRuleReturnScope arrayVarValueSpec149 =null;
ParserRuleReturnScope portabilityDirective150 =null;
ParserRuleReturnScope attributeList152 =null;
ParserRuleReturnScope nameDeclarationList153 =null;
ParserRuleReturnScope varType155 =null;
ParserRuleReturnScope portabilityDirective156 =null;
ParserRuleReturnScope varValueSpec157 =null;
ParserRuleReturnScope portabilityDirective158 =null;
Object char_literal146_tree=null;
Object char_literal151_tree=null;
Object char_literal154_tree=null;
Object char_literal159_tree=null;
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_fixedArrayType=new RewriteRuleSubtreeStream(adaptor,"rule fixedArrayType");
RewriteRuleSubtreeStream stream_portabilityDirective=new RewriteRuleSubtreeStream(adaptor,"rule portabilityDirective");
RewriteRuleSubtreeStream stream_nameDeclarationList=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclarationList");
RewriteRuleSubtreeStream stream_varType=new RewriteRuleSubtreeStream(adaptor,"rule varType");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
RewriteRuleSubtreeStream stream_arrayVarValueSpec=new RewriteRuleSubtreeStream(adaptor,"rule arrayVarValueSpec");
RewriteRuleSubtreeStream stream_varValueSpec=new RewriteRuleSubtreeStream(adaptor,"rule varValueSpec");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:487:30: ( ( attributeList )? nameDeclarationList ':' fixedArrayType ( portabilityDirective )* ( arrayVarValueSpec )? ( portabilityDirective )* ';' -> ^( TkVarDeclaration nameDeclarationList fixedArrayType ( arrayVarValueSpec )? ( attributeList )? ) | ( attributeList )? nameDeclarationList ':' varType ( portabilityDirective )* ( varValueSpec )? ( portabilityDirective )* ';' -> ^( TkVarDeclaration nameDeclarationList varType ( varValueSpec )? ( attributeList )? ) )
int alt54=2;
switch ( input.LA(1) ) {
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA54_1 = input.LA(2);
if ( (synpred63_Delphi()) ) {
alt54=1;
}
else if ( (true) ) {
alt54=2;
}
}
break;
case TkIdentifier:
{
int LA54_2 = input.LA(2);
if ( (synpred63_Delphi()) ) {
alt54=1;
}
else if ( (true) ) {
alt54=2;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA54_3 = input.LA(2);
if ( (synpred63_Delphi()) ) {
alt54=1;
}
else if ( (true) ) {
alt54=2;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 54, 0, input);
throw nvae;
}
switch (alt54) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:487:32: ( attributeList )? nameDeclarationList ':' fixedArrayType ( portabilityDirective )* ( arrayVarValueSpec )? ( portabilityDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:487:32: ( attributeList )?
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==PAREN_BRACKET_LEFT||LA46_0==SQUARE_BRACKET_LEFT) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:487:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_varDeclaration3564);
attributeList144=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList144.getTree());
}
break;
}
pushFollow(FOLLOW_nameDeclarationList_in_varDeclaration3567);
nameDeclarationList145=nameDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclarationList.add(nameDeclarationList145.getTree());
char_literal146=(Token)match(input,COLON,FOLLOW_COLON_in_varDeclaration3569); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal146);
pushFollow(FOLLOW_fixedArrayType_in_varDeclaration3571);
fixedArrayType147=fixedArrayType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_fixedArrayType.add(fixedArrayType147.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:487:86: ( portabilityDirective )*
loop47:
while (true) {
int alt47=2;
switch ( input.LA(1) ) {
case DEPRECATED:
{
int LA47_2 = input.LA(2);
if ( (synpred60_Delphi()) ) {
alt47=1;
}
}
break;
case EXPERIMENTAL:
{
int LA47_3 = input.LA(2);
if ( (synpred60_Delphi()) ) {
alt47=1;
}
}
break;
case PLATFORM:
{
int LA47_4 = input.LA(2);
if ( (synpred60_Delphi()) ) {
alt47=1;
}
}
break;
case LIBRARY:
{
int LA47_5 = input.LA(2);
if ( (synpred60_Delphi()) ) {
alt47=1;
}
}
break;
}
switch (alt47) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:487:86: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_varDeclaration3573);
portabilityDirective148=portabilityDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_portabilityDirective.add(portabilityDirective148.getTree());
}
break;
default :
break loop47;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:487:108: ( arrayVarValueSpec )?
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==ABSOLUTE||LA48_0==EQUAL) ) {
alt48=1;
}
switch (alt48) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:487:108: arrayVarValueSpec
{
pushFollow(FOLLOW_arrayVarValueSpec_in_varDeclaration3576);
arrayVarValueSpec149=arrayVarValueSpec();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arrayVarValueSpec.add(arrayVarValueSpec149.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:487:127: ( portabilityDirective )*
loop49:
while (true) {
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==DEPRECATED||LA49_0==EXPERIMENTAL||LA49_0==LIBRARY||LA49_0==PLATFORM) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:487:127: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_varDeclaration3579);
portabilityDirective150=portabilityDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_portabilityDirective.add(portabilityDirective150.getTree());
}
break;
default :
break loop49;
}
}
char_literal151=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_varDeclaration3582); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal151);
// AST REWRITE
// elements: attributeList, nameDeclarationList, fixedArrayType, arrayVarValueSpec
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 488:30: -> ^( TkVarDeclaration nameDeclarationList fixedArrayType ( arrayVarValueSpec )? ( attributeList )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:488:33: ^( TkVarDeclaration nameDeclarationList fixedArrayType ( arrayVarValueSpec )? ( attributeList )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new VarDeclarationNodeImpl(TkVarDeclaration), root_1);
adaptor.addChild(root_1, stream_nameDeclarationList.nextTree());
adaptor.addChild(root_1, stream_fixedArrayType.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:488:111: ( arrayVarValueSpec )?
if ( stream_arrayVarValueSpec.hasNext() ) {
adaptor.addChild(root_1, stream_arrayVarValueSpec.nextTree());
}
stream_arrayVarValueSpec.reset();
// au/com/integradev/delphi/antlr/Delphi.g:488:130: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:489:32: ( attributeList )? nameDeclarationList ':' varType ( portabilityDirective )* ( varValueSpec )? ( portabilityDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:489:32: ( attributeList )?
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==PAREN_BRACKET_LEFT||LA50_0==SQUARE_BRACKET_LEFT) ) {
alt50=1;
}
switch (alt50) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:489:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_varDeclaration3663);
attributeList152=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList152.getTree());
}
break;
}
pushFollow(FOLLOW_nameDeclarationList_in_varDeclaration3666);
nameDeclarationList153=nameDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclarationList.add(nameDeclarationList153.getTree());
char_literal154=(Token)match(input,COLON,FOLLOW_COLON_in_varDeclaration3668); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal154);
pushFollow(FOLLOW_varType_in_varDeclaration3670);
varType155=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_varType.add(varType155.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:489:79: ( portabilityDirective )*
loop51:
while (true) {
int alt51=2;
switch ( input.LA(1) ) {
case DEPRECATED:
{
int LA51_2 = input.LA(2);
if ( (synpred65_Delphi()) ) {
alt51=1;
}
}
break;
case EXPERIMENTAL:
{
int LA51_3 = input.LA(2);
if ( (synpred65_Delphi()) ) {
alt51=1;
}
}
break;
case PLATFORM:
{
int LA51_4 = input.LA(2);
if ( (synpred65_Delphi()) ) {
alt51=1;
}
}
break;
case LIBRARY:
{
int LA51_5 = input.LA(2);
if ( (synpred65_Delphi()) ) {
alt51=1;
}
}
break;
}
switch (alt51) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:489:79: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_varDeclaration3672);
portabilityDirective156=portabilityDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_portabilityDirective.add(portabilityDirective156.getTree());
}
break;
default :
break loop51;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:489:101: ( varValueSpec )?
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==ABSOLUTE||LA52_0==EQUAL) ) {
alt52=1;
}
switch (alt52) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:489:101: varValueSpec
{
pushFollow(FOLLOW_varValueSpec_in_varDeclaration3675);
varValueSpec157=varValueSpec();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_varValueSpec.add(varValueSpec157.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:489:115: ( portabilityDirective )*
loop53:
while (true) {
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==DEPRECATED||LA53_0==EXPERIMENTAL||LA53_0==LIBRARY||LA53_0==PLATFORM) ) {
alt53=1;
}
switch (alt53) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:489:115: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_varDeclaration3678);
portabilityDirective158=portabilityDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_portabilityDirective.add(portabilityDirective158.getTree());
}
break;
default :
break loop53;
}
}
char_literal159=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_varDeclaration3681); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal159);
// AST REWRITE
// elements: varType, nameDeclarationList, attributeList, varValueSpec
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 490:30: -> ^( TkVarDeclaration nameDeclarationList varType ( varValueSpec )? ( attributeList )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:490:33: ^( TkVarDeclaration nameDeclarationList varType ( varValueSpec )? ( attributeList )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new VarDeclarationNodeImpl(TkVarDeclaration), root_1);
adaptor.addChild(root_1, stream_nameDeclarationList.nextTree());
adaptor.addChild(root_1, stream_varType.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:490:104: ( varValueSpec )?
if ( stream_varValueSpec.hasNext() ) {
adaptor.addChild(root_1, stream_varValueSpec.nextTree());
}
stream_varValueSpec.reset();
// au/com/integradev/delphi/antlr/Delphi.g:490:118: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 40, varDeclaration_StartIndex); }
}
return retval;
}
// $ANTLR end "varDeclaration"
public static class arrayVarValueSpec_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arrayVarValueSpec"
// au/com/integradev/delphi/antlr/Delphi.g:492:1: arrayVarValueSpec : ( ABSOLUTE expression | '=' arrayExpression );
public final DelphiParser.arrayVarValueSpec_return arrayVarValueSpec() throws RecognitionException {
DelphiParser.arrayVarValueSpec_return retval = new DelphiParser.arrayVarValueSpec_return();
retval.start = input.LT(1);
int arrayVarValueSpec_StartIndex = input.index();
Object root_0 = null;
Token ABSOLUTE160=null;
Token char_literal162=null;
ParserRuleReturnScope expression161 =null;
ParserRuleReturnScope arrayExpression163 =null;
Object ABSOLUTE160_tree=null;
Object char_literal162_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:492:30: ( ABSOLUTE expression | '=' arrayExpression )
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==ABSOLUTE) ) {
alt55=1;
}
else if ( (LA55_0==EQUAL) ) {
alt55=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 55, 0, input);
throw nvae;
}
switch (alt55) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:492:32: ABSOLUTE expression
{
root_0 = (Object)adaptor.nil();
ABSOLUTE160=(Token)match(input,ABSOLUTE,FOLLOW_ABSOLUTE_in_arrayVarValueSpec3777); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ABSOLUTE160_tree = (Object)adaptor.create(ABSOLUTE160);
adaptor.addChild(root_0, ABSOLUTE160_tree);
}
pushFollow(FOLLOW_expression_in_arrayVarValueSpec3779);
expression161=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression161.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:493:32: '=' arrayExpression
{
root_0 = (Object)adaptor.nil();
char_literal162=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_arrayVarValueSpec3812); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal162_tree = (Object)adaptor.create(char_literal162);
adaptor.addChild(root_0, char_literal162_tree);
}
pushFollow(FOLLOW_arrayExpression_in_arrayVarValueSpec3814);
arrayExpression163=arrayExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arrayExpression163.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 41, arrayVarValueSpec_StartIndex); }
}
return retval;
}
// $ANTLR end "arrayVarValueSpec"
public static class varValueSpec_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "varValueSpec"
// au/com/integradev/delphi/antlr/Delphi.g:495:1: varValueSpec : ( ABSOLUTE expression | '=' constExpression );
public final DelphiParser.varValueSpec_return varValueSpec() throws RecognitionException {
DelphiParser.varValueSpec_return retval = new DelphiParser.varValueSpec_return();
retval.start = input.LT(1);
int varValueSpec_StartIndex = input.index();
Object root_0 = null;
Token ABSOLUTE164=null;
Token char_literal166=null;
ParserRuleReturnScope expression165 =null;
ParserRuleReturnScope constExpression167 =null;
Object ABSOLUTE164_tree=null;
Object char_literal166_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 42) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:495:30: ( ABSOLUTE expression | '=' constExpression )
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==ABSOLUTE) ) {
alt56=1;
}
else if ( (LA56_0==EQUAL) ) {
alt56=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 56, 0, input);
throw nvae;
}
switch (alt56) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:495:32: ABSOLUTE expression
{
root_0 = (Object)adaptor.nil();
ABSOLUTE164=(Token)match(input,ABSOLUTE,FOLLOW_ABSOLUTE_in_varValueSpec3867); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ABSOLUTE164_tree = (Object)adaptor.create(ABSOLUTE164);
adaptor.addChild(root_0, ABSOLUTE164_tree);
}
pushFollow(FOLLOW_expression_in_varValueSpec3869);
expression165=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression165.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:496:32: '=' constExpression
{
root_0 = (Object)adaptor.nil();
char_literal166=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_varValueSpec3902); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal166_tree = (Object)adaptor.create(char_literal166);
adaptor.addChild(root_0, char_literal166_tree);
}
pushFollow(FOLLOW_constExpression_in_varValueSpec3904);
constExpression167=constExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, constExpression167.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 42, varValueSpec_StartIndex); }
}
return retval;
}
// $ANTLR end "varValueSpec"
public static class exportsSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "exportsSection"
// au/com/integradev/delphi/antlr/Delphi.g:498:1: exportsSection : EXPORTS ident exportItem ( ',' ident exportItem )* ';' ;
public final DelphiParser.exportsSection_return exportsSection() throws RecognitionException {
DelphiParser.exportsSection_return retval = new DelphiParser.exportsSection_return();
retval.start = input.LT(1);
int exportsSection_StartIndex = input.index();
Object root_0 = null;
Token EXPORTS168=null;
Token char_literal171=null;
Token char_literal174=null;
ParserRuleReturnScope ident169 =null;
ParserRuleReturnScope exportItem170 =null;
ParserRuleReturnScope ident172 =null;
ParserRuleReturnScope exportItem173 =null;
Object EXPORTS168_tree=null;
Object char_literal171_tree=null;
Object char_literal174_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 43) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:498:30: ( EXPORTS ident exportItem ( ',' ident exportItem )* ';' )
// au/com/integradev/delphi/antlr/Delphi.g:498:32: EXPORTS ident exportItem ( ',' ident exportItem )* ';'
{
root_0 = (Object)adaptor.nil();
EXPORTS168=(Token)match(input,EXPORTS,FOLLOW_EXPORTS_in_exportsSection3955); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXPORTS168_tree = (Object)adaptor.create(EXPORTS168);
adaptor.addChild(root_0, EXPORTS168_tree);
}
pushFollow(FOLLOW_ident_in_exportsSection3957);
ident169=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ident169.getTree());
pushFollow(FOLLOW_exportItem_in_exportsSection3959);
exportItem170=exportItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, exportItem170.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:498:57: ( ',' ident exportItem )*
loop57:
while (true) {
int alt57=2;
int LA57_0 = input.LA(1);
if ( (LA57_0==COMMA) ) {
alt57=1;
}
switch (alt57) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:498:58: ',' ident exportItem
{
char_literal171=(Token)match(input,COMMA,FOLLOW_COMMA_in_exportsSection3962); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal171_tree = (Object)adaptor.create(char_literal171);
adaptor.addChild(root_0, char_literal171_tree);
}
pushFollow(FOLLOW_ident_in_exportsSection3964);
ident172=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ident172.getTree());
pushFollow(FOLLOW_exportItem_in_exportsSection3966);
exportItem173=exportItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, exportItem173.getTree());
}
break;
default :
break loop57;
}
}
char_literal174=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_exportsSection3970); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal174_tree = (Object)adaptor.create(char_literal174);
adaptor.addChild(root_0, char_literal174_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 43, exportsSection_StartIndex); }
}
return retval;
}
// $ANTLR end "exportsSection"
public static class exportItem_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "exportItem"
// au/com/integradev/delphi/antlr/Delphi.g:500:1: exportItem : ( '(' formalParameterList ')' )? ( INDEX expression )? ( NAME expression )? ( RESIDENT )? ;
public final DelphiParser.exportItem_return exportItem() throws RecognitionException {
DelphiParser.exportItem_return retval = new DelphiParser.exportItem_return();
retval.start = input.LT(1);
int exportItem_StartIndex = input.index();
Object root_0 = null;
Token char_literal175=null;
Token char_literal177=null;
Token INDEX178=null;
Token NAME180=null;
Token RESIDENT182=null;
ParserRuleReturnScope formalParameterList176 =null;
ParserRuleReturnScope expression179 =null;
ParserRuleReturnScope expression181 =null;
Object char_literal175_tree=null;
Object char_literal177_tree=null;
Object INDEX178_tree=null;
Object NAME180_tree=null;
Object RESIDENT182_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 44) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:500:30: ( ( '(' formalParameterList ')' )? ( INDEX expression )? ( NAME expression )? ( RESIDENT )? )
// au/com/integradev/delphi/antlr/Delphi.g:500:32: ( '(' formalParameterList ')' )? ( INDEX expression )? ( NAME expression )? ( RESIDENT )?
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:500:32: ( '(' formalParameterList ')' )?
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==PAREN_LEFT) ) {
alt58=1;
}
switch (alt58) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:500:33: '(' formalParameterList ')'
{
char_literal175=(Token)match(input,PAREN_LEFT,FOLLOW_PAREN_LEFT_in_exportItem4026); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal175_tree = (Object)adaptor.create(char_literal175);
adaptor.addChild(root_0, char_literal175_tree);
}
pushFollow(FOLLOW_formalParameterList_in_exportItem4028);
formalParameterList176=formalParameterList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, formalParameterList176.getTree());
char_literal177=(Token)match(input,PAREN_RIGHT,FOLLOW_PAREN_RIGHT_in_exportItem4030); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal177_tree = (Object)adaptor.create(char_literal177);
adaptor.addChild(root_0, char_literal177_tree);
}
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:500:63: ( INDEX expression )?
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==INDEX) ) {
alt59=1;
}
switch (alt59) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:500:64: INDEX expression
{
INDEX178=(Token)match(input,INDEX,FOLLOW_INDEX_in_exportItem4035); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INDEX178_tree = (Object)adaptor.create(INDEX178);
adaptor.addChild(root_0, INDEX178_tree);
}
pushFollow(FOLLOW_expression_in_exportItem4037);
expression179=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression179.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:500:83: ( NAME expression )?
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==NAME) ) {
alt60=1;
}
switch (alt60) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:500:84: NAME expression
{
NAME180=(Token)match(input,NAME,FOLLOW_NAME_in_exportItem4042); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NAME180_tree = (Object)adaptor.create(NAME180);
adaptor.addChild(root_0, NAME180_tree);
}
pushFollow(FOLLOW_expression_in_exportItem4044);
expression181=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression181.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:500:102: ( RESIDENT )?
int alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==RESIDENT) ) {
alt61=1;
}
switch (alt61) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:500:103: RESIDENT
{
RESIDENT182=(Token)match(input,RESIDENT,FOLLOW_RESIDENT_in_exportItem4049); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RESIDENT182_tree = (Object)adaptor.create(RESIDENT182);
adaptor.addChild(root_0, RESIDENT182_tree);
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 44, exportItem_StartIndex); }
}
return retval;
}
// $ANTLR end "exportItem"
public static class typeDecl_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeDecl"
// au/com/integradev/delphi/antlr/Delphi.g:506:1: typeDecl : ( arrayType | setType | fullFileType | classHelperType | classReferenceType | classType | interfaceType | objectType | recordType | recordHelperType | pointerType | fullStringType | procedureType | subRangeType | typeOfType | strongAliasType | weakAliasType | enumType | PACKED typeDecl ^);
public final DelphiParser.typeDecl_return typeDecl() throws RecognitionException {
DelphiParser.typeDecl_return retval = new DelphiParser.typeDecl_return();
retval.start = input.LT(1);
int typeDecl_StartIndex = input.index();
Object root_0 = null;
Token PACKED201=null;
ParserRuleReturnScope arrayType183 =null;
ParserRuleReturnScope setType184 =null;
ParserRuleReturnScope fullFileType185 =null;
ParserRuleReturnScope classHelperType186 =null;
ParserRuleReturnScope classReferenceType187 =null;
ParserRuleReturnScope classType188 =null;
ParserRuleReturnScope interfaceType189 =null;
ParserRuleReturnScope objectType190 =null;
ParserRuleReturnScope recordType191 =null;
ParserRuleReturnScope recordHelperType192 =null;
ParserRuleReturnScope pointerType193 =null;
ParserRuleReturnScope fullStringType194 =null;
ParserRuleReturnScope procedureType195 =null;
ParserRuleReturnScope subRangeType196 =null;
ParserRuleReturnScope typeOfType197 =null;
ParserRuleReturnScope strongAliasType198 =null;
ParserRuleReturnScope weakAliasType199 =null;
ParserRuleReturnScope enumType200 =null;
ParserRuleReturnScope typeDecl202 =null;
Object PACKED201_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 45) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:506:30: ( arrayType | setType | fullFileType | classHelperType | classReferenceType | classType | interfaceType | objectType | recordType | recordHelperType | pointerType | fullStringType | procedureType | subRangeType | typeOfType | strongAliasType | weakAliasType | enumType | PACKED typeDecl ^)
int alt62=19;
switch ( input.LA(1) ) {
case ARRAY:
{
alt62=1;
}
break;
case SET:
{
alt62=2;
}
break;
case FILE:
{
int LA62_3 = input.LA(2);
if ( (synpred77_Delphi()) ) {
alt62=3;
}
else if ( (synpred88_Delphi()) ) {
alt62=14;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CLASS:
{
int LA62_4 = input.LA(2);
if ( (synpred78_Delphi()) ) {
alt62=4;
}
else if ( (synpred79_Delphi()) ) {
alt62=5;
}
else if ( (synpred80_Delphi()) ) {
alt62=6;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DISPINTERFACE:
case INTERFACE:
{
alt62=7;
}
break;
case OBJECT:
{
alt62=8;
}
break;
case RECORD:
{
int LA62_8 = input.LA(2);
if ( (synpred83_Delphi()) ) {
alt62=9;
}
else if ( (synpred84_Delphi()) ) {
alt62=10;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DEREFERENCE:
{
int LA62_9 = input.LA(2);
if ( (synpred85_Delphi()) ) {
alt62=11;
}
else if ( (synpred88_Delphi()) ) {
alt62=14;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 9, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case STRING:
{
int LA62_10 = input.LA(2);
if ( (synpred86_Delphi()) ) {
alt62=12;
}
else if ( (synpred88_Delphi()) ) {
alt62=14;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FUNCTION:
{
int LA62_11 = input.LA(2);
if ( (synpred87_Delphi()) ) {
alt62=13;
}
else if ( (synpred88_Delphi()) ) {
alt62=14;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 11, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PROCEDURE:
{
int LA62_12 = input.LA(2);
if ( (synpred87_Delphi()) ) {
alt62=13;
}
else if ( (synpred88_Delphi()) ) {
alt62=14;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 12, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case REFERENCE:
{
int LA62_13 = input.LA(2);
if ( (synpred87_Delphi()) ) {
alt62=13;
}
else if ( (synpred88_Delphi()) ) {
alt62=14;
}
else if ( (synpred91_Delphi()) ) {
alt62=17;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 13, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ADDRESS:
case INHERITED:
case MINUS:
case NIL:
case NOT:
case PAREN_BRACKET_LEFT:
case PLUS:
case SQUARE_BRACKET_LEFT:
case TkBinaryNumber:
case TkCharacterEscapeCode:
case TkHexNumber:
case TkIntNumber:
case TkMultilineString:
case TkQuotedString:
case TkRealNumber:
{
alt62=14;
}
break;
case TkIdentifier:
{
int LA62_26 = input.LA(2);
if ( (synpred88_Delphi()) ) {
alt62=14;
}
else if ( (synpred91_Delphi()) ) {
alt62=17;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 26, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA62_27 = input.LA(2);
if ( (synpred88_Delphi()) ) {
alt62=14;
}
else if ( (synpred91_Delphi()) ) {
alt62=17;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 27, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PAREN_LEFT:
{
int LA62_29 = input.LA(2);
if ( (synpred88_Delphi()) ) {
alt62=14;
}
else if ( (synpred92_Delphi()) ) {
alt62=18;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 29, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TYPE:
{
int LA62_31 = input.LA(2);
if ( (synpred89_Delphi()) ) {
alt62=15;
}
else if ( (synpred90_Delphi()) ) {
alt62=16;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 31, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PACKED:
{
alt62=19;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 62, 0, input);
throw nvae;
}
switch (alt62) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:506:32: arrayType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_arrayType_in_typeDecl4112);
arrayType183=arrayType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arrayType183.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:507:32: setType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_setType_in_typeDecl4145);
setType184=setType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, setType184.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:508:32: fullFileType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fullFileType_in_typeDecl4178);
fullFileType185=fullFileType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, fullFileType185.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:509:32: classHelperType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_classHelperType_in_typeDecl4211);
classHelperType186=classHelperType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, classHelperType186.getTree());
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:510:32: classReferenceType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_classReferenceType_in_typeDecl4244);
classReferenceType187=classReferenceType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, classReferenceType187.getTree());
}
break;
case 6 :
// au/com/integradev/delphi/antlr/Delphi.g:511:32: classType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_classType_in_typeDecl4277);
classType188=classType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, classType188.getTree());
}
break;
case 7 :
// au/com/integradev/delphi/antlr/Delphi.g:512:32: interfaceType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_interfaceType_in_typeDecl4310);
interfaceType189=interfaceType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceType189.getTree());
}
break;
case 8 :
// au/com/integradev/delphi/antlr/Delphi.g:513:32: objectType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_objectType_in_typeDecl4343);
objectType190=objectType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, objectType190.getTree());
}
break;
case 9 :
// au/com/integradev/delphi/antlr/Delphi.g:514:32: recordType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_recordType_in_typeDecl4376);
recordType191=recordType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, recordType191.getTree());
}
break;
case 10 :
// au/com/integradev/delphi/antlr/Delphi.g:515:32: recordHelperType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_recordHelperType_in_typeDecl4409);
recordHelperType192=recordHelperType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, recordHelperType192.getTree());
}
break;
case 11 :
// au/com/integradev/delphi/antlr/Delphi.g:516:32: pointerType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_pointerType_in_typeDecl4442);
pointerType193=pointerType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, pointerType193.getTree());
}
break;
case 12 :
// au/com/integradev/delphi/antlr/Delphi.g:517:32: fullStringType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fullStringType_in_typeDecl4475);
fullStringType194=fullStringType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, fullStringType194.getTree());
}
break;
case 13 :
// au/com/integradev/delphi/antlr/Delphi.g:518:32: procedureType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_procedureType_in_typeDecl4508);
procedureType195=procedureType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, procedureType195.getTree());
}
break;
case 14 :
// au/com/integradev/delphi/antlr/Delphi.g:519:32: subRangeType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_subRangeType_in_typeDecl4541);
subRangeType196=subRangeType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, subRangeType196.getTree());
}
break;
case 15 :
// au/com/integradev/delphi/antlr/Delphi.g:520:32: typeOfType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeOfType_in_typeDecl4574);
typeOfType197=typeOfType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeOfType197.getTree());
}
break;
case 16 :
// au/com/integradev/delphi/antlr/Delphi.g:521:32: strongAliasType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_strongAliasType_in_typeDecl4607);
strongAliasType198=strongAliasType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, strongAliasType198.getTree());
}
break;
case 17 :
// au/com/integradev/delphi/antlr/Delphi.g:522:32: weakAliasType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_weakAliasType_in_typeDecl4640);
weakAliasType199=weakAliasType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, weakAliasType199.getTree());
}
break;
case 18 :
// au/com/integradev/delphi/antlr/Delphi.g:523:32: enumType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_enumType_in_typeDecl4673);
enumType200=enumType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, enumType200.getTree());
}
break;
case 19 :
// au/com/integradev/delphi/antlr/Delphi.g:524:32: PACKED typeDecl ^
{
root_0 = (Object)adaptor.nil();
PACKED201=(Token)match(input,PACKED,FOLLOW_PACKED_in_typeDecl4706); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PACKED201_tree = (Object)adaptor.create(PACKED201);
adaptor.addChild(root_0, PACKED201_tree);
}
pushFollow(FOLLOW_typeDecl_in_typeDecl4708);
typeDecl202=typeDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(typeDecl202.getTree(), root_0);
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 45, typeDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "typeDecl"
public static class varType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "varType"
// au/com/integradev/delphi/antlr/Delphi.g:526:1: varType : ( arrayType | setType | fullStringType | fullFileType | recordType | pointerType | procedureType | subRangeType | typeReference | enumType | PACKED varType ^);
public final DelphiParser.varType_return varType() throws RecognitionException {
DelphiParser.varType_return retval = new DelphiParser.varType_return();
retval.start = input.LT(1);
int varType_StartIndex = input.index();
Object root_0 = null;
Token PACKED213=null;
ParserRuleReturnScope arrayType203 =null;
ParserRuleReturnScope setType204 =null;
ParserRuleReturnScope fullStringType205 =null;
ParserRuleReturnScope fullFileType206 =null;
ParserRuleReturnScope recordType207 =null;
ParserRuleReturnScope pointerType208 =null;
ParserRuleReturnScope procedureType209 =null;
ParserRuleReturnScope subRangeType210 =null;
ParserRuleReturnScope typeReference211 =null;
ParserRuleReturnScope enumType212 =null;
ParserRuleReturnScope varType214 =null;
Object PACKED213_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 46) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:526:30: ( arrayType | setType | fullStringType | fullFileType | recordType | pointerType | procedureType | subRangeType | typeReference | enumType | PACKED varType ^)
int alt63=11;
switch ( input.LA(1) ) {
case ARRAY:
{
alt63=1;
}
break;
case SET:
{
alt63=2;
}
break;
case STRING:
{
int LA63_3 = input.LA(2);
if ( (synpred95_Delphi()) ) {
alt63=3;
}
else if ( (synpred100_Delphi()) ) {
alt63=8;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FILE:
{
int LA63_4 = input.LA(2);
if ( (synpred96_Delphi()) ) {
alt63=4;
}
else if ( (synpred100_Delphi()) ) {
alt63=8;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case RECORD:
{
alt63=5;
}
break;
case DEREFERENCE:
{
int LA63_6 = input.LA(2);
if ( (synpred98_Delphi()) ) {
alt63=6;
}
else if ( (synpred100_Delphi()) ) {
alt63=8;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FUNCTION:
{
int LA63_7 = input.LA(2);
if ( (synpred99_Delphi()) ) {
alt63=7;
}
else if ( (synpred100_Delphi()) ) {
alt63=8;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PROCEDURE:
{
int LA63_8 = input.LA(2);
if ( (synpred99_Delphi()) ) {
alt63=7;
}
else if ( (synpred100_Delphi()) ) {
alt63=8;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case REFERENCE:
{
int LA63_9 = input.LA(2);
if ( (synpred99_Delphi()) ) {
alt63=7;
}
else if ( (synpred100_Delphi()) ) {
alt63=8;
}
else if ( (synpred101_Delphi()) ) {
alt63=9;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 9, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ADDRESS:
case INHERITED:
case MINUS:
case NIL:
case NOT:
case PAREN_BRACKET_LEFT:
case PLUS:
case SQUARE_BRACKET_LEFT:
case TkBinaryNumber:
case TkCharacterEscapeCode:
case TkHexNumber:
case TkIntNumber:
case TkMultilineString:
case TkQuotedString:
case TkRealNumber:
{
alt63=8;
}
break;
case TkIdentifier:
{
int LA63_22 = input.LA(2);
if ( (synpred100_Delphi()) ) {
alt63=8;
}
else if ( (synpred101_Delphi()) ) {
alt63=9;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 22, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA63_23 = input.LA(2);
if ( (synpred100_Delphi()) ) {
alt63=8;
}
else if ( (synpred101_Delphi()) ) {
alt63=9;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 23, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PAREN_LEFT:
{
int LA63_25 = input.LA(2);
if ( (synpred100_Delphi()) ) {
alt63=8;
}
else if ( (synpred102_Delphi()) ) {
alt63=10;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 25, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PACKED:
{
alt63=11;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 63, 0, input);
throw nvae;
}
switch (alt63) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:526:32: arrayType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_arrayType_in_varType4767);
arrayType203=arrayType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arrayType203.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:527:32: setType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_setType_in_varType4800);
setType204=setType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, setType204.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:528:32: fullStringType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fullStringType_in_varType4833);
fullStringType205=fullStringType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, fullStringType205.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:529:32: fullFileType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fullFileType_in_varType4866);
fullFileType206=fullFileType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, fullFileType206.getTree());
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:530:32: recordType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_recordType_in_varType4899);
recordType207=recordType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, recordType207.getTree());
}
break;
case 6 :
// au/com/integradev/delphi/antlr/Delphi.g:531:32: pointerType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_pointerType_in_varType4932);
pointerType208=pointerType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, pointerType208.getTree());
}
break;
case 7 :
// au/com/integradev/delphi/antlr/Delphi.g:532:32: procedureType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_procedureType_in_varType4965);
procedureType209=procedureType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, procedureType209.getTree());
}
break;
case 8 :
// au/com/integradev/delphi/antlr/Delphi.g:533:32: subRangeType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_subRangeType_in_varType4998);
subRangeType210=subRangeType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, subRangeType210.getTree());
}
break;
case 9 :
// au/com/integradev/delphi/antlr/Delphi.g:534:32: typeReference
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeReference_in_varType5031);
typeReference211=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReference211.getTree());
}
break;
case 10 :
// au/com/integradev/delphi/antlr/Delphi.g:535:32: enumType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_enumType_in_varType5064);
enumType212=enumType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, enumType212.getTree());
}
break;
case 11 :
// au/com/integradev/delphi/antlr/Delphi.g:536:32: PACKED varType ^
{
root_0 = (Object)adaptor.nil();
PACKED213=(Token)match(input,PACKED,FOLLOW_PACKED_in_varType5097); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PACKED213_tree = (Object)adaptor.create(PACKED213);
adaptor.addChild(root_0, PACKED213_tree);
}
pushFollow(FOLLOW_varType_in_varType5099);
varType214=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(varType214.getTree(), root_0);
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 46, varType_StartIndex); }
}
return retval;
}
// $ANTLR end "varType"
public static class parameterType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "parameterType"
// au/com/integradev/delphi/antlr/Delphi.g:538:1: parameterType : ( stringType | fileType | arrayType | typeReference | PACKED parameterType ^);
public final DelphiParser.parameterType_return parameterType() throws RecognitionException {
DelphiParser.parameterType_return retval = new DelphiParser.parameterType_return();
retval.start = input.LT(1);
int parameterType_StartIndex = input.index();
Object root_0 = null;
Token PACKED219=null;
ParserRuleReturnScope stringType215 =null;
ParserRuleReturnScope fileType216 =null;
ParserRuleReturnScope arrayType217 =null;
ParserRuleReturnScope typeReference218 =null;
ParserRuleReturnScope parameterType220 =null;
Object PACKED219_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 47) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:538:30: ( stringType | fileType | arrayType | typeReference | PACKED parameterType ^)
int alt64=5;
switch ( input.LA(1) ) {
case STRING:
{
alt64=1;
}
break;
case FILE:
{
alt64=2;
}
break;
case ARRAY:
{
alt64=3;
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case TkIdentifier:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
alt64=4;
}
break;
case PACKED:
{
alt64=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 64, 0, input);
throw nvae;
}
switch (alt64) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:538:32: stringType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_stringType_in_parameterType5152);
stringType215=stringType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, stringType215.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:539:32: fileType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fileType_in_parameterType5185);
fileType216=fileType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, fileType216.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:540:32: arrayType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_arrayType_in_parameterType5218);
arrayType217=arrayType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arrayType217.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:541:32: typeReference
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeReference_in_parameterType5251);
typeReference218=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReference218.getTree());
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:542:32: PACKED parameterType ^
{
root_0 = (Object)adaptor.nil();
PACKED219=(Token)match(input,PACKED,FOLLOW_PACKED_in_parameterType5284); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PACKED219_tree = (Object)adaptor.create(PACKED219);
adaptor.addChild(root_0, PACKED219_tree);
}
pushFollow(FOLLOW_parameterType_in_parameterType5286);
parameterType220=parameterType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(parameterType220.getTree(), root_0);
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 47, parameterType_StartIndex); }
}
return retval;
}
// $ANTLR end "parameterType"
public static class fixedArrayType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "fixedArrayType"
// au/com/integradev/delphi/antlr/Delphi.g:544:1: fixedArrayType : ARRAY arrayIndices OF arrayElementType -> ^( ARRAY OF arrayElementType arrayIndices ) ;
public final DelphiParser.fixedArrayType_return fixedArrayType() throws RecognitionException {
DelphiParser.fixedArrayType_return retval = new DelphiParser.fixedArrayType_return();
retval.start = input.LT(1);
int fixedArrayType_StartIndex = input.index();
Object root_0 = null;
Token ARRAY221=null;
Token OF223=null;
ParserRuleReturnScope arrayIndices222 =null;
ParserRuleReturnScope arrayElementType224 =null;
Object ARRAY221_tree=null;
Object OF223_tree=null;
RewriteRuleTokenStream stream_ARRAY=new RewriteRuleTokenStream(adaptor,"token ARRAY");
RewriteRuleTokenStream stream_OF=new RewriteRuleTokenStream(adaptor,"token OF");
RewriteRuleSubtreeStream stream_arrayElementType=new RewriteRuleSubtreeStream(adaptor,"rule arrayElementType");
RewriteRuleSubtreeStream stream_arrayIndices=new RewriteRuleSubtreeStream(adaptor,"rule arrayIndices");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 48) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:544:30: ( ARRAY arrayIndices OF arrayElementType -> ^( ARRAY OF arrayElementType arrayIndices ) )
// au/com/integradev/delphi/antlr/Delphi.g:544:32: ARRAY arrayIndices OF arrayElementType
{
ARRAY221=(Token)match(input,ARRAY,FOLLOW_ARRAY_in_fixedArrayType5338); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ARRAY.add(ARRAY221);
pushFollow(FOLLOW_arrayIndices_in_fixedArrayType5340);
arrayIndices222=arrayIndices();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arrayIndices.add(arrayIndices222.getTree());
OF223=(Token)match(input,OF,FOLLOW_OF_in_fixedArrayType5342); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_OF.add(OF223);
pushFollow(FOLLOW_arrayElementType_in_fixedArrayType5344);
arrayElementType224=arrayElementType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arrayElementType.add(arrayElementType224.getTree());
// AST REWRITE
// elements: arrayElementType, OF, ARRAY, arrayIndices
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 545:30: -> ^( ARRAY OF arrayElementType arrayIndices )
{
// au/com/integradev/delphi/antlr/Delphi.g:545:33: ^( ARRAY OF arrayElementType arrayIndices )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ArrayTypeNodeImpl(stream_ARRAY.nextToken()), root_1);
adaptor.addChild(root_1, stream_OF.nextNode());
adaptor.addChild(root_1, stream_arrayElementType.nextTree());
adaptor.addChild(root_1, stream_arrayIndices.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 48, fixedArrayType_StartIndex); }
}
return retval;
}
// $ANTLR end "fixedArrayType"
public static class arrayType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arrayType"
// au/com/integradev/delphi/antlr/Delphi.g:547:1: arrayType : ARRAY ( arrayIndices )? OF arrayElementType -> ^( ARRAY OF arrayElementType ( arrayIndices )? ) ;
public final DelphiParser.arrayType_return arrayType() throws RecognitionException {
DelphiParser.arrayType_return retval = new DelphiParser.arrayType_return();
retval.start = input.LT(1);
int arrayType_StartIndex = input.index();
Object root_0 = null;
Token ARRAY225=null;
Token OF227=null;
ParserRuleReturnScope arrayIndices226 =null;
ParserRuleReturnScope arrayElementType228 =null;
Object ARRAY225_tree=null;
Object OF227_tree=null;
RewriteRuleTokenStream stream_ARRAY=new RewriteRuleTokenStream(adaptor,"token ARRAY");
RewriteRuleTokenStream stream_OF=new RewriteRuleTokenStream(adaptor,"token OF");
RewriteRuleSubtreeStream stream_arrayElementType=new RewriteRuleSubtreeStream(adaptor,"rule arrayElementType");
RewriteRuleSubtreeStream stream_arrayIndices=new RewriteRuleSubtreeStream(adaptor,"rule arrayIndices");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 49) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:547:30: ( ARRAY ( arrayIndices )? OF arrayElementType -> ^( ARRAY OF arrayElementType ( arrayIndices )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:547:33: ARRAY ( arrayIndices )? OF arrayElementType
{
ARRAY225=(Token)match(input,ARRAY,FOLLOW_ARRAY_in_arrayType5446); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ARRAY.add(ARRAY225);
// au/com/integradev/delphi/antlr/Delphi.g:547:39: ( arrayIndices )?
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==PAREN_BRACKET_LEFT||LA65_0==SQUARE_BRACKET_LEFT) ) {
alt65=1;
}
switch (alt65) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:547:39: arrayIndices
{
pushFollow(FOLLOW_arrayIndices_in_arrayType5448);
arrayIndices226=arrayIndices();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arrayIndices.add(arrayIndices226.getTree());
}
break;
}
OF227=(Token)match(input,OF,FOLLOW_OF_in_arrayType5451); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_OF.add(OF227);
pushFollow(FOLLOW_arrayElementType_in_arrayType5453);
arrayElementType228=arrayElementType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arrayElementType.add(arrayElementType228.getTree());
// AST REWRITE
// elements: arrayIndices, ARRAY, arrayElementType, OF
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 548:30: -> ^( ARRAY OF arrayElementType ( arrayIndices )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:548:33: ^( ARRAY OF arrayElementType ( arrayIndices )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ArrayTypeNodeImpl(stream_ARRAY.nextToken()), root_1);
adaptor.addChild(root_1, stream_OF.nextNode());
adaptor.addChild(root_1, stream_arrayElementType.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:548:80: ( arrayIndices )?
if ( stream_arrayIndices.hasNext() ) {
adaptor.addChild(root_1, stream_arrayIndices.nextTree());
}
stream_arrayIndices.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 49, arrayType_StartIndex); }
}
return retval;
}
// $ANTLR end "arrayType"
public static class lbrack_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "lbrack"
// au/com/integradev/delphi/antlr/Delphi.g:550:1: lbrack : ( '[' | '(.' );
public final DelphiParser.lbrack_return lbrack() throws RecognitionException {
DelphiParser.lbrack_return retval = new DelphiParser.lbrack_return();
retval.start = input.LT(1);
int lbrack_StartIndex = input.index();
Object root_0 = null;
Token set229=null;
Object set229_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 50) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:550:30: ( '[' | '(.' )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set229=input.LT(1);
if ( input.LA(1)==PAREN_BRACKET_LEFT||input.LA(1)==SQUARE_BRACKET_LEFT ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set229));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 50, lbrack_StartIndex); }
}
return retval;
}
// $ANTLR end "lbrack"
public static class rbrack_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "rbrack"
// au/com/integradev/delphi/antlr/Delphi.g:553:1: rbrack : ( ']' | '.)' );
public final DelphiParser.rbrack_return rbrack() throws RecognitionException {
DelphiParser.rbrack_return retval = new DelphiParser.rbrack_return();
retval.start = input.LT(1);
int rbrack_StartIndex = input.index();
Object root_0 = null;
Token set230=null;
Object set230_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 51) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:553:30: ( ']' | '.)' )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set230=input.LT(1);
if ( input.LA(1)==PAREN_BRACKET_RIGHT||input.LA(1)==SQUARE_BRACKET_RIGHT ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set230));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 51, rbrack_StartIndex); }
}
return retval;
}
// $ANTLR end "rbrack"
public static class arrayIndices_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arrayIndices"
// au/com/integradev/delphi/antlr/Delphi.g:556:1: arrayIndices : lbrack ( varType ( ',' )? )+ rbrack -> ^( TkArrayIndices lbrack ( varType ( ',' )? )+ rbrack ) ;
public final DelphiParser.arrayIndices_return arrayIndices() throws RecognitionException {
DelphiParser.arrayIndices_return retval = new DelphiParser.arrayIndices_return();
retval.start = input.LT(1);
int arrayIndices_StartIndex = input.index();
Object root_0 = null;
Token char_literal233=null;
ParserRuleReturnScope lbrack231 =null;
ParserRuleReturnScope varType232 =null;
ParserRuleReturnScope rbrack234 =null;
Object char_literal233_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_varType=new RewriteRuleSubtreeStream(adaptor,"rule varType");
RewriteRuleSubtreeStream stream_rbrack=new RewriteRuleSubtreeStream(adaptor,"rule rbrack");
RewriteRuleSubtreeStream stream_lbrack=new RewriteRuleSubtreeStream(adaptor,"rule lbrack");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 52) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:556:30: ( lbrack ( varType ( ',' )? )+ rbrack -> ^( TkArrayIndices lbrack ( varType ( ',' )? )+ rbrack ) )
// au/com/integradev/delphi/antlr/Delphi.g:556:32: lbrack ( varType ( ',' )? )+ rbrack
{
pushFollow(FOLLOW_lbrack_in_arrayIndices5736);
lbrack231=lbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lbrack.add(lbrack231.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:556:39: ( varType ( ',' )? )+
int cnt67=0;
loop67:
while (true) {
int alt67=2;
int LA67_0 = input.LA(1);
if ( ((LA67_0 >= ABSOLUTE && LA67_0 <= ALIGN)||LA67_0==ARRAY||(LA67_0 >= ASSEMBLER && LA67_0 <= ASSEMBLY)||(LA67_0 >= AT && LA67_0 <= AUTOMATED)||LA67_0==CDECL||LA67_0==CONTAINS||(LA67_0 >= DEFAULT && LA67_0 <= DEREFERENCE)||LA67_0==DISPID||LA67_0==DYNAMIC||(LA67_0 >= EXPERIMENTAL && LA67_0 <= EXPORT)||LA67_0==EXTERNAL||(LA67_0 >= FAR && LA67_0 <= FINAL)||(LA67_0 >= FORWARD && LA67_0 <= FUNCTION)||LA67_0==HELPER||LA67_0==IMPLEMENTS||(LA67_0 >= INDEX && LA67_0 <= INHERITED)||LA67_0==LABEL||LA67_0==LOCAL||(LA67_0 >= MESSAGE && LA67_0 <= MINUS)||(LA67_0 >= NAME && LA67_0 <= NOT)||(LA67_0 >= ON && LA67_0 <= OPERATOR)||(LA67_0 >= OUT && LA67_0 <= OVERRIDE)||(LA67_0 >= PACKAGE && LA67_0 <= PAREN_BRACKET_LEFT)||LA67_0==PAREN_LEFT||(LA67_0 >= PASCAL && LA67_0 <= PROCEDURE)||(LA67_0 >= PROTECTED && LA67_0 <= PUBLISHED)||(LA67_0 >= READ && LA67_0 <= REINTRODUCE)||(LA67_0 >= REQUIRES && LA67_0 <= RESIDENT)||(LA67_0 >= SAFECALL && LA67_0 <= SEALED)||LA67_0==SET||LA67_0==SQUARE_BRACKET_LEFT||(LA67_0 >= STATIC && LA67_0 <= STRING)||LA67_0==TkBinaryNumber||LA67_0==TkCharacterEscapeCode||(LA67_0 >= TkHexNumber && LA67_0 <= TkIntNumber)||LA67_0==TkMultilineString||(LA67_0 >= TkQuotedString && LA67_0 <= TkRealNumber)||LA67_0==UNSAFE||(LA67_0 >= VARARGS && LA67_0 <= VIRTUAL)||LA67_0==WINAPI||(LA67_0 >= WRITE && LA67_0 <= WRITEONLY)) ) {
alt67=1;
}
switch (alt67) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:556:40: varType ( ',' )?
{
pushFollow(FOLLOW_varType_in_arrayIndices5739);
varType232=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_varType.add(varType232.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:556:48: ( ',' )?
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==COMMA) ) {
alt66=1;
}
switch (alt66) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:556:48: ','
{
char_literal233=(Token)match(input,COMMA,FOLLOW_COMMA_in_arrayIndices5741); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(char_literal233);
}
break;
}
}
break;
default :
if ( cnt67 >= 1 ) break loop67;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(67, input);
throw eee;
}
cnt67++;
}
pushFollow(FOLLOW_rbrack_in_arrayIndices5746);
rbrack234=rbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rbrack.add(rbrack234.getTree());
// AST REWRITE
// elements: lbrack, varType, COMMA, rbrack
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 557:30: -> ^( TkArrayIndices lbrack ( varType ( ',' )? )+ rbrack )
{
// au/com/integradev/delphi/antlr/Delphi.g:557:33: ^( TkArrayIndices lbrack ( varType ( ',' )? )+ rbrack )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ArrayIndicesNodeImpl(TkArrayIndices), root_1);
adaptor.addChild(root_1, stream_lbrack.nextTree());
if ( !(stream_varType.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_varType.hasNext() ) {
adaptor.addChild(root_1, stream_varType.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:557:88: ( ',' )?
if ( stream_COMMA.hasNext() ) {
adaptor.addChild(root_1, stream_COMMA.nextNode());
}
stream_COMMA.reset();
}
stream_varType.reset();
adaptor.addChild(root_1, stream_rbrack.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 52, arrayIndices_StartIndex); }
}
return retval;
}
// $ANTLR end "arrayIndices"
public static class arrayElementType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arrayElementType"
// au/com/integradev/delphi/antlr/Delphi.g:559:1: arrayElementType : ( CONST | varType );
public final DelphiParser.arrayElementType_return arrayElementType() throws RecognitionException {
DelphiParser.arrayElementType_return retval = new DelphiParser.arrayElementType_return();
retval.start = input.LT(1);
int arrayElementType_StartIndex = input.index();
Object root_0 = null;
Token CONST235=null;
ParserRuleReturnScope varType236 =null;
Object CONST235_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 53) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:559:30: ( CONST | varType )
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==CONST) ) {
alt68=1;
}
else if ( ((LA68_0 >= ABSOLUTE && LA68_0 <= ALIGN)||LA68_0==ARRAY||(LA68_0 >= ASSEMBLER && LA68_0 <= ASSEMBLY)||(LA68_0 >= AT && LA68_0 <= AUTOMATED)||LA68_0==CDECL||LA68_0==CONTAINS||(LA68_0 >= DEFAULT && LA68_0 <= DEREFERENCE)||LA68_0==DISPID||LA68_0==DYNAMIC||(LA68_0 >= EXPERIMENTAL && LA68_0 <= EXPORT)||LA68_0==EXTERNAL||(LA68_0 >= FAR && LA68_0 <= FINAL)||(LA68_0 >= FORWARD && LA68_0 <= FUNCTION)||LA68_0==HELPER||LA68_0==IMPLEMENTS||(LA68_0 >= INDEX && LA68_0 <= INHERITED)||LA68_0==LABEL||LA68_0==LOCAL||(LA68_0 >= MESSAGE && LA68_0 <= MINUS)||(LA68_0 >= NAME && LA68_0 <= NOT)||(LA68_0 >= ON && LA68_0 <= OPERATOR)||(LA68_0 >= OUT && LA68_0 <= OVERRIDE)||(LA68_0 >= PACKAGE && LA68_0 <= PAREN_BRACKET_LEFT)||LA68_0==PAREN_LEFT||(LA68_0 >= PASCAL && LA68_0 <= PROCEDURE)||(LA68_0 >= PROTECTED && LA68_0 <= PUBLISHED)||(LA68_0 >= READ && LA68_0 <= REINTRODUCE)||(LA68_0 >= REQUIRES && LA68_0 <= RESIDENT)||(LA68_0 >= SAFECALL && LA68_0 <= SEALED)||LA68_0==SET||LA68_0==SQUARE_BRACKET_LEFT||(LA68_0 >= STATIC && LA68_0 <= STRING)||LA68_0==TkBinaryNumber||LA68_0==TkCharacterEscapeCode||(LA68_0 >= TkHexNumber && LA68_0 <= TkIntNumber)||LA68_0==TkMultilineString||(LA68_0 >= TkQuotedString && LA68_0 <= TkRealNumber)||LA68_0==UNSAFE||(LA68_0 >= VARARGS && LA68_0 <= VIRTUAL)||LA68_0==WINAPI||(LA68_0 >= WRITE && LA68_0 <= WRITEONLY)) ) {
alt68=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 68, 0, input);
throw nvae;
}
switch (alt68) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:559:32: CONST
{
root_0 = (Object)adaptor.nil();
CONST235=(Token)match(input,CONST,FOLLOW_CONST_in_arrayElementType5845); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CONST235_tree = new ConstArrayElementTypeNodeImpl(CONST235) ;
adaptor.addChild(root_0, CONST235_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:560:32: varType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_varType_in_arrayElementType5881);
varType236=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varType236.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 53, arrayElementType_StartIndex); }
}
return retval;
}
// $ANTLR end "arrayElementType"
public static class fileType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "fileType"
// au/com/integradev/delphi/antlr/Delphi.g:562:1: fileType : FILE ^;
public final DelphiParser.fileType_return fileType() throws RecognitionException {
DelphiParser.fileType_return retval = new DelphiParser.fileType_return();
retval.start = input.LT(1);
int fileType_StartIndex = input.index();
Object root_0 = null;
Token FILE237=null;
Object FILE237_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 54) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:562:30: ( FILE ^)
// au/com/integradev/delphi/antlr/Delphi.g:562:32: FILE ^
{
root_0 = (Object)adaptor.nil();
FILE237=(Token)match(input,FILE,FOLLOW_FILE_in_fileType5938); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FILE237_tree = new FileTypeNodeImpl(FILE237) ;
root_0 = (Object)adaptor.becomeRoot(FILE237_tree, root_0);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 54, fileType_StartIndex); }
}
return retval;
}
// $ANTLR end "fileType"
public static class fullFileType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "fullFileType"
// au/com/integradev/delphi/antlr/Delphi.g:564:1: fullFileType : FILE ^ ( OF varType )? ;
public final DelphiParser.fullFileType_return fullFileType() throws RecognitionException {
DelphiParser.fullFileType_return retval = new DelphiParser.fullFileType_return();
retval.start = input.LT(1);
int fullFileType_StartIndex = input.index();
Object root_0 = null;
Token FILE238=null;
Token OF239=null;
ParserRuleReturnScope varType240 =null;
Object FILE238_tree=null;
Object OF239_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 55) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:564:30: ( FILE ^ ( OF varType )? )
// au/com/integradev/delphi/antlr/Delphi.g:564:32: FILE ^ ( OF varType )?
{
root_0 = (Object)adaptor.nil();
FILE238=(Token)match(input,FILE,FOLLOW_FILE_in_fullFileType5995); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FILE238_tree = new FileTypeNodeImpl(FILE238) ;
root_0 = (Object)adaptor.becomeRoot(FILE238_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:564:56: ( OF varType )?
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==OF) ) {
alt69=1;
}
switch (alt69) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:564:57: OF varType
{
OF239=(Token)match(input,OF,FOLLOW_OF_in_fullFileType6002); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OF239_tree = (Object)adaptor.create(OF239);
adaptor.addChild(root_0, OF239_tree);
}
pushFollow(FOLLOW_varType_in_fullFileType6004);
varType240=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varType240.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 55, fullFileType_StartIndex); }
}
return retval;
}
// $ANTLR end "fullFileType"
public static class setType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "setType"
// au/com/integradev/delphi/antlr/Delphi.g:566:1: setType : SET ^ OF varType ;
public final DelphiParser.setType_return setType() throws RecognitionException {
DelphiParser.setType_return retval = new DelphiParser.setType_return();
retval.start = input.LT(1);
int setType_StartIndex = input.index();
Object root_0 = null;
Token SET241=null;
Token OF242=null;
ParserRuleReturnScope varType243 =null;
Object SET241_tree=null;
Object OF242_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 56) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:566:30: ( SET ^ OF varType )
// au/com/integradev/delphi/antlr/Delphi.g:566:32: SET ^ OF varType
{
root_0 = (Object)adaptor.nil();
SET241=(Token)match(input,SET,FOLLOW_SET_in_setType6064); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SET241_tree = new SetTypeNodeImpl(SET241) ;
root_0 = (Object)adaptor.becomeRoot(SET241_tree, root_0);
}
OF242=(Token)match(input,OF,FOLLOW_OF_in_setType6070); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OF242_tree = (Object)adaptor.create(OF242);
adaptor.addChild(root_0, OF242_tree);
}
pushFollow(FOLLOW_varType_in_setType6072);
varType243=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varType243.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 56, setType_StartIndex); }
}
return retval;
}
// $ANTLR end "setType"
public static class pointerType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "pointerType"
// au/com/integradev/delphi/antlr/Delphi.g:568:1: pointerType : '^' ^ varType ;
public final DelphiParser.pointerType_return pointerType() throws RecognitionException {
DelphiParser.pointerType_return retval = new DelphiParser.pointerType_return();
retval.start = input.LT(1);
int pointerType_StartIndex = input.index();
Object root_0 = null;
Token char_literal244=null;
ParserRuleReturnScope varType245 =null;
Object char_literal244_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 57) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:568:30: ( '^' ^ varType )
// au/com/integradev/delphi/antlr/Delphi.g:568:32: '^' ^ varType
{
root_0 = (Object)adaptor.nil();
char_literal244=(Token)match(input,DEREFERENCE,FOLLOW_DEREFERENCE_in_pointerType6126); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal244_tree = new PointerTypeNodeImpl(char_literal244) ;
root_0 = (Object)adaptor.becomeRoot(char_literal244_tree, root_0);
}
pushFollow(FOLLOW_varType_in_pointerType6132);
varType245=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varType245.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 57, pointerType_StartIndex); }
}
return retval;
}
// $ANTLR end "pointerType"
public static class stringType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "stringType"
// au/com/integradev/delphi/antlr/Delphi.g:570:1: stringType : STRING ^;
public final DelphiParser.stringType_return stringType() throws RecognitionException {
DelphiParser.stringType_return retval = new DelphiParser.stringType_return();
retval.start = input.LT(1);
int stringType_StartIndex = input.index();
Object root_0 = null;
Token STRING246=null;
Object STRING246_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 58) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:570:30: ( STRING ^)
// au/com/integradev/delphi/antlr/Delphi.g:570:32: STRING ^
{
root_0 = (Object)adaptor.nil();
STRING246=(Token)match(input,STRING,FOLLOW_STRING_in_stringType6187); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STRING246_tree = new StringTypeNodeImpl(STRING246) ;
root_0 = (Object)adaptor.becomeRoot(STRING246_tree, root_0);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 58, stringType_StartIndex); }
}
return retval;
}
// $ANTLR end "stringType"
public static class fullStringType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "fullStringType"
// au/com/integradev/delphi/antlr/Delphi.g:572:1: fullStringType : STRING ^ ( lbrack expression rbrack )? ;
public final DelphiParser.fullStringType_return fullStringType() throws RecognitionException {
DelphiParser.fullStringType_return retval = new DelphiParser.fullStringType_return();
retval.start = input.LT(1);
int fullStringType_StartIndex = input.index();
Object root_0 = null;
Token STRING247=null;
ParserRuleReturnScope lbrack248 =null;
ParserRuleReturnScope expression249 =null;
ParserRuleReturnScope rbrack250 =null;
Object STRING247_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 59) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:572:30: ( STRING ^ ( lbrack expression rbrack )? )
// au/com/integradev/delphi/antlr/Delphi.g:572:32: STRING ^ ( lbrack expression rbrack )?
{
root_0 = (Object)adaptor.nil();
STRING247=(Token)match(input,STRING,FOLLOW_STRING_in_fullStringType6242); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STRING247_tree = new StringTypeNodeImpl(STRING247) ;
root_0 = (Object)adaptor.becomeRoot(STRING247_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:572:60: ( lbrack expression rbrack )?
int alt70=2;
alt70 = dfa70.predict(input);
switch (alt70) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:572:61: lbrack expression rbrack
{
pushFollow(FOLLOW_lbrack_in_fullStringType6249);
lbrack248=lbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, lbrack248.getTree());
pushFollow(FOLLOW_expression_in_fullStringType6251);
expression249=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression249.getTree());
pushFollow(FOLLOW_rbrack_in_fullStringType6253);
rbrack250=rbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, rbrack250.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 59, fullStringType_StartIndex); }
}
return retval;
}
// $ANTLR end "fullStringType"
public static class procedureType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "procedureType"
// au/com/integradev/delphi/antlr/Delphi.g:574:1: procedureType : ( procedureOfObject | procedureReference | simpleProcedureType );
public final DelphiParser.procedureType_return procedureType() throws RecognitionException {
DelphiParser.procedureType_return retval = new DelphiParser.procedureType_return();
retval.start = input.LT(1);
int procedureType_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope procedureOfObject251 =null;
ParserRuleReturnScope procedureReference252 =null;
ParserRuleReturnScope simpleProcedureType253 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 60) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:574:30: ( procedureOfObject | procedureReference | simpleProcedureType )
int alt71=3;
switch ( input.LA(1) ) {
case FUNCTION:
{
int LA71_1 = input.LA(2);
if ( (synpred115_Delphi()) ) {
alt71=1;
}
else if ( (true) ) {
alt71=3;
}
}
break;
case PROCEDURE:
{
int LA71_2 = input.LA(2);
if ( (synpred115_Delphi()) ) {
alt71=1;
}
else if ( (true) ) {
alt71=3;
}
}
break;
case REFERENCE:
{
alt71=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 71, 0, input);
throw nvae;
}
switch (alt71) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:574:32: procedureOfObject
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_procedureOfObject_in_procedureType6307);
procedureOfObject251=procedureOfObject();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, procedureOfObject251.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:575:32: procedureReference
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_procedureReference_in_procedureType6340);
procedureReference252=procedureReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, procedureReference252.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:576:32: simpleProcedureType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_simpleProcedureType_in_procedureType6373);
simpleProcedureType253=simpleProcedureType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, simpleProcedureType253.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 60, procedureType_StartIndex); }
}
return retval;
}
// $ANTLR end "procedureType"
public static class procedureOfObject_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "procedureOfObject"
// au/com/integradev/delphi/antlr/Delphi.g:578:1: procedureOfObject : procedureTypeHeading OF OBJECT ^ ( ( ';' )? interfaceDirective )* ;
public final DelphiParser.procedureOfObject_return procedureOfObject() throws RecognitionException {
DelphiParser.procedureOfObject_return retval = new DelphiParser.procedureOfObject_return();
retval.start = input.LT(1);
int procedureOfObject_StartIndex = input.index();
Object root_0 = null;
Token OF255=null;
Token OBJECT256=null;
Token char_literal257=null;
ParserRuleReturnScope procedureTypeHeading254 =null;
ParserRuleReturnScope interfaceDirective258 =null;
Object OF255_tree=null;
Object OBJECT256_tree=null;
Object char_literal257_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 61) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:578:30: ( procedureTypeHeading OF OBJECT ^ ( ( ';' )? interfaceDirective )* )
// au/com/integradev/delphi/antlr/Delphi.g:578:32: procedureTypeHeading OF OBJECT ^ ( ( ';' )? interfaceDirective )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_procedureTypeHeading_in_procedureOfObject6421);
procedureTypeHeading254=procedureTypeHeading();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, procedureTypeHeading254.getTree());
OF255=(Token)match(input,OF,FOLLOW_OF_in_procedureOfObject6423); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OF255_tree = (Object)adaptor.create(OF255);
adaptor.addChild(root_0, OF255_tree);
}
OBJECT256=(Token)match(input,OBJECT,FOLLOW_OBJECT_in_procedureOfObject6425); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OBJECT256_tree = new ProcedureOfObjectTypeNodeImpl(OBJECT256) ;
root_0 = (Object)adaptor.becomeRoot(OBJECT256_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:578:95: ( ( ';' )? interfaceDirective )*
loop73:
while (true) {
int alt73=2;
alt73 = dfa73.predict(input);
switch (alt73) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:578:96: ( ';' )? interfaceDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:578:96: ( ';' )?
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==SEMICOLON) ) {
alt72=1;
}
switch (alt72) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:578:97: ';'
{
char_literal257=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_procedureOfObject6433); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal257_tree = (Object)adaptor.create(char_literal257);
adaptor.addChild(root_0, char_literal257_tree);
}
}
break;
}
pushFollow(FOLLOW_interfaceDirective_in_procedureOfObject6437);
interfaceDirective258=interfaceDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceDirective258.getTree());
}
break;
default :
break loop73;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 61, procedureOfObject_StartIndex); }
}
return retval;
}
// $ANTLR end "procedureOfObject"
public static class procedureReference_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "procedureReference"
// au/com/integradev/delphi/antlr/Delphi.g:580:1: procedureReference : REFERENCE ^ TO ! procedureTypeHeading ;
public final DelphiParser.procedureReference_return procedureReference() throws RecognitionException {
DelphiParser.procedureReference_return retval = new DelphiParser.procedureReference_return();
retval.start = input.LT(1);
int procedureReference_StartIndex = input.index();
Object root_0 = null;
Token REFERENCE259=null;
Token TO260=null;
ParserRuleReturnScope procedureTypeHeading261 =null;
Object REFERENCE259_tree=null;
Object TO260_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 62) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:580:30: ( REFERENCE ^ TO ! procedureTypeHeading )
// au/com/integradev/delphi/antlr/Delphi.g:580:32: REFERENCE ^ TO ! procedureTypeHeading
{
root_0 = (Object)adaptor.nil();
REFERENCE259=(Token)match(input,REFERENCE,FOLLOW_REFERENCE_in_procedureReference6486); if (state.failed) return retval;
if ( state.backtracking==0 ) {
REFERENCE259_tree = new ProcedureReferenceTypeNodeImpl(REFERENCE259) ;
root_0 = (Object)adaptor.becomeRoot(REFERENCE259_tree, root_0);
}
TO260=(Token)match(input,TO,FOLLOW_TO_in_procedureReference6492); if (state.failed) return retval;
pushFollow(FOLLOW_procedureTypeHeading_in_procedureReference6495);
procedureTypeHeading261=procedureTypeHeading();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, procedureTypeHeading261.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 62, procedureReference_StartIndex); }
}
return retval;
}
// $ANTLR end "procedureReference"
public static class simpleProcedureType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "simpleProcedureType"
// au/com/integradev/delphi/antlr/Delphi.g:582:1: simpleProcedureType : procedureTypeHeading -> ^( TkProcedureType procedureTypeHeading ) ;
public final DelphiParser.simpleProcedureType_return simpleProcedureType() throws RecognitionException {
DelphiParser.simpleProcedureType_return retval = new DelphiParser.simpleProcedureType_return();
retval.start = input.LT(1);
int simpleProcedureType_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope procedureTypeHeading262 =null;
RewriteRuleSubtreeStream stream_procedureTypeHeading=new RewriteRuleSubtreeStream(adaptor,"rule procedureTypeHeading");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 63) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:582:30: ( procedureTypeHeading -> ^( TkProcedureType procedureTypeHeading ) )
// au/com/integradev/delphi/antlr/Delphi.g:582:32: procedureTypeHeading
{
pushFollow(FOLLOW_procedureTypeHeading_in_simpleProcedureType6541);
procedureTypeHeading262=procedureTypeHeading();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_procedureTypeHeading.add(procedureTypeHeading262.getTree());
// AST REWRITE
// elements: procedureTypeHeading
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 582:53: -> ^( TkProcedureType procedureTypeHeading )
{
// au/com/integradev/delphi/antlr/Delphi.g:582:56: ^( TkProcedureType procedureTypeHeading )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ProcedureTypeNodeImpl(TkProcedureType), root_1);
adaptor.addChild(root_1, stream_procedureTypeHeading.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 63, simpleProcedureType_StartIndex); }
}
return retval;
}
// $ANTLR end "simpleProcedureType"
public static class procedureTypeHeading_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "procedureTypeHeading"
// au/com/integradev/delphi/antlr/Delphi.g:584:1: procedureTypeHeading : ( FUNCTION ^ ( routineParameters )? ( routineReturnType )? ( ( ';' )? interfaceDirective )* | PROCEDURE ^ ( routineParameters )? ( ( ';' )? interfaceDirective )* );
public final DelphiParser.procedureTypeHeading_return procedureTypeHeading() throws RecognitionException {
DelphiParser.procedureTypeHeading_return retval = new DelphiParser.procedureTypeHeading_return();
retval.start = input.LT(1);
int procedureTypeHeading_StartIndex = input.index();
Object root_0 = null;
Token FUNCTION263=null;
Token char_literal266=null;
Token PROCEDURE268=null;
Token char_literal270=null;
ParserRuleReturnScope routineParameters264 =null;
ParserRuleReturnScope routineReturnType265 =null;
ParserRuleReturnScope interfaceDirective267 =null;
ParserRuleReturnScope routineParameters269 =null;
ParserRuleReturnScope interfaceDirective271 =null;
Object FUNCTION263_tree=null;
Object char_literal266_tree=null;
Object PROCEDURE268_tree=null;
Object char_literal270_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 64) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:584:30: ( FUNCTION ^ ( routineParameters )? ( routineReturnType )? ( ( ';' )? interfaceDirective )* | PROCEDURE ^ ( routineParameters )? ( ( ';' )? interfaceDirective )* )
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==FUNCTION) ) {
alt81=1;
}
else if ( (LA81_0==PROCEDURE) ) {
alt81=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 81, 0, input);
throw nvae;
}
switch (alt81) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:584:32: FUNCTION ^ ( routineParameters )? ( routineReturnType )? ( ( ';' )? interfaceDirective )*
{
root_0 = (Object)adaptor.nil();
FUNCTION263=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_procedureTypeHeading6597); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FUNCTION263_tree = new ProcedureTypeHeadingNodeImpl(FUNCTION263) ;
root_0 = (Object)adaptor.becomeRoot(FUNCTION263_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:584:72: ( routineParameters )?
int alt74=2;
alt74 = dfa74.predict(input);
switch (alt74) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:584:72: routineParameters
{
pushFollow(FOLLOW_routineParameters_in_procedureTypeHeading6603);
routineParameters264=routineParameters();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, routineParameters264.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:584:91: ( routineReturnType )?
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==COLON) ) {
alt75=1;
}
switch (alt75) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:584:91: routineReturnType
{
pushFollow(FOLLOW_routineReturnType_in_procedureTypeHeading6606);
routineReturnType265=routineReturnType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, routineReturnType265.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:584:110: ( ( ';' )? interfaceDirective )*
loop77:
while (true) {
int alt77=2;
alt77 = dfa77.predict(input);
switch (alt77) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:584:111: ( ';' )? interfaceDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:584:111: ( ';' )?
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==SEMICOLON) ) {
alt76=1;
}
switch (alt76) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:584:112: ';'
{
char_literal266=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_procedureTypeHeading6611); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal266_tree = (Object)adaptor.create(char_literal266);
adaptor.addChild(root_0, char_literal266_tree);
}
}
break;
}
pushFollow(FOLLOW_interfaceDirective_in_procedureTypeHeading6615);
interfaceDirective267=interfaceDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceDirective267.getTree());
}
break;
default :
break loop77;
}
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:585:32: PROCEDURE ^ ( routineParameters )? ( ( ';' )? interfaceDirective )*
{
root_0 = (Object)adaptor.nil();
PROCEDURE268=(Token)match(input,PROCEDURE,FOLLOW_PROCEDURE_in_procedureTypeHeading6650); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PROCEDURE268_tree = new ProcedureTypeHeadingNodeImpl(PROCEDURE268) ;
root_0 = (Object)adaptor.becomeRoot(PROCEDURE268_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:585:73: ( routineParameters )?
int alt78=2;
alt78 = dfa78.predict(input);
switch (alt78) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:585:73: routineParameters
{
pushFollow(FOLLOW_routineParameters_in_procedureTypeHeading6656);
routineParameters269=routineParameters();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, routineParameters269.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:585:92: ( ( ';' )? interfaceDirective )*
loop80:
while (true) {
int alt80=2;
alt80 = dfa80.predict(input);
switch (alt80) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:585:93: ( ';' )? interfaceDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:585:93: ( ';' )?
int alt79=2;
int LA79_0 = input.LA(1);
if ( (LA79_0==SEMICOLON) ) {
alt79=1;
}
switch (alt79) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:585:94: ';'
{
char_literal270=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_procedureTypeHeading6661); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal270_tree = (Object)adaptor.create(char_literal270);
adaptor.addChild(root_0, char_literal270_tree);
}
}
break;
}
pushFollow(FOLLOW_interfaceDirective_in_procedureTypeHeading6665);
interfaceDirective271=interfaceDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceDirective271.getTree());
}
break;
default :
break loop80;
}
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 64, procedureTypeHeading_StartIndex); }
}
return retval;
}
// $ANTLR end "procedureTypeHeading"
public static class typeOfType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeOfType"
// au/com/integradev/delphi/antlr/Delphi.g:587:1: typeOfType : TYPE ^ OF typeDecl ;
public final DelphiParser.typeOfType_return typeOfType() throws RecognitionException {
DelphiParser.typeOfType_return retval = new DelphiParser.typeOfType_return();
retval.start = input.LT(1);
int typeOfType_StartIndex = input.index();
Object root_0 = null;
Token TYPE272=null;
Token OF273=null;
ParserRuleReturnScope typeDecl274 =null;
Object TYPE272_tree=null;
Object OF273_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 65) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:587:30: ( TYPE ^ OF typeDecl )
// au/com/integradev/delphi/antlr/Delphi.g:587:32: TYPE ^ OF typeDecl
{
root_0 = (Object)adaptor.nil();
TYPE272=(Token)match(input,TYPE,FOLLOW_TYPE_in_typeOfType6722); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TYPE272_tree = new TypeOfTypeNodeImpl(TYPE272) ;
root_0 = (Object)adaptor.becomeRoot(TYPE272_tree, root_0);
}
OF273=(Token)match(input,OF,FOLLOW_OF_in_typeOfType6728); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OF273_tree = (Object)adaptor.create(OF273);
adaptor.addChild(root_0, OF273_tree);
}
pushFollow(FOLLOW_typeDecl_in_typeOfType6730);
typeDecl274=typeDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeDecl274.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 65, typeOfType_StartIndex); }
}
return retval;
}
// $ANTLR end "typeOfType"
public static class strongAliasType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "strongAliasType"
// au/com/integradev/delphi/antlr/Delphi.g:589:1: strongAliasType : TYPE ^ typeReferenceOrStringOrFile ( codePageExpression )? ;
public final DelphiParser.strongAliasType_return strongAliasType() throws RecognitionException {
DelphiParser.strongAliasType_return retval = new DelphiParser.strongAliasType_return();
retval.start = input.LT(1);
int strongAliasType_StartIndex = input.index();
Object root_0 = null;
Token TYPE275=null;
ParserRuleReturnScope typeReferenceOrStringOrFile276 =null;
ParserRuleReturnScope codePageExpression277 =null;
Object TYPE275_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 66) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:589:30: ( TYPE ^ typeReferenceOrStringOrFile ( codePageExpression )? )
// au/com/integradev/delphi/antlr/Delphi.g:589:32: TYPE ^ typeReferenceOrStringOrFile ( codePageExpression )?
{
root_0 = (Object)adaptor.nil();
TYPE275=(Token)match(input,TYPE,FOLLOW_TYPE_in_strongAliasType6780); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TYPE275_tree = new StrongAliasTypeNodeImpl(TYPE275) ;
root_0 = (Object)adaptor.becomeRoot(TYPE275_tree, root_0);
}
pushFollow(FOLLOW_typeReferenceOrStringOrFile_in_strongAliasType6786);
typeReferenceOrStringOrFile276=typeReferenceOrStringOrFile();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReferenceOrStringOrFile276.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:589:91: ( codePageExpression )?
int alt82=2;
int LA82_0 = input.LA(1);
if ( (LA82_0==PAREN_LEFT) ) {
alt82=1;
}
switch (alt82) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:589:91: codePageExpression
{
pushFollow(FOLLOW_codePageExpression_in_strongAliasType6788);
codePageExpression277=codePageExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, codePageExpression277.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 66, strongAliasType_StartIndex); }
}
return retval;
}
// $ANTLR end "strongAliasType"
public static class codePageExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "codePageExpression"
// au/com/integradev/delphi/antlr/Delphi.g:591:1: codePageExpression : '(' ! expression ')' !;
public final DelphiParser.codePageExpression_return codePageExpression() throws RecognitionException {
DelphiParser.codePageExpression_return retval = new DelphiParser.codePageExpression_return();
retval.start = input.LT(1);
int codePageExpression_StartIndex = input.index();
Object root_0 = null;
Token char_literal278=null;
Token char_literal280=null;
ParserRuleReturnScope expression279 =null;
Object char_literal278_tree=null;
Object char_literal280_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 67) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:591:30: ( '(' ! expression ')' !)
// au/com/integradev/delphi/antlr/Delphi.g:591:32: '(' ! expression ')' !
{
root_0 = (Object)adaptor.nil();
char_literal278=(Token)match(input,PAREN_LEFT,FOLLOW_PAREN_LEFT_in_codePageExpression6836); if (state.failed) return retval;
pushFollow(FOLLOW_expression_in_codePageExpression6839);
expression279=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression279.getTree());
char_literal280=(Token)match(input,PAREN_RIGHT,FOLLOW_PAREN_RIGHT_in_codePageExpression6841); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 67, codePageExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "codePageExpression"
public static class weakAliasType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "weakAliasType"
// au/com/integradev/delphi/antlr/Delphi.g:593:1: weakAliasType : typeReference -> ^( TkWeakAlias typeReference ) ;
public final DelphiParser.weakAliasType_return weakAliasType() throws RecognitionException {
DelphiParser.weakAliasType_return retval = new DelphiParser.weakAliasType_return();
retval.start = input.LT(1);
int weakAliasType_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope typeReference281 =null;
RewriteRuleSubtreeStream stream_typeReference=new RewriteRuleSubtreeStream(adaptor,"rule typeReference");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 68) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:593:30: ( typeReference -> ^( TkWeakAlias typeReference ) )
// au/com/integradev/delphi/antlr/Delphi.g:593:32: typeReference
{
pushFollow(FOLLOW_typeReference_in_weakAliasType6894);
typeReference281=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeReference.add(typeReference281.getTree());
// AST REWRITE
// elements: typeReference
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 593:46: -> ^( TkWeakAlias typeReference )
{
// au/com/integradev/delphi/antlr/Delphi.g:593:49: ^( TkWeakAlias typeReference )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new WeakAliasTypeNodeImpl(TkWeakAlias), root_1);
adaptor.addChild(root_1, stream_typeReference.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 68, weakAliasType_StartIndex); }
}
return retval;
}
// $ANTLR end "weakAliasType"
public static class subRangeType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "subRangeType"
// au/com/integradev/delphi/antlr/Delphi.g:595:1: subRangeType : expression '..' ^ expression ;
public final DelphiParser.subRangeType_return subRangeType() throws RecognitionException {
DelphiParser.subRangeType_return retval = new DelphiParser.subRangeType_return();
retval.start = input.LT(1);
int subRangeType_StartIndex = input.index();
Object root_0 = null;
Token string_literal283=null;
ParserRuleReturnScope expression282 =null;
ParserRuleReturnScope expression284 =null;
Object string_literal283_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 69) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:595:30: ( expression '..' ^ expression )
// au/com/integradev/delphi/antlr/Delphi.g:595:32: expression '..' ^ expression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expression_in_subRangeType6958);
expression282=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression282.getTree());
string_literal283=(Token)match(input,DOT_DOT,FOLLOW_DOT_DOT_in_subRangeType6960); if (state.failed) return retval;
if ( state.backtracking==0 ) {
string_literal283_tree = new SubRangeTypeNodeImpl(string_literal283) ;
root_0 = (Object)adaptor.becomeRoot(string_literal283_tree, root_0);
}
pushFollow(FOLLOW_expression_in_subRangeType6966);
expression284=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression284.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 69, subRangeType_StartIndex); }
}
return retval;
}
// $ANTLR end "subRangeType"
public static class enumType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "enumType"
// au/com/integradev/delphi/antlr/Delphi.g:597:1: enumType : '(' ^ ( enumTypeElement ( ',' )? )* ')' !;
public final DelphiParser.enumType_return enumType() throws RecognitionException {
DelphiParser.enumType_return retval = new DelphiParser.enumType_return();
retval.start = input.LT(1);
int enumType_StartIndex = input.index();
Object root_0 = null;
Token char_literal285=null;
Token char_literal287=null;
Token char_literal288=null;
ParserRuleReturnScope enumTypeElement286 =null;
Object char_literal285_tree=null;
Object char_literal287_tree=null;
Object char_literal288_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 70) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:597:30: ( '(' ^ ( enumTypeElement ( ',' )? )* ')' !)
// au/com/integradev/delphi/antlr/Delphi.g:597:32: '(' ^ ( enumTypeElement ( ',' )? )* ')' !
{
root_0 = (Object)adaptor.nil();
char_literal285=(Token)match(input,PAREN_LEFT,FOLLOW_PAREN_LEFT_in_enumType7023); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal285_tree = new EnumTypeNodeImpl(char_literal285) ;
root_0 = (Object)adaptor.becomeRoot(char_literal285_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:597:55: ( enumTypeElement ( ',' )? )*
loop84:
while (true) {
int alt84=2;
int LA84_0 = input.LA(1);
if ( ((LA84_0 >= ABSOLUTE && LA84_0 <= ABSTRACT)||LA84_0==ALIGN||(LA84_0 >= ASSEMBLER && LA84_0 <= ASSEMBLY)||(LA84_0 >= AT && LA84_0 <= AUTOMATED)||LA84_0==CDECL||LA84_0==CONTAINS||(LA84_0 >= DEFAULT && LA84_0 <= DEPRECATED)||LA84_0==DISPID||LA84_0==DYNAMIC||(LA84_0 >= EXPERIMENTAL && LA84_0 <= EXPORT)||LA84_0==EXTERNAL||LA84_0==FAR||LA84_0==FINAL||LA84_0==FORWARD||LA84_0==HELPER||LA84_0==IMPLEMENTS||LA84_0==INDEX||LA84_0==LABEL||LA84_0==LOCAL||LA84_0==MESSAGE||(LA84_0 >= NAME && LA84_0 <= NEAR)||LA84_0==NODEFAULT||(LA84_0 >= ON && LA84_0 <= OPERATOR)||(LA84_0 >= OUT && LA84_0 <= OVERRIDE)||LA84_0==PACKAGE||(LA84_0 >= PASCAL && LA84_0 <= PLATFORM)||LA84_0==PRIVATE||(LA84_0 >= PROTECTED && LA84_0 <= PUBLISHED)||(LA84_0 >= READ && LA84_0 <= READONLY)||(LA84_0 >= REFERENCE && LA84_0 <= REINTRODUCE)||(LA84_0 >= REQUIRES && LA84_0 <= RESIDENT)||(LA84_0 >= SAFECALL && LA84_0 <= SEALED)||(LA84_0 >= STATIC && LA84_0 <= STRICT)||LA84_0==TkIdentifier||LA84_0==UNSAFE||(LA84_0 >= VARARGS && LA84_0 <= VIRTUAL)||LA84_0==WINAPI||(LA84_0 >= WRITE && LA84_0 <= WRITEONLY)) ) {
alt84=1;
}
switch (alt84) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:597:56: enumTypeElement ( ',' )?
{
pushFollow(FOLLOW_enumTypeElement_in_enumType7030);
enumTypeElement286=enumTypeElement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, enumTypeElement286.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:597:72: ( ',' )?
int alt83=2;
int LA83_0 = input.LA(1);
if ( (LA83_0==COMMA) ) {
alt83=1;
}
switch (alt83) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:597:73: ','
{
char_literal287=(Token)match(input,COMMA,FOLLOW_COMMA_in_enumType7033); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal287_tree = (Object)adaptor.create(char_literal287);
adaptor.addChild(root_0, char_literal287_tree);
}
}
break;
}
}
break;
default :
break loop84;
}
}
char_literal288=(Token)match(input,PAREN_RIGHT,FOLLOW_PAREN_RIGHT_in_enumType7039); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 70, enumType_StartIndex); }
}
return retval;
}
// $ANTLR end "enumType"
public static class enumTypeElement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "enumTypeElement"
// au/com/integradev/delphi/antlr/Delphi.g:599:1: enumTypeElement : nameDeclaration ( '=' expression )? -> ^( TkEnumElement nameDeclaration ( expression )? ) ;
public final DelphiParser.enumTypeElement_return enumTypeElement() throws RecognitionException {
DelphiParser.enumTypeElement_return retval = new DelphiParser.enumTypeElement_return();
retval.start = input.LT(1);
int enumTypeElement_StartIndex = input.index();
Object root_0 = null;
Token char_literal290=null;
ParserRuleReturnScope nameDeclaration289 =null;
ParserRuleReturnScope expression291 =null;
Object char_literal290_tree=null;
RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_nameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclaration");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 71) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:599:30: ( nameDeclaration ( '=' expression )? -> ^( TkEnumElement nameDeclaration ( expression )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:599:32: nameDeclaration ( '=' expression )?
{
pushFollow(FOLLOW_nameDeclaration_in_enumTypeElement7090);
nameDeclaration289=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclaration.add(nameDeclaration289.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:599:48: ( '=' expression )?
int alt85=2;
int LA85_0 = input.LA(1);
if ( (LA85_0==EQUAL) ) {
alt85=1;
}
switch (alt85) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:599:49: '=' expression
{
char_literal290=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_enumTypeElement7093); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EQUAL.add(char_literal290);
pushFollow(FOLLOW_expression_in_enumTypeElement7095);
expression291=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression291.getTree());
}
break;
}
// AST REWRITE
// elements: expression, nameDeclaration
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 599:66: -> ^( TkEnumElement nameDeclaration ( expression )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:599:69: ^( TkEnumElement nameDeclaration ( expression )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new EnumElementNodeImpl(TkEnumElement), root_1);
adaptor.addChild(root_1, stream_nameDeclaration.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:599:122: ( expression )?
if ( stream_expression.hasNext() ) {
adaptor.addChild(root_1, stream_expression.nextTree());
}
stream_expression.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 71, enumTypeElement_StartIndex); }
}
return retval;
}
// $ANTLR end "enumTypeElement"
public static class typeReference_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeReference"
// au/com/integradev/delphi/antlr/Delphi.g:601:1: typeReference : nameReference -> ^( TkTypeReference nameReference ) ;
public final DelphiParser.typeReference_return typeReference() throws RecognitionException {
DelphiParser.typeReference_return retval = new DelphiParser.typeReference_return();
retval.start = input.LT(1);
int typeReference_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope nameReference292 =null;
RewriteRuleSubtreeStream stream_nameReference=new RewriteRuleSubtreeStream(adaptor,"rule nameReference");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 72) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:601:30: ( nameReference -> ^( TkTypeReference nameReference ) )
// au/com/integradev/delphi/antlr/Delphi.g:601:32: nameReference
{
pushFollow(FOLLOW_nameReference_in_typeReference7163);
nameReference292=nameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameReference.add(nameReference292.getTree());
// AST REWRITE
// elements: nameReference
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 601:46: -> ^( TkTypeReference nameReference )
{
// au/com/integradev/delphi/antlr/Delphi.g:601:49: ^( TkTypeReference nameReference )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new TypeReferenceNodeImpl(TkTypeReference), root_1);
adaptor.addChild(root_1, stream_nameReference.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 72, typeReference_StartIndex); }
}
return retval;
}
// $ANTLR end "typeReference"
public static class typeReferenceOrString_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeReferenceOrString"
// au/com/integradev/delphi/antlr/Delphi.g:603:1: typeReferenceOrString : ( stringType | typeReference );
public final DelphiParser.typeReferenceOrString_return typeReferenceOrString() throws RecognitionException {
DelphiParser.typeReferenceOrString_return retval = new DelphiParser.typeReferenceOrString_return();
retval.start = input.LT(1);
int typeReferenceOrString_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope stringType293 =null;
ParserRuleReturnScope typeReference294 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 73) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:603:30: ( stringType | typeReference )
int alt86=2;
int LA86_0 = input.LA(1);
if ( (LA86_0==STRING) ) {
alt86=1;
}
else if ( ((LA86_0 >= ABSOLUTE && LA86_0 <= ABSTRACT)||LA86_0==ALIGN||(LA86_0 >= ASSEMBLER && LA86_0 <= ASSEMBLY)||(LA86_0 >= AT && LA86_0 <= AUTOMATED)||LA86_0==CDECL||LA86_0==CONTAINS||(LA86_0 >= DEFAULT && LA86_0 <= DEPRECATED)||LA86_0==DISPID||LA86_0==DYNAMIC||(LA86_0 >= EXPERIMENTAL && LA86_0 <= EXPORT)||LA86_0==EXTERNAL||LA86_0==FAR||LA86_0==FINAL||LA86_0==FORWARD||LA86_0==HELPER||LA86_0==IMPLEMENTS||LA86_0==INDEX||LA86_0==LABEL||LA86_0==LOCAL||LA86_0==MESSAGE||(LA86_0 >= NAME && LA86_0 <= NEAR)||LA86_0==NODEFAULT||(LA86_0 >= ON && LA86_0 <= OPERATOR)||(LA86_0 >= OUT && LA86_0 <= OVERRIDE)||LA86_0==PACKAGE||(LA86_0 >= PASCAL && LA86_0 <= PLATFORM)||LA86_0==PRIVATE||(LA86_0 >= PROTECTED && LA86_0 <= PUBLISHED)||(LA86_0 >= READ && LA86_0 <= READONLY)||(LA86_0 >= REFERENCE && LA86_0 <= REINTRODUCE)||(LA86_0 >= REQUIRES && LA86_0 <= RESIDENT)||(LA86_0 >= SAFECALL && LA86_0 <= SEALED)||(LA86_0 >= STATIC && LA86_0 <= STRICT)||LA86_0==TkIdentifier||LA86_0==UNSAFE||(LA86_0 >= VARARGS && LA86_0 <= VIRTUAL)||LA86_0==WINAPI||(LA86_0 >= WRITE && LA86_0 <= WRITEONLY)) ) {
alt86=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 86, 0, input);
throw nvae;
}
switch (alt86) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:603:32: stringType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_stringType_in_typeReferenceOrString7218);
stringType293=stringType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, stringType293.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:604:32: typeReference
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeReference_in_typeReferenceOrString7251);
typeReference294=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReference294.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 73, typeReferenceOrString_StartIndex); }
}
return retval;
}
// $ANTLR end "typeReferenceOrString"
public static class typeReferenceOrStringOrFile_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeReferenceOrStringOrFile"
// au/com/integradev/delphi/antlr/Delphi.g:606:1: typeReferenceOrStringOrFile : ( stringType | fileType | typeReference );
public final DelphiParser.typeReferenceOrStringOrFile_return typeReferenceOrStringOrFile() throws RecognitionException {
DelphiParser.typeReferenceOrStringOrFile_return retval = new DelphiParser.typeReferenceOrStringOrFile_return();
retval.start = input.LT(1);
int typeReferenceOrStringOrFile_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope stringType295 =null;
ParserRuleReturnScope fileType296 =null;
ParserRuleReturnScope typeReference297 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 74) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:606:30: ( stringType | fileType | typeReference )
int alt87=3;
switch ( input.LA(1) ) {
case STRING:
{
alt87=1;
}
break;
case FILE:
{
alt87=2;
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case TkIdentifier:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
alt87=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 87, 0, input);
throw nvae;
}
switch (alt87) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:606:32: stringType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_stringType_in_typeReferenceOrStringOrFile7289);
stringType295=stringType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, stringType295.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:607:32: fileType
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fileType_in_typeReferenceOrStringOrFile7322);
fileType296=fileType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, fileType296.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:608:32: typeReference
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeReference_in_typeReferenceOrStringOrFile7355);
typeReference297=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReference297.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 74, typeReferenceOrStringOrFile_StartIndex); }
}
return retval;
}
// $ANTLR end "typeReferenceOrStringOrFile"
public static class classReferenceType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "classReferenceType"
// au/com/integradev/delphi/antlr/Delphi.g:614:1: classReferenceType : CLASS ^ OF typeReference ;
public final DelphiParser.classReferenceType_return classReferenceType() throws RecognitionException {
DelphiParser.classReferenceType_return retval = new DelphiParser.classReferenceType_return();
retval.start = input.LT(1);
int classReferenceType_StartIndex = input.index();
Object root_0 = null;
Token CLASS298=null;
Token OF299=null;
ParserRuleReturnScope typeReference300 =null;
Object CLASS298_tree=null;
Object OF299_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 75) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:614:30: ( CLASS ^ OF typeReference )
// au/com/integradev/delphi/antlr/Delphi.g:614:32: CLASS ^ OF typeReference
{
root_0 = (Object)adaptor.nil();
CLASS298=(Token)match(input,CLASS,FOLLOW_CLASS_in_classReferenceType7406); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CLASS298_tree = new ClassReferenceTypeNodeImpl(CLASS298) ;
root_0 = (Object)adaptor.becomeRoot(CLASS298_tree, root_0);
}
OF299=(Token)match(input,OF,FOLLOW_OF_in_classReferenceType7412); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OF299_tree = (Object)adaptor.create(OF299);
adaptor.addChild(root_0, OF299_tree);
}
pushFollow(FOLLOW_typeReference_in_classReferenceType7414);
typeReference300=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReference300.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 75, classReferenceType_StartIndex); }
}
return retval;
}
// $ANTLR end "classReferenceType"
public static class classType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "classType"
// au/com/integradev/delphi/antlr/Delphi.g:616:1: classType : CLASS ( classState )? ( classParent )? ( ( visibilitySection )* END )? -> ^( CLASS ( classParent )? ( classState )? ( ( visibilitySection )* END )? ) ;
public final DelphiParser.classType_return classType() throws RecognitionException {
DelphiParser.classType_return retval = new DelphiParser.classType_return();
retval.start = input.LT(1);
int classType_StartIndex = input.index();
Object root_0 = null;
Token CLASS301=null;
Token END305=null;
ParserRuleReturnScope classState302 =null;
ParserRuleReturnScope classParent303 =null;
ParserRuleReturnScope visibilitySection304 =null;
Object CLASS301_tree=null;
Object END305_tree=null;
RewriteRuleTokenStream stream_END=new RewriteRuleTokenStream(adaptor,"token END");
RewriteRuleTokenStream stream_CLASS=new RewriteRuleTokenStream(adaptor,"token CLASS");
RewriteRuleSubtreeStream stream_classState=new RewriteRuleSubtreeStream(adaptor,"rule classState");
RewriteRuleSubtreeStream stream_visibilitySection=new RewriteRuleSubtreeStream(adaptor,"rule visibilitySection");
RewriteRuleSubtreeStream stream_classParent=new RewriteRuleSubtreeStream(adaptor,"rule classParent");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 76) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:616:30: ( CLASS ( classState )? ( classParent )? ( ( visibilitySection )* END )? -> ^( CLASS ( classParent )? ( classState )? ( ( visibilitySection )* END )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:616:32: CLASS ( classState )? ( classParent )? ( ( visibilitySection )* END )?
{
CLASS301=(Token)match(input,CLASS,FOLLOW_CLASS_in_classType7470); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CLASS.add(CLASS301);
// au/com/integradev/delphi/antlr/Delphi.g:616:38: ( classState )?
int alt88=2;
int LA88_0 = input.LA(1);
if ( (LA88_0==ABSTRACT||LA88_0==SEALED) ) {
int LA88_1 = input.LA(2);
if ( (LA88_1==EOF||(LA88_1 >= ABSOLUTE && LA88_1 <= ABSTRACT)||LA88_1==ALIGN||(LA88_1 >= ASSEMBLER && LA88_1 <= ASSEMBLY)||(LA88_1 >= AT && LA88_1 <= AUTOMATED)||(LA88_1 >= CDECL && LA88_1 <= CLASS)||(LA88_1 >= CONST && LA88_1 <= CONTAINS)||(LA88_1 >= DEFAULT && LA88_1 <= DEPRECATED)||(LA88_1 >= DESTRUCTOR && LA88_1 <= DISPID)||LA88_1==DYNAMIC||LA88_1==END||(LA88_1 >= EXPERIMENTAL && LA88_1 <= EXPORT)||LA88_1==EXTERNAL||LA88_1==FAR||LA88_1==FINAL||(LA88_1 >= FORWARD && LA88_1 <= FUNCTION)||LA88_1==HELPER||LA88_1==IMPLEMENTS||LA88_1==INDEX||LA88_1==LABEL||(LA88_1 >= LIBRARY && LA88_1 <= LOCAL)||LA88_1==MESSAGE||(LA88_1 >= NAME && LA88_1 <= NEAR)||LA88_1==NODEFAULT||(LA88_1 >= ON && LA88_1 <= OPERATOR)||(LA88_1 >= OUT && LA88_1 <= OVERRIDE)||LA88_1==PACKAGE||LA88_1==PAREN_BRACKET_LEFT||LA88_1==PAREN_LEFT||(LA88_1 >= PASCAL && LA88_1 <= PLATFORM)||(LA88_1 >= PRIVATE && LA88_1 <= PROCEDURE)||(LA88_1 >= PROPERTY && LA88_1 <= PUBLISHED)||(LA88_1 >= READ && LA88_1 <= READONLY)||(LA88_1 >= REFERENCE && LA88_1 <= REINTRODUCE)||(LA88_1 >= REQUIRES && LA88_1 <= RESOURCESTRING)||(LA88_1 >= SAFECALL && LA88_1 <= SEMICOLON)||LA88_1==SQUARE_BRACKET_LEFT||(LA88_1 >= STATIC && LA88_1 <= STRICT)||LA88_1==THREADVAR||LA88_1==TYPE||LA88_1==TkIdentifier||LA88_1==UNSAFE||(LA88_1 >= VAR && LA88_1 <= VIRTUAL)||LA88_1==WINAPI||(LA88_1 >= WRITE && LA88_1 <= WRITEONLY)) ) {
alt88=1;
}
}
switch (alt88) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:616:38: classState
{
pushFollow(FOLLOW_classState_in_classType7472);
classState302=classState();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_classState.add(classState302.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:616:50: ( classParent )?
int alt89=2;
int LA89_0 = input.LA(1);
if ( (LA89_0==PAREN_LEFT) ) {
alt89=1;
}
switch (alt89) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:616:50: classParent
{
pushFollow(FOLLOW_classParent_in_classType7475);
classParent303=classParent();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_classParent.add(classParent303.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:616:63: ( ( visibilitySection )* END )?
int alt91=2;
switch ( input.LA(1) ) {
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CLASS:
case CONST:
case CONSTRUCTOR:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DESTRUCTOR:
case DISPID:
case DYNAMIC:
case END:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case FUNCTION:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PAREN_BRACKET_LEFT:
case PASCAL:
case PRIVATE:
case PROCEDURE:
case PROPERTY:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case RESOURCESTRING:
case SAFECALL:
case SEALED:
case SQUARE_BRACKET_LEFT:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case THREADVAR:
case TYPE:
case TkIdentifier:
case UNSAFE:
case VAR:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
alt91=1;
}
break;
case DEPRECATED:
{
int LA91_2 = input.LA(2);
if ( ((LA91_2 >= COLON && LA91_2 <= COMMA)) ) {
alt91=1;
}
}
break;
case EXPERIMENTAL:
{
int LA91_3 = input.LA(2);
if ( ((LA91_3 >= COLON && LA91_3 <= COMMA)) ) {
alt91=1;
}
}
break;
case PLATFORM:
{
int LA91_4 = input.LA(2);
if ( ((LA91_4 >= COLON && LA91_4 <= COMMA)) ) {
alt91=1;
}
}
break;
}
switch (alt91) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:616:64: ( visibilitySection )* END
{
// au/com/integradev/delphi/antlr/Delphi.g:616:64: ( visibilitySection )*
loop90:
while (true) {
int alt90=2;
int LA90_0 = input.LA(1);
if ( ((LA90_0 >= ABSOLUTE && LA90_0 <= ABSTRACT)||LA90_0==ALIGN||(LA90_0 >= ASSEMBLER && LA90_0 <= ASSEMBLY)||(LA90_0 >= AT && LA90_0 <= AUTOMATED)||(LA90_0 >= CDECL && LA90_0 <= CLASS)||(LA90_0 >= CONST && LA90_0 <= CONTAINS)||(LA90_0 >= DEFAULT && LA90_0 <= DEPRECATED)||(LA90_0 >= DESTRUCTOR && LA90_0 <= DISPID)||LA90_0==DYNAMIC||(LA90_0 >= EXPERIMENTAL && LA90_0 <= EXPORT)||LA90_0==EXTERNAL||LA90_0==FAR||LA90_0==FINAL||(LA90_0 >= FORWARD && LA90_0 <= FUNCTION)||LA90_0==HELPER||LA90_0==IMPLEMENTS||LA90_0==INDEX||LA90_0==LABEL||LA90_0==LOCAL||LA90_0==MESSAGE||(LA90_0 >= NAME && LA90_0 <= NEAR)||LA90_0==NODEFAULT||(LA90_0 >= ON && LA90_0 <= OPERATOR)||(LA90_0 >= OUT && LA90_0 <= OVERRIDE)||LA90_0==PACKAGE||LA90_0==PAREN_BRACKET_LEFT||(LA90_0 >= PASCAL && LA90_0 <= PLATFORM)||(LA90_0 >= PRIVATE && LA90_0 <= PROCEDURE)||(LA90_0 >= PROPERTY && LA90_0 <= PUBLISHED)||(LA90_0 >= READ && LA90_0 <= READONLY)||(LA90_0 >= REFERENCE && LA90_0 <= REINTRODUCE)||(LA90_0 >= REQUIRES && LA90_0 <= RESOURCESTRING)||(LA90_0 >= SAFECALL && LA90_0 <= SEALED)||LA90_0==SQUARE_BRACKET_LEFT||(LA90_0 >= STATIC && LA90_0 <= STRICT)||LA90_0==THREADVAR||LA90_0==TYPE||LA90_0==TkIdentifier||LA90_0==UNSAFE||(LA90_0 >= VAR && LA90_0 <= VIRTUAL)||LA90_0==WINAPI||(LA90_0 >= WRITE && LA90_0 <= WRITEONLY)) ) {
alt90=1;
}
switch (alt90) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:616:64: visibilitySection
{
pushFollow(FOLLOW_visibilitySection_in_classType7479);
visibilitySection304=visibilitySection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_visibilitySection.add(visibilitySection304.getTree());
}
break;
default :
break loop90;
}
}
END305=(Token)match(input,END,FOLLOW_END_in_classType7482); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_END.add(END305);
}
break;
}
// AST REWRITE
// elements: classParent, visibilitySection, END, CLASS, classState
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 617:30: -> ^( CLASS ( classParent )? ( classState )? ( ( visibilitySection )* END )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:617:33: ^( CLASS ( classParent )? ( classState )? ( ( visibilitySection )* END )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ClassTypeNodeImpl(stream_CLASS.nextToken()), root_1);
// au/com/integradev/delphi/antlr/Delphi.g:617:60: ( classParent )?
if ( stream_classParent.hasNext() ) {
adaptor.addChild(root_1, stream_classParent.nextTree());
}
stream_classParent.reset();
// au/com/integradev/delphi/antlr/Delphi.g:617:73: ( classState )?
if ( stream_classState.hasNext() ) {
adaptor.addChild(root_1, stream_classState.nextTree());
}
stream_classState.reset();
// au/com/integradev/delphi/antlr/Delphi.g:617:85: ( ( visibilitySection )* END )?
if ( stream_visibilitySection.hasNext()||stream_END.hasNext() ) {
// au/com/integradev/delphi/antlr/Delphi.g:617:86: ( visibilitySection )*
while ( stream_visibilitySection.hasNext() ) {
adaptor.addChild(root_1, stream_visibilitySection.nextTree());
}
stream_visibilitySection.reset();
adaptor.addChild(root_1, stream_END.nextNode());
}
stream_visibilitySection.reset();
stream_END.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 76, classType_StartIndex); }
}
return retval;
}
// $ANTLR end "classType"
public static class classState_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "classState"
// au/com/integradev/delphi/antlr/Delphi.g:619:1: classState : ( SEALED | ABSTRACT );
public final DelphiParser.classState_return classState() throws RecognitionException {
DelphiParser.classState_return retval = new DelphiParser.classState_return();
retval.start = input.LT(1);
int classState_StartIndex = input.index();
Object root_0 = null;
Token set306=null;
Object set306_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 77) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:619:30: ( SEALED | ABSTRACT )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set306=input.LT(1);
if ( input.LA(1)==ABSTRACT||input.LA(1)==SEALED ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set306));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 77, classState_StartIndex); }
}
return retval;
}
// $ANTLR end "classState"
public static class classParent_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "classParent"
// au/com/integradev/delphi/antlr/Delphi.g:622:1: classParent : '(' typeReference ( ',' typeReference )* ')' -> ^( TkClassParents typeReference ( typeReference )* ) ;
public final DelphiParser.classParent_return classParent() throws RecognitionException {
DelphiParser.classParent_return retval = new DelphiParser.classParent_return();
retval.start = input.LT(1);
int classParent_StartIndex = input.index();
Object root_0 = null;
Token char_literal307=null;
Token char_literal309=null;
Token char_literal311=null;
ParserRuleReturnScope typeReference308 =null;
ParserRuleReturnScope typeReference310 =null;
Object char_literal307_tree=null;
Object char_literal309_tree=null;
Object char_literal311_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_PAREN_RIGHT=new RewriteRuleTokenStream(adaptor,"token PAREN_RIGHT");
RewriteRuleTokenStream stream_PAREN_LEFT=new RewriteRuleTokenStream(adaptor,"token PAREN_LEFT");
RewriteRuleSubtreeStream stream_typeReference=new RewriteRuleSubtreeStream(adaptor,"rule typeReference");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 78) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:622:30: ( '(' typeReference ( ',' typeReference )* ')' -> ^( TkClassParents typeReference ( typeReference )* ) )
// au/com/integradev/delphi/antlr/Delphi.g:622:32: '(' typeReference ( ',' typeReference )* ')'
{
char_literal307=(Token)match(input,PAREN_LEFT,FOLLOW_PAREN_LEFT_in_classParent7678); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PAREN_LEFT.add(char_literal307);
pushFollow(FOLLOW_typeReference_in_classParent7680);
typeReference308=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeReference.add(typeReference308.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:622:50: ( ',' typeReference )*
loop92:
while (true) {
int alt92=2;
int LA92_0 = input.LA(1);
if ( (LA92_0==COMMA) ) {
alt92=1;
}
switch (alt92) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:622:51: ',' typeReference
{
char_literal309=(Token)match(input,COMMA,FOLLOW_COMMA_in_classParent7683); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(char_literal309);
pushFollow(FOLLOW_typeReference_in_classParent7685);
typeReference310=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeReference.add(typeReference310.getTree());
}
break;
default :
break loop92;
}
}
char_literal311=(Token)match(input,PAREN_RIGHT,FOLLOW_PAREN_RIGHT_in_classParent7689); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PAREN_RIGHT.add(char_literal311);
// AST REWRITE
// elements: typeReference, typeReference
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 623:30: -> ^( TkClassParents typeReference ( typeReference )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:623:33: ^( TkClassParents typeReference ( typeReference )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new AncestorListNodeImpl(TkClassParents), root_1);
adaptor.addChild(root_1, stream_typeReference.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:623:86: ( typeReference )*
while ( stream_typeReference.hasNext() ) {
adaptor.addChild(root_1, stream_typeReference.nextTree());
}
stream_typeReference.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 78, classParent_StartIndex); }
}
return retval;
}
// $ANTLR end "classParent"
public static class visibilitySection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "visibilitySection"
// au/com/integradev/delphi/antlr/Delphi.g:625:1: visibilitySection : visibilitySection_ -> ^( TkVisibilitySection visibilitySection_ ) ;
public final DelphiParser.visibilitySection_return visibilitySection() throws RecognitionException {
DelphiParser.visibilitySection_return retval = new DelphiParser.visibilitySection_return();
retval.start = input.LT(1);
int visibilitySection_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope visibilitySection_312 =null;
RewriteRuleSubtreeStream stream_visibilitySection_=new RewriteRuleSubtreeStream(adaptor,"rule visibilitySection_");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 79) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:625:30: ( visibilitySection_ -> ^( TkVisibilitySection visibilitySection_ ) )
// au/com/integradev/delphi/antlr/Delphi.g:625:32: visibilitySection_
{
pushFollow(FOLLOW_visibilitySection__in_visibilitySection7780);
visibilitySection_312=visibilitySection_();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_visibilitySection_.add(visibilitySection_312.getTree());
// AST REWRITE
// elements: visibilitySection_
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 625:51: -> ^( TkVisibilitySection visibilitySection_ )
{
// au/com/integradev/delphi/antlr/Delphi.g:625:54: ^( TkVisibilitySection visibilitySection_ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new VisibilitySectionNodeImpl(TkVisibilitySection), root_1);
adaptor.addChild(root_1, stream_visibilitySection_.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 79, visibilitySection_StartIndex); }
}
return retval;
}
// $ANTLR end "visibilitySection"
public static class visibilitySection__return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "visibilitySection_"
// au/com/integradev/delphi/antlr/Delphi.g:627:1: visibilitySection_ : ( visibility ( visibilitySectionItem )* | ( visibilitySectionItem )+ );
public final DelphiParser.visibilitySection__return visibilitySection_() throws RecognitionException {
DelphiParser.visibilitySection__return retval = new DelphiParser.visibilitySection__return();
retval.start = input.LT(1);
int visibilitySection__StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope visibility313 =null;
ParserRuleReturnScope visibilitySectionItem314 =null;
ParserRuleReturnScope visibilitySectionItem315 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 80) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:627:30: ( visibility ( visibilitySectionItem )* | ( visibilitySectionItem )+ )
int alt95=2;
switch ( input.LA(1) ) {
case STRICT:
{
int LA95_1 = input.LA(2);
if ( (LA95_1==PRIVATE||LA95_1==PROTECTED) ) {
alt95=1;
}
else if ( ((LA95_1 >= COLON && LA95_1 <= COMMA)) ) {
alt95=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 95, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PROTECTED:
{
int LA95_2 = input.LA(2);
if ( (LA95_2==EOF||(LA95_2 >= ABSOLUTE && LA95_2 <= ABSTRACT)||LA95_2==ALIGN||(LA95_2 >= ASSEMBLER && LA95_2 <= ASSEMBLY)||(LA95_2 >= AT && LA95_2 <= AUTOMATED)||(LA95_2 >= CASE && LA95_2 <= CLASS)||(LA95_2 >= CONST && LA95_2 <= CONTAINS)||(LA95_2 >= DEFAULT && LA95_2 <= DEPRECATED)||(LA95_2 >= DESTRUCTOR && LA95_2 <= DISPID)||LA95_2==DYNAMIC||LA95_2==END||(LA95_2 >= EXPERIMENTAL && LA95_2 <= EXPORT)||LA95_2==EXTERNAL||LA95_2==FAR||LA95_2==FINAL||(LA95_2 >= FORWARD && LA95_2 <= FUNCTION)||LA95_2==HELPER||LA95_2==IMPLEMENTS||LA95_2==INDEX||LA95_2==LABEL||LA95_2==LOCAL||LA95_2==MESSAGE||(LA95_2 >= NAME && LA95_2 <= NEAR)||LA95_2==NODEFAULT||(LA95_2 >= ON && LA95_2 <= OPERATOR)||(LA95_2 >= OUT && LA95_2 <= OVERRIDE)||LA95_2==PACKAGE||LA95_2==PAREN_BRACKET_LEFT||(LA95_2 >= PASCAL && LA95_2 <= PLATFORM)||(LA95_2 >= PRIVATE && LA95_2 <= PROCEDURE)||(LA95_2 >= PROPERTY && LA95_2 <= PUBLISHED)||(LA95_2 >= READ && LA95_2 <= READONLY)||(LA95_2 >= REFERENCE && LA95_2 <= REINTRODUCE)||(LA95_2 >= REQUIRES && LA95_2 <= RESOURCESTRING)||(LA95_2 >= SAFECALL && LA95_2 <= SEALED)||LA95_2==SQUARE_BRACKET_LEFT||(LA95_2 >= STATIC && LA95_2 <= STRICT)||LA95_2==THREADVAR||LA95_2==TYPE||LA95_2==TkIdentifier||LA95_2==UNSAFE||(LA95_2 >= VAR && LA95_2 <= VIRTUAL)||LA95_2==WINAPI||(LA95_2 >= WRITE && LA95_2 <= WRITEONLY)) ) {
alt95=1;
}
else if ( ((LA95_2 >= COLON && LA95_2 <= COMMA)) ) {
alt95=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 95, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PRIVATE:
{
int LA95_3 = input.LA(2);
if ( (LA95_3==EOF||(LA95_3 >= ABSOLUTE && LA95_3 <= ABSTRACT)||LA95_3==ALIGN||(LA95_3 >= ASSEMBLER && LA95_3 <= ASSEMBLY)||(LA95_3 >= AT && LA95_3 <= AUTOMATED)||(LA95_3 >= CASE && LA95_3 <= CLASS)||(LA95_3 >= CONST && LA95_3 <= CONTAINS)||(LA95_3 >= DEFAULT && LA95_3 <= DEPRECATED)||(LA95_3 >= DESTRUCTOR && LA95_3 <= DISPID)||LA95_3==DYNAMIC||LA95_3==END||(LA95_3 >= EXPERIMENTAL && LA95_3 <= EXPORT)||LA95_3==EXTERNAL||LA95_3==FAR||LA95_3==FINAL||(LA95_3 >= FORWARD && LA95_3 <= FUNCTION)||LA95_3==HELPER||LA95_3==IMPLEMENTS||LA95_3==INDEX||LA95_3==LABEL||LA95_3==LOCAL||LA95_3==MESSAGE||(LA95_3 >= NAME && LA95_3 <= NEAR)||LA95_3==NODEFAULT||(LA95_3 >= ON && LA95_3 <= OPERATOR)||(LA95_3 >= OUT && LA95_3 <= OVERRIDE)||LA95_3==PACKAGE||LA95_3==PAREN_BRACKET_LEFT||(LA95_3 >= PASCAL && LA95_3 <= PLATFORM)||(LA95_3 >= PRIVATE && LA95_3 <= PROCEDURE)||(LA95_3 >= PROPERTY && LA95_3 <= PUBLISHED)||(LA95_3 >= READ && LA95_3 <= READONLY)||(LA95_3 >= REFERENCE && LA95_3 <= REINTRODUCE)||(LA95_3 >= REQUIRES && LA95_3 <= RESOURCESTRING)||(LA95_3 >= SAFECALL && LA95_3 <= SEALED)||LA95_3==SQUARE_BRACKET_LEFT||(LA95_3 >= STATIC && LA95_3 <= STRICT)||LA95_3==THREADVAR||LA95_3==TYPE||LA95_3==TkIdentifier||LA95_3==UNSAFE||(LA95_3 >= VAR && LA95_3 <= VIRTUAL)||LA95_3==WINAPI||(LA95_3 >= WRITE && LA95_3 <= WRITEONLY)) ) {
alt95=1;
}
else if ( ((LA95_3 >= COLON && LA95_3 <= COMMA)) ) {
alt95=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 95, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PUBLIC:
{
int LA95_4 = input.LA(2);
if ( (LA95_4==EOF||(LA95_4 >= ABSOLUTE && LA95_4 <= ABSTRACT)||LA95_4==ALIGN||(LA95_4 >= ASSEMBLER && LA95_4 <= ASSEMBLY)||(LA95_4 >= AT && LA95_4 <= AUTOMATED)||(LA95_4 >= CASE && LA95_4 <= CLASS)||(LA95_4 >= CONST && LA95_4 <= CONTAINS)||(LA95_4 >= DEFAULT && LA95_4 <= DEPRECATED)||(LA95_4 >= DESTRUCTOR && LA95_4 <= DISPID)||LA95_4==DYNAMIC||LA95_4==END||(LA95_4 >= EXPERIMENTAL && LA95_4 <= EXPORT)||LA95_4==EXTERNAL||LA95_4==FAR||LA95_4==FINAL||(LA95_4 >= FORWARD && LA95_4 <= FUNCTION)||LA95_4==HELPER||LA95_4==IMPLEMENTS||LA95_4==INDEX||LA95_4==LABEL||LA95_4==LOCAL||LA95_4==MESSAGE||(LA95_4 >= NAME && LA95_4 <= NEAR)||LA95_4==NODEFAULT||(LA95_4 >= ON && LA95_4 <= OPERATOR)||(LA95_4 >= OUT && LA95_4 <= OVERRIDE)||LA95_4==PACKAGE||LA95_4==PAREN_BRACKET_LEFT||(LA95_4 >= PASCAL && LA95_4 <= PLATFORM)||(LA95_4 >= PRIVATE && LA95_4 <= PROCEDURE)||(LA95_4 >= PROPERTY && LA95_4 <= PUBLISHED)||(LA95_4 >= READ && LA95_4 <= READONLY)||(LA95_4 >= REFERENCE && LA95_4 <= REINTRODUCE)||(LA95_4 >= REQUIRES && LA95_4 <= RESOURCESTRING)||(LA95_4 >= SAFECALL && LA95_4 <= SEALED)||LA95_4==SQUARE_BRACKET_LEFT||(LA95_4 >= STATIC && LA95_4 <= STRICT)||LA95_4==THREADVAR||LA95_4==TYPE||LA95_4==TkIdentifier||LA95_4==UNSAFE||(LA95_4 >= VAR && LA95_4 <= VIRTUAL)||LA95_4==WINAPI||(LA95_4 >= WRITE && LA95_4 <= WRITEONLY)) ) {
alt95=1;
}
else if ( ((LA95_4 >= COLON && LA95_4 <= COMMA)) ) {
alt95=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 95, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PUBLISHED:
{
int LA95_5 = input.LA(2);
if ( (LA95_5==EOF||(LA95_5 >= ABSOLUTE && LA95_5 <= ABSTRACT)||LA95_5==ALIGN||(LA95_5 >= ASSEMBLER && LA95_5 <= ASSEMBLY)||(LA95_5 >= AT && LA95_5 <= AUTOMATED)||(LA95_5 >= CASE && LA95_5 <= CLASS)||(LA95_5 >= CONST && LA95_5 <= CONTAINS)||(LA95_5 >= DEFAULT && LA95_5 <= DEPRECATED)||(LA95_5 >= DESTRUCTOR && LA95_5 <= DISPID)||LA95_5==DYNAMIC||LA95_5==END||(LA95_5 >= EXPERIMENTAL && LA95_5 <= EXPORT)||LA95_5==EXTERNAL||LA95_5==FAR||LA95_5==FINAL||(LA95_5 >= FORWARD && LA95_5 <= FUNCTION)||LA95_5==HELPER||LA95_5==IMPLEMENTS||LA95_5==INDEX||LA95_5==LABEL||LA95_5==LOCAL||LA95_5==MESSAGE||(LA95_5 >= NAME && LA95_5 <= NEAR)||LA95_5==NODEFAULT||(LA95_5 >= ON && LA95_5 <= OPERATOR)||(LA95_5 >= OUT && LA95_5 <= OVERRIDE)||LA95_5==PACKAGE||LA95_5==PAREN_BRACKET_LEFT||(LA95_5 >= PASCAL && LA95_5 <= PLATFORM)||(LA95_5 >= PRIVATE && LA95_5 <= PROCEDURE)||(LA95_5 >= PROPERTY && LA95_5 <= PUBLISHED)||(LA95_5 >= READ && LA95_5 <= READONLY)||(LA95_5 >= REFERENCE && LA95_5 <= REINTRODUCE)||(LA95_5 >= REQUIRES && LA95_5 <= RESOURCESTRING)||(LA95_5 >= SAFECALL && LA95_5 <= SEALED)||LA95_5==SQUARE_BRACKET_LEFT||(LA95_5 >= STATIC && LA95_5 <= STRICT)||LA95_5==THREADVAR||LA95_5==TYPE||LA95_5==TkIdentifier||LA95_5==UNSAFE||(LA95_5 >= VAR && LA95_5 <= VIRTUAL)||LA95_5==WINAPI||(LA95_5 >= WRITE && LA95_5 <= WRITEONLY)) ) {
alt95=1;
}
else if ( ((LA95_5 >= COLON && LA95_5 <= COMMA)) ) {
alt95=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 95, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case AUTOMATED:
{
int LA95_6 = input.LA(2);
if ( (LA95_6==EOF||(LA95_6 >= ABSOLUTE && LA95_6 <= ABSTRACT)||LA95_6==ALIGN||(LA95_6 >= ASSEMBLER && LA95_6 <= ASSEMBLY)||(LA95_6 >= AT && LA95_6 <= AUTOMATED)||(LA95_6 >= CASE && LA95_6 <= CLASS)||(LA95_6 >= CONST && LA95_6 <= CONTAINS)||(LA95_6 >= DEFAULT && LA95_6 <= DEPRECATED)||(LA95_6 >= DESTRUCTOR && LA95_6 <= DISPID)||LA95_6==DYNAMIC||LA95_6==END||(LA95_6 >= EXPERIMENTAL && LA95_6 <= EXPORT)||LA95_6==EXTERNAL||LA95_6==FAR||LA95_6==FINAL||(LA95_6 >= FORWARD && LA95_6 <= FUNCTION)||LA95_6==HELPER||LA95_6==IMPLEMENTS||LA95_6==INDEX||LA95_6==LABEL||LA95_6==LOCAL||LA95_6==MESSAGE||(LA95_6 >= NAME && LA95_6 <= NEAR)||LA95_6==NODEFAULT||(LA95_6 >= ON && LA95_6 <= OPERATOR)||(LA95_6 >= OUT && LA95_6 <= OVERRIDE)||LA95_6==PACKAGE||LA95_6==PAREN_BRACKET_LEFT||(LA95_6 >= PASCAL && LA95_6 <= PLATFORM)||(LA95_6 >= PRIVATE && LA95_6 <= PROCEDURE)||(LA95_6 >= PROPERTY && LA95_6 <= PUBLISHED)||(LA95_6 >= READ && LA95_6 <= READONLY)||(LA95_6 >= REFERENCE && LA95_6 <= REINTRODUCE)||(LA95_6 >= REQUIRES && LA95_6 <= RESOURCESTRING)||(LA95_6 >= SAFECALL && LA95_6 <= SEALED)||LA95_6==SQUARE_BRACKET_LEFT||(LA95_6 >= STATIC && LA95_6 <= STRICT)||LA95_6==THREADVAR||LA95_6==TYPE||LA95_6==TkIdentifier||LA95_6==UNSAFE||(LA95_6 >= VAR && LA95_6 <= VIRTUAL)||LA95_6==WINAPI||(LA95_6 >= WRITE && LA95_6 <= WRITEONLY)) ) {
alt95=1;
}
else if ( ((LA95_6 >= COLON && LA95_6 <= COMMA)) ) {
alt95=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 95, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case CDECL:
case CLASS:
case CONST:
case CONSTRUCTOR:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DESTRUCTOR:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case FUNCTION:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PAREN_BRACKET_LEFT:
case PASCAL:
case PLATFORM:
case PROCEDURE:
case PROPERTY:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case RESOURCESTRING:
case SAFECALL:
case SEALED:
case SQUARE_BRACKET_LEFT:
case STATIC:
case STDCALL:
case STORED:
case THREADVAR:
case TYPE:
case TkIdentifier:
case UNSAFE:
case VAR:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
alt95=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 95, 0, input);
throw nvae;
}
switch (alt95) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:627:32: visibility ( visibilitySectionItem )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_visibility_in_visibilitySection_7838);
visibility313=visibility();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, visibility313.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:627:43: ( visibilitySectionItem )*
loop93:
while (true) {
int alt93=2;
switch ( input.LA(1) ) {
case STRICT:
{
int LA93_2 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case PROTECTED:
{
int LA93_3 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case PRIVATE:
{
int LA93_4 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case PUBLIC:
{
int LA93_5 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case PUBLISHED:
{
int LA93_6 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case AUTOMATED:
{
int LA93_7 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case CLASS:
{
int LA93_8 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case THREADVAR:
case VAR:
{
int LA93_9 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA93_10 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case TkIdentifier:
{
int LA93_11 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case OPERATOR:
{
int LA93_12 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA93_13 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case FUNCTION:
{
int LA93_14 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case PROCEDURE:
{
int LA93_15 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case CONSTRUCTOR:
case DESTRUCTOR:
{
int LA93_16 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case PROPERTY:
{
int LA93_17 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case CONST:
{
int LA93_18 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case RESOURCESTRING:
{
int LA93_19 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
case TYPE:
{
int LA93_20 = input.LA(2);
if ( (synpred140_Delphi()) ) {
alt93=1;
}
}
break;
}
switch (alt93) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:627:43: visibilitySectionItem
{
pushFollow(FOLLOW_visibilitySectionItem_in_visibilitySection_7840);
visibilitySectionItem314=visibilitySectionItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, visibilitySectionItem314.getTree());
}
break;
default :
break loop93;
}
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:628:32: ( visibilitySectionItem )+
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:628:32: ( visibilitySectionItem )+
int cnt94=0;
loop94:
while (true) {
int alt94=2;
switch ( input.LA(1) ) {
case STRICT:
{
int LA94_2 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case PROTECTED:
{
int LA94_3 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case PRIVATE:
{
int LA94_4 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case PUBLIC:
{
int LA94_5 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case PUBLISHED:
{
int LA94_6 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case AUTOMATED:
{
int LA94_7 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case CLASS:
{
int LA94_8 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case THREADVAR:
case VAR:
{
int LA94_9 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA94_10 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case TkIdentifier:
{
int LA94_11 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case OPERATOR:
{
int LA94_12 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA94_13 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case FUNCTION:
{
int LA94_14 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case PROCEDURE:
{
int LA94_15 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case CONSTRUCTOR:
case DESTRUCTOR:
{
int LA94_16 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case PROPERTY:
{
int LA94_17 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case CONST:
{
int LA94_18 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case RESOURCESTRING:
{
int LA94_19 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
case TYPE:
{
int LA94_20 = input.LA(2);
if ( (synpred142_Delphi()) ) {
alt94=1;
}
}
break;
}
switch (alt94) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:628:32: visibilitySectionItem
{
pushFollow(FOLLOW_visibilitySectionItem_in_visibilitySection_7874);
visibilitySectionItem315=visibilitySectionItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, visibilitySectionItem315.getTree());
}
break;
default :
if ( cnt94 >= 1 ) break loop94;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(94, input);
throw eee;
}
cnt94++;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 80, visibilitySection__StartIndex); }
}
return retval;
}
// $ANTLR end "visibilitySection_"
public static class visibilitySectionItem_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "visibilitySectionItem"
// au/com/integradev/delphi/antlr/Delphi.g:630:1: visibilitySectionItem : ( fieldSection | routineInterface | methodResolutionClause | property | constSection | innerTypeSection );
public final DelphiParser.visibilitySectionItem_return visibilitySectionItem() throws RecognitionException {
DelphiParser.visibilitySectionItem_return retval = new DelphiParser.visibilitySectionItem_return();
retval.start = input.LT(1);
int visibilitySectionItem_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope fieldSection316 =null;
ParserRuleReturnScope routineInterface317 =null;
ParserRuleReturnScope methodResolutionClause318 =null;
ParserRuleReturnScope property319 =null;
ParserRuleReturnScope constSection320 =null;
ParserRuleReturnScope innerTypeSection321 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 81) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:630:30: ( fieldSection | routineInterface | methodResolutionClause | property | constSection | innerTypeSection )
int alt96=6;
switch ( input.LA(1) ) {
case CLASS:
{
int LA96_1 = input.LA(2);
if ( (synpred143_Delphi()) ) {
alt96=1;
}
else if ( (synpred144_Delphi()) ) {
alt96=2;
}
else if ( (synpred146_Delphi()) ) {
alt96=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 96, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case THREADVAR:
case TkIdentifier:
case UNSAFE:
case VAR:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
alt96=1;
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA96_3 = input.LA(2);
if ( (synpred143_Delphi()) ) {
alt96=1;
}
else if ( (synpred144_Delphi()) ) {
alt96=2;
}
else if ( (synpred146_Delphi()) ) {
alt96=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 96, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case OPERATOR:
{
int LA96_5 = input.LA(2);
if ( (synpred143_Delphi()) ) {
alt96=1;
}
else if ( (synpred144_Delphi()) ) {
alt96=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 96, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FUNCTION:
{
int LA96_7 = input.LA(2);
if ( (synpred144_Delphi()) ) {
alt96=2;
}
else if ( (synpred145_Delphi()) ) {
alt96=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 96, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PROCEDURE:
{
int LA96_8 = input.LA(2);
if ( (synpred144_Delphi()) ) {
alt96=2;
}
else if ( (synpred145_Delphi()) ) {
alt96=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 96, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CONSTRUCTOR:
case DESTRUCTOR:
{
alt96=2;
}
break;
case PROPERTY:
{
alt96=4;
}
break;
case CONST:
case RESOURCESTRING:
{
alt96=5;
}
break;
case TYPE:
{
alt96=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 96, 0, input);
throw nvae;
}
switch (alt96) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:630:32: fieldSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fieldSection_in_visibilitySectionItem7919);
fieldSection316=fieldSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, fieldSection316.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:631:32: routineInterface
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_routineInterface_in_visibilitySectionItem7952);
routineInterface317=routineInterface();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, routineInterface317.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:632:32: methodResolutionClause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_methodResolutionClause_in_visibilitySectionItem7985);
methodResolutionClause318=methodResolutionClause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, methodResolutionClause318.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:633:32: property
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_property_in_visibilitySectionItem8018);
property319=property();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, property319.getTree());
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:634:32: constSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_constSection_in_visibilitySectionItem8051);
constSection320=constSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, constSection320.getTree());
}
break;
case 6 :
// au/com/integradev/delphi/antlr/Delphi.g:635:32: innerTypeSection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_innerTypeSection_in_visibilitySectionItem8084);
innerTypeSection321=innerTypeSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, innerTypeSection321.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 81, visibilitySectionItem_StartIndex); }
}
return retval;
}
// $ANTLR end "visibilitySectionItem"
public static class fieldSectionKey_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "fieldSectionKey"
// au/com/integradev/delphi/antlr/Delphi.g:637:1: fieldSectionKey : ( VAR | THREADVAR );
public final DelphiParser.fieldSectionKey_return fieldSectionKey() throws RecognitionException {
DelphiParser.fieldSectionKey_return retval = new DelphiParser.fieldSectionKey_return();
retval.start = input.LT(1);
int fieldSectionKey_StartIndex = input.index();
Object root_0 = null;
Token set322=null;
Object set322_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 82) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:637:30: ( VAR | THREADVAR )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set322=input.LT(1);
if ( input.LA(1)==THREADVAR||input.LA(1)==VAR ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set322));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 82, fieldSectionKey_StartIndex); }
}
return retval;
}
// $ANTLR end "fieldSectionKey"
public static class fieldSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "fieldSection"
// au/com/integradev/delphi/antlr/Delphi.g:640:1: fieldSection : ( ( CLASS )? fieldSectionKey ( fieldDecl )* -> ^( TkFieldSection ( CLASS )? fieldSectionKey ( fieldDecl )* ) | ( fieldDecl )+ -> ^( TkFieldSection ( fieldDecl )+ ) );
public final DelphiParser.fieldSection_return fieldSection() throws RecognitionException {
DelphiParser.fieldSection_return retval = new DelphiParser.fieldSection_return();
retval.start = input.LT(1);
int fieldSection_StartIndex = input.index();
Object root_0 = null;
Token CLASS323=null;
ParserRuleReturnScope fieldSectionKey324 =null;
ParserRuleReturnScope fieldDecl325 =null;
ParserRuleReturnScope fieldDecl326 =null;
Object CLASS323_tree=null;
RewriteRuleTokenStream stream_CLASS=new RewriteRuleTokenStream(adaptor,"token CLASS");
RewriteRuleSubtreeStream stream_fieldSectionKey=new RewriteRuleSubtreeStream(adaptor,"rule fieldSectionKey");
RewriteRuleSubtreeStream stream_fieldDecl=new RewriteRuleSubtreeStream(adaptor,"rule fieldDecl");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 83) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:640:30: ( ( CLASS )? fieldSectionKey ( fieldDecl )* -> ^( TkFieldSection ( CLASS )? fieldSectionKey ( fieldDecl )* ) | ( fieldDecl )+ -> ^( TkFieldSection ( fieldDecl )+ ) )
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==CLASS||LA100_0==THREADVAR||LA100_0==VAR) ) {
alt100=1;
}
else if ( ((LA100_0 >= ABSOLUTE && LA100_0 <= ABSTRACT)||LA100_0==ALIGN||(LA100_0 >= ASSEMBLER && LA100_0 <= ASSEMBLY)||(LA100_0 >= AT && LA100_0 <= AUTOMATED)||LA100_0==CDECL||LA100_0==CONTAINS||(LA100_0 >= DEFAULT && LA100_0 <= DEPRECATED)||LA100_0==DISPID||LA100_0==DYNAMIC||(LA100_0 >= EXPERIMENTAL && LA100_0 <= EXPORT)||LA100_0==EXTERNAL||LA100_0==FAR||LA100_0==FINAL||LA100_0==FORWARD||LA100_0==HELPER||LA100_0==IMPLEMENTS||LA100_0==INDEX||LA100_0==LABEL||LA100_0==LOCAL||LA100_0==MESSAGE||(LA100_0 >= NAME && LA100_0 <= NEAR)||LA100_0==NODEFAULT||(LA100_0 >= ON && LA100_0 <= OPERATOR)||(LA100_0 >= OUT && LA100_0 <= OVERRIDE)||LA100_0==PACKAGE||LA100_0==PAREN_BRACKET_LEFT||(LA100_0 >= PASCAL && LA100_0 <= PLATFORM)||LA100_0==PRIVATE||(LA100_0 >= PROTECTED && LA100_0 <= PUBLISHED)||(LA100_0 >= READ && LA100_0 <= READONLY)||(LA100_0 >= REFERENCE && LA100_0 <= REINTRODUCE)||(LA100_0 >= REQUIRES && LA100_0 <= RESIDENT)||(LA100_0 >= SAFECALL && LA100_0 <= SEALED)||LA100_0==SQUARE_BRACKET_LEFT||(LA100_0 >= STATIC && LA100_0 <= STRICT)||LA100_0==TkIdentifier||LA100_0==UNSAFE||(LA100_0 >= VARARGS && LA100_0 <= VIRTUAL)||LA100_0==WINAPI||(LA100_0 >= WRITE && LA100_0 <= WRITEONLY)) ) {
alt100=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 100, 0, input);
throw nvae;
}
switch (alt100) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:640:32: ( CLASS )? fieldSectionKey ( fieldDecl )*
{
// au/com/integradev/delphi/antlr/Delphi.g:640:32: ( CLASS )?
int alt97=2;
int LA97_0 = input.LA(1);
if ( (LA97_0==CLASS) ) {
alt97=1;
}
switch (alt97) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:640:32: CLASS
{
CLASS323=(Token)match(input,CLASS,FOLLOW_CLASS_in_fieldSection8220); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CLASS.add(CLASS323);
}
break;
}
pushFollow(FOLLOW_fieldSectionKey_in_fieldSection8223);
fieldSectionKey324=fieldSectionKey();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_fieldSectionKey.add(fieldSectionKey324.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:640:55: ( fieldDecl )*
loop98:
while (true) {
int alt98=2;
switch ( input.LA(1) ) {
case STRICT:
{
int LA98_2 = input.LA(2);
if ( (synpred150_Delphi()) ) {
alt98=1;
}
}
break;
case PROTECTED:
{
int LA98_3 = input.LA(2);
if ( (synpred150_Delphi()) ) {
alt98=1;
}
}
break;
case PRIVATE:
{
int LA98_4 = input.LA(2);
if ( (synpred150_Delphi()) ) {
alt98=1;
}
}
break;
case PUBLIC:
{
int LA98_5 = input.LA(2);
if ( (synpred150_Delphi()) ) {
alt98=1;
}
}
break;
case PUBLISHED:
{
int LA98_6 = input.LA(2);
if ( (synpred150_Delphi()) ) {
alt98=1;
}
}
break;
case AUTOMATED:
{
int LA98_7 = input.LA(2);
if ( (synpred150_Delphi()) ) {
alt98=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA98_10 = input.LA(2);
if ( (synpred150_Delphi()) ) {
alt98=1;
}
}
break;
case TkIdentifier:
{
int LA98_11 = input.LA(2);
if ( (synpred150_Delphi()) ) {
alt98=1;
}
}
break;
case OPERATOR:
{
int LA98_12 = input.LA(2);
if ( (synpred150_Delphi()) ) {
alt98=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA98_13 = input.LA(2);
if ( (synpred150_Delphi()) ) {
alt98=1;
}
}
break;
}
switch (alt98) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:640:55: fieldDecl
{
pushFollow(FOLLOW_fieldDecl_in_fieldSection8225);
fieldDecl325=fieldDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_fieldDecl.add(fieldDecl325.getTree());
}
break;
default :
break loop98;
}
}
// AST REWRITE
// elements: fieldSectionKey, CLASS, fieldDecl
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 640:66: -> ^( TkFieldSection ( CLASS )? fieldSectionKey ( fieldDecl )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:640:69: ^( TkFieldSection ( CLASS )? fieldSectionKey ( fieldDecl )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new FieldSectionNodeImpl(TkFieldSection), root_1);
// au/com/integradev/delphi/antlr/Delphi.g:640:108: ( CLASS )?
if ( stream_CLASS.hasNext() ) {
adaptor.addChild(root_1, stream_CLASS.nextNode());
}
stream_CLASS.reset();
adaptor.addChild(root_1, stream_fieldSectionKey.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:640:131: ( fieldDecl )*
while ( stream_fieldDecl.hasNext() ) {
adaptor.addChild(root_1, stream_fieldDecl.nextTree());
}
stream_fieldDecl.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:641:32: ( fieldDecl )+
{
// au/com/integradev/delphi/antlr/Delphi.g:641:32: ( fieldDecl )+
int cnt99=0;
loop99:
while (true) {
int alt99=2;
switch ( input.LA(1) ) {
case STRICT:
{
int LA99_2 = input.LA(2);
if ( (synpred152_Delphi()) ) {
alt99=1;
}
}
break;
case PROTECTED:
{
int LA99_3 = input.LA(2);
if ( (synpred152_Delphi()) ) {
alt99=1;
}
}
break;
case PRIVATE:
{
int LA99_4 = input.LA(2);
if ( (synpred152_Delphi()) ) {
alt99=1;
}
}
break;
case PUBLIC:
{
int LA99_5 = input.LA(2);
if ( (synpred152_Delphi()) ) {
alt99=1;
}
}
break;
case PUBLISHED:
{
int LA99_6 = input.LA(2);
if ( (synpred152_Delphi()) ) {
alt99=1;
}
}
break;
case AUTOMATED:
{
int LA99_7 = input.LA(2);
if ( (synpred152_Delphi()) ) {
alt99=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA99_8 = input.LA(2);
if ( (synpred152_Delphi()) ) {
alt99=1;
}
}
break;
case TkIdentifier:
{
int LA99_9 = input.LA(2);
if ( (synpred152_Delphi()) ) {
alt99=1;
}
}
break;
case OPERATOR:
{
int LA99_10 = input.LA(2);
if ( (synpred152_Delphi()) ) {
alt99=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA99_11 = input.LA(2);
if ( (synpred152_Delphi()) ) {
alt99=1;
}
}
break;
}
switch (alt99) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:641:32: fieldDecl
{
pushFollow(FOLLOW_fieldDecl_in_fieldSection8276);
fieldDecl326=fieldDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_fieldDecl.add(fieldDecl326.getTree());
}
break;
default :
if ( cnt99 >= 1 ) break loop99;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(99, input);
throw eee;
}
cnt99++;
}
// AST REWRITE
// elements: fieldDecl
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 641:43: -> ^( TkFieldSection ( fieldDecl )+ )
{
// au/com/integradev/delphi/antlr/Delphi.g:641:46: ^( TkFieldSection ( fieldDecl )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new FieldSectionNodeImpl(TkFieldSection), root_1);
if ( !(stream_fieldDecl.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_fieldDecl.hasNext() ) {
adaptor.addChild(root_1, stream_fieldDecl.nextTree());
}
stream_fieldDecl.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 83, fieldSection_StartIndex); }
}
return retval;
}
// $ANTLR end "fieldSection"
public static class fieldDecl_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "fieldDecl"
// au/com/integradev/delphi/antlr/Delphi.g:643:1: fieldDecl : ( attributeList )? nameDeclarationList ':' varType ( portabilityDirective )* ( ';' )? -> ^( TkFieldDeclaration nameDeclarationList varType ( portabilityDirective )* ( attributeList )? ( ';' )? ) ;
public final DelphiParser.fieldDecl_return fieldDecl() throws RecognitionException {
DelphiParser.fieldDecl_return retval = new DelphiParser.fieldDecl_return();
retval.start = input.LT(1);
int fieldDecl_StartIndex = input.index();
Object root_0 = null;
Token char_literal329=null;
Token char_literal332=null;
ParserRuleReturnScope attributeList327 =null;
ParserRuleReturnScope nameDeclarationList328 =null;
ParserRuleReturnScope varType330 =null;
ParserRuleReturnScope portabilityDirective331 =null;
Object char_literal329_tree=null;
Object char_literal332_tree=null;
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_portabilityDirective=new RewriteRuleSubtreeStream(adaptor,"rule portabilityDirective");
RewriteRuleSubtreeStream stream_nameDeclarationList=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclarationList");
RewriteRuleSubtreeStream stream_varType=new RewriteRuleSubtreeStream(adaptor,"rule varType");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 84) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:643:30: ( ( attributeList )? nameDeclarationList ':' varType ( portabilityDirective )* ( ';' )? -> ^( TkFieldDeclaration nameDeclarationList varType ( portabilityDirective )* ( attributeList )? ( ';' )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:643:32: ( attributeList )? nameDeclarationList ':' varType ( portabilityDirective )* ( ';' )?
{
// au/com/integradev/delphi/antlr/Delphi.g:643:32: ( attributeList )?
int alt101=2;
int LA101_0 = input.LA(1);
if ( (LA101_0==PAREN_BRACKET_LEFT||LA101_0==SQUARE_BRACKET_LEFT) ) {
alt101=1;
}
switch (alt101) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:643:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_fieldDecl8345);
attributeList327=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList327.getTree());
}
break;
}
pushFollow(FOLLOW_nameDeclarationList_in_fieldDecl8348);
nameDeclarationList328=nameDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclarationList.add(nameDeclarationList328.getTree());
char_literal329=(Token)match(input,COLON,FOLLOW_COLON_in_fieldDecl8350); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal329);
pushFollow(FOLLOW_varType_in_fieldDecl8352);
varType330=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_varType.add(varType330.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:643:79: ( portabilityDirective )*
loop102:
while (true) {
int alt102=2;
switch ( input.LA(1) ) {
case DEPRECATED:
{
int LA102_2 = input.LA(2);
if ( (LA102_2==EOF||(LA102_2 >= ABSOLUTE && LA102_2 <= ABSTRACT)||LA102_2==ALIGN||(LA102_2 >= ASSEMBLER && LA102_2 <= ASSEMBLY)||(LA102_2 >= AT && LA102_2 <= AUTOMATED)||(LA102_2 >= CASE && LA102_2 <= CLASS)||(LA102_2 >= CONST && LA102_2 <= CONTAINS)||(LA102_2 >= DEFAULT && LA102_2 <= DISPID)||LA102_2==DYNAMIC||LA102_2==END||(LA102_2 >= EXPERIMENTAL && LA102_2 <= EXPORT)||LA102_2==EXTERNAL||LA102_2==FAR||LA102_2==FINAL||(LA102_2 >= FORWARD && LA102_2 <= FUNCTION)||LA102_2==HELPER||LA102_2==IMPLEMENTS||LA102_2==INDEX||LA102_2==LABEL||(LA102_2 >= LIBRARY && LA102_2 <= LOCAL)||LA102_2==MESSAGE||(LA102_2 >= NAME && LA102_2 <= NEAR)||LA102_2==NODEFAULT||(LA102_2 >= ON && LA102_2 <= OPERATOR)||(LA102_2 >= OUT && LA102_2 <= OVERRIDE)||LA102_2==PACKAGE||LA102_2==PAREN_BRACKET_LEFT||(LA102_2 >= PAREN_RIGHT && LA102_2 <= PLATFORM)||(LA102_2 >= PRIVATE && LA102_2 <= PROCEDURE)||(LA102_2 >= PROPERTY && LA102_2 <= PUBLISHED)||(LA102_2 >= READ && LA102_2 <= READONLY)||(LA102_2 >= REFERENCE && LA102_2 <= REINTRODUCE)||(LA102_2 >= REQUIRES && LA102_2 <= RESOURCESTRING)||(LA102_2 >= SAFECALL && LA102_2 <= SEMICOLON)||LA102_2==SQUARE_BRACKET_LEFT||(LA102_2 >= STATIC && LA102_2 <= STRICT)||LA102_2==THREADVAR||LA102_2==TYPE||LA102_2==TkCharacterEscapeCode||LA102_2==TkIdentifier||LA102_2==TkMultilineString||LA102_2==TkQuotedString||LA102_2==UNSAFE||(LA102_2 >= VAR && LA102_2 <= VIRTUAL)||LA102_2==WINAPI||(LA102_2 >= WRITE && LA102_2 <= WRITEONLY)) ) {
alt102=1;
}
}
break;
case EXPERIMENTAL:
{
int LA102_3 = input.LA(2);
if ( (LA102_3==EOF||(LA102_3 >= ABSOLUTE && LA102_3 <= ABSTRACT)||LA102_3==ALIGN||(LA102_3 >= ASSEMBLER && LA102_3 <= ASSEMBLY)||(LA102_3 >= AT && LA102_3 <= AUTOMATED)||(LA102_3 >= CASE && LA102_3 <= CLASS)||(LA102_3 >= CONST && LA102_3 <= CONTAINS)||(LA102_3 >= DEFAULT && LA102_3 <= DEPRECATED)||(LA102_3 >= DESTRUCTOR && LA102_3 <= DISPID)||LA102_3==DYNAMIC||LA102_3==END||(LA102_3 >= EXPERIMENTAL && LA102_3 <= EXPORT)||LA102_3==EXTERNAL||LA102_3==FAR||LA102_3==FINAL||(LA102_3 >= FORWARD && LA102_3 <= FUNCTION)||LA102_3==HELPER||LA102_3==IMPLEMENTS||LA102_3==INDEX||LA102_3==LABEL||(LA102_3 >= LIBRARY && LA102_3 <= LOCAL)||LA102_3==MESSAGE||(LA102_3 >= NAME && LA102_3 <= NEAR)||LA102_3==NODEFAULT||(LA102_3 >= ON && LA102_3 <= OPERATOR)||(LA102_3 >= OUT && LA102_3 <= OVERRIDE)||LA102_3==PACKAGE||LA102_3==PAREN_BRACKET_LEFT||(LA102_3 >= PAREN_RIGHT && LA102_3 <= PLATFORM)||(LA102_3 >= PRIVATE && LA102_3 <= PROCEDURE)||(LA102_3 >= PROPERTY && LA102_3 <= PUBLISHED)||(LA102_3 >= READ && LA102_3 <= READONLY)||(LA102_3 >= REFERENCE && LA102_3 <= REINTRODUCE)||(LA102_3 >= REQUIRES && LA102_3 <= RESOURCESTRING)||(LA102_3 >= SAFECALL && LA102_3 <= SEMICOLON)||LA102_3==SQUARE_BRACKET_LEFT||(LA102_3 >= STATIC && LA102_3 <= STRICT)||LA102_3==THREADVAR||LA102_3==TYPE||LA102_3==TkIdentifier||LA102_3==UNSAFE||(LA102_3 >= VAR && LA102_3 <= VIRTUAL)||LA102_3==WINAPI||(LA102_3 >= WRITE && LA102_3 <= WRITEONLY)) ) {
alt102=1;
}
}
break;
case PLATFORM:
{
int LA102_4 = input.LA(2);
if ( (LA102_4==EOF||(LA102_4 >= ABSOLUTE && LA102_4 <= ABSTRACT)||LA102_4==ALIGN||(LA102_4 >= ASSEMBLER && LA102_4 <= ASSEMBLY)||(LA102_4 >= AT && LA102_4 <= AUTOMATED)||(LA102_4 >= CASE && LA102_4 <= CLASS)||(LA102_4 >= CONST && LA102_4 <= CONTAINS)||(LA102_4 >= DEFAULT && LA102_4 <= DEPRECATED)||(LA102_4 >= DESTRUCTOR && LA102_4 <= DISPID)||LA102_4==DYNAMIC||LA102_4==END||(LA102_4 >= EXPERIMENTAL && LA102_4 <= EXPORT)||LA102_4==EXTERNAL||LA102_4==FAR||LA102_4==FINAL||(LA102_4 >= FORWARD && LA102_4 <= FUNCTION)||LA102_4==HELPER||LA102_4==IMPLEMENTS||LA102_4==INDEX||LA102_4==LABEL||(LA102_4 >= LIBRARY && LA102_4 <= LOCAL)||LA102_4==MESSAGE||(LA102_4 >= NAME && LA102_4 <= NEAR)||LA102_4==NODEFAULT||(LA102_4 >= ON && LA102_4 <= OPERATOR)||(LA102_4 >= OUT && LA102_4 <= OVERRIDE)||LA102_4==PACKAGE||LA102_4==PAREN_BRACKET_LEFT||(LA102_4 >= PAREN_RIGHT && LA102_4 <= PLATFORM)||(LA102_4 >= PRIVATE && LA102_4 <= PROCEDURE)||(LA102_4 >= PROPERTY && LA102_4 <= PUBLISHED)||(LA102_4 >= READ && LA102_4 <= READONLY)||(LA102_4 >= REFERENCE && LA102_4 <= REINTRODUCE)||(LA102_4 >= REQUIRES && LA102_4 <= RESOURCESTRING)||(LA102_4 >= SAFECALL && LA102_4 <= SEMICOLON)||LA102_4==SQUARE_BRACKET_LEFT||(LA102_4 >= STATIC && LA102_4 <= STRICT)||LA102_4==THREADVAR||LA102_4==TYPE||LA102_4==TkIdentifier||LA102_4==UNSAFE||(LA102_4 >= VAR && LA102_4 <= VIRTUAL)||LA102_4==WINAPI||(LA102_4 >= WRITE && LA102_4 <= WRITEONLY)) ) {
alt102=1;
}
}
break;
case LIBRARY:
{
alt102=1;
}
break;
}
switch (alt102) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:643:79: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_fieldDecl8354);
portabilityDirective331=portabilityDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_portabilityDirective.add(portabilityDirective331.getTree());
}
break;
default :
break loop102;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:643:101: ( ';' )?
int alt103=2;
int LA103_0 = input.LA(1);
if ( (LA103_0==SEMICOLON) ) {
alt103=1;
}
switch (alt103) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:643:101: ';'
{
char_literal332=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_fieldDecl8357); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal332);
}
break;
}
// AST REWRITE
// elements: attributeList, SEMICOLON, varType, nameDeclarationList, portabilityDirective
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 644:30: -> ^( TkFieldDeclaration nameDeclarationList varType ( portabilityDirective )* ( attributeList )? ( ';' )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:644:33: ^( TkFieldDeclaration nameDeclarationList varType ( portabilityDirective )* ( attributeList )? ( ';' )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new FieldDeclarationNodeImpl(TkFieldDeclaration), root_1);
adaptor.addChild(root_1, stream_nameDeclarationList.nextTree());
adaptor.addChild(root_1, stream_varType.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:644:108: ( portabilityDirective )*
while ( stream_portabilityDirective.hasNext() ) {
adaptor.addChild(root_1, stream_portabilityDirective.nextTree());
}
stream_portabilityDirective.reset();
// au/com/integradev/delphi/antlr/Delphi.g:644:130: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
// au/com/integradev/delphi/antlr/Delphi.g:644:145: ( ';' )?
if ( stream_SEMICOLON.hasNext() ) {
adaptor.addChild(root_1, stream_SEMICOLON.nextNode());
}
stream_SEMICOLON.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 84, fieldDecl_StartIndex); }
}
return retval;
}
// $ANTLR end "fieldDecl"
public static class classHelperType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "classHelperType"
// au/com/integradev/delphi/antlr/Delphi.g:646:1: classHelperType : CLASS ^ HELPER ( classParent )? FOR typeReference ( visibilitySection )* END ;
public final DelphiParser.classHelperType_return classHelperType() throws RecognitionException {
DelphiParser.classHelperType_return retval = new DelphiParser.classHelperType_return();
retval.start = input.LT(1);
int classHelperType_StartIndex = input.index();
Object root_0 = null;
Token CLASS333=null;
Token HELPER334=null;
Token FOR336=null;
Token END339=null;
ParserRuleReturnScope classParent335 =null;
ParserRuleReturnScope typeReference337 =null;
ParserRuleReturnScope visibilitySection338 =null;
Object CLASS333_tree=null;
Object HELPER334_tree=null;
Object FOR336_tree=null;
Object END339_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 85) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:646:30: ( CLASS ^ HELPER ( classParent )? FOR typeReference ( visibilitySection )* END )
// au/com/integradev/delphi/antlr/Delphi.g:646:32: CLASS ^ HELPER ( classParent )? FOR typeReference ( visibilitySection )* END
{
root_0 = (Object)adaptor.nil();
CLASS333=(Token)match(input,CLASS,FOLLOW_CLASS_in_classHelperType8459); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CLASS333_tree = new ClassHelperTypeNodeImpl(CLASS333) ;
root_0 = (Object)adaptor.becomeRoot(CLASS333_tree, root_0);
}
HELPER334=(Token)match(input,HELPER,FOLLOW_HELPER_in_classHelperType8465); if (state.failed) return retval;
if ( state.backtracking==0 ) {
HELPER334_tree = (Object)adaptor.create(HELPER334);
adaptor.addChild(root_0, HELPER334_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:646:71: ( classParent )?
int alt104=2;
int LA104_0 = input.LA(1);
if ( (LA104_0==PAREN_LEFT) ) {
alt104=1;
}
switch (alt104) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:646:71: classParent
{
pushFollow(FOLLOW_classParent_in_classHelperType8467);
classParent335=classParent();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, classParent335.getTree());
}
break;
}
FOR336=(Token)match(input,FOR,FOLLOW_FOR_in_classHelperType8470); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FOR336_tree = (Object)adaptor.create(FOR336);
adaptor.addChild(root_0, FOR336_tree);
}
pushFollow(FOLLOW_typeReference_in_classHelperType8472);
typeReference337=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReference337.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:646:102: ( visibilitySection )*
loop105:
while (true) {
int alt105=2;
int LA105_0 = input.LA(1);
if ( ((LA105_0 >= ABSOLUTE && LA105_0 <= ABSTRACT)||LA105_0==ALIGN||(LA105_0 >= ASSEMBLER && LA105_0 <= ASSEMBLY)||(LA105_0 >= AT && LA105_0 <= AUTOMATED)||(LA105_0 >= CDECL && LA105_0 <= CLASS)||(LA105_0 >= CONST && LA105_0 <= CONTAINS)||(LA105_0 >= DEFAULT && LA105_0 <= DEPRECATED)||(LA105_0 >= DESTRUCTOR && LA105_0 <= DISPID)||LA105_0==DYNAMIC||(LA105_0 >= EXPERIMENTAL && LA105_0 <= EXPORT)||LA105_0==EXTERNAL||LA105_0==FAR||LA105_0==FINAL||(LA105_0 >= FORWARD && LA105_0 <= FUNCTION)||LA105_0==HELPER||LA105_0==IMPLEMENTS||LA105_0==INDEX||LA105_0==LABEL||LA105_0==LOCAL||LA105_0==MESSAGE||(LA105_0 >= NAME && LA105_0 <= NEAR)||LA105_0==NODEFAULT||(LA105_0 >= ON && LA105_0 <= OPERATOR)||(LA105_0 >= OUT && LA105_0 <= OVERRIDE)||LA105_0==PACKAGE||LA105_0==PAREN_BRACKET_LEFT||(LA105_0 >= PASCAL && LA105_0 <= PLATFORM)||(LA105_0 >= PRIVATE && LA105_0 <= PROCEDURE)||(LA105_0 >= PROPERTY && LA105_0 <= PUBLISHED)||(LA105_0 >= READ && LA105_0 <= READONLY)||(LA105_0 >= REFERENCE && LA105_0 <= REINTRODUCE)||(LA105_0 >= REQUIRES && LA105_0 <= RESOURCESTRING)||(LA105_0 >= SAFECALL && LA105_0 <= SEALED)||LA105_0==SQUARE_BRACKET_LEFT||(LA105_0 >= STATIC && LA105_0 <= STRICT)||LA105_0==THREADVAR||LA105_0==TYPE||LA105_0==TkIdentifier||LA105_0==UNSAFE||(LA105_0 >= VAR && LA105_0 <= VIRTUAL)||LA105_0==WINAPI||(LA105_0 >= WRITE && LA105_0 <= WRITEONLY)) ) {
alt105=1;
}
switch (alt105) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:646:102: visibilitySection
{
pushFollow(FOLLOW_visibilitySection_in_classHelperType8474);
visibilitySection338=visibilitySection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, visibilitySection338.getTree());
}
break;
default :
break loop105;
}
}
END339=(Token)match(input,END,FOLLOW_END_in_classHelperType8477); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END339_tree = (Object)adaptor.create(END339);
adaptor.addChild(root_0, END339_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 85, classHelperType_StartIndex); }
}
return retval;
}
// $ANTLR end "classHelperType"
public static class interfaceType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "interfaceType"
// au/com/integradev/delphi/antlr/Delphi.g:648:1: interfaceType : ( INTERFACE ^| DISPINTERFACE ^) ( classParent )? ( ( interfaceGuid )? ( interfaceItems )? END )? ;
public final DelphiParser.interfaceType_return interfaceType() throws RecognitionException {
DelphiParser.interfaceType_return retval = new DelphiParser.interfaceType_return();
retval.start = input.LT(1);
int interfaceType_StartIndex = input.index();
Object root_0 = null;
Token INTERFACE340=null;
Token DISPINTERFACE341=null;
Token END345=null;
ParserRuleReturnScope classParent342 =null;
ParserRuleReturnScope interfaceGuid343 =null;
ParserRuleReturnScope interfaceItems344 =null;
Object INTERFACE340_tree=null;
Object DISPINTERFACE341_tree=null;
Object END345_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 86) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:648:30: ( ( INTERFACE ^| DISPINTERFACE ^) ( classParent )? ( ( interfaceGuid )? ( interfaceItems )? END )? )
// au/com/integradev/delphi/antlr/Delphi.g:648:32: ( INTERFACE ^| DISPINTERFACE ^) ( classParent )? ( ( interfaceGuid )? ( interfaceItems )? END )?
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:648:32: ( INTERFACE ^| DISPINTERFACE ^)
int alt106=2;
int LA106_0 = input.LA(1);
if ( (LA106_0==INTERFACE) ) {
alt106=1;
}
else if ( (LA106_0==DISPINTERFACE) ) {
alt106=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 106, 0, input);
throw nvae;
}
switch (alt106) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:648:33: INTERFACE ^
{
INTERFACE340=(Token)match(input,INTERFACE,FOLLOW_INTERFACE_in_interfaceType8530); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INTERFACE340_tree = new InterfaceTypeNodeImpl(INTERFACE340) ;
root_0 = (Object)adaptor.becomeRoot(INTERFACE340_tree, root_0);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:648:69: DISPINTERFACE ^
{
DISPINTERFACE341=(Token)match(input,DISPINTERFACE,FOLLOW_DISPINTERFACE_in_interfaceType8538); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DISPINTERFACE341_tree = new InterfaceTypeNodeImpl(DISPINTERFACE341) ;
root_0 = (Object)adaptor.becomeRoot(DISPINTERFACE341_tree, root_0);
}
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:648:108: ( classParent )?
int alt107=2;
int LA107_0 = input.LA(1);
if ( (LA107_0==PAREN_LEFT) ) {
alt107=1;
}
switch (alt107) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:648:108: classParent
{
pushFollow(FOLLOW_classParent_in_interfaceType8545);
classParent342=classParent();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, classParent342.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:648:121: ( ( interfaceGuid )? ( interfaceItems )? END )?
int alt110=2;
int LA110_0 = input.LA(1);
if ( (LA110_0==CLASS||LA110_0==CONSTRUCTOR||LA110_0==DESTRUCTOR||LA110_0==END||LA110_0==FUNCTION||LA110_0==OPERATOR||LA110_0==PAREN_BRACKET_LEFT||LA110_0==PROCEDURE||LA110_0==PROPERTY||LA110_0==SQUARE_BRACKET_LEFT) ) {
alt110=1;
}
switch (alt110) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:648:122: ( interfaceGuid )? ( interfaceItems )? END
{
// au/com/integradev/delphi/antlr/Delphi.g:648:122: ( interfaceGuid )?
int alt108=2;
int LA108_0 = input.LA(1);
if ( (LA108_0==PAREN_BRACKET_LEFT||LA108_0==SQUARE_BRACKET_LEFT) ) {
int LA108_1 = input.LA(2);
if ( (synpred160_Delphi()) ) {
alt108=1;
}
}
switch (alt108) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:648:122: interfaceGuid
{
pushFollow(FOLLOW_interfaceGuid_in_interfaceType8549);
interfaceGuid343=interfaceGuid();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceGuid343.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:648:137: ( interfaceItems )?
int alt109=2;
int LA109_0 = input.LA(1);
if ( (LA109_0==CLASS||LA109_0==CONSTRUCTOR||LA109_0==DESTRUCTOR||LA109_0==FUNCTION||LA109_0==OPERATOR||LA109_0==PAREN_BRACKET_LEFT||LA109_0==PROCEDURE||LA109_0==PROPERTY||LA109_0==SQUARE_BRACKET_LEFT) ) {
alt109=1;
}
switch (alt109) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:648:137: interfaceItems
{
pushFollow(FOLLOW_interfaceItems_in_interfaceType8552);
interfaceItems344=interfaceItems();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceItems344.getTree());
}
break;
}
END345=(Token)match(input,END,FOLLOW_END_in_interfaceType8555); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END345_tree = (Object)adaptor.create(END345);
adaptor.addChild(root_0, END345_tree);
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 86, interfaceType_StartIndex); }
}
return retval;
}
// $ANTLR end "interfaceType"
public static class interfaceGuid_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "interfaceGuid"
// au/com/integradev/delphi/antlr/Delphi.g:650:1: interfaceGuid : lbrack expression rbrack -> ^( TkGuid expression ) ;
public final DelphiParser.interfaceGuid_return interfaceGuid() throws RecognitionException {
DelphiParser.interfaceGuid_return retval = new DelphiParser.interfaceGuid_return();
retval.start = input.LT(1);
int interfaceGuid_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope lbrack346 =null;
ParserRuleReturnScope expression347 =null;
ParserRuleReturnScope rbrack348 =null;
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_rbrack=new RewriteRuleSubtreeStream(adaptor,"rule rbrack");
RewriteRuleSubtreeStream stream_lbrack=new RewriteRuleSubtreeStream(adaptor,"rule lbrack");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 87) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:650:30: ( lbrack expression rbrack -> ^( TkGuid expression ) )
// au/com/integradev/delphi/antlr/Delphi.g:650:32: lbrack expression rbrack
{
pushFollow(FOLLOW_lbrack_in_interfaceGuid8609);
lbrack346=lbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lbrack.add(lbrack346.getTree());
pushFollow(FOLLOW_expression_in_interfaceGuid8611);
expression347=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression347.getTree());
pushFollow(FOLLOW_rbrack_in_interfaceGuid8613);
rbrack348=rbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rbrack.add(rbrack348.getTree());
// AST REWRITE
// elements: expression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 650:57: -> ^( TkGuid expression )
{
// au/com/integradev/delphi/antlr/Delphi.g:650:60: ^( TkGuid expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new InterfaceGuidNodeImpl(TkGuid), root_1);
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 87, interfaceGuid_StartIndex); }
}
return retval;
}
// $ANTLR end "interfaceGuid"
public static class interfaceItems_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "interfaceItems"
// au/com/integradev/delphi/antlr/Delphi.g:652:1: interfaceItems : ( interfaceItem )+ -> ^( TkVisibilitySection ( interfaceItem )+ ) ;
public final DelphiParser.interfaceItems_return interfaceItems() throws RecognitionException {
DelphiParser.interfaceItems_return retval = new DelphiParser.interfaceItems_return();
retval.start = input.LT(1);
int interfaceItems_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope interfaceItem349 =null;
RewriteRuleSubtreeStream stream_interfaceItem=new RewriteRuleSubtreeStream(adaptor,"rule interfaceItem");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 88) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:652:30: ( ( interfaceItem )+ -> ^( TkVisibilitySection ( interfaceItem )+ ) )
// au/com/integradev/delphi/antlr/Delphi.g:652:32: ( interfaceItem )+
{
// au/com/integradev/delphi/antlr/Delphi.g:652:32: ( interfaceItem )+
int cnt111=0;
loop111:
while (true) {
int alt111=2;
int LA111_0 = input.LA(1);
if ( (LA111_0==CLASS||LA111_0==CONSTRUCTOR||LA111_0==DESTRUCTOR||LA111_0==FUNCTION||LA111_0==OPERATOR||LA111_0==PAREN_BRACKET_LEFT||LA111_0==PROCEDURE||LA111_0==PROPERTY||LA111_0==SQUARE_BRACKET_LEFT) ) {
alt111=1;
}
switch (alt111) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:652:32: interfaceItem
{
pushFollow(FOLLOW_interfaceItem_in_interfaceItems8675);
interfaceItem349=interfaceItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_interfaceItem.add(interfaceItem349.getTree());
}
break;
default :
if ( cnt111 >= 1 ) break loop111;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(111, input);
throw eee;
}
cnt111++;
}
// AST REWRITE
// elements: interfaceItem
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 652:47: -> ^( TkVisibilitySection ( interfaceItem )+ )
{
// au/com/integradev/delphi/antlr/Delphi.g:652:50: ^( TkVisibilitySection ( interfaceItem )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new VisibilitySectionNodeImpl(TkVisibilitySection), root_1);
if ( !(stream_interfaceItem.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_interfaceItem.hasNext() ) {
adaptor.addChild(root_1, stream_interfaceItem.nextTree());
}
stream_interfaceItem.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 88, interfaceItems_StartIndex); }
}
return retval;
}
// $ANTLR end "interfaceItems"
public static class interfaceItem_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "interfaceItem"
// au/com/integradev/delphi/antlr/Delphi.g:654:1: interfaceItem : ( routineInterface | property );
public final DelphiParser.interfaceItem_return interfaceItem() throws RecognitionException {
DelphiParser.interfaceItem_return retval = new DelphiParser.interfaceItem_return();
retval.start = input.LT(1);
int interfaceItem_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope routineInterface350 =null;
ParserRuleReturnScope property351 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 89) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:654:30: ( routineInterface | property )
int alt112=2;
switch ( input.LA(1) ) {
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA112_1 = input.LA(2);
if ( (synpred164_Delphi()) ) {
alt112=1;
}
else if ( (true) ) {
alt112=2;
}
}
break;
case CLASS:
{
int LA112_2 = input.LA(2);
if ( (synpred164_Delphi()) ) {
alt112=1;
}
else if ( (true) ) {
alt112=2;
}
}
break;
case CONSTRUCTOR:
case DESTRUCTOR:
case FUNCTION:
case OPERATOR:
case PROCEDURE:
{
alt112=1;
}
break;
case PROPERTY:
{
alt112=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 112, 0, input);
throw nvae;
}
switch (alt112) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:654:32: routineInterface
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_routineInterface_in_interfaceItem8740);
routineInterface350=routineInterface();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, routineInterface350.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:655:32: property
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_property_in_interfaceItem8773);
property351=property();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, property351.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 89, interfaceItem_StartIndex); }
}
return retval;
}
// $ANTLR end "interfaceItem"
public static class objectType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "objectType"
// au/com/integradev/delphi/antlr/Delphi.g:657:1: objectType : OBJECT ^ ( classParent )? ( visibilitySection )* END ;
public final DelphiParser.objectType_return objectType() throws RecognitionException {
DelphiParser.objectType_return retval = new DelphiParser.objectType_return();
retval.start = input.LT(1);
int objectType_StartIndex = input.index();
Object root_0 = null;
Token OBJECT352=null;
Token END355=null;
ParserRuleReturnScope classParent353 =null;
ParserRuleReturnScope visibilitySection354 =null;
Object OBJECT352_tree=null;
Object END355_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 90) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:657:30: ( OBJECT ^ ( classParent )? ( visibilitySection )* END )
// au/com/integradev/delphi/antlr/Delphi.g:657:32: OBJECT ^ ( classParent )? ( visibilitySection )* END
{
root_0 = (Object)adaptor.nil();
OBJECT352=(Token)match(input,OBJECT,FOLLOW_OBJECT_in_objectType8828); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OBJECT352_tree = new ObjectTypeNodeImpl(OBJECT352) ;
root_0 = (Object)adaptor.becomeRoot(OBJECT352_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:657:60: ( classParent )?
int alt113=2;
int LA113_0 = input.LA(1);
if ( (LA113_0==PAREN_LEFT) ) {
alt113=1;
}
switch (alt113) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:657:60: classParent
{
pushFollow(FOLLOW_classParent_in_objectType8834);
classParent353=classParent();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, classParent353.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:657:73: ( visibilitySection )*
loop114:
while (true) {
int alt114=2;
int LA114_0 = input.LA(1);
if ( ((LA114_0 >= ABSOLUTE && LA114_0 <= ABSTRACT)||LA114_0==ALIGN||(LA114_0 >= ASSEMBLER && LA114_0 <= ASSEMBLY)||(LA114_0 >= AT && LA114_0 <= AUTOMATED)||(LA114_0 >= CDECL && LA114_0 <= CLASS)||(LA114_0 >= CONST && LA114_0 <= CONTAINS)||(LA114_0 >= DEFAULT && LA114_0 <= DEPRECATED)||(LA114_0 >= DESTRUCTOR && LA114_0 <= DISPID)||LA114_0==DYNAMIC||(LA114_0 >= EXPERIMENTAL && LA114_0 <= EXPORT)||LA114_0==EXTERNAL||LA114_0==FAR||LA114_0==FINAL||(LA114_0 >= FORWARD && LA114_0 <= FUNCTION)||LA114_0==HELPER||LA114_0==IMPLEMENTS||LA114_0==INDEX||LA114_0==LABEL||LA114_0==LOCAL||LA114_0==MESSAGE||(LA114_0 >= NAME && LA114_0 <= NEAR)||LA114_0==NODEFAULT||(LA114_0 >= ON && LA114_0 <= OPERATOR)||(LA114_0 >= OUT && LA114_0 <= OVERRIDE)||LA114_0==PACKAGE||LA114_0==PAREN_BRACKET_LEFT||(LA114_0 >= PASCAL && LA114_0 <= PLATFORM)||(LA114_0 >= PRIVATE && LA114_0 <= PROCEDURE)||(LA114_0 >= PROPERTY && LA114_0 <= PUBLISHED)||(LA114_0 >= READ && LA114_0 <= READONLY)||(LA114_0 >= REFERENCE && LA114_0 <= REINTRODUCE)||(LA114_0 >= REQUIRES && LA114_0 <= RESOURCESTRING)||(LA114_0 >= SAFECALL && LA114_0 <= SEALED)||LA114_0==SQUARE_BRACKET_LEFT||(LA114_0 >= STATIC && LA114_0 <= STRICT)||LA114_0==THREADVAR||LA114_0==TYPE||LA114_0==TkIdentifier||LA114_0==UNSAFE||(LA114_0 >= VAR && LA114_0 <= VIRTUAL)||LA114_0==WINAPI||(LA114_0 >= WRITE && LA114_0 <= WRITEONLY)) ) {
alt114=1;
}
switch (alt114) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:657:73: visibilitySection
{
pushFollow(FOLLOW_visibilitySection_in_objectType8837);
visibilitySection354=visibilitySection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, visibilitySection354.getTree());
}
break;
default :
break loop114;
}
}
END355=(Token)match(input,END,FOLLOW_END_in_objectType8840); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END355_tree = (Object)adaptor.create(END355);
adaptor.addChild(root_0, END355_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 90, objectType_StartIndex); }
}
return retval;
}
// $ANTLR end "objectType"
public static class recordType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "recordType"
// au/com/integradev/delphi/antlr/Delphi.g:659:1: recordType : RECORD ^ ( visibilitySection )* ( recordVariantSection )? END ( ALIGN expression )? ;
public final DelphiParser.recordType_return recordType() throws RecognitionException {
DelphiParser.recordType_return retval = new DelphiParser.recordType_return();
retval.start = input.LT(1);
int recordType_StartIndex = input.index();
Object root_0 = null;
Token RECORD356=null;
Token END359=null;
Token ALIGN360=null;
ParserRuleReturnScope visibilitySection357 =null;
ParserRuleReturnScope recordVariantSection358 =null;
ParserRuleReturnScope expression361 =null;
Object RECORD356_tree=null;
Object END359_tree=null;
Object ALIGN360_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 91) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:659:30: ( RECORD ^ ( visibilitySection )* ( recordVariantSection )? END ( ALIGN expression )? )
// au/com/integradev/delphi/antlr/Delphi.g:659:32: RECORD ^ ( visibilitySection )* ( recordVariantSection )? END ( ALIGN expression )?
{
root_0 = (Object)adaptor.nil();
RECORD356=(Token)match(input,RECORD,FOLLOW_RECORD_in_recordType8961); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RECORD356_tree = new RecordTypeNodeImpl(RECORD356) ;
root_0 = (Object)adaptor.becomeRoot(RECORD356_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:659:60: ( visibilitySection )*
loop115:
while (true) {
int alt115=2;
int LA115_0 = input.LA(1);
if ( ((LA115_0 >= ABSOLUTE && LA115_0 <= ABSTRACT)||LA115_0==ALIGN||(LA115_0 >= ASSEMBLER && LA115_0 <= ASSEMBLY)||(LA115_0 >= AT && LA115_0 <= AUTOMATED)||(LA115_0 >= CDECL && LA115_0 <= CLASS)||(LA115_0 >= CONST && LA115_0 <= CONTAINS)||(LA115_0 >= DEFAULT && LA115_0 <= DEPRECATED)||(LA115_0 >= DESTRUCTOR && LA115_0 <= DISPID)||LA115_0==DYNAMIC||(LA115_0 >= EXPERIMENTAL && LA115_0 <= EXPORT)||LA115_0==EXTERNAL||LA115_0==FAR||LA115_0==FINAL||(LA115_0 >= FORWARD && LA115_0 <= FUNCTION)||LA115_0==HELPER||LA115_0==IMPLEMENTS||LA115_0==INDEX||LA115_0==LABEL||LA115_0==LOCAL||LA115_0==MESSAGE||(LA115_0 >= NAME && LA115_0 <= NEAR)||LA115_0==NODEFAULT||(LA115_0 >= ON && LA115_0 <= OPERATOR)||(LA115_0 >= OUT && LA115_0 <= OVERRIDE)||LA115_0==PACKAGE||LA115_0==PAREN_BRACKET_LEFT||(LA115_0 >= PASCAL && LA115_0 <= PLATFORM)||(LA115_0 >= PRIVATE && LA115_0 <= PROCEDURE)||(LA115_0 >= PROPERTY && LA115_0 <= PUBLISHED)||(LA115_0 >= READ && LA115_0 <= READONLY)||(LA115_0 >= REFERENCE && LA115_0 <= REINTRODUCE)||(LA115_0 >= REQUIRES && LA115_0 <= RESOURCESTRING)||(LA115_0 >= SAFECALL && LA115_0 <= SEALED)||LA115_0==SQUARE_BRACKET_LEFT||(LA115_0 >= STATIC && LA115_0 <= STRICT)||LA115_0==THREADVAR||LA115_0==TYPE||LA115_0==TkIdentifier||LA115_0==UNSAFE||(LA115_0 >= VAR && LA115_0 <= VIRTUAL)||LA115_0==WINAPI||(LA115_0 >= WRITE && LA115_0 <= WRITEONLY)) ) {
alt115=1;
}
switch (alt115) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:659:60: visibilitySection
{
pushFollow(FOLLOW_visibilitySection_in_recordType8967);
visibilitySection357=visibilitySection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, visibilitySection357.getTree());
}
break;
default :
break loop115;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:659:79: ( recordVariantSection )?
int alt116=2;
int LA116_0 = input.LA(1);
if ( (LA116_0==CASE) ) {
alt116=1;
}
switch (alt116) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:659:79: recordVariantSection
{
pushFollow(FOLLOW_recordVariantSection_in_recordType8970);
recordVariantSection358=recordVariantSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, recordVariantSection358.getTree());
}
break;
}
END359=(Token)match(input,END,FOLLOW_END_in_recordType8973); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END359_tree = (Object)adaptor.create(END359);
adaptor.addChild(root_0, END359_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:659:105: ( ALIGN expression )?
int alt117=2;
alt117 = dfa117.predict(input);
switch (alt117) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:659:106: ALIGN expression
{
ALIGN360=(Token)match(input,ALIGN,FOLLOW_ALIGN_in_recordType8976); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ALIGN360_tree = (Object)adaptor.create(ALIGN360);
adaptor.addChild(root_0, ALIGN360_tree);
}
pushFollow(FOLLOW_expression_in_recordType8978);
expression361=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression361.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 91, recordType_StartIndex); }
}
return retval;
}
// $ANTLR end "recordType"
public static class recordVariantSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "recordVariantSection"
// au/com/integradev/delphi/antlr/Delphi.g:661:1: recordVariantSection : CASE ^ recordVariantTag OF ( recordVariant )+ ;
public final DelphiParser.recordVariantSection_return recordVariantSection() throws RecognitionException {
DelphiParser.recordVariantSection_return retval = new DelphiParser.recordVariantSection_return();
retval.start = input.LT(1);
int recordVariantSection_StartIndex = input.index();
Object root_0 = null;
Token CASE362=null;
Token OF364=null;
ParserRuleReturnScope recordVariantTag363 =null;
ParserRuleReturnScope recordVariant365 =null;
Object CASE362_tree=null;
Object OF364_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 92) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:661:30: ( CASE ^ recordVariantTag OF ( recordVariant )+ )
// au/com/integradev/delphi/antlr/Delphi.g:661:32: CASE ^ recordVariantTag OF ( recordVariant )+
{
root_0 = (Object)adaptor.nil();
CASE362=(Token)match(input,CASE,FOLLOW_CASE_in_recordVariantSection9025); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CASE362_tree = new RecordVariantSectionNodeImpl(CASE362) ;
root_0 = (Object)adaptor.becomeRoot(CASE362_tree, root_0);
}
pushFollow(FOLLOW_recordVariantTag_in_recordVariantSection9031);
recordVariantTag363=recordVariantTag();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, recordVariantTag363.getTree());
OF364=(Token)match(input,OF,FOLLOW_OF_in_recordVariantSection9033); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OF364_tree = (Object)adaptor.create(OF364);
adaptor.addChild(root_0, OF364_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:661:88: ( recordVariant )+
int cnt118=0;
loop118:
while (true) {
int alt118=2;
int LA118_0 = input.LA(1);
if ( ((LA118_0 >= ABSOLUTE && LA118_0 <= ALIGN)||(LA118_0 >= ASSEMBLER && LA118_0 <= ASSEMBLY)||(LA118_0 >= AT && LA118_0 <= AUTOMATED)||LA118_0==CDECL||LA118_0==CONTAINS||(LA118_0 >= DEFAULT && LA118_0 <= DEREFERENCE)||LA118_0==DISPID||LA118_0==DYNAMIC||(LA118_0 >= EXPERIMENTAL && LA118_0 <= EXPORT)||LA118_0==EXTERNAL||(LA118_0 >= FAR && LA118_0 <= FINAL)||(LA118_0 >= FORWARD && LA118_0 <= FUNCTION)||LA118_0==HELPER||LA118_0==IMPLEMENTS||(LA118_0 >= INDEX && LA118_0 <= INHERITED)||LA118_0==LABEL||LA118_0==LOCAL||(LA118_0 >= MESSAGE && LA118_0 <= MINUS)||(LA118_0 >= NAME && LA118_0 <= NOT)||(LA118_0 >= ON && LA118_0 <= OPERATOR)||(LA118_0 >= OUT && LA118_0 <= OVERRIDE)||LA118_0==PACKAGE||LA118_0==PAREN_BRACKET_LEFT||LA118_0==PAREN_LEFT||(LA118_0 >= PASCAL && LA118_0 <= PROCEDURE)||(LA118_0 >= PROTECTED && LA118_0 <= PUBLISHED)||(LA118_0 >= READ && LA118_0 <= READONLY)||(LA118_0 >= REFERENCE && LA118_0 <= REINTRODUCE)||(LA118_0 >= REQUIRES && LA118_0 <= RESIDENT)||(LA118_0 >= SAFECALL && LA118_0 <= SEALED)||LA118_0==SQUARE_BRACKET_LEFT||(LA118_0 >= STATIC && LA118_0 <= STRING)||LA118_0==TkBinaryNumber||LA118_0==TkCharacterEscapeCode||(LA118_0 >= TkHexNumber && LA118_0 <= TkIntNumber)||LA118_0==TkMultilineString||(LA118_0 >= TkQuotedString && LA118_0 <= TkRealNumber)||LA118_0==UNSAFE||(LA118_0 >= VARARGS && LA118_0 <= VIRTUAL)||LA118_0==WINAPI||(LA118_0 >= WRITE && LA118_0 <= WRITEONLY)) ) {
alt118=1;
}
switch (alt118) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:661:88: recordVariant
{
pushFollow(FOLLOW_recordVariant_in_recordVariantSection9035);
recordVariant365=recordVariant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, recordVariant365.getTree());
}
break;
default :
if ( cnt118 >= 1 ) break loop118;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(118, input);
throw eee;
}
cnt118++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 92, recordVariantSection_StartIndex); }
}
return retval;
}
// $ANTLR end "recordVariantSection"
public static class recordVariantTag_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "recordVariantTag"
// au/com/integradev/delphi/antlr/Delphi.g:663:1: recordVariantTag : ( nameDeclaration ':' )? typeReference -> ^( TkRecordVariantTag ( nameDeclaration )? typeReference ) ;
public final DelphiParser.recordVariantTag_return recordVariantTag() throws RecognitionException {
DelphiParser.recordVariantTag_return retval = new DelphiParser.recordVariantTag_return();
retval.start = input.LT(1);
int recordVariantTag_StartIndex = input.index();
Object root_0 = null;
Token char_literal367=null;
ParserRuleReturnScope nameDeclaration366 =null;
ParserRuleReturnScope typeReference368 =null;
Object char_literal367_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_typeReference=new RewriteRuleSubtreeStream(adaptor,"rule typeReference");
RewriteRuleSubtreeStream stream_nameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclaration");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 93) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:663:30: ( ( nameDeclaration ':' )? typeReference -> ^( TkRecordVariantTag ( nameDeclaration )? typeReference ) )
// au/com/integradev/delphi/antlr/Delphi.g:663:32: ( nameDeclaration ':' )? typeReference
{
// au/com/integradev/delphi/antlr/Delphi.g:663:32: ( nameDeclaration ':' )?
int alt119=2;
int LA119_0 = input.LA(1);
if ( (LA119_0==TkIdentifier) ) {
int LA119_1 = input.LA(2);
if ( (LA119_1==COLON) ) {
alt119=1;
}
}
else if ( ((LA119_0 >= ABSOLUTE && LA119_0 <= ABSTRACT)||LA119_0==ALIGN||(LA119_0 >= ASSEMBLER && LA119_0 <= ASSEMBLY)||(LA119_0 >= AT && LA119_0 <= AUTOMATED)||LA119_0==CDECL||LA119_0==CONTAINS||(LA119_0 >= DEFAULT && LA119_0 <= DEPRECATED)||LA119_0==DISPID||LA119_0==DYNAMIC||(LA119_0 >= EXPERIMENTAL && LA119_0 <= EXPORT)||LA119_0==EXTERNAL||LA119_0==FAR||LA119_0==FINAL||LA119_0==FORWARD||LA119_0==HELPER||LA119_0==IMPLEMENTS||LA119_0==INDEX||LA119_0==LABEL||LA119_0==LOCAL||LA119_0==MESSAGE||(LA119_0 >= NAME && LA119_0 <= NEAR)||LA119_0==NODEFAULT||(LA119_0 >= ON && LA119_0 <= OPERATOR)||(LA119_0 >= OUT && LA119_0 <= OVERRIDE)||LA119_0==PACKAGE||(LA119_0 >= PASCAL && LA119_0 <= PLATFORM)||LA119_0==PRIVATE||(LA119_0 >= PROTECTED && LA119_0 <= PUBLISHED)||(LA119_0 >= READ && LA119_0 <= READONLY)||(LA119_0 >= REFERENCE && LA119_0 <= REINTRODUCE)||(LA119_0 >= REQUIRES && LA119_0 <= RESIDENT)||(LA119_0 >= SAFECALL && LA119_0 <= SEALED)||(LA119_0 >= STATIC && LA119_0 <= STRICT)||LA119_0==UNSAFE||(LA119_0 >= VARARGS && LA119_0 <= VIRTUAL)||LA119_0==WINAPI||(LA119_0 >= WRITE && LA119_0 <= WRITEONLY)) ) {
int LA119_2 = input.LA(2);
if ( (LA119_2==COLON) ) {
alt119=1;
}
}
switch (alt119) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:663:33: nameDeclaration ':'
{
pushFollow(FOLLOW_nameDeclaration_in_recordVariantTag9086);
nameDeclaration366=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclaration.add(nameDeclaration366.getTree());
char_literal367=(Token)match(input,COLON,FOLLOW_COLON_in_recordVariantTag9088); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal367);
}
break;
}
pushFollow(FOLLOW_typeReference_in_recordVariantTag9092);
typeReference368=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeReference.add(typeReference368.getTree());
// AST REWRITE
// elements: typeReference, nameDeclaration
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 664:30: -> ^( TkRecordVariantTag ( nameDeclaration )? typeReference )
{
// au/com/integradev/delphi/antlr/Delphi.g:664:33: ^( TkRecordVariantTag ( nameDeclaration )? typeReference )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RecordVariantTagNodeImpl(TkRecordVariantTag), root_1);
// au/com/integradev/delphi/antlr/Delphi.g:664:80: ( nameDeclaration )?
if ( stream_nameDeclaration.hasNext() ) {
adaptor.addChild(root_1, stream_nameDeclaration.nextTree());
}
stream_nameDeclaration.reset();
adaptor.addChild(root_1, stream_typeReference.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 93, recordVariantTag_StartIndex); }
}
return retval;
}
// $ANTLR end "recordVariantTag"
public static class recordVariant_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "recordVariant"
// au/com/integradev/delphi/antlr/Delphi.g:666:1: recordVariant : expressionList ':' '(' ( fieldDecl )* ( recordVariantSection )? ')' ( ';' )? -> ^( TkRecordVariantItem expressionList ( fieldDecl )* ( recordVariantSection )? ( ';' )? ) ;
public final DelphiParser.recordVariant_return recordVariant() throws RecognitionException {
DelphiParser.recordVariant_return retval = new DelphiParser.recordVariant_return();
retval.start = input.LT(1);
int recordVariant_StartIndex = input.index();
Object root_0 = null;
Token char_literal370=null;
Token char_literal371=null;
Token char_literal374=null;
Token char_literal375=null;
ParserRuleReturnScope expressionList369 =null;
ParserRuleReturnScope fieldDecl372 =null;
ParserRuleReturnScope recordVariantSection373 =null;
Object char_literal370_tree=null;
Object char_literal371_tree=null;
Object char_literal374_tree=null;
Object char_literal375_tree=null;
RewriteRuleTokenStream stream_PAREN_RIGHT=new RewriteRuleTokenStream(adaptor,"token PAREN_RIGHT");
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleTokenStream stream_PAREN_LEFT=new RewriteRuleTokenStream(adaptor,"token PAREN_LEFT");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_expressionList=new RewriteRuleSubtreeStream(adaptor,"rule expressionList");
RewriteRuleSubtreeStream stream_recordVariantSection=new RewriteRuleSubtreeStream(adaptor,"rule recordVariantSection");
RewriteRuleSubtreeStream stream_fieldDecl=new RewriteRuleSubtreeStream(adaptor,"rule fieldDecl");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 94) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:666:30: ( expressionList ':' '(' ( fieldDecl )* ( recordVariantSection )? ')' ( ';' )? -> ^( TkRecordVariantItem expressionList ( fieldDecl )* ( recordVariantSection )? ( ';' )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:666:32: expressionList ':' '(' ( fieldDecl )* ( recordVariantSection )? ')' ( ';' )?
{
pushFollow(FOLLOW_expressionList_in_recordVariant9187);
expressionList369=expressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expressionList.add(expressionList369.getTree());
char_literal370=(Token)match(input,COLON,FOLLOW_COLON_in_recordVariant9189); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal370);
char_literal371=(Token)match(input,PAREN_LEFT,FOLLOW_PAREN_LEFT_in_recordVariant9191); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PAREN_LEFT.add(char_literal371);
// au/com/integradev/delphi/antlr/Delphi.g:666:55: ( fieldDecl )*
loop120:
while (true) {
int alt120=2;
int LA120_0 = input.LA(1);
if ( ((LA120_0 >= ABSOLUTE && LA120_0 <= ABSTRACT)||LA120_0==ALIGN||(LA120_0 >= ASSEMBLER && LA120_0 <= ASSEMBLY)||(LA120_0 >= AT && LA120_0 <= AUTOMATED)||LA120_0==CDECL||LA120_0==CONTAINS||(LA120_0 >= DEFAULT && LA120_0 <= DEPRECATED)||LA120_0==DISPID||LA120_0==DYNAMIC||(LA120_0 >= EXPERIMENTAL && LA120_0 <= EXPORT)||LA120_0==EXTERNAL||LA120_0==FAR||LA120_0==FINAL||LA120_0==FORWARD||LA120_0==HELPER||LA120_0==IMPLEMENTS||LA120_0==INDEX||LA120_0==LABEL||LA120_0==LOCAL||LA120_0==MESSAGE||(LA120_0 >= NAME && LA120_0 <= NEAR)||LA120_0==NODEFAULT||(LA120_0 >= ON && LA120_0 <= OPERATOR)||(LA120_0 >= OUT && LA120_0 <= OVERRIDE)||LA120_0==PACKAGE||LA120_0==PAREN_BRACKET_LEFT||(LA120_0 >= PASCAL && LA120_0 <= PLATFORM)||LA120_0==PRIVATE||(LA120_0 >= PROTECTED && LA120_0 <= PUBLISHED)||(LA120_0 >= READ && LA120_0 <= READONLY)||(LA120_0 >= REFERENCE && LA120_0 <= REINTRODUCE)||(LA120_0 >= REQUIRES && LA120_0 <= RESIDENT)||(LA120_0 >= SAFECALL && LA120_0 <= SEALED)||LA120_0==SQUARE_BRACKET_LEFT||(LA120_0 >= STATIC && LA120_0 <= STRICT)||LA120_0==TkIdentifier||LA120_0==UNSAFE||(LA120_0 >= VARARGS && LA120_0 <= VIRTUAL)||LA120_0==WINAPI||(LA120_0 >= WRITE && LA120_0 <= WRITEONLY)) ) {
alt120=1;
}
switch (alt120) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:666:55: fieldDecl
{
pushFollow(FOLLOW_fieldDecl_in_recordVariant9193);
fieldDecl372=fieldDecl();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_fieldDecl.add(fieldDecl372.getTree());
}
break;
default :
break loop120;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:666:66: ( recordVariantSection )?
int alt121=2;
int LA121_0 = input.LA(1);
if ( (LA121_0==CASE) ) {
alt121=1;
}
switch (alt121) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:666:66: recordVariantSection
{
pushFollow(FOLLOW_recordVariantSection_in_recordVariant9196);
recordVariantSection373=recordVariantSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_recordVariantSection.add(recordVariantSection373.getTree());
}
break;
}
char_literal374=(Token)match(input,PAREN_RIGHT,FOLLOW_PAREN_RIGHT_in_recordVariant9199); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PAREN_RIGHT.add(char_literal374);
// au/com/integradev/delphi/antlr/Delphi.g:666:92: ( ';' )?
int alt122=2;
int LA122_0 = input.LA(1);
if ( (LA122_0==SEMICOLON) ) {
alt122=1;
}
switch (alt122) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:666:92: ';'
{
char_literal375=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_recordVariant9201); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal375);
}
break;
}
// AST REWRITE
// elements: recordVariantSection, SEMICOLON, fieldDecl, expressionList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 667:30: -> ^( TkRecordVariantItem expressionList ( fieldDecl )* ( recordVariantSection )? ( ';' )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:667:33: ^( TkRecordVariantItem expressionList ( fieldDecl )* ( recordVariantSection )? ( ';' )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RecordVariantItemNodeImpl(TkRecordVariantItem), root_1);
adaptor.addChild(root_1, stream_expressionList.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:667:97: ( fieldDecl )*
while ( stream_fieldDecl.hasNext() ) {
adaptor.addChild(root_1, stream_fieldDecl.nextTree());
}
stream_fieldDecl.reset();
// au/com/integradev/delphi/antlr/Delphi.g:667:108: ( recordVariantSection )?
if ( stream_recordVariantSection.hasNext() ) {
adaptor.addChild(root_1, stream_recordVariantSection.nextTree());
}
stream_recordVariantSection.reset();
// au/com/integradev/delphi/antlr/Delphi.g:667:130: ( ';' )?
if ( stream_SEMICOLON.hasNext() ) {
adaptor.addChild(root_1, stream_SEMICOLON.nextNode());
}
stream_SEMICOLON.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 94, recordVariant_StartIndex); }
}
return retval;
}
// $ANTLR end "recordVariant"
public static class recordHelperType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "recordHelperType"
// au/com/integradev/delphi/antlr/Delphi.g:669:1: recordHelperType : RECORD ^ HELPER FOR typeReferenceOrStringOrFile ( visibilitySection )* END ;
public final DelphiParser.recordHelperType_return recordHelperType() throws RecognitionException {
DelphiParser.recordHelperType_return retval = new DelphiParser.recordHelperType_return();
retval.start = input.LT(1);
int recordHelperType_StartIndex = input.index();
Object root_0 = null;
Token RECORD376=null;
Token HELPER377=null;
Token FOR378=null;
Token END381=null;
ParserRuleReturnScope typeReferenceOrStringOrFile379 =null;
ParserRuleReturnScope visibilitySection380 =null;
Object RECORD376_tree=null;
Object HELPER377_tree=null;
Object FOR378_tree=null;
Object END381_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 95) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:669:30: ( RECORD ^ HELPER FOR typeReferenceOrStringOrFile ( visibilitySection )* END )
// au/com/integradev/delphi/antlr/Delphi.g:669:32: RECORD ^ HELPER FOR typeReferenceOrStringOrFile ( visibilitySection )* END
{
root_0 = (Object)adaptor.nil();
RECORD376=(Token)match(input,RECORD,FOLLOW_RECORD_in_recordHelperType9300); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RECORD376_tree = new RecordHelperTypeNodeImpl(RECORD376) ;
root_0 = (Object)adaptor.becomeRoot(RECORD376_tree, root_0);
}
HELPER377=(Token)match(input,HELPER,FOLLOW_HELPER_in_recordHelperType9306); if (state.failed) return retval;
if ( state.backtracking==0 ) {
HELPER377_tree = (Object)adaptor.create(HELPER377);
adaptor.addChild(root_0, HELPER377_tree);
}
FOR378=(Token)match(input,FOR,FOLLOW_FOR_in_recordHelperType9308); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FOR378_tree = (Object)adaptor.create(FOR378);
adaptor.addChild(root_0, FOR378_tree);
}
pushFollow(FOLLOW_typeReferenceOrStringOrFile_in_recordHelperType9310);
typeReferenceOrStringOrFile379=typeReferenceOrStringOrFile();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReferenceOrStringOrFile379.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:669:105: ( visibilitySection )*
loop123:
while (true) {
int alt123=2;
int LA123_0 = input.LA(1);
if ( ((LA123_0 >= ABSOLUTE && LA123_0 <= ABSTRACT)||LA123_0==ALIGN||(LA123_0 >= ASSEMBLER && LA123_0 <= ASSEMBLY)||(LA123_0 >= AT && LA123_0 <= AUTOMATED)||(LA123_0 >= CDECL && LA123_0 <= CLASS)||(LA123_0 >= CONST && LA123_0 <= CONTAINS)||(LA123_0 >= DEFAULT && LA123_0 <= DEPRECATED)||(LA123_0 >= DESTRUCTOR && LA123_0 <= DISPID)||LA123_0==DYNAMIC||(LA123_0 >= EXPERIMENTAL && LA123_0 <= EXPORT)||LA123_0==EXTERNAL||LA123_0==FAR||LA123_0==FINAL||(LA123_0 >= FORWARD && LA123_0 <= FUNCTION)||LA123_0==HELPER||LA123_0==IMPLEMENTS||LA123_0==INDEX||LA123_0==LABEL||LA123_0==LOCAL||LA123_0==MESSAGE||(LA123_0 >= NAME && LA123_0 <= NEAR)||LA123_0==NODEFAULT||(LA123_0 >= ON && LA123_0 <= OPERATOR)||(LA123_0 >= OUT && LA123_0 <= OVERRIDE)||LA123_0==PACKAGE||LA123_0==PAREN_BRACKET_LEFT||(LA123_0 >= PASCAL && LA123_0 <= PLATFORM)||(LA123_0 >= PRIVATE && LA123_0 <= PROCEDURE)||(LA123_0 >= PROPERTY && LA123_0 <= PUBLISHED)||(LA123_0 >= READ && LA123_0 <= READONLY)||(LA123_0 >= REFERENCE && LA123_0 <= REINTRODUCE)||(LA123_0 >= REQUIRES && LA123_0 <= RESOURCESTRING)||(LA123_0 >= SAFECALL && LA123_0 <= SEALED)||LA123_0==SQUARE_BRACKET_LEFT||(LA123_0 >= STATIC && LA123_0 <= STRICT)||LA123_0==THREADVAR||LA123_0==TYPE||LA123_0==TkIdentifier||LA123_0==UNSAFE||(LA123_0 >= VAR && LA123_0 <= VIRTUAL)||LA123_0==WINAPI||(LA123_0 >= WRITE && LA123_0 <= WRITEONLY)) ) {
alt123=1;
}
switch (alt123) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:669:105: visibilitySection
{
pushFollow(FOLLOW_visibilitySection_in_recordHelperType9312);
visibilitySection380=visibilitySection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, visibilitySection380.getTree());
}
break;
default :
break loop123;
}
}
END381=(Token)match(input,END,FOLLOW_END_in_recordHelperType9315); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END381_tree = (Object)adaptor.create(END381);
adaptor.addChild(root_0, END381_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 95, recordHelperType_StartIndex); }
}
return retval;
}
// $ANTLR end "recordHelperType"
public static class property_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "property"
// au/com/integradev/delphi/antlr/Delphi.g:671:1: property : ( attributeList )? ( CLASS )? PROPERTY nameDeclaration ( propertyArray )? ( ':' varType )? ( propertyDirective )* ';' -> ^( PROPERTY nameDeclaration ( propertyArray )? ( varType )? ( CLASS )? ( attributeList )? ( propertyDirective )* ) ;
public final DelphiParser.property_return property() throws RecognitionException {
DelphiParser.property_return retval = new DelphiParser.property_return();
retval.start = input.LT(1);
int property_StartIndex = input.index();
Object root_0 = null;
Token CLASS383=null;
Token PROPERTY384=null;
Token char_literal387=null;
Token char_literal390=null;
ParserRuleReturnScope attributeList382 =null;
ParserRuleReturnScope nameDeclaration385 =null;
ParserRuleReturnScope propertyArray386 =null;
ParserRuleReturnScope varType388 =null;
ParserRuleReturnScope propertyDirective389 =null;
Object CLASS383_tree=null;
Object PROPERTY384_tree=null;
Object char_literal387_tree=null;
Object char_literal390_tree=null;
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleTokenStream stream_PROPERTY=new RewriteRuleTokenStream(adaptor,"token PROPERTY");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_CLASS=new RewriteRuleTokenStream(adaptor,"token CLASS");
RewriteRuleSubtreeStream stream_propertyArray=new RewriteRuleSubtreeStream(adaptor,"rule propertyArray");
RewriteRuleSubtreeStream stream_varType=new RewriteRuleSubtreeStream(adaptor,"rule varType");
RewriteRuleSubtreeStream stream_propertyDirective=new RewriteRuleSubtreeStream(adaptor,"rule propertyDirective");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
RewriteRuleSubtreeStream stream_nameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclaration");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 96) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:671:30: ( ( attributeList )? ( CLASS )? PROPERTY nameDeclaration ( propertyArray )? ( ':' varType )? ( propertyDirective )* ';' -> ^( PROPERTY nameDeclaration ( propertyArray )? ( varType )? ( CLASS )? ( attributeList )? ( propertyDirective )* ) )
// au/com/integradev/delphi/antlr/Delphi.g:671:32: ( attributeList )? ( CLASS )? PROPERTY nameDeclaration ( propertyArray )? ( ':' varType )? ( propertyDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:671:32: ( attributeList )?
int alt124=2;
int LA124_0 = input.LA(1);
if ( (LA124_0==PAREN_BRACKET_LEFT||LA124_0==SQUARE_BRACKET_LEFT) ) {
alt124=1;
}
switch (alt124) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:671:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_property9372);
attributeList382=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList382.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:671:47: ( CLASS )?
int alt125=2;
int LA125_0 = input.LA(1);
if ( (LA125_0==CLASS) ) {
alt125=1;
}
switch (alt125) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:671:47: CLASS
{
CLASS383=(Token)match(input,CLASS,FOLLOW_CLASS_in_property9375); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CLASS.add(CLASS383);
}
break;
}
PROPERTY384=(Token)match(input,PROPERTY,FOLLOW_PROPERTY_in_property9378); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PROPERTY.add(PROPERTY384);
pushFollow(FOLLOW_nameDeclaration_in_property9380);
nameDeclaration385=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclaration.add(nameDeclaration385.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:671:79: ( propertyArray )?
int alt126=2;
int LA126_0 = input.LA(1);
if ( (LA126_0==PAREN_BRACKET_LEFT||LA126_0==SQUARE_BRACKET_LEFT) ) {
alt126=1;
}
switch (alt126) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:671:79: propertyArray
{
pushFollow(FOLLOW_propertyArray_in_property9382);
propertyArray386=propertyArray();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_propertyArray.add(propertyArray386.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:671:94: ( ':' varType )?
int alt127=2;
int LA127_0 = input.LA(1);
if ( (LA127_0==COLON) ) {
alt127=1;
}
switch (alt127) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:671:95: ':' varType
{
char_literal387=(Token)match(input,COLON,FOLLOW_COLON_in_property9386); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal387);
pushFollow(FOLLOW_varType_in_property9388);
varType388=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_varType.add(varType388.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:671:109: ( propertyDirective )*
loop128:
while (true) {
int alt128=2;
int LA128_0 = input.LA(1);
if ( (LA128_0==SEMICOLON) ) {
int LA128_1 = input.LA(2);
if ( (LA128_1==DEFAULT) ) {
int LA128_4 = input.LA(3);
if ( (LA128_4==DEFAULT||LA128_4==DISPID||LA128_4==IMPLEMENTS||LA128_4==INDEX||LA128_4==NODEFAULT||(LA128_4 >= READ && LA128_4 <= READONLY)||LA128_4==SEMICOLON||LA128_4==STORED||(LA128_4 >= WRITE && LA128_4 <= WRITEONLY)) ) {
alt128=1;
}
}
}
else if ( (LA128_0==DEFAULT||LA128_0==DISPID||LA128_0==IMPLEMENTS||LA128_0==INDEX||LA128_0==NODEFAULT||(LA128_0 >= READ && LA128_0 <= READONLY)||LA128_0==STORED||(LA128_0 >= WRITE && LA128_0 <= WRITEONLY)) ) {
alt128=1;
}
switch (alt128) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:671:110: propertyDirective
{
pushFollow(FOLLOW_propertyDirective_in_property9393);
propertyDirective389=propertyDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_propertyDirective.add(propertyDirective389.getTree());
}
break;
default :
break loop128;
}
}
char_literal390=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_property9397); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal390);
// AST REWRITE
// elements: nameDeclaration, propertyArray, attributeList, PROPERTY, varType, CLASS, propertyDirective
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 672:30: -> ^( PROPERTY nameDeclaration ( propertyArray )? ( varType )? ( CLASS )? ( attributeList )? ( propertyDirective )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:672:33: ^( PROPERTY nameDeclaration ( propertyArray )? ( varType )? ( CLASS )? ( attributeList )? ( propertyDirective )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new PropertyNodeImpl(stream_PROPERTY.nextToken()), root_1);
adaptor.addChild(root_1, stream_nameDeclaration.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:672:78: ( propertyArray )?
if ( stream_propertyArray.hasNext() ) {
adaptor.addChild(root_1, stream_propertyArray.nextTree());
}
stream_propertyArray.reset();
// au/com/integradev/delphi/antlr/Delphi.g:672:93: ( varType )?
if ( stream_varType.hasNext() ) {
adaptor.addChild(root_1, stream_varType.nextTree());
}
stream_varType.reset();
// au/com/integradev/delphi/antlr/Delphi.g:672:102: ( CLASS )?
if ( stream_CLASS.hasNext() ) {
adaptor.addChild(root_1, stream_CLASS.nextNode());
}
stream_CLASS.reset();
// au/com/integradev/delphi/antlr/Delphi.g:672:109: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
// au/com/integradev/delphi/antlr/Delphi.g:672:124: ( propertyDirective )*
while ( stream_propertyDirective.hasNext() ) {
adaptor.addChild(root_1, stream_propertyDirective.nextTree());
}
stream_propertyDirective.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 96, property_StartIndex); }
}
return retval;
}
// $ANTLR end "property"
public static class propertyArray_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "propertyArray"
// au/com/integradev/delphi/antlr/Delphi.g:674:1: propertyArray : lbrack ! formalParameterList rbrack !;
public final DelphiParser.propertyArray_return propertyArray() throws RecognitionException {
DelphiParser.propertyArray_return retval = new DelphiParser.propertyArray_return();
retval.start = input.LT(1);
int propertyArray_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope lbrack391 =null;
ParserRuleReturnScope formalParameterList392 =null;
ParserRuleReturnScope rbrack393 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 97) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:674:30: ( lbrack ! formalParameterList rbrack !)
// au/com/integradev/delphi/antlr/Delphi.g:674:32: lbrack ! formalParameterList rbrack !
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_lbrack_in_propertyArray9504);
lbrack391=lbrack();
state._fsp--;
if (state.failed) return retval;
pushFollow(FOLLOW_formalParameterList_in_propertyArray9507);
formalParameterList392=formalParameterList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, formalParameterList392.getTree());
pushFollow(FOLLOW_rbrack_in_propertyArray9509);
rbrack393=rbrack();
state._fsp--;
if (state.failed) return retval;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 97, propertyArray_StartIndex); }
}
return retval;
}
// $ANTLR end "propertyArray"
public static class propertyDirective_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "propertyDirective"
// au/com/integradev/delphi/antlr/Delphi.g:676:1: propertyDirective : ( ';' propertyDefaultNoExpression | propertyDefault | propertyReadWrite | propertyDispInterface | propertyImplements | propertyIndex | propertyStored | NODEFAULT );
public final DelphiParser.propertyDirective_return propertyDirective() throws RecognitionException {
DelphiParser.propertyDirective_return retval = new DelphiParser.propertyDirective_return();
retval.start = input.LT(1);
int propertyDirective_StartIndex = input.index();
Object root_0 = null;
Token char_literal394=null;
Token NODEFAULT402=null;
ParserRuleReturnScope propertyDefaultNoExpression395 =null;
ParserRuleReturnScope propertyDefault396 =null;
ParserRuleReturnScope propertyReadWrite397 =null;
ParserRuleReturnScope propertyDispInterface398 =null;
ParserRuleReturnScope propertyImplements399 =null;
ParserRuleReturnScope propertyIndex400 =null;
ParserRuleReturnScope propertyStored401 =null;
Object char_literal394_tree=null;
Object NODEFAULT402_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 98) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:676:30: ( ';' propertyDefaultNoExpression | propertyDefault | propertyReadWrite | propertyDispInterface | propertyImplements | propertyIndex | propertyStored | NODEFAULT )
int alt129=8;
switch ( input.LA(1) ) {
case SEMICOLON:
{
alt129=1;
}
break;
case DEFAULT:
{
alt129=2;
}
break;
case READ:
case WRITE:
{
alt129=3;
}
break;
case DISPID:
case READONLY:
case WRITEONLY:
{
alt129=4;
}
break;
case IMPLEMENTS:
{
alt129=5;
}
break;
case INDEX:
{
alt129=6;
}
break;
case STORED:
{
alt129=7;
}
break;
case NODEFAULT:
{
alt129=8;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 129, 0, input);
throw nvae;
}
switch (alt129) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:676:32: ';' propertyDefaultNoExpression
{
root_0 = (Object)adaptor.nil();
char_literal394=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_propertyDirective9558); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal394_tree = (Object)adaptor.create(char_literal394);
adaptor.addChild(root_0, char_literal394_tree);
}
pushFollow(FOLLOW_propertyDefaultNoExpression_in_propertyDirective9560);
propertyDefaultNoExpression395=propertyDefaultNoExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, propertyDefaultNoExpression395.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:677:32: propertyDefault
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_propertyDefault_in_propertyDirective9593);
propertyDefault396=propertyDefault();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, propertyDefault396.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:678:32: propertyReadWrite
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_propertyReadWrite_in_propertyDirective9626);
propertyReadWrite397=propertyReadWrite();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, propertyReadWrite397.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:679:32: propertyDispInterface
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_propertyDispInterface_in_propertyDirective9659);
propertyDispInterface398=propertyDispInterface();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, propertyDispInterface398.getTree());
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:680:32: propertyImplements
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_propertyImplements_in_propertyDirective9692);
propertyImplements399=propertyImplements();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, propertyImplements399.getTree());
}
break;
case 6 :
// au/com/integradev/delphi/antlr/Delphi.g:681:32: propertyIndex
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_propertyIndex_in_propertyDirective9725);
propertyIndex400=propertyIndex();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, propertyIndex400.getTree());
}
break;
case 7 :
// au/com/integradev/delphi/antlr/Delphi.g:682:32: propertyStored
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_propertyStored_in_propertyDirective9758);
propertyStored401=propertyStored();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, propertyStored401.getTree());
}
break;
case 8 :
// au/com/integradev/delphi/antlr/Delphi.g:683:32: NODEFAULT
{
root_0 = (Object)adaptor.nil();
NODEFAULT402=(Token)match(input,NODEFAULT,FOLLOW_NODEFAULT_in_propertyDirective9791); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NODEFAULT402_tree = (Object)adaptor.create(NODEFAULT402);
adaptor.addChild(root_0, NODEFAULT402_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 98, propertyDirective_StartIndex); }
}
return retval;
}
// $ANTLR end "propertyDirective"
public static class propertyDefaultNoExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "propertyDefaultNoExpression"
// au/com/integradev/delphi/antlr/Delphi.g:685:1: propertyDefaultNoExpression : DEFAULT ^;
public final DelphiParser.propertyDefaultNoExpression_return propertyDefaultNoExpression() throws RecognitionException {
DelphiParser.propertyDefaultNoExpression_return retval = new DelphiParser.propertyDefaultNoExpression_return();
retval.start = input.LT(1);
int propertyDefaultNoExpression_StartIndex = input.index();
Object root_0 = null;
Token DEFAULT403=null;
Object DEFAULT403_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 99) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:685:30: ( DEFAULT ^)
// au/com/integradev/delphi/antlr/Delphi.g:685:32: DEFAULT ^
{
root_0 = (Object)adaptor.nil();
DEFAULT403=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_propertyDefaultNoExpression9829); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DEFAULT403_tree = new PropertyDefaultSpecifierNodeImpl(DEFAULT403) ;
root_0 = (Object)adaptor.becomeRoot(DEFAULT403_tree, root_0);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 99, propertyDefaultNoExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "propertyDefaultNoExpression"
public static class propertyDefault_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "propertyDefault"
// au/com/integradev/delphi/antlr/Delphi.g:687:1: propertyDefault : DEFAULT ^ expression ;
public final DelphiParser.propertyDefault_return propertyDefault() throws RecognitionException {
DelphiParser.propertyDefault_return retval = new DelphiParser.propertyDefault_return();
retval.start = input.LT(1);
int propertyDefault_StartIndex = input.index();
Object root_0 = null;
Token DEFAULT404=null;
ParserRuleReturnScope expression405 =null;
Object DEFAULT404_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 100) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:687:30: ( DEFAULT ^ expression )
// au/com/integradev/delphi/antlr/Delphi.g:687:32: DEFAULT ^ expression
{
root_0 = (Object)adaptor.nil();
DEFAULT404=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_propertyDefault9883); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DEFAULT404_tree = new PropertyDefaultSpecifierNodeImpl(DEFAULT404) ;
root_0 = (Object)adaptor.becomeRoot(DEFAULT404_tree, root_0);
}
pushFollow(FOLLOW_expression_in_propertyDefault9889);
expression405=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression405.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 100, propertyDefault_StartIndex); }
}
return retval;
}
// $ANTLR end "propertyDefault"
public static class propertyReadWrite_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "propertyReadWrite"
// au/com/integradev/delphi/antlr/Delphi.g:689:1: propertyReadWrite : ( READ ^| WRITE ^) primaryExpression ;
public final DelphiParser.propertyReadWrite_return propertyReadWrite() throws RecognitionException {
DelphiParser.propertyReadWrite_return retval = new DelphiParser.propertyReadWrite_return();
retval.start = input.LT(1);
int propertyReadWrite_StartIndex = input.index();
Object root_0 = null;
Token READ406=null;
Token WRITE407=null;
ParserRuleReturnScope primaryExpression408 =null;
Object READ406_tree=null;
Object WRITE407_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 101) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:689:30: ( ( READ ^| WRITE ^) primaryExpression )
// au/com/integradev/delphi/antlr/Delphi.g:689:32: ( READ ^| WRITE ^) primaryExpression
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:689:32: ( READ ^| WRITE ^)
int alt130=2;
int LA130_0 = input.LA(1);
if ( (LA130_0==READ) ) {
alt130=1;
}
else if ( (LA130_0==WRITE) ) {
alt130=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 130, 0, input);
throw nvae;
}
switch (alt130) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:689:33: READ ^
{
READ406=(Token)match(input,READ,FOLLOW_READ_in_propertyReadWrite9938); if (state.failed) return retval;
if ( state.backtracking==0 ) {
READ406_tree = new PropertyReadSpecifierNodeImpl(READ406) ;
root_0 = (Object)adaptor.becomeRoot(READ406_tree, root_0);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:689:72: WRITE ^
{
WRITE407=(Token)match(input,WRITE,FOLLOW_WRITE_in_propertyReadWrite9946); if (state.failed) return retval;
if ( state.backtracking==0 ) {
WRITE407_tree = new PropertyWriteSpecifierNodeImpl(WRITE407) ;
root_0 = (Object)adaptor.becomeRoot(WRITE407_tree, root_0);
}
}
break;
}
pushFollow(FOLLOW_primaryExpression_in_propertyReadWrite9953);
primaryExpression408=primaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, primaryExpression408.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 101, propertyReadWrite_StartIndex); }
}
return retval;
}
// $ANTLR end "propertyReadWrite"
public static class propertyImplements_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "propertyImplements"
// au/com/integradev/delphi/antlr/Delphi.g:691:1: propertyImplements : IMPLEMENTS ^ typeReference ( ',' typeReference )* ;
public final DelphiParser.propertyImplements_return propertyImplements() throws RecognitionException {
DelphiParser.propertyImplements_return retval = new DelphiParser.propertyImplements_return();
retval.start = input.LT(1);
int propertyImplements_StartIndex = input.index();
Object root_0 = null;
Token IMPLEMENTS409=null;
Token char_literal411=null;
ParserRuleReturnScope typeReference410 =null;
ParserRuleReturnScope typeReference412 =null;
Object IMPLEMENTS409_tree=null;
Object char_literal411_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 102) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:691:30: ( IMPLEMENTS ^ typeReference ( ',' typeReference )* )
// au/com/integradev/delphi/antlr/Delphi.g:691:32: IMPLEMENTS ^ typeReference ( ',' typeReference )*
{
root_0 = (Object)adaptor.nil();
IMPLEMENTS409=(Token)match(input,IMPLEMENTS,FOLLOW_IMPLEMENTS_in_propertyImplements10000); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IMPLEMENTS409_tree = new PropertyImplementsSpecifierNodeImpl(IMPLEMENTS409) ;
root_0 = (Object)adaptor.becomeRoot(IMPLEMENTS409_tree, root_0);
}
pushFollow(FOLLOW_typeReference_in_propertyImplements10006);
typeReference410=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReference410.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:691:95: ( ',' typeReference )*
loop131:
while (true) {
int alt131=2;
int LA131_0 = input.LA(1);
if ( (LA131_0==COMMA) ) {
alt131=1;
}
switch (alt131) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:691:96: ',' typeReference
{
char_literal411=(Token)match(input,COMMA,FOLLOW_COMMA_in_propertyImplements10009); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal411_tree = (Object)adaptor.create(char_literal411);
adaptor.addChild(root_0, char_literal411_tree);
}
pushFollow(FOLLOW_typeReference_in_propertyImplements10011);
typeReference412=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReference412.getTree());
}
break;
default :
break loop131;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 102, propertyImplements_StartIndex); }
}
return retval;
}
// $ANTLR end "propertyImplements"
public static class propertyIndex_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "propertyIndex"
// au/com/integradev/delphi/antlr/Delphi.g:693:1: propertyIndex : INDEX ^ expression ;
public final DelphiParser.propertyIndex_return propertyIndex() throws RecognitionException {
DelphiParser.propertyIndex_return retval = new DelphiParser.propertyIndex_return();
retval.start = input.LT(1);
int propertyIndex_StartIndex = input.index();
Object root_0 = null;
Token INDEX413=null;
ParserRuleReturnScope expression414 =null;
Object INDEX413_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 103) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:693:30: ( INDEX ^ expression )
// au/com/integradev/delphi/antlr/Delphi.g:693:32: INDEX ^ expression
{
root_0 = (Object)adaptor.nil();
INDEX413=(Token)match(input,INDEX,FOLLOW_INDEX_in_propertyIndex10065); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INDEX413_tree = new PropertyIndexSpecifierNodeImpl(INDEX413) ;
root_0 = (Object)adaptor.becomeRoot(INDEX413_tree, root_0);
}
pushFollow(FOLLOW_expression_in_propertyIndex10071);
expression414=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression414.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 103, propertyIndex_StartIndex); }
}
return retval;
}
// $ANTLR end "propertyIndex"
public static class propertyStored_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "propertyStored"
// au/com/integradev/delphi/antlr/Delphi.g:695:1: propertyStored : STORED ^ expression ;
public final DelphiParser.propertyStored_return propertyStored() throws RecognitionException {
DelphiParser.propertyStored_return retval = new DelphiParser.propertyStored_return();
retval.start = input.LT(1);
int propertyStored_StartIndex = input.index();
Object root_0 = null;
Token STORED415=null;
ParserRuleReturnScope expression416 =null;
Object STORED415_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 104) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:695:30: ( STORED ^ expression )
// au/com/integradev/delphi/antlr/Delphi.g:695:32: STORED ^ expression
{
root_0 = (Object)adaptor.nil();
STORED415=(Token)match(input,STORED,FOLLOW_STORED_in_propertyStored10122); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STORED415_tree = new PropertyStoredSpecifierNodeImpl(STORED415) ;
root_0 = (Object)adaptor.becomeRoot(STORED415_tree, root_0);
}
pushFollow(FOLLOW_expression_in_propertyStored10128);
expression416=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression416.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 104, propertyStored_StartIndex); }
}
return retval;
}
// $ANTLR end "propertyStored"
public static class propertyDispInterface_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "propertyDispInterface"
// au/com/integradev/delphi/antlr/Delphi.g:697:1: propertyDispInterface : ( READONLY | WRITEONLY | dispIDDirective );
public final DelphiParser.propertyDispInterface_return propertyDispInterface() throws RecognitionException {
DelphiParser.propertyDispInterface_return retval = new DelphiParser.propertyDispInterface_return();
retval.start = input.LT(1);
int propertyDispInterface_StartIndex = input.index();
Object root_0 = null;
Token READONLY417=null;
Token WRITEONLY418=null;
ParserRuleReturnScope dispIDDirective419 =null;
Object READONLY417_tree=null;
Object WRITEONLY418_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 105) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:697:30: ( READONLY | WRITEONLY | dispIDDirective )
int alt132=3;
switch ( input.LA(1) ) {
case READONLY:
{
alt132=1;
}
break;
case WRITEONLY:
{
alt132=2;
}
break;
case DISPID:
{
alt132=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 132, 0, input);
throw nvae;
}
switch (alt132) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:697:32: READONLY
{
root_0 = (Object)adaptor.nil();
READONLY417=(Token)match(input,READONLY,FOLLOW_READONLY_in_propertyDispInterface10172); if (state.failed) return retval;
if ( state.backtracking==0 ) {
READONLY417_tree = (Object)adaptor.create(READONLY417);
adaptor.addChild(root_0, READONLY417_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:698:32: WRITEONLY
{
root_0 = (Object)adaptor.nil();
WRITEONLY418=(Token)match(input,WRITEONLY,FOLLOW_WRITEONLY_in_propertyDispInterface10205); if (state.failed) return retval;
if ( state.backtracking==0 ) {
WRITEONLY418_tree = (Object)adaptor.create(WRITEONLY418);
adaptor.addChild(root_0, WRITEONLY418_tree);
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:699:32: dispIDDirective
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_dispIDDirective_in_propertyDispInterface10238);
dispIDDirective419=dispIDDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, dispIDDirective419.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 105, propertyDispInterface_StartIndex); }
}
return retval;
}
// $ANTLR end "propertyDispInterface"
public static class visibility_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "visibility"
// au/com/integradev/delphi/antlr/Delphi.g:701:1: visibility : ( ( STRICT )? PROTECTED ^| ( STRICT )? PRIVATE ^| PUBLIC | PUBLISHED | AUTOMATED );
public final DelphiParser.visibility_return visibility() throws RecognitionException {
DelphiParser.visibility_return retval = new DelphiParser.visibility_return();
retval.start = input.LT(1);
int visibility_StartIndex = input.index();
Object root_0 = null;
Token STRICT420=null;
Token PROTECTED421=null;
Token STRICT422=null;
Token PRIVATE423=null;
Token PUBLIC424=null;
Token PUBLISHED425=null;
Token AUTOMATED426=null;
Object STRICT420_tree=null;
Object PROTECTED421_tree=null;
Object STRICT422_tree=null;
Object PRIVATE423_tree=null;
Object PUBLIC424_tree=null;
Object PUBLISHED425_tree=null;
Object AUTOMATED426_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 106) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:701:30: ( ( STRICT )? PROTECTED ^| ( STRICT )? PRIVATE ^| PUBLIC | PUBLISHED | AUTOMATED )
int alt135=5;
switch ( input.LA(1) ) {
case STRICT:
{
int LA135_1 = input.LA(2);
if ( (LA135_1==PROTECTED) ) {
alt135=1;
}
else if ( (LA135_1==PRIVATE) ) {
alt135=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 135, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PROTECTED:
{
alt135=1;
}
break;
case PRIVATE:
{
alt135=2;
}
break;
case PUBLIC:
{
alt135=3;
}
break;
case PUBLISHED:
{
alt135=4;
}
break;
case AUTOMATED:
{
alt135=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 135, 0, input);
throw nvae;
}
switch (alt135) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:701:32: ( STRICT )? PROTECTED ^
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:701:32: ( STRICT )?
int alt133=2;
int LA133_0 = input.LA(1);
if ( (LA133_0==STRICT) ) {
alt133=1;
}
switch (alt133) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:701:32: STRICT
{
STRICT420=(Token)match(input,STRICT,FOLLOW_STRICT_in_visibility10293); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STRICT420_tree = (Object)adaptor.create(STRICT420);
adaptor.addChild(root_0, STRICT420_tree);
}
}
break;
}
PROTECTED421=(Token)match(input,PROTECTED,FOLLOW_PROTECTED_in_visibility10296); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PROTECTED421_tree = new VisibilityNodeImpl(PROTECTED421) ;
root_0 = (Object)adaptor.becomeRoot(PROTECTED421_tree, root_0);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:702:32: ( STRICT )? PRIVATE ^
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:702:32: ( STRICT )?
int alt134=2;
int LA134_0 = input.LA(1);
if ( (LA134_0==STRICT) ) {
alt134=1;
}
switch (alt134) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:702:32: STRICT
{
STRICT422=(Token)match(input,STRICT,FOLLOW_STRICT_in_visibility10333); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STRICT422_tree = (Object)adaptor.create(STRICT422);
adaptor.addChild(root_0, STRICT422_tree);
}
}
break;
}
PRIVATE423=(Token)match(input,PRIVATE,FOLLOW_PRIVATE_in_visibility10336); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PRIVATE423_tree = new VisibilityNodeImpl(PRIVATE423) ;
root_0 = (Object)adaptor.becomeRoot(PRIVATE423_tree, root_0);
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:703:32: PUBLIC
{
root_0 = (Object)adaptor.nil();
PUBLIC424=(Token)match(input,PUBLIC,FOLLOW_PUBLIC_in_visibility10373); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PUBLIC424_tree = new VisibilityNodeImpl(PUBLIC424) ;
adaptor.addChild(root_0, PUBLIC424_tree);
}
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:704:32: PUBLISHED
{
root_0 = (Object)adaptor.nil();
PUBLISHED425=(Token)match(input,PUBLISHED,FOLLOW_PUBLISHED_in_visibility10409); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PUBLISHED425_tree = new VisibilityNodeImpl(PUBLISHED425) ;
adaptor.addChild(root_0, PUBLISHED425_tree);
}
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:705:32: AUTOMATED
{
root_0 = (Object)adaptor.nil();
AUTOMATED426=(Token)match(input,AUTOMATED,FOLLOW_AUTOMATED_in_visibility10445); if (state.failed) return retval;
if ( state.backtracking==0 ) {
AUTOMATED426_tree = new VisibilityNodeImpl(AUTOMATED426) ;
adaptor.addChild(root_0, AUTOMATED426_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 106, visibility_StartIndex); }
}
return retval;
}
// $ANTLR end "visibility"
public static class genericDefinition_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "genericDefinition"
// au/com/integradev/delphi/antlr/Delphi.g:711:1: genericDefinition : '<' typeParameterList '>' -> ^( TkGenericDefinition typeParameterList ) ;
public final DelphiParser.genericDefinition_return genericDefinition() throws RecognitionException {
DelphiParser.genericDefinition_return retval = new DelphiParser.genericDefinition_return();
retval.start = input.LT(1);
int genericDefinition_StartIndex = input.index();
Object root_0 = null;
Token char_literal427=null;
Token char_literal429=null;
ParserRuleReturnScope typeParameterList428 =null;
Object char_literal427_tree=null;
Object char_literal429_tree=null;
RewriteRuleTokenStream stream_GREATER_THAN=new RewriteRuleTokenStream(adaptor,"token GREATER_THAN");
RewriteRuleTokenStream stream_LESS_THAN=new RewriteRuleTokenStream(adaptor,"token LESS_THAN");
RewriteRuleSubtreeStream stream_typeParameterList=new RewriteRuleSubtreeStream(adaptor,"rule typeParameterList");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 107) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:711:30: ( '<' typeParameterList '>' -> ^( TkGenericDefinition typeParameterList ) )
// au/com/integradev/delphi/antlr/Delphi.g:711:32: '<' typeParameterList '>'
{
char_literal427=(Token)match(input,LESS_THAN,FOLLOW_LESS_THAN_in_genericDefinition10532); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LESS_THAN.add(char_literal427);
pushFollow(FOLLOW_typeParameterList_in_genericDefinition10534);
typeParameterList428=typeParameterList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeParameterList.add(typeParameterList428.getTree());
char_literal429=(Token)match(input,GREATER_THAN,FOLLOW_GREATER_THAN_in_genericDefinition10536); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GREATER_THAN.add(char_literal429);
// AST REWRITE
// elements: typeParameterList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 712:30: -> ^( TkGenericDefinition typeParameterList )
{
// au/com/integradev/delphi/antlr/Delphi.g:712:33: ^( TkGenericDefinition typeParameterList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new GenericDefinitionNodeImpl(TkGenericDefinition), root_1);
adaptor.addChild(root_1, stream_typeParameterList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 107, genericDefinition_StartIndex); }
}
return retval;
}
// $ANTLR end "genericDefinition"
public static class typeParameterList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeParameterList"
// au/com/integradev/delphi/antlr/Delphi.g:714:1: typeParameterList : typeParameter ( ';' ! typeParameter )* ;
public final DelphiParser.typeParameterList_return typeParameterList() throws RecognitionException {
DelphiParser.typeParameterList_return retval = new DelphiParser.typeParameterList_return();
retval.start = input.LT(1);
int typeParameterList_StartIndex = input.index();
Object root_0 = null;
Token char_literal431=null;
ParserRuleReturnScope typeParameter430 =null;
ParserRuleReturnScope typeParameter432 =null;
Object char_literal431_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 108) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:714:30: ( typeParameter ( ';' ! typeParameter )* )
// au/com/integradev/delphi/antlr/Delphi.g:714:32: typeParameter ( ';' ! typeParameter )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeParameter_in_typeParameterList10624);
typeParameter430=typeParameter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeParameter430.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:714:46: ( ';' ! typeParameter )*
loop136:
while (true) {
int alt136=2;
int LA136_0 = input.LA(1);
if ( (LA136_0==SEMICOLON) ) {
alt136=1;
}
switch (alt136) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:714:47: ';' ! typeParameter
{
char_literal431=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_typeParameterList10627); if (state.failed) return retval;
pushFollow(FOLLOW_typeParameter_in_typeParameterList10630);
typeParameter432=typeParameter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeParameter432.getTree());
}
break;
default :
break loop136;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 108, typeParameterList_StartIndex); }
}
return retval;
}
// $ANTLR end "typeParameterList"
public static class typeParameter_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeParameter"
// au/com/integradev/delphi/antlr/Delphi.g:716:1: typeParameter : nameDeclaration ( ',' nameDeclaration )* ( ':' genericConstraint ( ',' genericConstraint )* )? -> ^( TkTypeParameter nameDeclaration ( nameDeclaration )* ( genericConstraint ( genericConstraint )* )? ) ;
public final DelphiParser.typeParameter_return typeParameter() throws RecognitionException {
DelphiParser.typeParameter_return retval = new DelphiParser.typeParameter_return();
retval.start = input.LT(1);
int typeParameter_StartIndex = input.index();
Object root_0 = null;
Token char_literal434=null;
Token char_literal436=null;
Token char_literal438=null;
ParserRuleReturnScope nameDeclaration433 =null;
ParserRuleReturnScope nameDeclaration435 =null;
ParserRuleReturnScope genericConstraint437 =null;
ParserRuleReturnScope genericConstraint439 =null;
Object char_literal434_tree=null;
Object char_literal436_tree=null;
Object char_literal438_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_genericConstraint=new RewriteRuleSubtreeStream(adaptor,"rule genericConstraint");
RewriteRuleSubtreeStream stream_nameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclaration");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 109) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:716:30: ( nameDeclaration ( ',' nameDeclaration )* ( ':' genericConstraint ( ',' genericConstraint )* )? -> ^( TkTypeParameter nameDeclaration ( nameDeclaration )* ( genericConstraint ( genericConstraint )* )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:716:33: nameDeclaration ( ',' nameDeclaration )* ( ':' genericConstraint ( ',' genericConstraint )* )?
{
pushFollow(FOLLOW_nameDeclaration_in_typeParameter10685);
nameDeclaration433=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclaration.add(nameDeclaration433.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:716:49: ( ',' nameDeclaration )*
loop137:
while (true) {
int alt137=2;
int LA137_0 = input.LA(1);
if ( (LA137_0==COMMA) ) {
alt137=1;
}
switch (alt137) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:716:50: ',' nameDeclaration
{
char_literal434=(Token)match(input,COMMA,FOLLOW_COMMA_in_typeParameter10688); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(char_literal434);
pushFollow(FOLLOW_nameDeclaration_in_typeParameter10690);
nameDeclaration435=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclaration.add(nameDeclaration435.getTree());
}
break;
default :
break loop137;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:716:72: ( ':' genericConstraint ( ',' genericConstraint )* )?
int alt139=2;
int LA139_0 = input.LA(1);
if ( (LA139_0==COLON) ) {
alt139=1;
}
switch (alt139) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:716:73: ':' genericConstraint ( ',' genericConstraint )*
{
char_literal436=(Token)match(input,COLON,FOLLOW_COLON_in_typeParameter10695); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal436);
pushFollow(FOLLOW_genericConstraint_in_typeParameter10697);
genericConstraint437=genericConstraint();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_genericConstraint.add(genericConstraint437.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:716:95: ( ',' genericConstraint )*
loop138:
while (true) {
int alt138=2;
int LA138_0 = input.LA(1);
if ( (LA138_0==COMMA) ) {
alt138=1;
}
switch (alt138) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:716:96: ',' genericConstraint
{
char_literal438=(Token)match(input,COMMA,FOLLOW_COMMA_in_typeParameter10700); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(char_literal438);
pushFollow(FOLLOW_genericConstraint_in_typeParameter10702);
genericConstraint439=genericConstraint();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_genericConstraint.add(genericConstraint439.getTree());
}
break;
default :
break loop138;
}
}
}
break;
}
// AST REWRITE
// elements: nameDeclaration, genericConstraint, nameDeclaration, genericConstraint
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 717:30: -> ^( TkTypeParameter nameDeclaration ( nameDeclaration )* ( genericConstraint ( genericConstraint )* )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:717:33: ^( TkTypeParameter nameDeclaration ( nameDeclaration )* ( genericConstraint ( genericConstraint )* )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new TypeParameterNodeImpl(TkTypeParameter), root_1);
adaptor.addChild(root_1, stream_nameDeclaration.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:718:53: ( nameDeclaration )*
while ( stream_nameDeclaration.hasNext() ) {
adaptor.addChild(root_1, stream_nameDeclaration.nextTree());
}
stream_nameDeclaration.reset();
// au/com/integradev/delphi/antlr/Delphi.g:718:72: ( genericConstraint ( genericConstraint )* )?
if ( stream_genericConstraint.hasNext()||stream_genericConstraint.hasNext() ) {
adaptor.addChild(root_1, stream_genericConstraint.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:718:91: ( genericConstraint )*
while ( stream_genericConstraint.hasNext() ) {
adaptor.addChild(root_1, stream_genericConstraint.nextTree());
}
stream_genericConstraint.reset();
}
stream_genericConstraint.reset();
stream_genericConstraint.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 109, typeParameter_StartIndex); }
}
return retval;
}
// $ANTLR end "typeParameter"
public static class genericConstraint_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "genericConstraint"
// au/com/integradev/delphi/antlr/Delphi.g:721:1: genericConstraint : ( typeReference | RECORD | CLASS | CONSTRUCTOR );
public final DelphiParser.genericConstraint_return genericConstraint() throws RecognitionException {
DelphiParser.genericConstraint_return retval = new DelphiParser.genericConstraint_return();
retval.start = input.LT(1);
int genericConstraint_StartIndex = input.index();
Object root_0 = null;
Token RECORD441=null;
Token CLASS442=null;
Token CONSTRUCTOR443=null;
ParserRuleReturnScope typeReference440 =null;
Object RECORD441_tree=null;
Object CLASS442_tree=null;
Object CONSTRUCTOR443_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 110) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:721:30: ( typeReference | RECORD | CLASS | CONSTRUCTOR )
int alt140=4;
switch ( input.LA(1) ) {
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case TkIdentifier:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
alt140=1;
}
break;
case RECORD:
{
alt140=2;
}
break;
case CLASS:
{
alt140=3;
}
break;
case CONSTRUCTOR:
{
alt140=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 140, 0, input);
throw nvae;
}
switch (alt140) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:721:32: typeReference
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeReference_in_genericConstraint10877);
typeReference440=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReference440.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:722:32: RECORD
{
root_0 = (Object)adaptor.nil();
RECORD441=(Token)match(input,RECORD,FOLLOW_RECORD_in_genericConstraint10910); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RECORD441_tree = (Object)adaptor.create(RECORD441);
adaptor.addChild(root_0, RECORD441_tree);
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:723:32: CLASS
{
root_0 = (Object)adaptor.nil();
CLASS442=(Token)match(input,CLASS,FOLLOW_CLASS_in_genericConstraint10943); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CLASS442_tree = (Object)adaptor.create(CLASS442);
adaptor.addChild(root_0, CLASS442_tree);
}
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:724:32: CONSTRUCTOR
{
root_0 = (Object)adaptor.nil();
CONSTRUCTOR443=(Token)match(input,CONSTRUCTOR,FOLLOW_CONSTRUCTOR_in_genericConstraint10976); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CONSTRUCTOR443_tree = (Object)adaptor.create(CONSTRUCTOR443);
adaptor.addChild(root_0, CONSTRUCTOR443_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 110, genericConstraint_StartIndex); }
}
return retval;
}
// $ANTLR end "genericConstraint"
public static class genericArguments_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "genericArguments"
// au/com/integradev/delphi/antlr/Delphi.g:726:1: genericArguments : '<' typeReferenceOrStringOrFile ( ',' typeReferenceOrStringOrFile )* '>' -> ^( TkGenericArguments '<' typeReferenceOrStringOrFile ( ',' typeReferenceOrStringOrFile )* '>' ) ;
public final DelphiParser.genericArguments_return genericArguments() throws RecognitionException {
DelphiParser.genericArguments_return retval = new DelphiParser.genericArguments_return();
retval.start = input.LT(1);
int genericArguments_StartIndex = input.index();
Object root_0 = null;
Token char_literal444=null;
Token char_literal446=null;
Token char_literal448=null;
ParserRuleReturnScope typeReferenceOrStringOrFile445 =null;
ParserRuleReturnScope typeReferenceOrStringOrFile447 =null;
Object char_literal444_tree=null;
Object char_literal446_tree=null;
Object char_literal448_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_GREATER_THAN=new RewriteRuleTokenStream(adaptor,"token GREATER_THAN");
RewriteRuleTokenStream stream_LESS_THAN=new RewriteRuleTokenStream(adaptor,"token LESS_THAN");
RewriteRuleSubtreeStream stream_typeReferenceOrStringOrFile=new RewriteRuleSubtreeStream(adaptor,"rule typeReferenceOrStringOrFile");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 111) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:726:30: ( '<' typeReferenceOrStringOrFile ( ',' typeReferenceOrStringOrFile )* '>' -> ^( TkGenericArguments '<' typeReferenceOrStringOrFile ( ',' typeReferenceOrStringOrFile )* '>' ) )
// au/com/integradev/delphi/antlr/Delphi.g:726:32: '<' typeReferenceOrStringOrFile ( ',' typeReferenceOrStringOrFile )* '>'
{
char_literal444=(Token)match(input,LESS_THAN,FOLLOW_LESS_THAN_in_genericArguments11025); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LESS_THAN.add(char_literal444);
pushFollow(FOLLOW_typeReferenceOrStringOrFile_in_genericArguments11027);
typeReferenceOrStringOrFile445=typeReferenceOrStringOrFile();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeReferenceOrStringOrFile.add(typeReferenceOrStringOrFile445.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:726:64: ( ',' typeReferenceOrStringOrFile )*
loop141:
while (true) {
int alt141=2;
int LA141_0 = input.LA(1);
if ( (LA141_0==COMMA) ) {
alt141=1;
}
switch (alt141) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:726:65: ',' typeReferenceOrStringOrFile
{
char_literal446=(Token)match(input,COMMA,FOLLOW_COMMA_in_genericArguments11030); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(char_literal446);
pushFollow(FOLLOW_typeReferenceOrStringOrFile_in_genericArguments11032);
typeReferenceOrStringOrFile447=typeReferenceOrStringOrFile();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeReferenceOrStringOrFile.add(typeReferenceOrStringOrFile447.getTree());
}
break;
default :
break loop141;
}
}
char_literal448=(Token)match(input,GREATER_THAN,FOLLOW_GREATER_THAN_in_genericArguments11036); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GREATER_THAN.add(char_literal448);
// AST REWRITE
// elements: typeReferenceOrStringOrFile, COMMA, LESS_THAN, GREATER_THAN, typeReferenceOrStringOrFile
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 727:30: -> ^( TkGenericArguments '<' typeReferenceOrStringOrFile ( ',' typeReferenceOrStringOrFile )* '>' )
{
// au/com/integradev/delphi/antlr/Delphi.g:727:33: ^( TkGenericArguments '<' typeReferenceOrStringOrFile ( ',' typeReferenceOrStringOrFile )* '>' )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new GenericArgumentsNodeImpl(TkGenericArguments), root_1);
adaptor.addChild(root_1, stream_LESS_THAN.nextNode());
adaptor.addChild(root_1, stream_typeReferenceOrStringOrFile.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:727:112: ( ',' typeReferenceOrStringOrFile )*
while ( stream_typeReferenceOrStringOrFile.hasNext()||stream_COMMA.hasNext() ) {
adaptor.addChild(root_1, stream_COMMA.nextNode());
adaptor.addChild(root_1, stream_typeReferenceOrStringOrFile.nextTree());
}
stream_typeReferenceOrStringOrFile.reset();
stream_COMMA.reset();
adaptor.addChild(root_1, stream_GREATER_THAN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 111, genericArguments_StartIndex); }
}
return retval;
}
// $ANTLR end "genericArguments"
public static class routineNameGenericArguments_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineNameGenericArguments"
// au/com/integradev/delphi/antlr/Delphi.g:729:1: routineNameGenericArguments : '<' typeReferenceOrStringOrFile ( commaOrSemicolon typeReferenceOrStringOrFile )* '>' -> ^( TkGenericArguments '<' typeReferenceOrStringOrFile ( commaOrSemicolon typeReferenceOrStringOrFile )* '>' ) ;
public final DelphiParser.routineNameGenericArguments_return routineNameGenericArguments() throws RecognitionException {
DelphiParser.routineNameGenericArguments_return retval = new DelphiParser.routineNameGenericArguments_return();
retval.start = input.LT(1);
int routineNameGenericArguments_StartIndex = input.index();
Object root_0 = null;
Token char_literal449=null;
Token char_literal453=null;
ParserRuleReturnScope typeReferenceOrStringOrFile450 =null;
ParserRuleReturnScope commaOrSemicolon451 =null;
ParserRuleReturnScope typeReferenceOrStringOrFile452 =null;
Object char_literal449_tree=null;
Object char_literal453_tree=null;
RewriteRuleTokenStream stream_GREATER_THAN=new RewriteRuleTokenStream(adaptor,"token GREATER_THAN");
RewriteRuleTokenStream stream_LESS_THAN=new RewriteRuleTokenStream(adaptor,"token LESS_THAN");
RewriteRuleSubtreeStream stream_commaOrSemicolon=new RewriteRuleSubtreeStream(adaptor,"rule commaOrSemicolon");
RewriteRuleSubtreeStream stream_typeReferenceOrStringOrFile=new RewriteRuleSubtreeStream(adaptor,"rule typeReferenceOrStringOrFile");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 112) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:729:30: ( '<' typeReferenceOrStringOrFile ( commaOrSemicolon typeReferenceOrStringOrFile )* '>' -> ^( TkGenericArguments '<' typeReferenceOrStringOrFile ( commaOrSemicolon typeReferenceOrStringOrFile )* '>' ) )
// au/com/integradev/delphi/antlr/Delphi.g:729:32: '<' typeReferenceOrStringOrFile ( commaOrSemicolon typeReferenceOrStringOrFile )* '>'
{
char_literal449=(Token)match(input,LESS_THAN,FOLLOW_LESS_THAN_in_routineNameGenericArguments11125); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LESS_THAN.add(char_literal449);
pushFollow(FOLLOW_typeReferenceOrStringOrFile_in_routineNameGenericArguments11127);
typeReferenceOrStringOrFile450=typeReferenceOrStringOrFile();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeReferenceOrStringOrFile.add(typeReferenceOrStringOrFile450.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:729:64: ( commaOrSemicolon typeReferenceOrStringOrFile )*
loop142:
while (true) {
int alt142=2;
int LA142_0 = input.LA(1);
if ( (LA142_0==COMMA||LA142_0==SEMICOLON) ) {
alt142=1;
}
switch (alt142) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:729:65: commaOrSemicolon typeReferenceOrStringOrFile
{
pushFollow(FOLLOW_commaOrSemicolon_in_routineNameGenericArguments11130);
commaOrSemicolon451=commaOrSemicolon();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_commaOrSemicolon.add(commaOrSemicolon451.getTree());
pushFollow(FOLLOW_typeReferenceOrStringOrFile_in_routineNameGenericArguments11132);
typeReferenceOrStringOrFile452=typeReferenceOrStringOrFile();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeReferenceOrStringOrFile.add(typeReferenceOrStringOrFile452.getTree());
}
break;
default :
break loop142;
}
}
char_literal453=(Token)match(input,GREATER_THAN,FOLLOW_GREATER_THAN_in_routineNameGenericArguments11136); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GREATER_THAN.add(char_literal453);
// AST REWRITE
// elements: typeReferenceOrStringOrFile, GREATER_THAN, LESS_THAN, typeReferenceOrStringOrFile, commaOrSemicolon
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 730:30: -> ^( TkGenericArguments '<' typeReferenceOrStringOrFile ( commaOrSemicolon typeReferenceOrStringOrFile )* '>' )
{
// au/com/integradev/delphi/antlr/Delphi.g:730:33: ^( TkGenericArguments '<' typeReferenceOrStringOrFile ( commaOrSemicolon typeReferenceOrStringOrFile )* '>' )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new GenericArgumentsNodeImpl(TkGenericArguments), root_1);
adaptor.addChild(root_1, stream_LESS_THAN.nextNode());
adaptor.addChild(root_1, stream_typeReferenceOrStringOrFile.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:730:112: ( commaOrSemicolon typeReferenceOrStringOrFile )*
while ( stream_typeReferenceOrStringOrFile.hasNext()||stream_commaOrSemicolon.hasNext() ) {
adaptor.addChild(root_1, stream_commaOrSemicolon.nextTree());
adaptor.addChild(root_1, stream_typeReferenceOrStringOrFile.nextTree());
}
stream_typeReferenceOrStringOrFile.reset();
stream_commaOrSemicolon.reset();
adaptor.addChild(root_1, stream_GREATER_THAN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 112, routineNameGenericArguments_StartIndex); }
}
return retval;
}
// $ANTLR end "routineNameGenericArguments"
public static class commaOrSemicolon_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "commaOrSemicolon"
// au/com/integradev/delphi/antlr/Delphi.g:732:1: commaOrSemicolon : ( ',' | ';' );
public final DelphiParser.commaOrSemicolon_return commaOrSemicolon() throws RecognitionException {
DelphiParser.commaOrSemicolon_return retval = new DelphiParser.commaOrSemicolon_return();
retval.start = input.LT(1);
int commaOrSemicolon_StartIndex = input.index();
Object root_0 = null;
Token set454=null;
Object set454_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 113) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:732:30: ( ',' | ';' )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set454=input.LT(1);
if ( input.LA(1)==COMMA||input.LA(1)==SEMICOLON ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set454));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 113, commaOrSemicolon_StartIndex); }
}
return retval;
}
// $ANTLR end "commaOrSemicolon"
public static class methodResolutionClause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "methodResolutionClause"
// au/com/integradev/delphi/antlr/Delphi.g:738:1: methodResolutionClause : key= ( FUNCTION | PROCEDURE ) interfaceMethod= nameReference '=' implemented= nameReference ';' -> ^( TkMethodResolveClause $key $interfaceMethod $implemented) ;
public final DelphiParser.methodResolutionClause_return methodResolutionClause() throws RecognitionException {
DelphiParser.methodResolutionClause_return retval = new DelphiParser.methodResolutionClause_return();
retval.start = input.LT(1);
int methodResolutionClause_StartIndex = input.index();
Object root_0 = null;
Token key=null;
Token char_literal455=null;
Token char_literal456=null;
ParserRuleReturnScope interfaceMethod =null;
ParserRuleReturnScope implemented =null;
Object key_tree=null;
Object char_literal455_tree=null;
Object char_literal456_tree=null;
RewriteRuleTokenStream stream_PROCEDURE=new RewriteRuleTokenStream(adaptor,"token PROCEDURE");
RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleTokenStream stream_FUNCTION=new RewriteRuleTokenStream(adaptor,"token FUNCTION");
RewriteRuleSubtreeStream stream_nameReference=new RewriteRuleSubtreeStream(adaptor,"rule nameReference");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 114) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:738:30: (key= ( FUNCTION | PROCEDURE ) interfaceMethod= nameReference '=' implemented= nameReference ';' -> ^( TkMethodResolveClause $key $interfaceMethod $implemented) )
// au/com/integradev/delphi/antlr/Delphi.g:738:32: key= ( FUNCTION | PROCEDURE ) interfaceMethod= nameReference '=' implemented= nameReference ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:738:36: ( FUNCTION | PROCEDURE )
int alt143=2;
int LA143_0 = input.LA(1);
if ( (LA143_0==FUNCTION) ) {
alt143=1;
}
else if ( (LA143_0==PROCEDURE) ) {
alt143=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 143, 0, input);
throw nvae;
}
switch (alt143) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:738:37: FUNCTION
{
key=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_methodResolutionClause11290); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FUNCTION.add(key);
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:738:48: PROCEDURE
{
key=(Token)match(input,PROCEDURE,FOLLOW_PROCEDURE_in_methodResolutionClause11294); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PROCEDURE.add(key);
}
break;
}
pushFollow(FOLLOW_nameReference_in_methodResolutionClause11299);
interfaceMethod=nameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameReference.add(interfaceMethod.getTree());
char_literal455=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_methodResolutionClause11301); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EQUAL.add(char_literal455);
pushFollow(FOLLOW_nameReference_in_methodResolutionClause11305);
implemented=nameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameReference.add(implemented.getTree());
char_literal456=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_methodResolutionClause11307); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal456);
// AST REWRITE
// elements: implemented, key, interfaceMethod
// token labels: key
// rule labels: interfaceMethod, implemented, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleTokenStream stream_key=new RewriteRuleTokenStream(adaptor,"token key",key);
RewriteRuleSubtreeStream stream_interfaceMethod=new RewriteRuleSubtreeStream(adaptor,"rule interfaceMethod",interfaceMethod!=null?interfaceMethod.getTree():null);
RewriteRuleSubtreeStream stream_implemented=new RewriteRuleSubtreeStream(adaptor,"rule implemented",implemented!=null?implemented.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 739:30: -> ^( TkMethodResolveClause $key $interfaceMethod $implemented)
{
// au/com/integradev/delphi/antlr/Delphi.g:739:33: ^( TkMethodResolveClause $key $interfaceMethod $implemented)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new MethodResolutionClauseNodeImpl(TkMethodResolveClause), root_1);
adaptor.addChild(root_1, stream_key.nextNode());
adaptor.addChild(root_1, stream_interfaceMethod.nextTree());
adaptor.addChild(root_1, stream_implemented.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 114, methodResolutionClause_StartIndex); }
}
return retval;
}
// $ANTLR end "methodResolutionClause"
public static class routineInterface_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineInterface"
// au/com/integradev/delphi/antlr/Delphi.g:743:1: routineInterface : routineInterfaceHeading -> ^( TkRoutineDeclaration routineInterfaceHeading ) ;
public final DelphiParser.routineInterface_return routineInterface() throws RecognitionException {
DelphiParser.routineInterface_return retval = new DelphiParser.routineInterface_return();
retval.start = input.LT(1);
int routineInterface_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope routineInterfaceHeading457 =null;
RewriteRuleSubtreeStream stream_routineInterfaceHeading=new RewriteRuleSubtreeStream(adaptor,"rule routineInterfaceHeading");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 115) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:743:30: ( routineInterfaceHeading -> ^( TkRoutineDeclaration routineInterfaceHeading ) )
// au/com/integradev/delphi/antlr/Delphi.g:743:32: routineInterfaceHeading
{
pushFollow(FOLLOW_routineInterfaceHeading_in_routineInterface11473);
routineInterfaceHeading457=routineInterfaceHeading();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineInterfaceHeading.add(routineInterfaceHeading457.getTree());
// AST REWRITE
// elements: routineInterfaceHeading
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 744:30: -> ^( TkRoutineDeclaration routineInterfaceHeading )
{
// au/com/integradev/delphi/antlr/Delphi.g:744:33: ^( TkRoutineDeclaration routineInterfaceHeading )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineDeclarationNodeImpl(TkRoutineDeclaration), root_1);
adaptor.addChild(root_1, stream_routineInterfaceHeading.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 115, routineInterface_StartIndex); }
}
return retval;
}
// $ANTLR end "routineInterface"
public static class routineImplementation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineImplementation"
// au/com/integradev/delphi/antlr/Delphi.g:748:1: routineImplementation : ( fullRoutineImplementation | externalRoutine | forwardRoutine );
public final DelphiParser.routineImplementation_return routineImplementation() throws RecognitionException {
DelphiParser.routineImplementation_return retval = new DelphiParser.routineImplementation_return();
retval.start = input.LT(1);
int routineImplementation_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope fullRoutineImplementation458 =null;
ParserRuleReturnScope externalRoutine459 =null;
ParserRuleReturnScope forwardRoutine460 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 116) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:748:30: ( fullRoutineImplementation | externalRoutine | forwardRoutine )
int alt144=3;
switch ( input.LA(1) ) {
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA144_1 = input.LA(2);
if ( (synpred209_Delphi()) ) {
alt144=1;
}
else if ( (synpred210_Delphi()) ) {
alt144=2;
}
else if ( (true) ) {
alt144=3;
}
}
break;
case CLASS:
{
int LA144_2 = input.LA(2);
if ( (synpred209_Delphi()) ) {
alt144=1;
}
else if ( (synpred210_Delphi()) ) {
alt144=2;
}
else if ( (true) ) {
alt144=3;
}
}
break;
case CONSTRUCTOR:
case DESTRUCTOR:
case FUNCTION:
case OPERATOR:
case PROCEDURE:
{
int LA144_3 = input.LA(2);
if ( (synpred209_Delphi()) ) {
alt144=1;
}
else if ( (synpred210_Delphi()) ) {
alt144=2;
}
else if ( (true) ) {
alt144=3;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 144, 0, input);
throw nvae;
}
switch (alt144) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:748:32: fullRoutineImplementation
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_fullRoutineImplementation_in_routineImplementation11627);
fullRoutineImplementation458=fullRoutineImplementation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, fullRoutineImplementation458.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:749:32: externalRoutine
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_externalRoutine_in_routineImplementation11660);
externalRoutine459=externalRoutine();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, externalRoutine459.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:750:32: forwardRoutine
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forwardRoutine_in_routineImplementation11693);
forwardRoutine460=forwardRoutine();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, forwardRoutine460.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 116, routineImplementation_StartIndex); }
}
return retval;
}
// $ANTLR end "routineImplementation"
public static class fullRoutineImplementation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "fullRoutineImplementation"
// au/com/integradev/delphi/antlr/Delphi.g:752:1: fullRoutineImplementation : routineImplementationHeading routineBody -> ^( TkRoutineImplementation routineImplementationHeading routineBody ) ;
public final DelphiParser.fullRoutineImplementation_return fullRoutineImplementation() throws RecognitionException {
DelphiParser.fullRoutineImplementation_return retval = new DelphiParser.fullRoutineImplementation_return();
retval.start = input.LT(1);
int fullRoutineImplementation_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope routineImplementationHeading461 =null;
ParserRuleReturnScope routineBody462 =null;
RewriteRuleSubtreeStream stream_routineImplementationHeading=new RewriteRuleSubtreeStream(adaptor,"rule routineImplementationHeading");
RewriteRuleSubtreeStream stream_routineBody=new RewriteRuleSubtreeStream(adaptor,"rule routineBody");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 117) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:752:30: ( routineImplementationHeading routineBody -> ^( TkRoutineImplementation routineImplementationHeading routineBody ) )
// au/com/integradev/delphi/antlr/Delphi.g:752:32: routineImplementationHeading routineBody
{
pushFollow(FOLLOW_routineImplementationHeading_in_fullRoutineImplementation11733);
routineImplementationHeading461=routineImplementationHeading();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineImplementationHeading.add(routineImplementationHeading461.getTree());
pushFollow(FOLLOW_routineBody_in_fullRoutineImplementation11735);
routineBody462=routineBody();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineBody.add(routineBody462.getTree());
// AST REWRITE
// elements: routineImplementationHeading, routineBody
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 753:30: -> ^( TkRoutineImplementation routineImplementationHeading routineBody )
{
// au/com/integradev/delphi/antlr/Delphi.g:753:33: ^( TkRoutineImplementation routineImplementationHeading routineBody )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineImplementationNodeImpl(TkRoutineImplementation), root_1);
adaptor.addChild(root_1, stream_routineImplementationHeading.nextTree());
adaptor.addChild(root_1, stream_routineBody.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 117, fullRoutineImplementation_StartIndex); }
}
return retval;
}
// $ANTLR end "fullRoutineImplementation"
public static class externalRoutine_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "externalRoutine"
// au/com/integradev/delphi/antlr/Delphi.g:758:1: externalRoutine : externalRoutineHeading -> ^( TkRoutineImplementation externalRoutineHeading ) ;
public final DelphiParser.externalRoutine_return externalRoutine() throws RecognitionException {
DelphiParser.externalRoutine_return retval = new DelphiParser.externalRoutine_return();
retval.start = input.LT(1);
int externalRoutine_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope externalRoutineHeading463 =null;
RewriteRuleSubtreeStream stream_externalRoutineHeading=new RewriteRuleSubtreeStream(adaptor,"rule externalRoutineHeading");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 118) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:758:30: ( externalRoutineHeading -> ^( TkRoutineImplementation externalRoutineHeading ) )
// au/com/integradev/delphi/antlr/Delphi.g:758:32: externalRoutineHeading
{
pushFollow(FOLLOW_externalRoutineHeading_in_externalRoutine11933);
externalRoutineHeading463=externalRoutineHeading();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_externalRoutineHeading.add(externalRoutineHeading463.getTree());
// AST REWRITE
// elements: externalRoutineHeading
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 759:30: -> ^( TkRoutineImplementation externalRoutineHeading )
{
// au/com/integradev/delphi/antlr/Delphi.g:759:33: ^( TkRoutineImplementation externalRoutineHeading )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineImplementationNodeImpl(TkRoutineImplementation), root_1);
adaptor.addChild(root_1, stream_externalRoutineHeading.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 118, externalRoutine_StartIndex); }
}
return retval;
}
// $ANTLR end "externalRoutine"
public static class forwardRoutine_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "forwardRoutine"
// au/com/integradev/delphi/antlr/Delphi.g:763:1: forwardRoutine : forwardRoutineHeading -> ^( TkRoutineDeclaration forwardRoutineHeading ) ;
public final DelphiParser.forwardRoutine_return forwardRoutine() throws RecognitionException {
DelphiParser.forwardRoutine_return retval = new DelphiParser.forwardRoutine_return();
retval.start = input.LT(1);
int forwardRoutine_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope forwardRoutineHeading464 =null;
RewriteRuleSubtreeStream stream_forwardRoutineHeading=new RewriteRuleSubtreeStream(adaptor,"rule forwardRoutineHeading");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 119) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:763:30: ( forwardRoutineHeading -> ^( TkRoutineDeclaration forwardRoutineHeading ) )
// au/com/integradev/delphi/antlr/Delphi.g:763:32: forwardRoutineHeading
{
pushFollow(FOLLOW_forwardRoutineHeading_in_forwardRoutine12094);
forwardRoutineHeading464=forwardRoutineHeading();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_forwardRoutineHeading.add(forwardRoutineHeading464.getTree());
// AST REWRITE
// elements: forwardRoutineHeading
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 764:30: -> ^( TkRoutineDeclaration forwardRoutineHeading )
{
// au/com/integradev/delphi/antlr/Delphi.g:764:33: ^( TkRoutineDeclaration forwardRoutineHeading )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineDeclarationNodeImpl(TkRoutineDeclaration), root_1);
adaptor.addChild(root_1, stream_forwardRoutineHeading.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 119, forwardRoutine_StartIndex); }
}
return retval;
}
// $ANTLR end "forwardRoutine"
public static class routineInterfaceHeading_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineInterfaceHeading"
// au/com/integradev/delphi/antlr/Delphi.g:768:1: routineInterfaceHeading : ( attributeList )? ( CLASS )? routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? interfaceDirectiveSection -> ^( TkRoutineHeading routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? interfaceDirectiveSection ) ;
public final DelphiParser.routineInterfaceHeading_return routineInterfaceHeading() throws RecognitionException {
DelphiParser.routineInterfaceHeading_return retval = new DelphiParser.routineInterfaceHeading_return();
retval.start = input.LT(1);
int routineInterfaceHeading_StartIndex = input.index();
Object root_0 = null;
Token CLASS466=null;
ParserRuleReturnScope attributeList465 =null;
ParserRuleReturnScope routineKey467 =null;
ParserRuleReturnScope routineDeclarationName468 =null;
ParserRuleReturnScope routineParameters469 =null;
ParserRuleReturnScope routineReturnType470 =null;
ParserRuleReturnScope interfaceDirectiveSection471 =null;
Object CLASS466_tree=null;
RewriteRuleTokenStream stream_CLASS=new RewriteRuleTokenStream(adaptor,"token CLASS");
RewriteRuleSubtreeStream stream_routineReturnType=new RewriteRuleSubtreeStream(adaptor,"rule routineReturnType");
RewriteRuleSubtreeStream stream_interfaceDirectiveSection=new RewriteRuleSubtreeStream(adaptor,"rule interfaceDirectiveSection");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
RewriteRuleSubtreeStream stream_routineKey=new RewriteRuleSubtreeStream(adaptor,"rule routineKey");
RewriteRuleSubtreeStream stream_routineDeclarationName=new RewriteRuleSubtreeStream(adaptor,"rule routineDeclarationName");
RewriteRuleSubtreeStream stream_routineParameters=new RewriteRuleSubtreeStream(adaptor,"rule routineParameters");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 120) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:768:30: ( ( attributeList )? ( CLASS )? routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? interfaceDirectiveSection -> ^( TkRoutineHeading routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? interfaceDirectiveSection ) )
// au/com/integradev/delphi/antlr/Delphi.g:768:32: ( attributeList )? ( CLASS )? routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? interfaceDirectiveSection
{
// au/com/integradev/delphi/antlr/Delphi.g:768:32: ( attributeList )?
int alt145=2;
int LA145_0 = input.LA(1);
if ( (LA145_0==PAREN_BRACKET_LEFT||LA145_0==SQUARE_BRACKET_LEFT) ) {
alt145=1;
}
switch (alt145) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:768:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_routineInterfaceHeading12246);
attributeList465=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList465.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:768:47: ( CLASS )?
int alt146=2;
int LA146_0 = input.LA(1);
if ( (LA146_0==CLASS) ) {
alt146=1;
}
switch (alt146) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:768:47: CLASS
{
CLASS466=(Token)match(input,CLASS,FOLLOW_CLASS_in_routineInterfaceHeading12249); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CLASS.add(CLASS466);
}
break;
}
pushFollow(FOLLOW_routineKey_in_routineInterfaceHeading12252);
routineKey467=routineKey();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineKey.add(routineKey467.getTree());
pushFollow(FOLLOW_routineDeclarationName_in_routineInterfaceHeading12254);
routineDeclarationName468=routineDeclarationName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineDeclarationName.add(routineDeclarationName468.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:768:88: ( routineParameters )?
int alt147=2;
int LA147_0 = input.LA(1);
if ( (LA147_0==PAREN_LEFT) ) {
alt147=1;
}
switch (alt147) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:768:88: routineParameters
{
pushFollow(FOLLOW_routineParameters_in_routineInterfaceHeading12256);
routineParameters469=routineParameters();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineParameters.add(routineParameters469.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:768:107: ( routineReturnType )?
int alt148=2;
int LA148_0 = input.LA(1);
if ( (LA148_0==COLON) ) {
alt148=1;
}
switch (alt148) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:768:107: routineReturnType
{
pushFollow(FOLLOW_routineReturnType_in_routineInterfaceHeading12259);
routineReturnType470=routineReturnType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineReturnType.add(routineReturnType470.getTree());
}
break;
}
pushFollow(FOLLOW_interfaceDirectiveSection_in_routineInterfaceHeading12262);
interfaceDirectiveSection471=interfaceDirectiveSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_interfaceDirectiveSection.add(interfaceDirectiveSection471.getTree());
// AST REWRITE
// elements: CLASS, routineKey, routineReturnType, routineParameters, attributeList, interfaceDirectiveSection, routineDeclarationName
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 769:30: -> ^( TkRoutineHeading routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? interfaceDirectiveSection )
{
// au/com/integradev/delphi/antlr/Delphi.g:769:33: ^( TkRoutineHeading routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? interfaceDirectiveSection )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineHeadingNodeImpl(TkRoutineHeading), root_1);
adaptor.addChild(root_1, stream_routineKey.nextTree());
adaptor.addChild(root_1, stream_routineDeclarationName.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:772:37: ( routineParameters )?
if ( stream_routineParameters.hasNext() ) {
adaptor.addChild(root_1, stream_routineParameters.nextTree());
}
stream_routineParameters.reset();
// au/com/integradev/delphi/antlr/Delphi.g:773:37: ( routineReturnType )?
if ( stream_routineReturnType.hasNext() ) {
adaptor.addChild(root_1, stream_routineReturnType.nextTree());
}
stream_routineReturnType.reset();
// au/com/integradev/delphi/antlr/Delphi.g:774:37: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
// au/com/integradev/delphi/antlr/Delphi.g:775:37: ( CLASS )?
if ( stream_CLASS.hasNext() ) {
adaptor.addChild(root_1, stream_CLASS.nextNode());
}
stream_CLASS.reset();
adaptor.addChild(root_1, stream_interfaceDirectiveSection.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 120, routineInterfaceHeading_StartIndex); }
}
return retval;
}
// $ANTLR end "routineInterfaceHeading"
public static class routineImplementationHeading_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineImplementationHeading"
// au/com/integradev/delphi/antlr/Delphi.g:779:1: routineImplementationHeading : ( attributeList )? ( CLASS )? routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? implDirectiveSection -> ^( TkRoutineHeading routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? implDirectiveSection ) ;
public final DelphiParser.routineImplementationHeading_return routineImplementationHeading() throws RecognitionException {
DelphiParser.routineImplementationHeading_return retval = new DelphiParser.routineImplementationHeading_return();
retval.start = input.LT(1);
int routineImplementationHeading_StartIndex = input.index();
Object root_0 = null;
Token CLASS473=null;
ParserRuleReturnScope attributeList472 =null;
ParserRuleReturnScope routineKey474 =null;
ParserRuleReturnScope routineImplementationName475 =null;
ParserRuleReturnScope routineParameters476 =null;
ParserRuleReturnScope routineReturnType477 =null;
ParserRuleReturnScope implDirectiveSection478 =null;
Object CLASS473_tree=null;
RewriteRuleTokenStream stream_CLASS=new RewriteRuleTokenStream(adaptor,"token CLASS");
RewriteRuleSubtreeStream stream_routineReturnType=new RewriteRuleSubtreeStream(adaptor,"rule routineReturnType");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
RewriteRuleSubtreeStream stream_routineKey=new RewriteRuleSubtreeStream(adaptor,"rule routineKey");
RewriteRuleSubtreeStream stream_routineImplementationName=new RewriteRuleSubtreeStream(adaptor,"rule routineImplementationName");
RewriteRuleSubtreeStream stream_routineParameters=new RewriteRuleSubtreeStream(adaptor,"rule routineParameters");
RewriteRuleSubtreeStream stream_implDirectiveSection=new RewriteRuleSubtreeStream(adaptor,"rule implDirectiveSection");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 121) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:779:30: ( ( attributeList )? ( CLASS )? routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? implDirectiveSection -> ^( TkRoutineHeading routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? implDirectiveSection ) )
// au/com/integradev/delphi/antlr/Delphi.g:779:32: ( attributeList )? ( CLASS )? routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? implDirectiveSection
{
// au/com/integradev/delphi/antlr/Delphi.g:779:32: ( attributeList )?
int alt149=2;
int LA149_0 = input.LA(1);
if ( (LA149_0==PAREN_BRACKET_LEFT||LA149_0==SQUARE_BRACKET_LEFT) ) {
alt149=1;
}
switch (alt149) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:779:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_routineImplementationHeading12641);
attributeList472=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList472.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:779:47: ( CLASS )?
int alt150=2;
int LA150_0 = input.LA(1);
if ( (LA150_0==CLASS) ) {
alt150=1;
}
switch (alt150) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:779:47: CLASS
{
CLASS473=(Token)match(input,CLASS,FOLLOW_CLASS_in_routineImplementationHeading12644); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CLASS.add(CLASS473);
}
break;
}
pushFollow(FOLLOW_routineKey_in_routineImplementationHeading12647);
routineKey474=routineKey();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineKey.add(routineKey474.getTree());
pushFollow(FOLLOW_routineImplementationName_in_routineImplementationHeading12649);
routineImplementationName475=routineImplementationName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineImplementationName.add(routineImplementationName475.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:779:91: ( routineParameters )?
int alt151=2;
int LA151_0 = input.LA(1);
if ( (LA151_0==PAREN_LEFT) ) {
alt151=1;
}
switch (alt151) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:779:91: routineParameters
{
pushFollow(FOLLOW_routineParameters_in_routineImplementationHeading12651);
routineParameters476=routineParameters();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineParameters.add(routineParameters476.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:779:110: ( routineReturnType )?
int alt152=2;
int LA152_0 = input.LA(1);
if ( (LA152_0==COLON) ) {
alt152=1;
}
switch (alt152) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:779:110: routineReturnType
{
pushFollow(FOLLOW_routineReturnType_in_routineImplementationHeading12654);
routineReturnType477=routineReturnType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineReturnType.add(routineReturnType477.getTree());
}
break;
}
pushFollow(FOLLOW_implDirectiveSection_in_routineImplementationHeading12657);
implDirectiveSection478=implDirectiveSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_implDirectiveSection.add(implDirectiveSection478.getTree());
// AST REWRITE
// elements: implDirectiveSection, attributeList, routineKey, routineImplementationName, routineParameters, routineReturnType, CLASS
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 780:30: -> ^( TkRoutineHeading routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? implDirectiveSection )
{
// au/com/integradev/delphi/antlr/Delphi.g:780:33: ^( TkRoutineHeading routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? implDirectiveSection )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineHeadingNodeImpl(TkRoutineHeading), root_1);
adaptor.addChild(root_1, stream_routineKey.nextTree());
adaptor.addChild(root_1, stream_routineImplementationName.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:783:37: ( routineParameters )?
if ( stream_routineParameters.hasNext() ) {
adaptor.addChild(root_1, stream_routineParameters.nextTree());
}
stream_routineParameters.reset();
// au/com/integradev/delphi/antlr/Delphi.g:784:37: ( routineReturnType )?
if ( stream_routineReturnType.hasNext() ) {
adaptor.addChild(root_1, stream_routineReturnType.nextTree());
}
stream_routineReturnType.reset();
// au/com/integradev/delphi/antlr/Delphi.g:785:37: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
// au/com/integradev/delphi/antlr/Delphi.g:786:37: ( CLASS )?
if ( stream_CLASS.hasNext() ) {
adaptor.addChild(root_1, stream_CLASS.nextNode());
}
stream_CLASS.reset();
adaptor.addChild(root_1, stream_implDirectiveSection.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 121, routineImplementationHeading_StartIndex); }
}
return retval;
}
// $ANTLR end "routineImplementationHeading"
public static class externalRoutineHeading_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "externalRoutineHeading"
// au/com/integradev/delphi/antlr/Delphi.g:790:1: externalRoutineHeading : ( attributeList )? ( CLASS )? routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? externalDirectiveSection -> ^( TkRoutineHeading routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? externalDirectiveSection ) ;
public final DelphiParser.externalRoutineHeading_return externalRoutineHeading() throws RecognitionException {
DelphiParser.externalRoutineHeading_return retval = new DelphiParser.externalRoutineHeading_return();
retval.start = input.LT(1);
int externalRoutineHeading_StartIndex = input.index();
Object root_0 = null;
Token CLASS480=null;
ParserRuleReturnScope attributeList479 =null;
ParserRuleReturnScope routineKey481 =null;
ParserRuleReturnScope routineImplementationName482 =null;
ParserRuleReturnScope routineParameters483 =null;
ParserRuleReturnScope routineReturnType484 =null;
ParserRuleReturnScope externalDirectiveSection485 =null;
Object CLASS480_tree=null;
RewriteRuleTokenStream stream_CLASS=new RewriteRuleTokenStream(adaptor,"token CLASS");
RewriteRuleSubtreeStream stream_routineReturnType=new RewriteRuleSubtreeStream(adaptor,"rule routineReturnType");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
RewriteRuleSubtreeStream stream_externalDirectiveSection=new RewriteRuleSubtreeStream(adaptor,"rule externalDirectiveSection");
RewriteRuleSubtreeStream stream_routineKey=new RewriteRuleSubtreeStream(adaptor,"rule routineKey");
RewriteRuleSubtreeStream stream_routineImplementationName=new RewriteRuleSubtreeStream(adaptor,"rule routineImplementationName");
RewriteRuleSubtreeStream stream_routineParameters=new RewriteRuleSubtreeStream(adaptor,"rule routineParameters");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 122) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:790:30: ( ( attributeList )? ( CLASS )? routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? externalDirectiveSection -> ^( TkRoutineHeading routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? externalDirectiveSection ) )
// au/com/integradev/delphi/antlr/Delphi.g:790:32: ( attributeList )? ( CLASS )? routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? externalDirectiveSection
{
// au/com/integradev/delphi/antlr/Delphi.g:790:32: ( attributeList )?
int alt153=2;
int LA153_0 = input.LA(1);
if ( (LA153_0==PAREN_BRACKET_LEFT||LA153_0==SQUARE_BRACKET_LEFT) ) {
alt153=1;
}
switch (alt153) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:790:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_externalRoutineHeading13042);
attributeList479=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList479.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:790:47: ( CLASS )?
int alt154=2;
int LA154_0 = input.LA(1);
if ( (LA154_0==CLASS) ) {
alt154=1;
}
switch (alt154) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:790:47: CLASS
{
CLASS480=(Token)match(input,CLASS,FOLLOW_CLASS_in_externalRoutineHeading13045); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CLASS.add(CLASS480);
}
break;
}
pushFollow(FOLLOW_routineKey_in_externalRoutineHeading13048);
routineKey481=routineKey();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineKey.add(routineKey481.getTree());
pushFollow(FOLLOW_routineImplementationName_in_externalRoutineHeading13050);
routineImplementationName482=routineImplementationName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineImplementationName.add(routineImplementationName482.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:790:91: ( routineParameters )?
int alt155=2;
int LA155_0 = input.LA(1);
if ( (LA155_0==PAREN_LEFT) ) {
alt155=1;
}
switch (alt155) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:790:91: routineParameters
{
pushFollow(FOLLOW_routineParameters_in_externalRoutineHeading13052);
routineParameters483=routineParameters();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineParameters.add(routineParameters483.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:790:110: ( routineReturnType )?
int alt156=2;
int LA156_0 = input.LA(1);
if ( (LA156_0==COLON) ) {
alt156=1;
}
switch (alt156) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:790:110: routineReturnType
{
pushFollow(FOLLOW_routineReturnType_in_externalRoutineHeading13055);
routineReturnType484=routineReturnType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineReturnType.add(routineReturnType484.getTree());
}
break;
}
pushFollow(FOLLOW_externalDirectiveSection_in_externalRoutineHeading13058);
externalDirectiveSection485=externalDirectiveSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_externalDirectiveSection.add(externalDirectiveSection485.getTree());
// AST REWRITE
// elements: attributeList, externalDirectiveSection, routineParameters, CLASS, routineImplementationName, routineReturnType, routineKey
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 791:30: -> ^( TkRoutineHeading routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? externalDirectiveSection )
{
// au/com/integradev/delphi/antlr/Delphi.g:791:33: ^( TkRoutineHeading routineKey routineImplementationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? externalDirectiveSection )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineHeadingNodeImpl(TkRoutineHeading), root_1);
adaptor.addChild(root_1, stream_routineKey.nextTree());
adaptor.addChild(root_1, stream_routineImplementationName.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:794:37: ( routineParameters )?
if ( stream_routineParameters.hasNext() ) {
adaptor.addChild(root_1, stream_routineParameters.nextTree());
}
stream_routineParameters.reset();
// au/com/integradev/delphi/antlr/Delphi.g:795:37: ( routineReturnType )?
if ( stream_routineReturnType.hasNext() ) {
adaptor.addChild(root_1, stream_routineReturnType.nextTree());
}
stream_routineReturnType.reset();
// au/com/integradev/delphi/antlr/Delphi.g:796:37: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
// au/com/integradev/delphi/antlr/Delphi.g:797:37: ( CLASS )?
if ( stream_CLASS.hasNext() ) {
adaptor.addChild(root_1, stream_CLASS.nextNode());
}
stream_CLASS.reset();
adaptor.addChild(root_1, stream_externalDirectiveSection.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 122, externalRoutineHeading_StartIndex); }
}
return retval;
}
// $ANTLR end "externalRoutineHeading"
public static class forwardRoutineHeading_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "forwardRoutineHeading"
// au/com/integradev/delphi/antlr/Delphi.g:801:1: forwardRoutineHeading : ( attributeList )? ( CLASS )? routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? forwardDirectiveSection -> ^( TkRoutineHeading routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? forwardDirectiveSection ) ;
public final DelphiParser.forwardRoutineHeading_return forwardRoutineHeading() throws RecognitionException {
DelphiParser.forwardRoutineHeading_return retval = new DelphiParser.forwardRoutineHeading_return();
retval.start = input.LT(1);
int forwardRoutineHeading_StartIndex = input.index();
Object root_0 = null;
Token CLASS487=null;
ParserRuleReturnScope attributeList486 =null;
ParserRuleReturnScope routineKey488 =null;
ParserRuleReturnScope routineDeclarationName489 =null;
ParserRuleReturnScope routineParameters490 =null;
ParserRuleReturnScope routineReturnType491 =null;
ParserRuleReturnScope forwardDirectiveSection492 =null;
Object CLASS487_tree=null;
RewriteRuleTokenStream stream_CLASS=new RewriteRuleTokenStream(adaptor,"token CLASS");
RewriteRuleSubtreeStream stream_routineReturnType=new RewriteRuleSubtreeStream(adaptor,"rule routineReturnType");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
RewriteRuleSubtreeStream stream_forwardDirectiveSection=new RewriteRuleSubtreeStream(adaptor,"rule forwardDirectiveSection");
RewriteRuleSubtreeStream stream_routineKey=new RewriteRuleSubtreeStream(adaptor,"rule routineKey");
RewriteRuleSubtreeStream stream_routineDeclarationName=new RewriteRuleSubtreeStream(adaptor,"rule routineDeclarationName");
RewriteRuleSubtreeStream stream_routineParameters=new RewriteRuleSubtreeStream(adaptor,"rule routineParameters");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 123) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:801:30: ( ( attributeList )? ( CLASS )? routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? forwardDirectiveSection -> ^( TkRoutineHeading routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? forwardDirectiveSection ) )
// au/com/integradev/delphi/antlr/Delphi.g:801:32: ( attributeList )? ( CLASS )? routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? forwardDirectiveSection
{
// au/com/integradev/delphi/antlr/Delphi.g:801:32: ( attributeList )?
int alt157=2;
int LA157_0 = input.LA(1);
if ( (LA157_0==PAREN_BRACKET_LEFT||LA157_0==SQUARE_BRACKET_LEFT) ) {
alt157=1;
}
switch (alt157) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:801:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_forwardRoutineHeading13444);
attributeList486=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList486.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:801:47: ( CLASS )?
int alt158=2;
int LA158_0 = input.LA(1);
if ( (LA158_0==CLASS) ) {
alt158=1;
}
switch (alt158) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:801:47: CLASS
{
CLASS487=(Token)match(input,CLASS,FOLLOW_CLASS_in_forwardRoutineHeading13447); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CLASS.add(CLASS487);
}
break;
}
pushFollow(FOLLOW_routineKey_in_forwardRoutineHeading13450);
routineKey488=routineKey();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineKey.add(routineKey488.getTree());
pushFollow(FOLLOW_routineDeclarationName_in_forwardRoutineHeading13452);
routineDeclarationName489=routineDeclarationName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineDeclarationName.add(routineDeclarationName489.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:801:88: ( routineParameters )?
int alt159=2;
int LA159_0 = input.LA(1);
if ( (LA159_0==PAREN_LEFT) ) {
alt159=1;
}
switch (alt159) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:801:88: routineParameters
{
pushFollow(FOLLOW_routineParameters_in_forwardRoutineHeading13454);
routineParameters490=routineParameters();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineParameters.add(routineParameters490.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:801:107: ( routineReturnType )?
int alt160=2;
int LA160_0 = input.LA(1);
if ( (LA160_0==COLON) ) {
alt160=1;
}
switch (alt160) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:801:107: routineReturnType
{
pushFollow(FOLLOW_routineReturnType_in_forwardRoutineHeading13457);
routineReturnType491=routineReturnType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineReturnType.add(routineReturnType491.getTree());
}
break;
}
pushFollow(FOLLOW_forwardDirectiveSection_in_forwardRoutineHeading13460);
forwardDirectiveSection492=forwardDirectiveSection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_forwardDirectiveSection.add(forwardDirectiveSection492.getTree());
// AST REWRITE
// elements: CLASS, forwardDirectiveSection, routineKey, routineReturnType, routineDeclarationName, attributeList, routineParameters
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 802:30: -> ^( TkRoutineHeading routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? forwardDirectiveSection )
{
// au/com/integradev/delphi/antlr/Delphi.g:802:33: ^( TkRoutineHeading routineKey routineDeclarationName ( routineParameters )? ( routineReturnType )? ( attributeList )? ( CLASS )? forwardDirectiveSection )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineHeadingNodeImpl(TkRoutineHeading), root_1);
adaptor.addChild(root_1, stream_routineKey.nextTree());
adaptor.addChild(root_1, stream_routineDeclarationName.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:805:37: ( routineParameters )?
if ( stream_routineParameters.hasNext() ) {
adaptor.addChild(root_1, stream_routineParameters.nextTree());
}
stream_routineParameters.reset();
// au/com/integradev/delphi/antlr/Delphi.g:806:37: ( routineReturnType )?
if ( stream_routineReturnType.hasNext() ) {
adaptor.addChild(root_1, stream_routineReturnType.nextTree());
}
stream_routineReturnType.reset();
// au/com/integradev/delphi/antlr/Delphi.g:807:37: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
// au/com/integradev/delphi/antlr/Delphi.g:808:37: ( CLASS )?
if ( stream_CLASS.hasNext() ) {
adaptor.addChild(root_1, stream_CLASS.nextNode());
}
stream_CLASS.reset();
adaptor.addChild(root_1, stream_forwardDirectiveSection.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 123, forwardRoutineHeading_StartIndex); }
}
return retval;
}
// $ANTLR end "forwardRoutineHeading"
public static class routineDeclarationName_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineDeclarationName"
// au/com/integradev/delphi/antlr/Delphi.g:812:1: routineDeclarationName : (decl= genericNameDeclaration |decl= specialOpNameDeclaration ) -> ^( TkRoutineName $decl) ;
public final DelphiParser.routineDeclarationName_return routineDeclarationName() throws RecognitionException {
DelphiParser.routineDeclarationName_return retval = new DelphiParser.routineDeclarationName_return();
retval.start = input.LT(1);
int routineDeclarationName_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope decl =null;
RewriteRuleSubtreeStream stream_genericNameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule genericNameDeclaration");
RewriteRuleSubtreeStream stream_specialOpNameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule specialOpNameDeclaration");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 124) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:812:30: ( (decl= genericNameDeclaration |decl= specialOpNameDeclaration ) -> ^( TkRoutineName $decl) )
// au/com/integradev/delphi/antlr/Delphi.g:812:32: (decl= genericNameDeclaration |decl= specialOpNameDeclaration )
{
// au/com/integradev/delphi/antlr/Delphi.g:812:32: (decl= genericNameDeclaration |decl= specialOpNameDeclaration )
int alt161=2;
int LA161_0 = input.LA(1);
if ( ((LA161_0 >= ABSOLUTE && LA161_0 <= ABSTRACT)||LA161_0==ALIGN||(LA161_0 >= ASSEMBLER && LA161_0 <= ASSEMBLY)||(LA161_0 >= AT && LA161_0 <= AUTOMATED)||LA161_0==CDECL||LA161_0==CONTAINS||(LA161_0 >= DEFAULT && LA161_0 <= DEPRECATED)||LA161_0==DISPID||LA161_0==DYNAMIC||(LA161_0 >= EXPERIMENTAL && LA161_0 <= EXPORT)||LA161_0==EXTERNAL||LA161_0==FAR||LA161_0==FINAL||LA161_0==FORWARD||LA161_0==HELPER||LA161_0==IMPLEMENTS||LA161_0==INDEX||LA161_0==LABEL||LA161_0==LOCAL||LA161_0==MESSAGE||(LA161_0 >= NAME && LA161_0 <= NEAR)||LA161_0==NODEFAULT||(LA161_0 >= ON && LA161_0 <= OPERATOR)||(LA161_0 >= OUT && LA161_0 <= OVERRIDE)||LA161_0==PACKAGE||(LA161_0 >= PASCAL && LA161_0 <= PLATFORM)||LA161_0==PRIVATE||(LA161_0 >= PROTECTED && LA161_0 <= PUBLISHED)||(LA161_0 >= READ && LA161_0 <= READONLY)||(LA161_0 >= REFERENCE && LA161_0 <= REINTRODUCE)||(LA161_0 >= REQUIRES && LA161_0 <= RESIDENT)||(LA161_0 >= SAFECALL && LA161_0 <= SEALED)||(LA161_0 >= STATIC && LA161_0 <= STRICT)||LA161_0==TkIdentifier||LA161_0==UNSAFE||(LA161_0 >= VARARGS && LA161_0 <= VIRTUAL)||LA161_0==WINAPI||(LA161_0 >= WRITE && LA161_0 <= WRITEONLY)) ) {
alt161=1;
}
else if ( (LA161_0==IN) ) {
alt161=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 161, 0, input);
throw nvae;
}
switch (alt161) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:813:34: decl= genericNameDeclaration
{
pushFollow(FOLLOW_genericNameDeclaration_in_routineDeclarationName13882);
decl=genericNameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_genericNameDeclaration.add(decl.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:814:34: decl= specialOpNameDeclaration
{
pushFollow(FOLLOW_specialOpNameDeclaration_in_routineDeclarationName13919);
decl=specialOpNameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_specialOpNameDeclaration.add(decl.getTree());
}
break;
}
// AST REWRITE
// elements: decl
// token labels:
// rule labels: decl, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_decl=new RewriteRuleSubtreeStream(adaptor,"rule decl",decl!=null?decl.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 816:30: -> ^( TkRoutineName $decl)
{
// au/com/integradev/delphi/antlr/Delphi.g:816:33: ^( TkRoutineName $decl)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineNameNodeImpl(TkRoutineName), root_1);
adaptor.addChild(root_1, stream_decl.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 124, routineDeclarationName_StartIndex); }
}
return retval;
}
// $ANTLR end "routineDeclarationName"
public static class routineImplementationName_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineImplementationName"
// au/com/integradev/delphi/antlr/Delphi.g:818:1: routineImplementationName : routineNameReference -> ^( TkRoutineName routineNameReference ) ;
public final DelphiParser.routineImplementationName_return routineImplementationName() throws RecognitionException {
DelphiParser.routineImplementationName_return retval = new DelphiParser.routineImplementationName_return();
retval.start = input.LT(1);
int routineImplementationName_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope routineNameReference493 =null;
RewriteRuleSubtreeStream stream_routineNameReference=new RewriteRuleSubtreeStream(adaptor,"rule routineNameReference");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 125) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:818:30: ( routineNameReference -> ^( TkRoutineName routineNameReference ) )
// au/com/integradev/delphi/antlr/Delphi.g:818:32: routineNameReference
{
pushFollow(FOLLOW_routineNameReference_in_routineImplementationName14031);
routineNameReference493=routineNameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineNameReference.add(routineNameReference493.getTree());
// AST REWRITE
// elements: routineNameReference
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 818:53: -> ^( TkRoutineName routineNameReference )
{
// au/com/integradev/delphi/antlr/Delphi.g:818:56: ^( TkRoutineName routineNameReference )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineNameNodeImpl(TkRoutineName), root_1);
adaptor.addChild(root_1, stream_routineNameReference.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 125, routineImplementationName_StartIndex); }
}
return retval;
}
// $ANTLR end "routineImplementationName"
public static class routineKey_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineKey"
// au/com/integradev/delphi/antlr/Delphi.g:820:1: routineKey : ( PROCEDURE | CONSTRUCTOR | DESTRUCTOR | FUNCTION | OPERATOR );
public final DelphiParser.routineKey_return routineKey() throws RecognitionException {
DelphiParser.routineKey_return retval = new DelphiParser.routineKey_return();
retval.start = input.LT(1);
int routineKey_StartIndex = input.index();
Object root_0 = null;
Token set494=null;
Object set494_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 126) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:820:30: ( PROCEDURE | CONSTRUCTOR | DESTRUCTOR | FUNCTION | OPERATOR )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set494=input.LT(1);
if ( input.LA(1)==CONSTRUCTOR||input.LA(1)==DESTRUCTOR||input.LA(1)==FUNCTION||input.LA(1)==OPERATOR||input.LA(1)==PROCEDURE ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set494));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 126, routineKey_StartIndex); }
}
return retval;
}
// $ANTLR end "routineKey"
public static class routineReturnType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineReturnType"
// au/com/integradev/delphi/antlr/Delphi.g:826:1: routineReturnType : ':' ( attributeList )? returnType -> ^( TkRoutineReturn returnType ( attributeList )? ) ;
public final DelphiParser.routineReturnType_return routineReturnType() throws RecognitionException {
DelphiParser.routineReturnType_return retval = new DelphiParser.routineReturnType_return();
retval.start = input.LT(1);
int routineReturnType_StartIndex = input.index();
Object root_0 = null;
Token char_literal495=null;
ParserRuleReturnScope attributeList496 =null;
ParserRuleReturnScope returnType497 =null;
Object char_literal495_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
RewriteRuleSubtreeStream stream_returnType=new RewriteRuleSubtreeStream(adaptor,"rule returnType");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 127) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:826:30: ( ':' ( attributeList )? returnType -> ^( TkRoutineReturn returnType ( attributeList )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:826:32: ':' ( attributeList )? returnType
{
char_literal495=(Token)match(input,COLON,FOLLOW_COLON_in_routineReturnType14277); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal495);
// au/com/integradev/delphi/antlr/Delphi.g:826:36: ( attributeList )?
int alt162=2;
int LA162_0 = input.LA(1);
if ( (LA162_0==PAREN_BRACKET_LEFT||LA162_0==SQUARE_BRACKET_LEFT) ) {
alt162=1;
}
switch (alt162) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:826:36: attributeList
{
pushFollow(FOLLOW_attributeList_in_routineReturnType14279);
attributeList496=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList496.getTree());
}
break;
}
pushFollow(FOLLOW_returnType_in_routineReturnType14282);
returnType497=returnType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_returnType.add(returnType497.getTree());
// AST REWRITE
// elements: attributeList, returnType
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 826:62: -> ^( TkRoutineReturn returnType ( attributeList )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:826:65: ^( TkRoutineReturn returnType ( attributeList )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineReturnTypeNodeImpl(TkRoutineReturn), root_1);
adaptor.addChild(root_1, stream_returnType.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:826:121: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 127, routineReturnType_StartIndex); }
}
return retval;
}
// $ANTLR end "routineReturnType"
public static class returnType_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "returnType"
// au/com/integradev/delphi/antlr/Delphi.g:828:1: returnType : typeReferenceOrString ;
public final DelphiParser.returnType_return returnType() throws RecognitionException {
DelphiParser.returnType_return retval = new DelphiParser.returnType_return();
retval.start = input.LT(1);
int returnType_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope typeReferenceOrString498 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 128) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:828:30: ( typeReferenceOrString )
// au/com/integradev/delphi/antlr/Delphi.g:828:32: typeReferenceOrString
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeReferenceOrString_in_returnType14351);
typeReferenceOrString498=typeReferenceOrString();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReferenceOrString498.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 128, returnType_StartIndex); }
}
return retval;
}
// $ANTLR end "returnType"
public static class routineParameters_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineParameters"
// au/com/integradev/delphi/antlr/Delphi.g:830:1: routineParameters : '(' ( formalParameterList )? ')' -> ^( TkRoutineParameters '(' ( formalParameterList )? ')' ) ;
public final DelphiParser.routineParameters_return routineParameters() throws RecognitionException {
DelphiParser.routineParameters_return retval = new DelphiParser.routineParameters_return();
retval.start = input.LT(1);
int routineParameters_StartIndex = input.index();
Object root_0 = null;
Token char_literal499=null;
Token char_literal501=null;
ParserRuleReturnScope formalParameterList500 =null;
Object char_literal499_tree=null;
Object char_literal501_tree=null;
RewriteRuleTokenStream stream_PAREN_RIGHT=new RewriteRuleTokenStream(adaptor,"token PAREN_RIGHT");
RewriteRuleTokenStream stream_PAREN_LEFT=new RewriteRuleTokenStream(adaptor,"token PAREN_LEFT");
RewriteRuleSubtreeStream stream_formalParameterList=new RewriteRuleSubtreeStream(adaptor,"rule formalParameterList");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 129) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:830:30: ( '(' ( formalParameterList )? ')' -> ^( TkRoutineParameters '(' ( formalParameterList )? ')' ) )
// au/com/integradev/delphi/antlr/Delphi.g:830:32: '(' ( formalParameterList )? ')'
{
char_literal499=(Token)match(input,PAREN_LEFT,FOLLOW_PAREN_LEFT_in_routineParameters14399); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PAREN_LEFT.add(char_literal499);
// au/com/integradev/delphi/antlr/Delphi.g:830:36: ( formalParameterList )?
int alt163=2;
int LA163_0 = input.LA(1);
if ( ((LA163_0 >= ABSOLUTE && LA163_0 <= ABSTRACT)||LA163_0==ALIGN||(LA163_0 >= ASSEMBLER && LA163_0 <= ASSEMBLY)||(LA163_0 >= AT && LA163_0 <= AUTOMATED)||LA163_0==CDECL||LA163_0==CONST||LA163_0==CONTAINS||(LA163_0 >= DEFAULT && LA163_0 <= DEPRECATED)||LA163_0==DISPID||LA163_0==DYNAMIC||(LA163_0 >= EXPERIMENTAL && LA163_0 <= EXPORT)||LA163_0==EXTERNAL||LA163_0==FAR||LA163_0==FINAL||LA163_0==FORWARD||LA163_0==HELPER||LA163_0==IMPLEMENTS||LA163_0==INDEX||LA163_0==LABEL||LA163_0==LOCAL||LA163_0==MESSAGE||(LA163_0 >= NAME && LA163_0 <= NEAR)||LA163_0==NODEFAULT||(LA163_0 >= ON && LA163_0 <= OPERATOR)||(LA163_0 >= OUT && LA163_0 <= OVERRIDE)||LA163_0==PACKAGE||LA163_0==PAREN_BRACKET_LEFT||(LA163_0 >= PASCAL && LA163_0 <= PLATFORM)||LA163_0==PRIVATE||(LA163_0 >= PROTECTED && LA163_0 <= PUBLISHED)||(LA163_0 >= READ && LA163_0 <= READONLY)||(LA163_0 >= REFERENCE && LA163_0 <= REINTRODUCE)||(LA163_0 >= REQUIRES && LA163_0 <= RESIDENT)||(LA163_0 >= SAFECALL && LA163_0 <= SEALED)||LA163_0==SQUARE_BRACKET_LEFT||(LA163_0 >= STATIC && LA163_0 <= STRICT)||LA163_0==TkIdentifier||LA163_0==UNSAFE||(LA163_0 >= VAR && LA163_0 <= VIRTUAL)||LA163_0==WINAPI||(LA163_0 >= WRITE && LA163_0 <= WRITEONLY)) ) {
alt163=1;
}
switch (alt163) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:830:36: formalParameterList
{
pushFollow(FOLLOW_formalParameterList_in_routineParameters14401);
formalParameterList500=formalParameterList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_formalParameterList.add(formalParameterList500.getTree());
}
break;
}
char_literal501=(Token)match(input,PAREN_RIGHT,FOLLOW_PAREN_RIGHT_in_routineParameters14404); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PAREN_RIGHT.add(char_literal501);
// AST REWRITE
// elements: PAREN_RIGHT, formalParameterList, PAREN_LEFT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 830:61: -> ^( TkRoutineParameters '(' ( formalParameterList )? ')' )
{
// au/com/integradev/delphi/antlr/Delphi.g:830:64: ^( TkRoutineParameters '(' ( formalParameterList )? ')' )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineParametersNodeImpl(TkRoutineParameters), root_1);
adaptor.addChild(root_1, stream_PAREN_LEFT.nextNode());
// au/com/integradev/delphi/antlr/Delphi.g:830:117: ( formalParameterList )?
if ( stream_formalParameterList.hasNext() ) {
adaptor.addChild(root_1, stream_formalParameterList.nextTree());
}
stream_formalParameterList.reset();
adaptor.addChild(root_1, stream_PAREN_RIGHT.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 129, routineParameters_StartIndex); }
}
return retval;
}
// $ANTLR end "routineParameters"
public static class formalParameterList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "formalParameterList"
// au/com/integradev/delphi/antlr/Delphi.g:832:1: formalParameterList : formalParameter ( ';' formalParameter )* -> ^( TkFormalParameterList formalParameter ( formalParameter )* ) ;
public final DelphiParser.formalParameterList_return formalParameterList() throws RecognitionException {
DelphiParser.formalParameterList_return retval = new DelphiParser.formalParameterList_return();
retval.start = input.LT(1);
int formalParameterList_StartIndex = input.index();
Object root_0 = null;
Token char_literal503=null;
ParserRuleReturnScope formalParameter502 =null;
ParserRuleReturnScope formalParameter504 =null;
Object char_literal503_tree=null;
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleSubtreeStream stream_formalParameter=new RewriteRuleSubtreeStream(adaptor,"rule formalParameter");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 130) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:832:30: ( formalParameter ( ';' formalParameter )* -> ^( TkFormalParameterList formalParameter ( formalParameter )* ) )
// au/com/integradev/delphi/antlr/Delphi.g:832:32: formalParameter ( ';' formalParameter )*
{
pushFollow(FOLLOW_formalParameter_in_formalParameterList14466);
formalParameter502=formalParameter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_formalParameter.add(formalParameter502.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:832:48: ( ';' formalParameter )*
loop164:
while (true) {
int alt164=2;
int LA164_0 = input.LA(1);
if ( (LA164_0==SEMICOLON) ) {
alt164=1;
}
switch (alt164) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:832:49: ';' formalParameter
{
char_literal503=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_formalParameterList14469); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal503);
pushFollow(FOLLOW_formalParameter_in_formalParameterList14471);
formalParameter504=formalParameter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_formalParameter.add(formalParameter504.getTree());
}
break;
default :
break loop164;
}
}
// AST REWRITE
// elements: formalParameter, formalParameter
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 832:71: -> ^( TkFormalParameterList formalParameter ( formalParameter )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:832:74: ^( TkFormalParameterList formalParameter ( formalParameter )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new FormalParameterListNodeImpl(TkFormalParameterList), root_1);
adaptor.addChild(root_1, stream_formalParameter.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:832:143: ( formalParameter )*
while ( stream_formalParameter.hasNext() ) {
adaptor.addChild(root_1, stream_formalParameter.nextTree());
}
stream_formalParameter.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 130, formalParameterList_StartIndex); }
}
return retval;
}
// $ANTLR end "formalParameterList"
public static class formalParameter_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "formalParameter"
// au/com/integradev/delphi/antlr/Delphi.g:834:1: formalParameter : (a1= attributeList )? ( paramSpecifier (a2= attributeList )? )? nameDeclarationList ( ':' parameterType )? ( '=' expression )? -> ^( TkFormalParameter nameDeclarationList ( parameterType )? ( paramSpecifier )? ( expression )? ( $a1)? ( $a2)? ) ;
public final DelphiParser.formalParameter_return formalParameter() throws RecognitionException {
DelphiParser.formalParameter_return retval = new DelphiParser.formalParameter_return();
retval.start = input.LT(1);
int formalParameter_StartIndex = input.index();
Object root_0 = null;
Token char_literal507=null;
Token char_literal509=null;
ParserRuleReturnScope a1 =null;
ParserRuleReturnScope a2 =null;
ParserRuleReturnScope paramSpecifier505 =null;
ParserRuleReturnScope nameDeclarationList506 =null;
ParserRuleReturnScope parameterType508 =null;
ParserRuleReturnScope expression510 =null;
Object char_literal507_tree=null;
Object char_literal509_tree=null;
RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_parameterType=new RewriteRuleSubtreeStream(adaptor,"rule parameterType");
RewriteRuleSubtreeStream stream_nameDeclarationList=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclarationList");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
RewriteRuleSubtreeStream stream_paramSpecifier=new RewriteRuleSubtreeStream(adaptor,"rule paramSpecifier");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 131) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:834:30: ( (a1= attributeList )? ( paramSpecifier (a2= attributeList )? )? nameDeclarationList ( ':' parameterType )? ( '=' expression )? -> ^( TkFormalParameter nameDeclarationList ( parameterType )? ( paramSpecifier )? ( expression )? ( $a1)? ( $a2)? ) )
// au/com/integradev/delphi/antlr/Delphi.g:834:32: (a1= attributeList )? ( paramSpecifier (a2= attributeList )? )? nameDeclarationList ( ':' parameterType )? ( '=' expression )?
{
// au/com/integradev/delphi/antlr/Delphi.g:834:34: (a1= attributeList )?
int alt165=2;
int LA165_0 = input.LA(1);
if ( (LA165_0==PAREN_BRACKET_LEFT||LA165_0==SQUARE_BRACKET_LEFT) ) {
alt165=1;
}
switch (alt165) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:834:34: a1= attributeList
{
pushFollow(FOLLOW_attributeList_in_formalParameter14539);
a1=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(a1.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:834:50: ( paramSpecifier (a2= attributeList )? )?
int alt167=2;
int LA167_0 = input.LA(1);
if ( (LA167_0==OUT) ) {
int LA167_1 = input.LA(2);
if ( ((LA167_1 >= ABSOLUTE && LA167_1 <= ABSTRACT)||LA167_1==ALIGN||(LA167_1 >= ASSEMBLER && LA167_1 <= ASSEMBLY)||(LA167_1 >= AT && LA167_1 <= AUTOMATED)||LA167_1==CDECL||LA167_1==CONTAINS||(LA167_1 >= DEFAULT && LA167_1 <= DEPRECATED)||LA167_1==DISPID||LA167_1==DYNAMIC||(LA167_1 >= EXPERIMENTAL && LA167_1 <= EXPORT)||LA167_1==EXTERNAL||LA167_1==FAR||LA167_1==FINAL||LA167_1==FORWARD||LA167_1==HELPER||LA167_1==IMPLEMENTS||LA167_1==INDEX||LA167_1==LABEL||LA167_1==LOCAL||LA167_1==MESSAGE||(LA167_1 >= NAME && LA167_1 <= NEAR)||LA167_1==NODEFAULT||(LA167_1 >= ON && LA167_1 <= OPERATOR)||(LA167_1 >= OUT && LA167_1 <= OVERRIDE)||LA167_1==PACKAGE||LA167_1==PAREN_BRACKET_LEFT||(LA167_1 >= PASCAL && LA167_1 <= PLATFORM)||LA167_1==PRIVATE||(LA167_1 >= PROTECTED && LA167_1 <= PUBLISHED)||(LA167_1 >= READ && LA167_1 <= READONLY)||(LA167_1 >= REFERENCE && LA167_1 <= REINTRODUCE)||(LA167_1 >= REQUIRES && LA167_1 <= RESIDENT)||(LA167_1 >= SAFECALL && LA167_1 <= SEALED)||LA167_1==SQUARE_BRACKET_LEFT||(LA167_1 >= STATIC && LA167_1 <= STRICT)||LA167_1==TkIdentifier||LA167_1==UNSAFE||(LA167_1 >= VARARGS && LA167_1 <= VIRTUAL)||LA167_1==WINAPI||(LA167_1 >= WRITE && LA167_1 <= WRITEONLY)) ) {
alt167=1;
}
}
else if ( (LA167_0==CONST||LA167_0==VAR) ) {
alt167=1;
}
switch (alt167) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:834:51: paramSpecifier (a2= attributeList )?
{
pushFollow(FOLLOW_paramSpecifier_in_formalParameter14543);
paramSpecifier505=paramSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_paramSpecifier.add(paramSpecifier505.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:834:68: (a2= attributeList )?
int alt166=2;
int LA166_0 = input.LA(1);
if ( (LA166_0==PAREN_BRACKET_LEFT||LA166_0==SQUARE_BRACKET_LEFT) ) {
alt166=1;
}
switch (alt166) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:834:68: a2= attributeList
{
pushFollow(FOLLOW_attributeList_in_formalParameter14547);
a2=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(a2.getTree());
}
break;
}
}
break;
}
pushFollow(FOLLOW_nameDeclarationList_in_formalParameter14552);
nameDeclarationList506=nameDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclarationList.add(nameDeclarationList506.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:834:106: ( ':' parameterType )?
int alt168=2;
int LA168_0 = input.LA(1);
if ( (LA168_0==COLON) ) {
alt168=1;
}
switch (alt168) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:834:107: ':' parameterType
{
char_literal507=(Token)match(input,COLON,FOLLOW_COLON_in_formalParameter14555); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal507);
pushFollow(FOLLOW_parameterType_in_formalParameter14557);
parameterType508=parameterType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameterType.add(parameterType508.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:834:127: ( '=' expression )?
int alt169=2;
int LA169_0 = input.LA(1);
if ( (LA169_0==EQUAL) ) {
alt169=1;
}
switch (alt169) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:834:128: '=' expression
{
char_literal509=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_formalParameter14562); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EQUAL.add(char_literal509);
pushFollow(FOLLOW_expression_in_formalParameter14564);
expression510=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression510.getTree());
}
break;
}
// AST REWRITE
// elements: paramSpecifier, a1, nameDeclarationList, parameterType, a2, expression
// token labels:
// rule labels: a1, a2, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a1=new RewriteRuleSubtreeStream(adaptor,"rule a1",a1!=null?a1.getTree():null);
RewriteRuleSubtreeStream stream_a2=new RewriteRuleSubtreeStream(adaptor,"rule a2",a2!=null?a2.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 835:30: -> ^( TkFormalParameter nameDeclarationList ( parameterType )? ( paramSpecifier )? ( expression )? ( $a1)? ( $a2)? )
{
// au/com/integradev/delphi/antlr/Delphi.g:835:33: ^( TkFormalParameter nameDeclarationList ( parameterType )? ( paramSpecifier )? ( expression )? ( $a1)? ( $a2)? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new FormalParameterNodeImpl(TkFormalParameter), root_1);
adaptor.addChild(root_1, stream_nameDeclarationList.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:835:98: ( parameterType )?
if ( stream_parameterType.hasNext() ) {
adaptor.addChild(root_1, stream_parameterType.nextTree());
}
stream_parameterType.reset();
// au/com/integradev/delphi/antlr/Delphi.g:835:113: ( paramSpecifier )?
if ( stream_paramSpecifier.hasNext() ) {
adaptor.addChild(root_1, stream_paramSpecifier.nextTree());
}
stream_paramSpecifier.reset();
// au/com/integradev/delphi/antlr/Delphi.g:835:129: ( expression )?
if ( stream_expression.hasNext() ) {
adaptor.addChild(root_1, stream_expression.nextTree());
}
stream_expression.reset();
// au/com/integradev/delphi/antlr/Delphi.g:835:142: ( $a1)?
if ( stream_a1.hasNext() ) {
adaptor.addChild(root_1, stream_a1.nextTree());
}
stream_a1.reset();
// au/com/integradev/delphi/antlr/Delphi.g:835:147: ( $a2)?
if ( stream_a2.hasNext() ) {
adaptor.addChild(root_1, stream_a2.nextTree());
}
stream_a2.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 131, formalParameter_StartIndex); }
}
return retval;
}
// $ANTLR end "formalParameter"
public static class paramSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "paramSpecifier"
// au/com/integradev/delphi/antlr/Delphi.g:837:1: paramSpecifier : ( CONST | VAR | OUT );
public final DelphiParser.paramSpecifier_return paramSpecifier() throws RecognitionException {
DelphiParser.paramSpecifier_return retval = new DelphiParser.paramSpecifier_return();
retval.start = input.LT(1);
int paramSpecifier_StartIndex = input.index();
Object root_0 = null;
Token set511=null;
Object set511_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 132) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:837:30: ( CONST | VAR | OUT )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set511=input.LT(1);
if ( input.LA(1)==CONST||input.LA(1)==OUT||input.LA(1)==VAR ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set511));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 132, paramSpecifier_StartIndex); }
}
return retval;
}
// $ANTLR end "paramSpecifier"
public static class routineBody_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineBody"
// au/com/integradev/delphi/antlr/Delphi.g:841:1: routineBody : block ';' -> ^( TkRoutineBody block ) ;
public final DelphiParser.routineBody_return routineBody() throws RecognitionException {
DelphiParser.routineBody_return retval = new DelphiParser.routineBody_return();
retval.start = input.LT(1);
int routineBody_StartIndex = input.index();
Object root_0 = null;
Token char_literal513=null;
ParserRuleReturnScope block512 =null;
Object char_literal513_tree=null;
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 133) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:841:30: ( block ';' -> ^( TkRoutineBody block ) )
// au/com/integradev/delphi/antlr/Delphi.g:841:32: block ';'
{
pushFollow(FOLLOW_block_in_routineBody14794);
block512=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block512.getTree());
char_literal513=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_routineBody14796); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal513);
// AST REWRITE
// elements: block
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 841:42: -> ^( TkRoutineBody block )
{
// au/com/integradev/delphi/antlr/Delphi.g:841:45: ^( TkRoutineBody block )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RoutineBodyNodeImpl(TkRoutineBody), root_1);
adaptor.addChild(root_1, stream_block.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 133, routineBody_StartIndex); }
}
return retval;
}
// $ANTLR end "routineBody"
public static class attributeList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "attributeList"
// au/com/integradev/delphi/antlr/Delphi.g:847:1: attributeList : ( attributeGroup )+ -> ^( TkAttributeList ( attributeGroup )+ ) ;
public final DelphiParser.attributeList_return attributeList() throws RecognitionException {
DelphiParser.attributeList_return retval = new DelphiParser.attributeList_return();
retval.start = input.LT(1);
int attributeList_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope attributeGroup514 =null;
RewriteRuleSubtreeStream stream_attributeGroup=new RewriteRuleSubtreeStream(adaptor,"rule attributeGroup");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 134) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:847:30: ( ( attributeGroup )+ -> ^( TkAttributeList ( attributeGroup )+ ) )
// au/com/integradev/delphi/antlr/Delphi.g:847:32: ( attributeGroup )+
{
// au/com/integradev/delphi/antlr/Delphi.g:847:32: ( attributeGroup )+
int cnt170=0;
loop170:
while (true) {
int alt170=2;
int LA170_0 = input.LA(1);
if ( (LA170_0==PAREN_BRACKET_LEFT||LA170_0==SQUARE_BRACKET_LEFT) ) {
int LA170_2 = input.LA(2);
if ( (synpred242_Delphi()) ) {
alt170=1;
}
}
switch (alt170) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:847:32: attributeGroup
{
pushFollow(FOLLOW_attributeGroup_in_attributeList14863);
attributeGroup514=attributeGroup();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeGroup.add(attributeGroup514.getTree());
}
break;
default :
if ( cnt170 >= 1 ) break loop170;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(170, input);
throw eee;
}
cnt170++;
}
// AST REWRITE
// elements: attributeGroup
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 848:30: -> ^( TkAttributeList ( attributeGroup )+ )
{
// au/com/integradev/delphi/antlr/Delphi.g:848:33: ^( TkAttributeList ( attributeGroup )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new AttributeListNodeImpl(TkAttributeList), root_1);
if ( !(stream_attributeGroup.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_attributeGroup.hasNext() ) {
adaptor.addChild(root_1, stream_attributeGroup.nextTree());
}
stream_attributeGroup.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 134, attributeList_StartIndex); }
}
return retval;
}
// $ANTLR end "attributeList"
public static class attributeGroup_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "attributeGroup"
// au/com/integradev/delphi/antlr/Delphi.g:850:1: attributeGroup : lbrack ( attribute ( ',' )? )+ rbrack -> ^( TkAttributeGroup ( attribute )+ ) ;
public final DelphiParser.attributeGroup_return attributeGroup() throws RecognitionException {
DelphiParser.attributeGroup_return retval = new DelphiParser.attributeGroup_return();
retval.start = input.LT(1);
int attributeGroup_StartIndex = input.index();
Object root_0 = null;
Token char_literal517=null;
ParserRuleReturnScope lbrack515 =null;
ParserRuleReturnScope attribute516 =null;
ParserRuleReturnScope rbrack518 =null;
Object char_literal517_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_rbrack=new RewriteRuleSubtreeStream(adaptor,"rule rbrack");
RewriteRuleSubtreeStream stream_lbrack=new RewriteRuleSubtreeStream(adaptor,"rule lbrack");
RewriteRuleSubtreeStream stream_attribute=new RewriteRuleSubtreeStream(adaptor,"rule attribute");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 135) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:850:30: ( lbrack ( attribute ( ',' )? )+ rbrack -> ^( TkAttributeGroup ( attribute )+ ) )
// au/com/integradev/delphi/antlr/Delphi.g:850:32: lbrack ( attribute ( ',' )? )+ rbrack
{
pushFollow(FOLLOW_lbrack_in_attributeGroup14956);
lbrack515=lbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lbrack.add(lbrack515.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:850:39: ( attribute ( ',' )? )+
int cnt172=0;
loop172:
while (true) {
int alt172=2;
int LA172_0 = input.LA(1);
if ( ((LA172_0 >= ABSOLUTE && LA172_0 <= ABSTRACT)||LA172_0==ALIGN||(LA172_0 >= ASSEMBLER && LA172_0 <= ASSEMBLY)||(LA172_0 >= AT && LA172_0 <= AUTOMATED)||LA172_0==CDECL||LA172_0==CONTAINS||(LA172_0 >= DEFAULT && LA172_0 <= DEPRECATED)||LA172_0==DISPID||LA172_0==DYNAMIC||(LA172_0 >= EXPERIMENTAL && LA172_0 <= EXPORT)||LA172_0==EXTERNAL||LA172_0==FAR||LA172_0==FINAL||LA172_0==FORWARD||LA172_0==HELPER||LA172_0==IMPLEMENTS||LA172_0==INDEX||LA172_0==LABEL||LA172_0==LOCAL||LA172_0==MESSAGE||(LA172_0 >= NAME && LA172_0 <= NEAR)||LA172_0==NODEFAULT||(LA172_0 >= ON && LA172_0 <= OPERATOR)||(LA172_0 >= OUT && LA172_0 <= OVERRIDE)||LA172_0==PACKAGE||(LA172_0 >= PASCAL && LA172_0 <= PLATFORM)||LA172_0==PRIVATE||(LA172_0 >= PROTECTED && LA172_0 <= PUBLISHED)||(LA172_0 >= READ && LA172_0 <= READONLY)||(LA172_0 >= REFERENCE && LA172_0 <= REINTRODUCE)||(LA172_0 >= REQUIRES && LA172_0 <= RESIDENT)||(LA172_0 >= SAFECALL && LA172_0 <= SEALED)||(LA172_0 >= STATIC && LA172_0 <= STRICT)||LA172_0==TkIdentifier||LA172_0==UNSAFE||(LA172_0 >= VARARGS && LA172_0 <= VIRTUAL)||LA172_0==WINAPI||(LA172_0 >= WRITE && LA172_0 <= WRITEONLY)) ) {
alt172=1;
}
switch (alt172) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:850:40: attribute ( ',' )?
{
pushFollow(FOLLOW_attribute_in_attributeGroup14959);
attribute516=attribute();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attribute.add(attribute516.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:850:50: ( ',' )?
int alt171=2;
int LA171_0 = input.LA(1);
if ( (LA171_0==COMMA) ) {
alt171=1;
}
switch (alt171) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:850:50: ','
{
char_literal517=(Token)match(input,COMMA,FOLLOW_COMMA_in_attributeGroup14961); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(char_literal517);
}
break;
}
}
break;
default :
if ( cnt172 >= 1 ) break loop172;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(172, input);
throw eee;
}
cnt172++;
}
pushFollow(FOLLOW_rbrack_in_attributeGroup14966);
rbrack518=rbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rbrack.add(rbrack518.getTree());
// AST REWRITE
// elements: attribute
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 851:30: -> ^( TkAttributeGroup ( attribute )+ )
{
// au/com/integradev/delphi/antlr/Delphi.g:851:33: ^( TkAttributeGroup ( attribute )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new AttributeGroupNodeImpl(TkAttributeGroup), root_1);
if ( !(stream_attribute.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_attribute.hasNext() ) {
adaptor.addChild(root_1, stream_attribute.nextTree());
}
stream_attribute.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 135, attributeGroup_StartIndex); }
}
return retval;
}
// $ANTLR end "attributeGroup"
public static class attribute_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "attribute"
// au/com/integradev/delphi/antlr/Delphi.g:853:1: attribute : ( ASSEMBLY ':' )? nameReference ( argumentList )? ( ':' nameReference ( argumentList )? )* -> ^( TkAttribute ( ASSEMBLY )? nameReference ( argumentList )? ( ':' nameReference ( argumentList )? )* ) ;
public final DelphiParser.attribute_return attribute() throws RecognitionException {
DelphiParser.attribute_return retval = new DelphiParser.attribute_return();
retval.start = input.LT(1);
int attribute_StartIndex = input.index();
Object root_0 = null;
Token ASSEMBLY519=null;
Token char_literal520=null;
Token char_literal523=null;
ParserRuleReturnScope nameReference521 =null;
ParserRuleReturnScope argumentList522 =null;
ParserRuleReturnScope nameReference524 =null;
ParserRuleReturnScope argumentList525 =null;
Object ASSEMBLY519_tree=null;
Object char_literal520_tree=null;
Object char_literal523_tree=null;
RewriteRuleTokenStream stream_ASSEMBLY=new RewriteRuleTokenStream(adaptor,"token ASSEMBLY");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_argumentList=new RewriteRuleSubtreeStream(adaptor,"rule argumentList");
RewriteRuleSubtreeStream stream_nameReference=new RewriteRuleSubtreeStream(adaptor,"rule nameReference");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 136) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:853:30: ( ( ASSEMBLY ':' )? nameReference ( argumentList )? ( ':' nameReference ( argumentList )? )* -> ^( TkAttribute ( ASSEMBLY )? nameReference ( argumentList )? ( ':' nameReference ( argumentList )? )* ) )
// au/com/integradev/delphi/antlr/Delphi.g:853:32: ( ASSEMBLY ':' )? nameReference ( argumentList )? ( ':' nameReference ( argumentList )? )*
{
// au/com/integradev/delphi/antlr/Delphi.g:853:32: ( ASSEMBLY ':' )?
int alt173=2;
int LA173_0 = input.LA(1);
if ( (LA173_0==ASSEMBLY) ) {
int LA173_1 = input.LA(2);
if ( (LA173_1==COLON) ) {
int LA173_3 = input.LA(3);
if ( (LA173_3==TkIdentifier) ) {
int LA173_4 = input.LA(4);
if ( (synpred245_Delphi()) ) {
alt173=1;
}
}
else if ( ((LA173_3 >= ABSOLUTE && LA173_3 <= ABSTRACT)||LA173_3==ALIGN||(LA173_3 >= ASSEMBLER && LA173_3 <= ASSEMBLY)||(LA173_3 >= AT && LA173_3 <= AUTOMATED)||LA173_3==CDECL||LA173_3==CONTAINS||(LA173_3 >= DEFAULT && LA173_3 <= DEPRECATED)||LA173_3==DISPID||LA173_3==DYNAMIC||(LA173_3 >= EXPERIMENTAL && LA173_3 <= EXPORT)||LA173_3==EXTERNAL||LA173_3==FAR||LA173_3==FINAL||LA173_3==FORWARD||LA173_3==HELPER||LA173_3==IMPLEMENTS||LA173_3==INDEX||LA173_3==LABEL||LA173_3==LOCAL||LA173_3==MESSAGE||(LA173_3 >= NAME && LA173_3 <= NEAR)||LA173_3==NODEFAULT||(LA173_3 >= ON && LA173_3 <= OPERATOR)||(LA173_3 >= OUT && LA173_3 <= OVERRIDE)||LA173_3==PACKAGE||(LA173_3 >= PASCAL && LA173_3 <= PLATFORM)||LA173_3==PRIVATE||(LA173_3 >= PROTECTED && LA173_3 <= PUBLISHED)||(LA173_3 >= READ && LA173_3 <= READONLY)||(LA173_3 >= REFERENCE && LA173_3 <= REINTRODUCE)||(LA173_3 >= REQUIRES && LA173_3 <= RESIDENT)||(LA173_3 >= SAFECALL && LA173_3 <= SEALED)||(LA173_3 >= STATIC && LA173_3 <= STRICT)||LA173_3==UNSAFE||(LA173_3 >= VARARGS && LA173_3 <= VIRTUAL)||LA173_3==WINAPI||(LA173_3 >= WRITE && LA173_3 <= WRITEONLY)) ) {
int LA173_5 = input.LA(4);
if ( (synpred245_Delphi()) ) {
alt173=1;
}
}
}
}
switch (alt173) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:853:33: ASSEMBLY ':'
{
ASSEMBLY519=(Token)match(input,ASSEMBLY,FOLLOW_ASSEMBLY_in_attribute15064); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSEMBLY.add(ASSEMBLY519);
char_literal520=(Token)match(input,COLON,FOLLOW_COLON_in_attribute15066); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal520);
}
break;
}
pushFollow(FOLLOW_nameReference_in_attribute15070);
nameReference521=nameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameReference.add(nameReference521.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:853:62: ( argumentList )?
int alt174=2;
int LA174_0 = input.LA(1);
if ( (LA174_0==PAREN_LEFT) ) {
alt174=1;
}
switch (alt174) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:853:62: argumentList
{
pushFollow(FOLLOW_argumentList_in_attribute15072);
argumentList522=argumentList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentList.add(argumentList522.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:853:76: ( ':' nameReference ( argumentList )? )*
loop176:
while (true) {
int alt176=2;
int LA176_0 = input.LA(1);
if ( (LA176_0==COLON) ) {
alt176=1;
}
switch (alt176) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:853:77: ':' nameReference ( argumentList )?
{
char_literal523=(Token)match(input,COLON,FOLLOW_COLON_in_attribute15076); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal523);
pushFollow(FOLLOW_nameReference_in_attribute15078);
nameReference524=nameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameReference.add(nameReference524.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:853:95: ( argumentList )?
int alt175=2;
int LA175_0 = input.LA(1);
if ( (LA175_0==PAREN_LEFT) ) {
alt175=1;
}
switch (alt175) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:853:95: argumentList
{
pushFollow(FOLLOW_argumentList_in_attribute15080);
argumentList525=argumentList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentList.add(argumentList525.getTree());
}
break;
}
}
break;
default :
break loop176;
}
}
// AST REWRITE
// elements: argumentList, COLON, nameReference, ASSEMBLY, nameReference, argumentList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 854:30: -> ^( TkAttribute ( ASSEMBLY )? nameReference ( argumentList )? ( ':' nameReference ( argumentList )? )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:854:33: ^( TkAttribute ( ASSEMBLY )? nameReference ( argumentList )? ( ':' nameReference ( argumentList )? )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new AttributeNodeImpl(TkAttribute), root_1);
// au/com/integradev/delphi/antlr/Delphi.g:854:66: ( ASSEMBLY )?
if ( stream_ASSEMBLY.hasNext() ) {
adaptor.addChild(root_1, stream_ASSEMBLY.nextNode());
}
stream_ASSEMBLY.reset();
adaptor.addChild(root_1, stream_nameReference.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:854:90: ( argumentList )?
if ( stream_argumentList.hasNext() ) {
adaptor.addChild(root_1, stream_argumentList.nextTree());
}
stream_argumentList.reset();
// au/com/integradev/delphi/antlr/Delphi.g:854:104: ( ':' nameReference ( argumentList )? )*
while ( stream_COLON.hasNext()||stream_nameReference.hasNext() ) {
adaptor.addChild(root_1, stream_COLON.nextNode());
adaptor.addChild(root_1, stream_nameReference.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:854:123: ( argumentList )?
if ( stream_argumentList.hasNext() ) {
adaptor.addChild(root_1, stream_argumentList.nextTree());
}
stream_argumentList.reset();
}
stream_COLON.reset();
stream_nameReference.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 136, attribute_StartIndex); }
}
return retval;
}
// $ANTLR end "attribute"
public static class expression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "expression"
// au/com/integradev/delphi/antlr/Delphi.g:860:1: expression : ( relationalExpression | anonymousMethod );
public final DelphiParser.expression_return expression() throws RecognitionException {
DelphiParser.expression_return retval = new DelphiParser.expression_return();
retval.start = input.LT(1);
int expression_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope relationalExpression526 =null;
ParserRuleReturnScope anonymousMethod527 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 137) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:860:30: ( relationalExpression | anonymousMethod )
int alt177=2;
int LA177_0 = input.LA(1);
if ( ((LA177_0 >= ABSOLUTE && LA177_0 <= ALIGN)||(LA177_0 >= ASSEMBLER && LA177_0 <= ASSEMBLY)||(LA177_0 >= AT && LA177_0 <= AUTOMATED)||LA177_0==CDECL||LA177_0==CONTAINS||(LA177_0 >= DEFAULT && LA177_0 <= DEREFERENCE)||LA177_0==DISPID||LA177_0==DYNAMIC||(LA177_0 >= EXPERIMENTAL && LA177_0 <= EXPORT)||LA177_0==EXTERNAL||(LA177_0 >= FAR && LA177_0 <= FINAL)||LA177_0==FORWARD||LA177_0==HELPER||LA177_0==IMPLEMENTS||(LA177_0 >= INDEX && LA177_0 <= INHERITED)||LA177_0==LABEL||LA177_0==LOCAL||(LA177_0 >= MESSAGE && LA177_0 <= MINUS)||(LA177_0 >= NAME && LA177_0 <= NOT)||(LA177_0 >= ON && LA177_0 <= OPERATOR)||(LA177_0 >= OUT && LA177_0 <= OVERRIDE)||LA177_0==PACKAGE||LA177_0==PAREN_BRACKET_LEFT||LA177_0==PAREN_LEFT||(LA177_0 >= PASCAL && LA177_0 <= PRIVATE)||(LA177_0 >= PROTECTED && LA177_0 <= PUBLISHED)||(LA177_0 >= READ && LA177_0 <= READONLY)||(LA177_0 >= REFERENCE && LA177_0 <= REINTRODUCE)||(LA177_0 >= REQUIRES && LA177_0 <= RESIDENT)||(LA177_0 >= SAFECALL && LA177_0 <= SEALED)||LA177_0==SQUARE_BRACKET_LEFT||(LA177_0 >= STATIC && LA177_0 <= STRING)||LA177_0==TkBinaryNumber||LA177_0==TkCharacterEscapeCode||(LA177_0 >= TkHexNumber && LA177_0 <= TkIntNumber)||LA177_0==TkMultilineString||(LA177_0 >= TkQuotedString && LA177_0 <= TkRealNumber)||LA177_0==UNSAFE||(LA177_0 >= VARARGS && LA177_0 <= VIRTUAL)||LA177_0==WINAPI||(LA177_0 >= WRITE && LA177_0 <= WRITEONLY)) ) {
alt177=1;
}
else if ( (LA177_0==FUNCTION||LA177_0==PROCEDURE) ) {
alt177=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 177, 0, input);
throw nvae;
}
switch (alt177) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:860:32: relationalExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_relationalExpression_in_expression15198);
relationalExpression526=relationalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, relationalExpression526.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:861:32: anonymousMethod
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_anonymousMethod_in_expression15231);
anonymousMethod527=anonymousMethod();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, anonymousMethod527.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 137, expression_StartIndex); }
}
return retval;
}
// $ANTLR end "expression"
public static class relationalExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "relationalExpression"
// au/com/integradev/delphi/antlr/Delphi.g:868:1: relationalExpression : additiveExpression ( relationalOperator ^ additiveExpression )* ;
public final DelphiParser.relationalExpression_return relationalExpression() throws RecognitionException {
DelphiParser.relationalExpression_return retval = new DelphiParser.relationalExpression_return();
retval.start = input.LT(1);
int relationalExpression_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope additiveExpression528 =null;
ParserRuleReturnScope relationalOperator529 =null;
ParserRuleReturnScope additiveExpression530 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 138) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:868:30: ( additiveExpression ( relationalOperator ^ additiveExpression )* )
// au/com/integradev/delphi/antlr/Delphi.g:868:32: additiveExpression ( relationalOperator ^ additiveExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_additiveExpression_in_relationalExpression15281);
additiveExpression528=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, additiveExpression528.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:868:51: ( relationalOperator ^ additiveExpression )*
loop178:
while (true) {
int alt178=2;
alt178 = dfa178.predict(input);
switch (alt178) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:868:52: relationalOperator ^ additiveExpression
{
pushFollow(FOLLOW_relationalOperator_in_relationalExpression15284);
relationalOperator529=relationalOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(relationalOperator529.getTree(), root_0);
pushFollow(FOLLOW_additiveExpression_in_relationalExpression15287);
additiveExpression530=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, additiveExpression530.getTree());
}
break;
default :
break loop178;
}
}
if ( state.backtracking==0 ) { resetBinaryExpressionTokens(root_0); }
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 138, relationalExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "relationalExpression"
public static class additiveExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "additiveExpression"
// au/com/integradev/delphi/antlr/Delphi.g:870:1: additiveExpression : multiplicativeExpression ( addOperator ^ multiplicativeExpression )* ;
public final DelphiParser.additiveExpression_return additiveExpression() throws RecognitionException {
DelphiParser.additiveExpression_return retval = new DelphiParser.additiveExpression_return();
retval.start = input.LT(1);
int additiveExpression_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope multiplicativeExpression531 =null;
ParserRuleReturnScope addOperator532 =null;
ParserRuleReturnScope multiplicativeExpression533 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 139) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:870:30: ( multiplicativeExpression ( addOperator ^ multiplicativeExpression )* )
// au/com/integradev/delphi/antlr/Delphi.g:870:32: multiplicativeExpression ( addOperator ^ multiplicativeExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression15338);
multiplicativeExpression531=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, multiplicativeExpression531.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:870:57: ( addOperator ^ multiplicativeExpression )*
loop179:
while (true) {
int alt179=2;
alt179 = dfa179.predict(input);
switch (alt179) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:870:58: addOperator ^ multiplicativeExpression
{
pushFollow(FOLLOW_addOperator_in_additiveExpression15341);
addOperator532=addOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(addOperator532.getTree(), root_0);
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression15344);
multiplicativeExpression533=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, multiplicativeExpression533.getTree());
}
break;
default :
break loop179;
}
}
if ( state.backtracking==0 ) { resetBinaryExpressionTokens(root_0); }
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 139, additiveExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "additiveExpression"
public static class multiplicativeExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "multiplicativeExpression"
// au/com/integradev/delphi/antlr/Delphi.g:872:1: multiplicativeExpression : unaryExpression ( multOperator ^ unaryExpression )* ;
public final DelphiParser.multiplicativeExpression_return multiplicativeExpression() throws RecognitionException {
DelphiParser.multiplicativeExpression_return retval = new DelphiParser.multiplicativeExpression_return();
retval.start = input.LT(1);
int multiplicativeExpression_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope unaryExpression534 =null;
ParserRuleReturnScope multOperator535 =null;
ParserRuleReturnScope unaryExpression536 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 140) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:872:30: ( unaryExpression ( multOperator ^ unaryExpression )* )
// au/com/integradev/delphi/antlr/Delphi.g:872:32: unaryExpression ( multOperator ^ unaryExpression )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression15389);
unaryExpression534=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression534.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:872:48: ( multOperator ^ unaryExpression )*
loop180:
while (true) {
int alt180=2;
int LA180_0 = input.LA(1);
if ( (LA180_0==AND||LA180_0==AS||(LA180_0 >= DIV && LA180_0 <= DIVIDE)||(LA180_0 >= MOD && LA180_0 <= MULTIPLY)||(LA180_0 >= SHL && LA180_0 <= SHR)) ) {
alt180=1;
}
switch (alt180) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:872:49: multOperator ^ unaryExpression
{
pushFollow(FOLLOW_multOperator_in_multiplicativeExpression15392);
multOperator535=multOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(multOperator535.getTree(), root_0);
pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression15395);
unaryExpression536=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression536.getTree());
}
break;
default :
break loop180;
}
}
if ( state.backtracking==0 ) { resetBinaryExpressionTokens(root_0); }
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 140, multiplicativeExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "multiplicativeExpression"
public static class unaryExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unaryExpression"
// au/com/integradev/delphi/antlr/Delphi.g:874:1: unaryExpression : ( unaryOperator ^ unaryExpression | primaryExpression );
public final DelphiParser.unaryExpression_return unaryExpression() throws RecognitionException {
DelphiParser.unaryExpression_return retval = new DelphiParser.unaryExpression_return();
retval.start = input.LT(1);
int unaryExpression_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope unaryOperator537 =null;
ParserRuleReturnScope unaryExpression538 =null;
ParserRuleReturnScope primaryExpression539 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 141) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:874:30: ( unaryOperator ^ unaryExpression | primaryExpression )
int alt181=2;
int LA181_0 = input.LA(1);
if ( (LA181_0==ADDRESS||LA181_0==MINUS||LA181_0==NOT||LA181_0==PLUS) ) {
alt181=1;
}
else if ( ((LA181_0 >= ABSOLUTE && LA181_0 <= ABSTRACT)||LA181_0==ALIGN||(LA181_0 >= ASSEMBLER && LA181_0 <= ASSEMBLY)||(LA181_0 >= AT && LA181_0 <= AUTOMATED)||LA181_0==CDECL||LA181_0==CONTAINS||(LA181_0 >= DEFAULT && LA181_0 <= DEREFERENCE)||LA181_0==DISPID||LA181_0==DYNAMIC||(LA181_0 >= EXPERIMENTAL && LA181_0 <= EXPORT)||LA181_0==EXTERNAL||(LA181_0 >= FAR && LA181_0 <= FINAL)||LA181_0==FORWARD||LA181_0==HELPER||LA181_0==IMPLEMENTS||(LA181_0 >= INDEX && LA181_0 <= INHERITED)||LA181_0==LABEL||LA181_0==LOCAL||LA181_0==MESSAGE||(LA181_0 >= NAME && LA181_0 <= NODEFAULT)||(LA181_0 >= ON && LA181_0 <= OPERATOR)||(LA181_0 >= OUT && LA181_0 <= OVERRIDE)||LA181_0==PACKAGE||LA181_0==PAREN_BRACKET_LEFT||LA181_0==PAREN_LEFT||(LA181_0 >= PASCAL && LA181_0 <= PLATFORM)||LA181_0==PRIVATE||(LA181_0 >= PROTECTED && LA181_0 <= PUBLISHED)||(LA181_0 >= READ && LA181_0 <= READONLY)||(LA181_0 >= REFERENCE && LA181_0 <= REINTRODUCE)||(LA181_0 >= REQUIRES && LA181_0 <= RESIDENT)||(LA181_0 >= SAFECALL && LA181_0 <= SEALED)||LA181_0==SQUARE_BRACKET_LEFT||(LA181_0 >= STATIC && LA181_0 <= STRING)||LA181_0==TkBinaryNumber||LA181_0==TkCharacterEscapeCode||(LA181_0 >= TkHexNumber && LA181_0 <= TkIntNumber)||LA181_0==TkMultilineString||(LA181_0 >= TkQuotedString && LA181_0 <= TkRealNumber)||LA181_0==UNSAFE||(LA181_0 >= VARARGS && LA181_0 <= VIRTUAL)||LA181_0==WINAPI||(LA181_0 >= WRITE && LA181_0 <= WRITEONLY)) ) {
alt181=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 181, 0, input);
throw nvae;
}
switch (alt181) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:874:32: unaryOperator ^ unaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unaryOperator_in_unaryExpression15449);
unaryOperator537=unaryOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(unaryOperator537.getTree(), root_0);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression15452);
unaryExpression538=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression538.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:875:32: primaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_primaryExpression_in_unaryExpression15485);
primaryExpression539=primaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, primaryExpression539.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 141, unaryExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "unaryExpression"
public static class primaryExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "primaryExpression"
// au/com/integradev/delphi/antlr/Delphi.g:877:1: primaryExpression : ( atom -> ^( TkPrimaryExpression atom ) | parenthesizedExpression | INHERITED ( ( nameReference )? ( particleItem )* )? -> ^( TkPrimaryExpression INHERITED ( ( nameReference )? ( particleItem )* )? ) );
public final DelphiParser.primaryExpression_return primaryExpression() throws RecognitionException {
DelphiParser.primaryExpression_return retval = new DelphiParser.primaryExpression_return();
retval.start = input.LT(1);
int primaryExpression_StartIndex = input.index();
Object root_0 = null;
Token INHERITED542=null;
ParserRuleReturnScope atom540 =null;
ParserRuleReturnScope parenthesizedExpression541 =null;
ParserRuleReturnScope nameReference543 =null;
ParserRuleReturnScope particleItem544 =null;
Object INHERITED542_tree=null;
RewriteRuleTokenStream stream_INHERITED=new RewriteRuleTokenStream(adaptor,"token INHERITED");
RewriteRuleSubtreeStream stream_particleItem=new RewriteRuleSubtreeStream(adaptor,"rule particleItem");
RewriteRuleSubtreeStream stream_nameReference=new RewriteRuleSubtreeStream(adaptor,"rule nameReference");
RewriteRuleSubtreeStream stream_atom=new RewriteRuleSubtreeStream(adaptor,"rule atom");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 142) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:877:30: ( atom -> ^( TkPrimaryExpression atom ) | parenthesizedExpression | INHERITED ( ( nameReference )? ( particleItem )* )? -> ^( TkPrimaryExpression INHERITED ( ( nameReference )? ( particleItem )* )? ) )
int alt185=3;
switch ( input.LA(1) ) {
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DEREFERENCE:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FILE:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NIL:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PAREN_BRACKET_LEFT:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case SQUARE_BRACKET_LEFT:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case STRING:
case TkBinaryNumber:
case TkCharacterEscapeCode:
case TkHexNumber:
case TkIdentifier:
case TkIntNumber:
case TkMultilineString:
case TkQuotedString:
case TkRealNumber:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
alt185=1;
}
break;
case PAREN_LEFT:
{
int LA185_15 = input.LA(2);
if ( (synpred254_Delphi()) ) {
alt185=1;
}
else if ( (synpred255_Delphi()) ) {
alt185=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 185, 15, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INHERITED:
{
alt185=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 185, 0, input);
throw nvae;
}
switch (alt185) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:877:32: atom
{
pushFollow(FOLLOW_atom_in_primaryExpression15533);
atom540=atom();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_atom.add(atom540.getTree());
// AST REWRITE
// elements: atom
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 877:37: -> ^( TkPrimaryExpression atom )
{
// au/com/integradev/delphi/antlr/Delphi.g:877:40: ^( TkPrimaryExpression atom )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new PrimaryExpressionNodeImpl(TkPrimaryExpression), root_1);
adaptor.addChild(root_1, stream_atom.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:878:32: parenthesizedExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_parenthesizedExpression_in_primaryExpression15577);
parenthesizedExpression541=parenthesizedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parenthesizedExpression541.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:879:32: INHERITED ( ( nameReference )? ( particleItem )* )?
{
INHERITED542=(Token)match(input,INHERITED,FOLLOW_INHERITED_in_primaryExpression15610); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INHERITED.add(INHERITED542);
// au/com/integradev/delphi/antlr/Delphi.g:879:42: ( ( nameReference )? ( particleItem )* )?
int alt184=2;
alt184 = dfa184.predict(input);
switch (alt184) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:879:43: ( nameReference )? ( particleItem )*
{
// au/com/integradev/delphi/antlr/Delphi.g:879:43: ( nameReference )?
int alt182=2;
switch ( input.LA(1) ) {
case TkIdentifier:
{
int LA182_1 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case DEFAULT:
{
int LA182_2 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case READ:
{
int LA182_4 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case WRITE:
{
int LA182_5 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case READONLY:
{
int LA182_6 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case WRITEONLY:
{
int LA182_7 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case DISPID:
{
int LA182_8 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case IMPLEMENTS:
{
int LA182_9 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case INDEX:
{
int LA182_10 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case STORED:
{
int LA182_11 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case NODEFAULT:
{
int LA182_12 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case DEPRECATED:
{
int LA182_13 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case EXPERIMENTAL:
{
int LA182_14 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case PLATFORM:
{
int LA182_15 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case NAME:
{
int LA182_16 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case RESIDENT:
{
int LA182_17 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case ABSOLUTE:
{
int LA182_18 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case REFERENCE:
{
int LA182_19 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case STRICT:
{
int LA182_20 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case PROTECTED:
{
int LA182_21 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case PRIVATE:
{
int LA182_22 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case PUBLIC:
{
int LA182_23 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case PUBLISHED:
{
int LA182_24 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case AUTOMATED:
{
int LA182_25 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case OPERATOR:
{
int LA182_26 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case ON:
{
int LA182_27 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case AT:
{
int LA182_28 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case OVERLOAD:
{
int LA182_29 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case REINTRODUCE:
{
int LA182_30 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case MESSAGE:
{
int LA182_31 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case STATIC:
{
int LA182_32 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case DYNAMIC:
{
int LA182_33 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case OVERRIDE:
{
int LA182_34 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case VIRTUAL:
{
int LA182_35 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case ABSTRACT:
case FINAL:
{
int LA182_36 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case ASSEMBLER:
{
int LA182_37 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case CDECL:
case EXPORT:
case PASCAL:
case REGISTER:
case SAFECALL:
case STDCALL:
case WINAPI:
{
int LA182_38 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case FAR:
case LOCAL:
case NEAR:
{
int LA182_39 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case VARARGS:
{
int LA182_40 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case UNSAFE:
{
int LA182_41 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case LABEL:
{
int LA182_42 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case EXTERNAL:
{
int LA182_43 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case FORWARD:
{
int LA182_44 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case DELAYED:
{
int LA182_45 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
case ALIGN:
case ASSEMBLY:
case CONTAINS:
case HELPER:
case OUT:
case PACKAGE:
case REQUIRES:
case SEALED:
{
int LA182_46 = input.LA(2);
if ( (synpred256_Delphi()) ) {
alt182=1;
}
}
break;
}
switch (alt182) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:879:43: nameReference
{
pushFollow(FOLLOW_nameReference_in_primaryExpression15613);
nameReference543=nameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameReference.add(nameReference543.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:879:58: ( particleItem )*
loop183:
while (true) {
int alt183=2;
alt183 = dfa183.predict(input);
switch (alt183) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:879:58: particleItem
{
pushFollow(FOLLOW_particleItem_in_primaryExpression15616);
particleItem544=particleItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_particleItem.add(particleItem544.getTree());
}
break;
default :
break loop183;
}
}
}
break;
}
// AST REWRITE
// elements: nameReference, particleItem, INHERITED
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 879:74: -> ^( TkPrimaryExpression INHERITED ( ( nameReference )? ( particleItem )* )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:879:77: ^( TkPrimaryExpression INHERITED ( ( nameReference )? ( particleItem )* )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new PrimaryExpressionNodeImpl(TkPrimaryExpression), root_1);
adaptor.addChild(root_1, stream_INHERITED.nextNode());
// au/com/integradev/delphi/antlr/Delphi.g:879:136: ( ( nameReference )? ( particleItem )* )?
if ( stream_nameReference.hasNext()||stream_particleItem.hasNext() ) {
// au/com/integradev/delphi/antlr/Delphi.g:879:137: ( nameReference )?
if ( stream_nameReference.hasNext() ) {
adaptor.addChild(root_1, stream_nameReference.nextTree());
}
stream_nameReference.reset();
// au/com/integradev/delphi/antlr/Delphi.g:879:152: ( particleItem )*
while ( stream_particleItem.hasNext() ) {
adaptor.addChild(root_1, stream_particleItem.nextTree());
}
stream_particleItem.reset();
}
stream_nameReference.reset();
stream_particleItem.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 142, primaryExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "primaryExpression"
public static class parenthesizedExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "parenthesizedExpression"
// au/com/integradev/delphi/antlr/Delphi.g:881:1: parenthesizedExpression : '(' expression ')' -> ^( TkNestedExpression '(' expression ')' ) ;
public final DelphiParser.parenthesizedExpression_return parenthesizedExpression() throws RecognitionException {
DelphiParser.parenthesizedExpression_return retval = new DelphiParser.parenthesizedExpression_return();
retval.start = input.LT(1);
int parenthesizedExpression_StartIndex = input.index();
Object root_0 = null;
Token char_literal545=null;
Token char_literal547=null;
ParserRuleReturnScope expression546 =null;
Object char_literal545_tree=null;
Object char_literal547_tree=null;
RewriteRuleTokenStream stream_PAREN_RIGHT=new RewriteRuleTokenStream(adaptor,"token PAREN_RIGHT");
RewriteRuleTokenStream stream_PAREN_LEFT=new RewriteRuleTokenStream(adaptor,"token PAREN_LEFT");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 143) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:881:30: ( '(' expression ')' -> ^( TkNestedExpression '(' expression ')' ) )
// au/com/integradev/delphi/antlr/Delphi.g:881:32: '(' expression ')'
{
char_literal545=(Token)match(input,PAREN_LEFT,FOLLOW_PAREN_LEFT_in_parenthesizedExpression15681); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PAREN_LEFT.add(char_literal545);
pushFollow(FOLLOW_expression_in_parenthesizedExpression15683);
expression546=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression546.getTree());
char_literal547=(Token)match(input,PAREN_RIGHT,FOLLOW_PAREN_RIGHT_in_parenthesizedExpression15685); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PAREN_RIGHT.add(char_literal547);
// AST REWRITE
// elements: PAREN_RIGHT, PAREN_LEFT, expression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 881:51: -> ^( TkNestedExpression '(' expression ')' )
{
// au/com/integradev/delphi/antlr/Delphi.g:881:54: ^( TkNestedExpression '(' expression ')' )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ParenthesizedExpressionNodeImpl(TkNestedExpression), root_1);
adaptor.addChild(root_1, stream_PAREN_LEFT.nextNode());
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_1, stream_PAREN_RIGHT.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 143, parenthesizedExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "parenthesizedExpression"
public static class atom_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "atom"
// au/com/integradev/delphi/antlr/Delphi.g:883:1: atom : particle ( particleItem )* ;
public final DelphiParser.atom_return atom() throws RecognitionException {
DelphiParser.atom_return retval = new DelphiParser.atom_return();
retval.start = input.LT(1);
int atom_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope particle548 =null;
ParserRuleReturnScope particleItem549 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 144) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:883:30: ( particle ( particleItem )* )
// au/com/integradev/delphi/antlr/Delphi.g:883:32: particle ( particleItem )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_particle_in_atom15761);
particle548=particle();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, particle548.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:883:41: ( particleItem )*
loop186:
while (true) {
int alt186=2;
alt186 = dfa186.predict(input);
switch (alt186) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:883:41: particleItem
{
pushFollow(FOLLOW_particleItem_in_atom15763);
particleItem549=particleItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, particleItem549.getTree());
}
break;
default :
break loop186;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 144, atom_StartIndex); }
}
return retval;
}
// $ANTLR end "atom"
public static class particle_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "particle"
// au/com/integradev/delphi/antlr/Delphi.g:885:1: particle : ( intNum | realNum | textLiteral | nilLiteral | nameReference | arrayConstructor | STRING | FILE | parenthesizedExpression ( particleItem )+ );
public final DelphiParser.particle_return particle() throws RecognitionException {
DelphiParser.particle_return retval = new DelphiParser.particle_return();
retval.start = input.LT(1);
int particle_StartIndex = input.index();
Object root_0 = null;
Token STRING556=null;
Token FILE557=null;
ParserRuleReturnScope intNum550 =null;
ParserRuleReturnScope realNum551 =null;
ParserRuleReturnScope textLiteral552 =null;
ParserRuleReturnScope nilLiteral553 =null;
ParserRuleReturnScope nameReference554 =null;
ParserRuleReturnScope arrayConstructor555 =null;
ParserRuleReturnScope parenthesizedExpression558 =null;
ParserRuleReturnScope particleItem559 =null;
Object STRING556_tree=null;
Object FILE557_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 145) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:885:30: ( intNum | realNum | textLiteral | nilLiteral | nameReference | arrayConstructor | STRING | FILE | parenthesizedExpression ( particleItem )+ )
int alt188=9;
switch ( input.LA(1) ) {
case TkBinaryNumber:
case TkHexNumber:
case TkIntNumber:
{
alt188=1;
}
break;
case TkRealNumber:
{
alt188=2;
}
break;
case DEREFERENCE:
case TkCharacterEscapeCode:
case TkMultilineString:
case TkQuotedString:
{
alt188=3;
}
break;
case NIL:
{
alt188=4;
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case TkIdentifier:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
alt188=5;
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
alt188=6;
}
break;
case STRING:
{
alt188=7;
}
break;
case FILE:
{
alt188=8;
}
break;
case PAREN_LEFT:
{
alt188=9;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 188, 0, input);
throw nvae;
}
switch (alt188) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:885:32: intNum
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_intNum_in_particle15821);
intNum550=intNum();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, intNum550.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:886:32: realNum
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_realNum_in_particle15854);
realNum551=realNum();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, realNum551.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:887:32: textLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_textLiteral_in_particle15887);
textLiteral552=textLiteral();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, textLiteral552.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:888:32: nilLiteral
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_nilLiteral_in_particle15920);
nilLiteral553=nilLiteral();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, nilLiteral553.getTree());
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:889:32: nameReference
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_nameReference_in_particle15953);
nameReference554=nameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, nameReference554.getTree());
}
break;
case 6 :
// au/com/integradev/delphi/antlr/Delphi.g:890:32: arrayConstructor
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_arrayConstructor_in_particle15986);
arrayConstructor555=arrayConstructor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arrayConstructor555.getTree());
}
break;
case 7 :
// au/com/integradev/delphi/antlr/Delphi.g:891:32: STRING
{
root_0 = (Object)adaptor.nil();
STRING556=(Token)match(input,STRING,FOLLOW_STRING_in_particle16019); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STRING556_tree = (Object)adaptor.create(STRING556);
adaptor.addChild(root_0, STRING556_tree);
}
}
break;
case 8 :
// au/com/integradev/delphi/antlr/Delphi.g:892:32: FILE
{
root_0 = (Object)adaptor.nil();
FILE557=(Token)match(input,FILE,FOLLOW_FILE_in_particle16052); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FILE557_tree = (Object)adaptor.create(FILE557);
adaptor.addChild(root_0, FILE557_tree);
}
}
break;
case 9 :
// au/com/integradev/delphi/antlr/Delphi.g:893:32: parenthesizedExpression ( particleItem )+
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_parenthesizedExpression_in_particle16085);
parenthesizedExpression558=parenthesizedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parenthesizedExpression558.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:893:56: ( particleItem )+
int cnt187=0;
loop187:
while (true) {
int alt187=2;
alt187 = dfa187.predict(input);
switch (alt187) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:893:56: particleItem
{
pushFollow(FOLLOW_particleItem_in_particle16087);
particleItem559=particleItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, particleItem559.getTree());
}
break;
default :
if ( cnt187 >= 1 ) break loop187;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(187, input);
throw eee;
}
cnt187++;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 145, particle_StartIndex); }
}
return retval;
}
// $ANTLR end "particle"
public static class particleItem_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "particleItem"
// au/com/integradev/delphi/antlr/Delphi.g:897:1: particleItem : ( '.' extendedNameReference | argumentList | arrayAccessor | '^' );
public final DelphiParser.particleItem_return particleItem() throws RecognitionException {
DelphiParser.particleItem_return retval = new DelphiParser.particleItem_return();
retval.start = input.LT(1);
int particleItem_StartIndex = input.index();
Object root_0 = null;
Token char_literal560=null;
Token char_literal564=null;
ParserRuleReturnScope extendedNameReference561 =null;
ParserRuleReturnScope argumentList562 =null;
ParserRuleReturnScope arrayAccessor563 =null;
Object char_literal560_tree=null;
Object char_literal564_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 146) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:897:30: ( '.' extendedNameReference | argumentList | arrayAccessor | '^' )
int alt189=4;
switch ( input.LA(1) ) {
case DOT:
{
alt189=1;
}
break;
case PAREN_LEFT:
{
alt189=2;
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
alt189=3;
}
break;
case DEREFERENCE:
{
alt189=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 189, 0, input);
throw nvae;
}
switch (alt189) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:897:32: '.' extendedNameReference
{
root_0 = (Object)adaptor.nil();
char_literal560=(Token)match(input,DOT,FOLLOW_DOT_in_particleItem16206); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal560_tree = (Object)adaptor.create(char_literal560);
adaptor.addChild(root_0, char_literal560_tree);
}
pushFollow(FOLLOW_extendedNameReference_in_particleItem16208);
extendedNameReference561=extendedNameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, extendedNameReference561.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:898:32: argumentList
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_argumentList_in_particleItem16241);
argumentList562=argumentList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, argumentList562.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:899:32: arrayAccessor
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_arrayAccessor_in_particleItem16274);
arrayAccessor563=arrayAccessor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arrayAccessor563.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:900:32: '^'
{
root_0 = (Object)adaptor.nil();
char_literal564=(Token)match(input,DEREFERENCE,FOLLOW_DEREFERENCE_in_particleItem16307); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal564_tree = (Object)adaptor.create(char_literal564);
adaptor.addChild(root_0, char_literal564_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 146, particleItem_StartIndex); }
}
return retval;
}
// $ANTLR end "particleItem"
public static class arrayAccessor_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arrayAccessor"
// au/com/integradev/delphi/antlr/Delphi.g:902:1: arrayAccessor : lbrack expressionList rbrack -> ^( TkArrayAccessorNode expressionList ) ;
public final DelphiParser.arrayAccessor_return arrayAccessor() throws RecognitionException {
DelphiParser.arrayAccessor_return retval = new DelphiParser.arrayAccessor_return();
retval.start = input.LT(1);
int arrayAccessor_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope lbrack565 =null;
ParserRuleReturnScope expressionList566 =null;
ParserRuleReturnScope rbrack567 =null;
RewriteRuleSubtreeStream stream_expressionList=new RewriteRuleSubtreeStream(adaptor,"rule expressionList");
RewriteRuleSubtreeStream stream_rbrack=new RewriteRuleSubtreeStream(adaptor,"rule rbrack");
RewriteRuleSubtreeStream stream_lbrack=new RewriteRuleSubtreeStream(adaptor,"rule lbrack");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 147) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:902:30: ( lbrack expressionList rbrack -> ^( TkArrayAccessorNode expressionList ) )
// au/com/integradev/delphi/antlr/Delphi.g:902:32: lbrack expressionList rbrack
{
pushFollow(FOLLOW_lbrack_in_arrayAccessor16359);
lbrack565=lbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lbrack.add(lbrack565.getTree());
pushFollow(FOLLOW_expressionList_in_arrayAccessor16361);
expressionList566=expressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expressionList.add(expressionList566.getTree());
pushFollow(FOLLOW_rbrack_in_arrayAccessor16363);
rbrack567=rbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rbrack.add(rbrack567.getTree());
// AST REWRITE
// elements: expressionList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 903:30: -> ^( TkArrayAccessorNode expressionList )
{
// au/com/integradev/delphi/antlr/Delphi.g:903:33: ^( TkArrayAccessorNode expressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ArrayAccessorNodeImpl(TkArrayAccessorNode), root_1);
adaptor.addChild(root_1, stream_expressionList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 147, arrayAccessor_StartIndex); }
}
return retval;
}
// $ANTLR end "arrayAccessor"
public static class argumentList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "argumentList"
// au/com/integradev/delphi/antlr/Delphi.g:905:1: argumentList : '(' ^ ( argument ( ',' argument )* ( ',' )? )? ')' ;
public final DelphiParser.argumentList_return argumentList() throws RecognitionException {
DelphiParser.argumentList_return retval = new DelphiParser.argumentList_return();
retval.start = input.LT(1);
int argumentList_StartIndex = input.index();
Object root_0 = null;
Token char_literal568=null;
Token char_literal570=null;
Token char_literal572=null;
Token char_literal573=null;
ParserRuleReturnScope argument569 =null;
ParserRuleReturnScope argument571 =null;
Object char_literal568_tree=null;
Object char_literal570_tree=null;
Object char_literal572_tree=null;
Object char_literal573_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 148) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:905:30: ( '(' ^ ( argument ( ',' argument )* ( ',' )? )? ')' )
// au/com/integradev/delphi/antlr/Delphi.g:905:32: '(' ^ ( argument ( ',' argument )* ( ',' )? )? ')'
{
root_0 = (Object)adaptor.nil();
char_literal568=(Token)match(input,PAREN_LEFT,FOLLOW_PAREN_LEFT_in_argumentList16456); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal568_tree = new ArgumentListNodeImpl(char_literal568) ;
root_0 = (Object)adaptor.becomeRoot(char_literal568_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:905:59: ( argument ( ',' argument )* ( ',' )? )?
int alt192=2;
int LA192_0 = input.LA(1);
if ( ((LA192_0 >= ABSOLUTE && LA192_0 <= ALIGN)||(LA192_0 >= AND && LA192_0 <= ASSEMBLY)||(LA192_0 >= AT && LA192_0 <= AUTOMATED)||LA192_0==BEGIN||(LA192_0 >= CASE && LA192_0 <= CLASS)||(LA192_0 >= CONST && LA192_0 <= CONTAINS)||(LA192_0 >= DEFAULT && LA192_0 <= DIV)||LA192_0==DO||(LA192_0 >= DOWNTO && LA192_0 <= DYNAMIC)||(LA192_0 >= ELSE && LA192_0 <= END)||(LA192_0 >= EXCEPT && LA192_0 <= EXTERNAL)||(LA192_0 >= FAR && LA192_0 <= FUNCTION)||LA192_0==GOTO||LA192_0==HELPER||(LA192_0 >= IF && LA192_0 <= IS)||LA192_0==LABEL||(LA192_0 >= LIBRARY && LA192_0 <= LOCAL)||(LA192_0 >= MESSAGE && LA192_0 <= MOD)||(LA192_0 >= NAME && LA192_0 <= NOT)||(LA192_0 >= OBJECT && LA192_0 <= OVERRIDE)||(LA192_0 >= PACKAGE && LA192_0 <= PAREN_BRACKET_LEFT)||LA192_0==PAREN_LEFT||(LA192_0 >= PASCAL && LA192_0 <= PUBLISHED)||(LA192_0 >= RAISE && LA192_0 <= RESOURCESTRING)||(LA192_0 >= SAFECALL && LA192_0 <= SEALED)||(LA192_0 >= SET && LA192_0 <= SQUARE_BRACKET_LEFT)||(LA192_0 >= STATIC && LA192_0 <= STRING)||(LA192_0 >= THEN && LA192_0 <= TYPE)||LA192_0==TkBinaryNumber||LA192_0==TkCharacterEscapeCode||(LA192_0 >= TkHexNumber && LA192_0 <= TkIntNumber)||LA192_0==TkMultilineString||(LA192_0 >= TkQuotedString && LA192_0 <= TkRealNumber)||(LA192_0 >= UNIT && LA192_0 <= USES)||(LA192_0 >= VAR && LA192_0 <= VIRTUAL)||LA192_0==WHILE||(LA192_0 >= WINAPI && LA192_0 <= WRITEONLY)||LA192_0==XOR) ) {
alt192=1;
}
switch (alt192) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:905:60: argument ( ',' argument )* ( ',' )?
{
pushFollow(FOLLOW_argument_in_argumentList16463);
argument569=argument();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, argument569.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:905:69: ( ',' argument )*
loop190:
while (true) {
int alt190=2;
int LA190_0 = input.LA(1);
if ( (LA190_0==COMMA) ) {
int LA190_1 = input.LA(2);
if ( ((LA190_1 >= ABSOLUTE && LA190_1 <= ALIGN)||(LA190_1 >= AND && LA190_1 <= ASSEMBLY)||(LA190_1 >= AT && LA190_1 <= AUTOMATED)||LA190_1==BEGIN||(LA190_1 >= CASE && LA190_1 <= CLASS)||(LA190_1 >= CONST && LA190_1 <= CONTAINS)||(LA190_1 >= DEFAULT && LA190_1 <= DIV)||LA190_1==DO||(LA190_1 >= DOWNTO && LA190_1 <= DYNAMIC)||(LA190_1 >= ELSE && LA190_1 <= END)||(LA190_1 >= EXCEPT && LA190_1 <= EXTERNAL)||(LA190_1 >= FAR && LA190_1 <= FUNCTION)||LA190_1==GOTO||LA190_1==HELPER||(LA190_1 >= IF && LA190_1 <= IS)||LA190_1==LABEL||(LA190_1 >= LIBRARY && LA190_1 <= LOCAL)||(LA190_1 >= MESSAGE && LA190_1 <= MOD)||(LA190_1 >= NAME && LA190_1 <= NOT)||(LA190_1 >= OBJECT && LA190_1 <= OVERRIDE)||(LA190_1 >= PACKAGE && LA190_1 <= PAREN_BRACKET_LEFT)||LA190_1==PAREN_LEFT||(LA190_1 >= PASCAL && LA190_1 <= PUBLISHED)||(LA190_1 >= RAISE && LA190_1 <= RESOURCESTRING)||(LA190_1 >= SAFECALL && LA190_1 <= SEALED)||(LA190_1 >= SET && LA190_1 <= SQUARE_BRACKET_LEFT)||(LA190_1 >= STATIC && LA190_1 <= STRING)||(LA190_1 >= THEN && LA190_1 <= TYPE)||LA190_1==TkBinaryNumber||LA190_1==TkCharacterEscapeCode||(LA190_1 >= TkHexNumber && LA190_1 <= TkIntNumber)||LA190_1==TkMultilineString||(LA190_1 >= TkQuotedString && LA190_1 <= TkRealNumber)||(LA190_1 >= UNIT && LA190_1 <= USES)||(LA190_1 >= VAR && LA190_1 <= VIRTUAL)||LA190_1==WHILE||(LA190_1 >= WINAPI && LA190_1 <= WRITEONLY)||LA190_1==XOR) ) {
alt190=1;
}
}
switch (alt190) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:905:70: ',' argument
{
char_literal570=(Token)match(input,COMMA,FOLLOW_COMMA_in_argumentList16466); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal570_tree = (Object)adaptor.create(char_literal570);
adaptor.addChild(root_0, char_literal570_tree);
}
pushFollow(FOLLOW_argument_in_argumentList16468);
argument571=argument();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, argument571.getTree());
}
break;
default :
break loop190;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:905:85: ( ',' )?
int alt191=2;
int LA191_0 = input.LA(1);
if ( (LA191_0==COMMA) ) {
alt191=1;
}
switch (alt191) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:905:85: ','
{
char_literal572=(Token)match(input,COMMA,FOLLOW_COMMA_in_argumentList16472); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal572_tree = (Object)adaptor.create(char_literal572);
adaptor.addChild(root_0, char_literal572_tree);
}
}
break;
}
}
break;
}
char_literal573=(Token)match(input,PAREN_RIGHT,FOLLOW_PAREN_RIGHT_in_argumentList16477); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal573_tree = (Object)adaptor.create(char_literal573);
adaptor.addChild(root_0, char_literal573_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 148, argumentList_StartIndex); }
}
return retval;
}
// $ANTLR end "argumentList"
public static class argument_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "argument"
// au/com/integradev/delphi/antlr/Delphi.g:907:1: argument : ( argumentName )? argumentExpression -> ^( TkArgument ( argumentName )? argumentExpression ) ;
public final DelphiParser.argument_return argument() throws RecognitionException {
DelphiParser.argument_return retval = new DelphiParser.argument_return();
retval.start = input.LT(1);
int argument_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope argumentName574 =null;
ParserRuleReturnScope argumentExpression575 =null;
RewriteRuleSubtreeStream stream_argumentExpression=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpression");
RewriteRuleSubtreeStream stream_argumentName=new RewriteRuleSubtreeStream(adaptor,"rule argumentName");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 149) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:907:30: ( ( argumentName )? argumentExpression -> ^( TkArgument ( argumentName )? argumentExpression ) )
// au/com/integradev/delphi/antlr/Delphi.g:907:32: ( argumentName )? argumentExpression
{
// au/com/integradev/delphi/antlr/Delphi.g:907:32: ( argumentName )?
int alt193=2;
switch ( input.LA(1) ) {
case TkIdentifier:
{
int LA193_1 = input.LA(2);
if ( (LA193_1==ASSIGN) ) {
alt193=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA193_2 = input.LA(2);
if ( (LA193_2==ASSIGN) ) {
alt193=1;
}
}
break;
case NOT:
{
int LA193_3 = input.LA(2);
if ( (LA193_3==ASSIGN) ) {
alt193=1;
}
}
break;
case NIL:
{
int LA193_4 = input.LA(2);
if ( (LA193_4==ASSIGN) ) {
alt193=1;
}
}
break;
case STRING:
{
int LA193_6 = input.LA(2);
if ( (LA193_6==ASSIGN) ) {
alt193=1;
}
}
break;
case FILE:
{
int LA193_7 = input.LA(2);
if ( (LA193_7==ASSIGN) ) {
alt193=1;
}
}
break;
case INHERITED:
{
int LA193_8 = input.LA(2);
if ( (LA193_8==ASSIGN) ) {
alt193=1;
}
}
break;
case PROCEDURE:
{
int LA193_9 = input.LA(2);
if ( (LA193_9==ASSIGN) ) {
alt193=1;
}
}
break;
case FUNCTION:
{
int LA193_10 = input.LA(2);
if ( (LA193_10==ASSIGN) ) {
alt193=1;
}
}
break;
case AND:
case ARRAY:
case AS:
case ASM:
case BEGIN:
case CASE:
case CLASS:
case CONST:
case CONSTRUCTOR:
case DESTRUCTOR:
case DISPINTERFACE:
case DIV:
case DO:
case DOWNTO:
case ELSE:
case END:
case EXCEPT:
case EXPORTS:
case FINALIZATION:
case FINALLY:
case FOR:
case GOTO:
case IF:
case IMPLEMENTATION:
case IN:
case INITIALIZATION:
case INLINE:
case INTERFACE:
case IS:
case LIBRARY:
case MOD:
case OBJECT:
case OF:
case OR:
case PACKED:
case PROGRAM:
case PROPERTY:
case RAISE:
case RECORD:
case REPEAT:
case RESOURCESTRING:
case SET:
case SHL:
case SHR:
case THEN:
case THREADVAR:
case TO:
case TRY:
case TYPE:
case UNIT:
case UNTIL:
case USES:
case VAR:
case WHILE:
case WITH:
case XOR:
{
alt193=1;
}
break;
}
switch (alt193) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:907:32: argumentName
{
pushFollow(FOLLOW_argumentName_in_argument16534);
argumentName574=argumentName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentName.add(argumentName574.getTree());
}
break;
}
pushFollow(FOLLOW_argumentExpression_in_argument16537);
argumentExpression575=argumentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpression.add(argumentExpression575.getTree());
// AST REWRITE
// elements: argumentName, argumentExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 908:30: -> ^( TkArgument ( argumentName )? argumentExpression )
{
// au/com/integradev/delphi/antlr/Delphi.g:908:33: ^( TkArgument ( argumentName )? argumentExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ArgumentNodeImpl(TkArgument), root_1);
// au/com/integradev/delphi/antlr/Delphi.g:908:64: ( argumentName )?
if ( stream_argumentName.hasNext() ) {
adaptor.addChild(root_1, stream_argumentName.nextTree());
}
stream_argumentName.reset();
adaptor.addChild(root_1, stream_argumentExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 149, argument_StartIndex); }
}
return retval;
}
// $ANTLR end "argument"
public static class argumentName_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "argumentName"
// au/com/integradev/delphi/antlr/Delphi.g:910:1: argumentName : ( ident ':=' !| keywords ':=' -> ^() );
public final DelphiParser.argumentName_return argumentName() throws RecognitionException {
DelphiParser.argumentName_return retval = new DelphiParser.argumentName_return();
retval.start = input.LT(1);
int argumentName_StartIndex = input.index();
Object root_0 = null;
Token string_literal577=null;
Token string_literal579=null;
ParserRuleReturnScope ident576 =null;
ParserRuleReturnScope keywords578 =null;
Object string_literal577_tree=null;
Object string_literal579_tree=null;
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_keywords=new RewriteRuleSubtreeStream(adaptor,"rule keywords");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 150) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:910:30: ( ident ':=' !| keywords ':=' -> ^() )
int alt194=2;
switch ( input.LA(1) ) {
case TkIdentifier:
{
alt194=1;
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA194_2 = input.LA(2);
if ( (LA194_2==ASSIGN) ) {
int LA194_4 = input.LA(3);
if ( (synpred276_Delphi()) ) {
alt194=1;
}
else if ( (true) ) {
alt194=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 194, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case AND:
case ARRAY:
case AS:
case ASM:
case BEGIN:
case CASE:
case CLASS:
case CONST:
case CONSTRUCTOR:
case DESTRUCTOR:
case DISPINTERFACE:
case DIV:
case DO:
case DOWNTO:
case ELSE:
case END:
case EXCEPT:
case EXPORTS:
case FILE:
case FINALIZATION:
case FINALLY:
case FOR:
case FUNCTION:
case GOTO:
case IF:
case IMPLEMENTATION:
case IN:
case INHERITED:
case INITIALIZATION:
case INLINE:
case INTERFACE:
case IS:
case LIBRARY:
case MOD:
case NIL:
case NOT:
case OBJECT:
case OF:
case OR:
case PACKED:
case PROCEDURE:
case PROGRAM:
case PROPERTY:
case RAISE:
case RECORD:
case REPEAT:
case RESOURCESTRING:
case SET:
case SHL:
case SHR:
case STRING:
case THEN:
case THREADVAR:
case TO:
case TRY:
case TYPE:
case UNIT:
case UNTIL:
case USES:
case VAR:
case WHILE:
case WITH:
case XOR:
{
alt194=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 194, 0, input);
throw nvae;
}
switch (alt194) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:910:32: ident ':=' !
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_ident_in_argumentName16633);
ident576=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ident576.getTree());
string_literal577=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_argumentName16635); if (state.failed) return retval;
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:911:32: keywords ':='
{
pushFollow(FOLLOW_keywords_in_argumentName16669);
keywords578=keywords();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_keywords.add(keywords578.getTree());
string_literal579=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_argumentName16671); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(string_literal579);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 911:46: -> ^()
{
// au/com/integradev/delphi/antlr/Delphi.g:911:49: ^()
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(changeTokenType(TkIdentifier, -2), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 150, argumentName_StartIndex); }
}
return retval;
}
// $ANTLR end "argumentName"
public static class argumentExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "argumentExpression"
// au/com/integradev/delphi/antlr/Delphi.g:913:1: argumentExpression : expression ( writeArguments )? ;
public final DelphiParser.argumentExpression_return argumentExpression() throws RecognitionException {
DelphiParser.argumentExpression_return retval = new DelphiParser.argumentExpression_return();
retval.start = input.LT(1);
int argumentExpression_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope expression580 =null;
ParserRuleReturnScope writeArguments581 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 151) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:913:30: ( expression ( writeArguments )? )
// au/com/integradev/delphi/antlr/Delphi.g:913:32: expression ( writeArguments )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expression_in_argumentExpression16724);
expression580=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression580.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:913:43: ( writeArguments )?
int alt195=2;
int LA195_0 = input.LA(1);
if ( (LA195_0==COLON) ) {
alt195=1;
}
switch (alt195) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:913:43: writeArguments
{
pushFollow(FOLLOW_writeArguments_in_argumentExpression16726);
writeArguments581=writeArguments();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, writeArguments581.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 151, argumentExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "argumentExpression"
public static class writeArguments_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "writeArguments"
// au/com/integradev/delphi/antlr/Delphi.g:915:1: writeArguments : ':' ! expression ( ':' ! expression )? ;
public final DelphiParser.writeArguments_return writeArguments() throws RecognitionException {
DelphiParser.writeArguments_return retval = new DelphiParser.writeArguments_return();
retval.start = input.LT(1);
int writeArguments_StartIndex = input.index();
Object root_0 = null;
Token char_literal582=null;
Token char_literal584=null;
ParserRuleReturnScope expression583 =null;
ParserRuleReturnScope expression585 =null;
Object char_literal582_tree=null;
Object char_literal584_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 152) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:915:30: ( ':' ! expression ( ':' ! expression )? )
// au/com/integradev/delphi/antlr/Delphi.g:915:32: ':' ! expression ( ':' ! expression )?
{
root_0 = (Object)adaptor.nil();
char_literal582=(Token)match(input,COLON,FOLLOW_COLON_in_writeArguments16778); if (state.failed) return retval;
pushFollow(FOLLOW_expression_in_writeArguments16781);
expression583=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression583.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:915:48: ( ':' ! expression )?
int alt196=2;
int LA196_0 = input.LA(1);
if ( (LA196_0==COLON) ) {
alt196=1;
}
switch (alt196) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:915:49: ':' ! expression
{
char_literal584=(Token)match(input,COLON,FOLLOW_COLON_in_writeArguments16784); if (state.failed) return retval;
pushFollow(FOLLOW_expression_in_writeArguments16787);
expression585=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression585.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 152, writeArguments_StartIndex); }
}
return retval;
}
// $ANTLR end "writeArguments"
public static class anonymousMethod_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "anonymousMethod"
// au/com/integradev/delphi/antlr/Delphi.g:917:1: anonymousMethod : anonymousMethodHeading block -> ^( TkAnonymousMethod anonymousMethodHeading block ) ;
public final DelphiParser.anonymousMethod_return anonymousMethod() throws RecognitionException {
DelphiParser.anonymousMethod_return retval = new DelphiParser.anonymousMethod_return();
retval.start = input.LT(1);
int anonymousMethod_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope anonymousMethodHeading586 =null;
ParserRuleReturnScope block587 =null;
RewriteRuleSubtreeStream stream_anonymousMethodHeading=new RewriteRuleSubtreeStream(adaptor,"rule anonymousMethodHeading");
RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 153) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:917:30: ( anonymousMethodHeading block -> ^( TkAnonymousMethod anonymousMethodHeading block ) )
// au/com/integradev/delphi/antlr/Delphi.g:917:32: anonymousMethodHeading block
{
pushFollow(FOLLOW_anonymousMethodHeading_in_anonymousMethod16840);
anonymousMethodHeading586=anonymousMethodHeading();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_anonymousMethodHeading.add(anonymousMethodHeading586.getTree());
pushFollow(FOLLOW_block_in_anonymousMethod16842);
block587=block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_block.add(block587.getTree());
// AST REWRITE
// elements: block, anonymousMethodHeading
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 917:61: -> ^( TkAnonymousMethod anonymousMethodHeading block )
{
// au/com/integradev/delphi/antlr/Delphi.g:917:64: ^( TkAnonymousMethod anonymousMethodHeading block )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new AnonymousMethodNodeImpl(TkAnonymousMethod), root_1);
adaptor.addChild(root_1, stream_anonymousMethodHeading.nextTree());
adaptor.addChild(root_1, stream_block.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 153, anonymousMethod_StartIndex); }
}
return retval;
}
// $ANTLR end "anonymousMethod"
public static class anonymousMethodHeading_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "anonymousMethodHeading"
// au/com/integradev/delphi/antlr/Delphi.g:919:1: anonymousMethodHeading : ( PROCEDURE ( routineParameters )? ( ( ';' )? interfaceDirective )* -> ^( TkAnonymousMethodHeading PROCEDURE ( routineParameters )? ( ( ';' )? interfaceDirective )* ) | FUNCTION ( routineParameters )? routineReturnType ( ( ';' )? interfaceDirective )* -> ^( TkAnonymousMethodHeading FUNCTION ( routineParameters )? routineReturnType ( ( ';' )? interfaceDirective )* ) );
public final DelphiParser.anonymousMethodHeading_return anonymousMethodHeading() throws RecognitionException {
DelphiParser.anonymousMethodHeading_return retval = new DelphiParser.anonymousMethodHeading_return();
retval.start = input.LT(1);
int anonymousMethodHeading_StartIndex = input.index();
Object root_0 = null;
Token PROCEDURE588=null;
Token char_literal590=null;
Token FUNCTION592=null;
Token char_literal595=null;
ParserRuleReturnScope routineParameters589 =null;
ParserRuleReturnScope interfaceDirective591 =null;
ParserRuleReturnScope routineParameters593 =null;
ParserRuleReturnScope routineReturnType594 =null;
ParserRuleReturnScope interfaceDirective596 =null;
Object PROCEDURE588_tree=null;
Object char_literal590_tree=null;
Object FUNCTION592_tree=null;
Object char_literal595_tree=null;
RewriteRuleTokenStream stream_PROCEDURE=new RewriteRuleTokenStream(adaptor,"token PROCEDURE");
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleTokenStream stream_FUNCTION=new RewriteRuleTokenStream(adaptor,"token FUNCTION");
RewriteRuleSubtreeStream stream_routineReturnType=new RewriteRuleSubtreeStream(adaptor,"rule routineReturnType");
RewriteRuleSubtreeStream stream_interfaceDirective=new RewriteRuleSubtreeStream(adaptor,"rule interfaceDirective");
RewriteRuleSubtreeStream stream_routineParameters=new RewriteRuleSubtreeStream(adaptor,"rule routineParameters");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 154) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:919:30: ( PROCEDURE ( routineParameters )? ( ( ';' )? interfaceDirective )* -> ^( TkAnonymousMethodHeading PROCEDURE ( routineParameters )? ( ( ';' )? interfaceDirective )* ) | FUNCTION ( routineParameters )? routineReturnType ( ( ';' )? interfaceDirective )* -> ^( TkAnonymousMethodHeading FUNCTION ( routineParameters )? routineReturnType ( ( ';' )? interfaceDirective )* ) )
int alt203=2;
int LA203_0 = input.LA(1);
if ( (LA203_0==PROCEDURE) ) {
alt203=1;
}
else if ( (LA203_0==FUNCTION) ) {
alt203=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 203, 0, input);
throw nvae;
}
switch (alt203) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:919:32: PROCEDURE ( routineParameters )? ( ( ';' )? interfaceDirective )*
{
PROCEDURE588=(Token)match(input,PROCEDURE,FOLLOW_PROCEDURE_in_anonymousMethodHeading16898); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PROCEDURE.add(PROCEDURE588);
// au/com/integradev/delphi/antlr/Delphi.g:919:42: ( routineParameters )?
int alt197=2;
int LA197_0 = input.LA(1);
if ( (LA197_0==PAREN_LEFT) ) {
alt197=1;
}
switch (alt197) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:919:42: routineParameters
{
pushFollow(FOLLOW_routineParameters_in_anonymousMethodHeading16900);
routineParameters589=routineParameters();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineParameters.add(routineParameters589.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:919:61: ( ( ';' )? interfaceDirective )*
loop199:
while (true) {
int alt199=2;
int LA199_0 = input.LA(1);
if ( (LA199_0==ABSTRACT||LA199_0==ASSEMBLER||LA199_0==CDECL||LA199_0==DEPRECATED||LA199_0==DISPID||LA199_0==DYNAMIC||(LA199_0 >= EXPERIMENTAL && LA199_0 <= EXPORT)||LA199_0==EXTERNAL||LA199_0==FAR||LA199_0==FINAL||LA199_0==FORWARD||LA199_0==INLINE||(LA199_0 >= LIBRARY && LA199_0 <= LOCAL)||LA199_0==MESSAGE||LA199_0==NEAR||(LA199_0 >= OVERLOAD && LA199_0 <= OVERRIDE)||(LA199_0 >= PASCAL && LA199_0 <= PLATFORM)||(LA199_0 >= REGISTER && LA199_0 <= REINTRODUCE)||LA199_0==SAFECALL||LA199_0==SEMICOLON||(LA199_0 >= STATIC && LA199_0 <= STDCALL)||LA199_0==UNSAFE||(LA199_0 >= VARARGS && LA199_0 <= VIRTUAL)||LA199_0==WINAPI) ) {
alt199=1;
}
switch (alt199) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:919:62: ( ';' )? interfaceDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:919:62: ( ';' )?
int alt198=2;
int LA198_0 = input.LA(1);
if ( (LA198_0==SEMICOLON) ) {
alt198=1;
}
switch (alt198) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:919:63: ';'
{
char_literal590=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_anonymousMethodHeading16905); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal590);
}
break;
}
pushFollow(FOLLOW_interfaceDirective_in_anonymousMethodHeading16909);
interfaceDirective591=interfaceDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_interfaceDirective.add(interfaceDirective591.getTree());
}
break;
default :
break loop199;
}
}
// AST REWRITE
// elements: routineParameters, interfaceDirective, PROCEDURE, SEMICOLON
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 920:30: -> ^( TkAnonymousMethodHeading PROCEDURE ( routineParameters )? ( ( ';' )? interfaceDirective )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:920:33: ^( TkAnonymousMethodHeading PROCEDURE ( routineParameters )? ( ( ';' )? interfaceDirective )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new AnonymousMethodHeadingNodeImpl(TkAnonymousMethodHeading), root_1);
adaptor.addChild(root_1, stream_PROCEDURE.nextNode());
// au/com/integradev/delphi/antlr/Delphi.g:920:102: ( routineParameters )?
if ( stream_routineParameters.hasNext() ) {
adaptor.addChild(root_1, stream_routineParameters.nextTree());
}
stream_routineParameters.reset();
// au/com/integradev/delphi/antlr/Delphi.g:920:121: ( ( ';' )? interfaceDirective )*
while ( stream_interfaceDirective.hasNext() ) {
// au/com/integradev/delphi/antlr/Delphi.g:920:122: ( ';' )?
if ( stream_SEMICOLON.hasNext() ) {
adaptor.addChild(root_1, stream_SEMICOLON.nextNode());
}
stream_SEMICOLON.reset();
adaptor.addChild(root_1, stream_interfaceDirective.nextTree());
}
stream_interfaceDirective.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:921:32: FUNCTION ( routineParameters )? routineReturnType ( ( ';' )? interfaceDirective )*
{
FUNCTION592=(Token)match(input,FUNCTION,FOLLOW_FUNCTION_in_anonymousMethodHeading16997); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FUNCTION.add(FUNCTION592);
// au/com/integradev/delphi/antlr/Delphi.g:921:41: ( routineParameters )?
int alt200=2;
int LA200_0 = input.LA(1);
if ( (LA200_0==PAREN_LEFT) ) {
alt200=1;
}
switch (alt200) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:921:41: routineParameters
{
pushFollow(FOLLOW_routineParameters_in_anonymousMethodHeading16999);
routineParameters593=routineParameters();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineParameters.add(routineParameters593.getTree());
}
break;
}
pushFollow(FOLLOW_routineReturnType_in_anonymousMethodHeading17002);
routineReturnType594=routineReturnType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineReturnType.add(routineReturnType594.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:921:78: ( ( ';' )? interfaceDirective )*
loop202:
while (true) {
int alt202=2;
int LA202_0 = input.LA(1);
if ( (LA202_0==ABSTRACT||LA202_0==ASSEMBLER||LA202_0==CDECL||LA202_0==DEPRECATED||LA202_0==DISPID||LA202_0==DYNAMIC||(LA202_0 >= EXPERIMENTAL && LA202_0 <= EXPORT)||LA202_0==EXTERNAL||LA202_0==FAR||LA202_0==FINAL||LA202_0==FORWARD||LA202_0==INLINE||(LA202_0 >= LIBRARY && LA202_0 <= LOCAL)||LA202_0==MESSAGE||LA202_0==NEAR||(LA202_0 >= OVERLOAD && LA202_0 <= OVERRIDE)||(LA202_0 >= PASCAL && LA202_0 <= PLATFORM)||(LA202_0 >= REGISTER && LA202_0 <= REINTRODUCE)||LA202_0==SAFECALL||LA202_0==SEMICOLON||(LA202_0 >= STATIC && LA202_0 <= STDCALL)||LA202_0==UNSAFE||(LA202_0 >= VARARGS && LA202_0 <= VIRTUAL)||LA202_0==WINAPI) ) {
alt202=1;
}
switch (alt202) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:921:79: ( ';' )? interfaceDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:921:79: ( ';' )?
int alt201=2;
int LA201_0 = input.LA(1);
if ( (LA201_0==SEMICOLON) ) {
alt201=1;
}
switch (alt201) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:921:80: ';'
{
char_literal595=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_anonymousMethodHeading17006); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal595);
}
break;
}
pushFollow(FOLLOW_interfaceDirective_in_anonymousMethodHeading17010);
interfaceDirective596=interfaceDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_interfaceDirective.add(interfaceDirective596.getTree());
}
break;
default :
break loop202;
}
}
// AST REWRITE
// elements: routineReturnType, interfaceDirective, routineParameters, FUNCTION, SEMICOLON
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 922:30: -> ^( TkAnonymousMethodHeading FUNCTION ( routineParameters )? routineReturnType ( ( ';' )? interfaceDirective )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:922:33: ^( TkAnonymousMethodHeading FUNCTION ( routineParameters )? routineReturnType ( ( ';' )? interfaceDirective )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new AnonymousMethodHeadingNodeImpl(TkAnonymousMethodHeading), root_1);
adaptor.addChild(root_1, stream_FUNCTION.nextNode());
// au/com/integradev/delphi/antlr/Delphi.g:922:101: ( routineParameters )?
if ( stream_routineParameters.hasNext() ) {
adaptor.addChild(root_1, stream_routineParameters.nextTree());
}
stream_routineParameters.reset();
adaptor.addChild(root_1, stream_routineReturnType.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:922:138: ( ( ';' )? interfaceDirective )*
while ( stream_interfaceDirective.hasNext() ) {
// au/com/integradev/delphi/antlr/Delphi.g:922:139: ( ';' )?
if ( stream_SEMICOLON.hasNext() ) {
adaptor.addChild(root_1, stream_SEMICOLON.nextNode());
}
stream_SEMICOLON.reset();
adaptor.addChild(root_1, stream_interfaceDirective.nextTree());
}
stream_interfaceDirective.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 154, anonymousMethodHeading_StartIndex); }
}
return retval;
}
// $ANTLR end "anonymousMethodHeading"
public static class expressionOrRange_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "expressionOrRange"
// au/com/integradev/delphi/antlr/Delphi.g:924:1: expressionOrRange : expression ( '..' ^ expression )? ;
public final DelphiParser.expressionOrRange_return expressionOrRange() throws RecognitionException {
DelphiParser.expressionOrRange_return retval = new DelphiParser.expressionOrRange_return();
retval.start = input.LT(1);
int expressionOrRange_StartIndex = input.index();
Object root_0 = null;
Token string_literal598=null;
ParserRuleReturnScope expression597 =null;
ParserRuleReturnScope expression599 =null;
Object string_literal598_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 155) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:924:30: ( expression ( '..' ^ expression )? )
// au/com/integradev/delphi/antlr/Delphi.g:924:32: expression ( '..' ^ expression )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expression_in_expressionOrRange17115);
expression597=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression597.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:924:43: ( '..' ^ expression )?
int alt204=2;
int LA204_0 = input.LA(1);
if ( (LA204_0==DOT_DOT) ) {
alt204=1;
}
switch (alt204) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:924:44: '..' ^ expression
{
string_literal598=(Token)match(input,DOT_DOT,FOLLOW_DOT_DOT_in_expressionOrRange17118); if (state.failed) return retval;
if ( state.backtracking==0 ) {
string_literal598_tree = new RangeExpressionNodeImpl(string_literal598) ;
root_0 = (Object)adaptor.becomeRoot(string_literal598_tree, root_0);
}
pushFollow(FOLLOW_expression_in_expressionOrRange17124);
expression599=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression599.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 155, expressionOrRange_StartIndex); }
}
return retval;
}
// $ANTLR end "expressionOrRange"
public static class expressionList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "expressionList"
// au/com/integradev/delphi/antlr/Delphi.g:926:1: expressionList : ( expression ( ',' !)? )+ ;
public final DelphiParser.expressionList_return expressionList() throws RecognitionException {
DelphiParser.expressionList_return retval = new DelphiParser.expressionList_return();
retval.start = input.LT(1);
int expressionList_StartIndex = input.index();
Object root_0 = null;
Token char_literal601=null;
ParserRuleReturnScope expression600 =null;
Object char_literal601_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 156) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:926:30: ( ( expression ( ',' !)? )+ )
// au/com/integradev/delphi/antlr/Delphi.g:926:32: ( expression ( ',' !)? )+
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:926:32: ( expression ( ',' !)? )+
int cnt206=0;
loop206:
while (true) {
int alt206=2;
int LA206_0 = input.LA(1);
if ( ((LA206_0 >= ABSOLUTE && LA206_0 <= ALIGN)||(LA206_0 >= ASSEMBLER && LA206_0 <= ASSEMBLY)||(LA206_0 >= AT && LA206_0 <= AUTOMATED)||LA206_0==CDECL||LA206_0==CONTAINS||(LA206_0 >= DEFAULT && LA206_0 <= DEREFERENCE)||LA206_0==DISPID||LA206_0==DYNAMIC||(LA206_0 >= EXPERIMENTAL && LA206_0 <= EXPORT)||LA206_0==EXTERNAL||(LA206_0 >= FAR && LA206_0 <= FINAL)||(LA206_0 >= FORWARD && LA206_0 <= FUNCTION)||LA206_0==HELPER||LA206_0==IMPLEMENTS||(LA206_0 >= INDEX && LA206_0 <= INHERITED)||LA206_0==LABEL||LA206_0==LOCAL||(LA206_0 >= MESSAGE && LA206_0 <= MINUS)||(LA206_0 >= NAME && LA206_0 <= NOT)||(LA206_0 >= ON && LA206_0 <= OPERATOR)||(LA206_0 >= OUT && LA206_0 <= OVERRIDE)||LA206_0==PACKAGE||LA206_0==PAREN_BRACKET_LEFT||LA206_0==PAREN_LEFT||(LA206_0 >= PASCAL && LA206_0 <= PROCEDURE)||(LA206_0 >= PROTECTED && LA206_0 <= PUBLISHED)||(LA206_0 >= READ && LA206_0 <= READONLY)||(LA206_0 >= REFERENCE && LA206_0 <= REINTRODUCE)||(LA206_0 >= REQUIRES && LA206_0 <= RESIDENT)||(LA206_0 >= SAFECALL && LA206_0 <= SEALED)||LA206_0==SQUARE_BRACKET_LEFT||(LA206_0 >= STATIC && LA206_0 <= STRING)||LA206_0==TkBinaryNumber||LA206_0==TkCharacterEscapeCode||(LA206_0 >= TkHexNumber && LA206_0 <= TkIntNumber)||LA206_0==TkMultilineString||(LA206_0 >= TkQuotedString && LA206_0 <= TkRealNumber)||LA206_0==UNSAFE||(LA206_0 >= VARARGS && LA206_0 <= VIRTUAL)||LA206_0==WINAPI||(LA206_0 >= WRITE && LA206_0 <= WRITEONLY)) ) {
alt206=1;
}
switch (alt206) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:926:33: expression ( ',' !)?
{
pushFollow(FOLLOW_expression_in_expressionList17178);
expression600=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression600.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:926:44: ( ',' !)?
int alt205=2;
int LA205_0 = input.LA(1);
if ( (LA205_0==COMMA) ) {
alt205=1;
}
switch (alt205) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:926:45: ',' !
{
char_literal601=(Token)match(input,COMMA,FOLLOW_COMMA_in_expressionList17181); if (state.failed) return retval;
}
break;
}
}
break;
default :
if ( cnt206 >= 1 ) break loop206;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(206, input);
throw eee;
}
cnt206++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 156, expressionList_StartIndex); }
}
return retval;
}
// $ANTLR end "expressionList"
public static class expressionOrRangeList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "expressionOrRangeList"
// au/com/integradev/delphi/antlr/Delphi.g:928:1: expressionOrRangeList : ( expressionOrRange ( ',' !)? )+ ;
public final DelphiParser.expressionOrRangeList_return expressionOrRangeList() throws RecognitionException {
DelphiParser.expressionOrRangeList_return retval = new DelphiParser.expressionOrRangeList_return();
retval.start = input.LT(1);
int expressionOrRangeList_StartIndex = input.index();
Object root_0 = null;
Token char_literal603=null;
ParserRuleReturnScope expressionOrRange602 =null;
Object char_literal603_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 157) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:928:30: ( ( expressionOrRange ( ',' !)? )+ )
// au/com/integradev/delphi/antlr/Delphi.g:928:32: ( expressionOrRange ( ',' !)? )+
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:928:32: ( expressionOrRange ( ',' !)? )+
int cnt208=0;
loop208:
while (true) {
int alt208=2;
int LA208_0 = input.LA(1);
if ( ((LA208_0 >= ABSOLUTE && LA208_0 <= ALIGN)||(LA208_0 >= ASSEMBLER && LA208_0 <= ASSEMBLY)||(LA208_0 >= AT && LA208_0 <= AUTOMATED)||LA208_0==CDECL||LA208_0==CONTAINS||(LA208_0 >= DEFAULT && LA208_0 <= DEREFERENCE)||LA208_0==DISPID||LA208_0==DYNAMIC||(LA208_0 >= EXPERIMENTAL && LA208_0 <= EXPORT)||LA208_0==EXTERNAL||(LA208_0 >= FAR && LA208_0 <= FINAL)||(LA208_0 >= FORWARD && LA208_0 <= FUNCTION)||LA208_0==HELPER||LA208_0==IMPLEMENTS||(LA208_0 >= INDEX && LA208_0 <= INHERITED)||LA208_0==LABEL||LA208_0==LOCAL||(LA208_0 >= MESSAGE && LA208_0 <= MINUS)||(LA208_0 >= NAME && LA208_0 <= NOT)||(LA208_0 >= ON && LA208_0 <= OPERATOR)||(LA208_0 >= OUT && LA208_0 <= OVERRIDE)||LA208_0==PACKAGE||LA208_0==PAREN_BRACKET_LEFT||LA208_0==PAREN_LEFT||(LA208_0 >= PASCAL && LA208_0 <= PROCEDURE)||(LA208_0 >= PROTECTED && LA208_0 <= PUBLISHED)||(LA208_0 >= READ && LA208_0 <= READONLY)||(LA208_0 >= REFERENCE && LA208_0 <= REINTRODUCE)||(LA208_0 >= REQUIRES && LA208_0 <= RESIDENT)||(LA208_0 >= SAFECALL && LA208_0 <= SEALED)||LA208_0==SQUARE_BRACKET_LEFT||(LA208_0 >= STATIC && LA208_0 <= STRING)||LA208_0==TkBinaryNumber||LA208_0==TkCharacterEscapeCode||(LA208_0 >= TkHexNumber && LA208_0 <= TkIntNumber)||LA208_0==TkMultilineString||(LA208_0 >= TkQuotedString && LA208_0 <= TkRealNumber)||LA208_0==UNSAFE||(LA208_0 >= VARARGS && LA208_0 <= VIRTUAL)||LA208_0==WINAPI||(LA208_0 >= WRITE && LA208_0 <= WRITEONLY)) ) {
alt208=1;
}
switch (alt208) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:928:33: expressionOrRange ( ',' !)?
{
pushFollow(FOLLOW_expressionOrRange_in_expressionOrRangeList17231);
expressionOrRange602=expressionOrRange();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expressionOrRange602.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:928:51: ( ',' !)?
int alt207=2;
int LA207_0 = input.LA(1);
if ( (LA207_0==COMMA) ) {
alt207=1;
}
switch (alt207) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:928:52: ',' !
{
char_literal603=(Token)match(input,COMMA,FOLLOW_COMMA_in_expressionOrRangeList17234); if (state.failed) return retval;
}
break;
}
}
break;
default :
if ( cnt208 >= 1 ) break loop208;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(208, input);
throw eee;
}
cnt208++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 157, expressionOrRangeList_StartIndex); }
}
return retval;
}
// $ANTLR end "expressionOrRangeList"
public static class textLiteral_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "textLiteral"
// au/com/integradev/delphi/antlr/Delphi.g:930:1: textLiteral : ( singleLineTextLiteral -> ^( TkTextLiteral singleLineTextLiteral ) | multilineTextLiteral -> ^( TkTextLiteral multilineTextLiteral ) );
public final DelphiParser.textLiteral_return textLiteral() throws RecognitionException {
DelphiParser.textLiteral_return retval = new DelphiParser.textLiteral_return();
retval.start = input.LT(1);
int textLiteral_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope singleLineTextLiteral604 =null;
ParserRuleReturnScope multilineTextLiteral605 =null;
RewriteRuleSubtreeStream stream_multilineTextLiteral=new RewriteRuleSubtreeStream(adaptor,"rule multilineTextLiteral");
RewriteRuleSubtreeStream stream_singleLineTextLiteral=new RewriteRuleSubtreeStream(adaptor,"rule singleLineTextLiteral");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 158) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:930:30: ( singleLineTextLiteral -> ^( TkTextLiteral singleLineTextLiteral ) | multilineTextLiteral -> ^( TkTextLiteral multilineTextLiteral ) )
int alt209=2;
int LA209_0 = input.LA(1);
if ( (LA209_0==DEREFERENCE||LA209_0==TkCharacterEscapeCode||LA209_0==TkQuotedString) ) {
alt209=1;
}
else if ( (LA209_0==TkMultilineString) ) {
alt209=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 209, 0, input);
throw nvae;
}
switch (alt209) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:930:32: singleLineTextLiteral
{
pushFollow(FOLLOW_singleLineTextLiteral_in_textLiteral17293);
singleLineTextLiteral604=singleLineTextLiteral();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_singleLineTextLiteral.add(singleLineTextLiteral604.getTree());
// AST REWRITE
// elements: singleLineTextLiteral
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 930:54: -> ^( TkTextLiteral singleLineTextLiteral )
{
// au/com/integradev/delphi/antlr/Delphi.g:930:57: ^( TkTextLiteral singleLineTextLiteral )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new TextLiteralNodeImpl(TkTextLiteral), root_1);
adaptor.addChild(root_1, stream_singleLineTextLiteral.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:931:32: multilineTextLiteral
{
pushFollow(FOLLOW_multilineTextLiteral_in_textLiteral17337);
multilineTextLiteral605=multilineTextLiteral();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multilineTextLiteral.add(multilineTextLiteral605.getTree());
// AST REWRITE
// elements: multilineTextLiteral
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 931:53: -> ^( TkTextLiteral multilineTextLiteral )
{
// au/com/integradev/delphi/antlr/Delphi.g:931:56: ^( TkTextLiteral multilineTextLiteral )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new TextLiteralNodeImpl(TkTextLiteral), root_1);
adaptor.addChild(root_1, stream_multilineTextLiteral.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 158, textLiteral_StartIndex); }
}
return retval;
}
// $ANTLR end "textLiteral"
public static class singleLineTextLiteral_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "singleLineTextLiteral"
// au/com/integradev/delphi/antlr/Delphi.g:933:1: singleLineTextLiteral : ( TkQuotedString ( ( escapedCharacter )+ TkQuotedString )* ( escapedCharacter )* | ( escapedCharacter )+ ( TkQuotedString ( escapedCharacter )+ )* ( TkQuotedString )? );
public final DelphiParser.singleLineTextLiteral_return singleLineTextLiteral() throws RecognitionException {
DelphiParser.singleLineTextLiteral_return retval = new DelphiParser.singleLineTextLiteral_return();
retval.start = input.LT(1);
int singleLineTextLiteral_StartIndex = input.index();
Object root_0 = null;
Token TkQuotedString606=null;
Token TkQuotedString608=null;
Token TkQuotedString611=null;
Token TkQuotedString613=null;
ParserRuleReturnScope escapedCharacter607 =null;
ParserRuleReturnScope escapedCharacter609 =null;
ParserRuleReturnScope escapedCharacter610 =null;
ParserRuleReturnScope escapedCharacter612 =null;
Object TkQuotedString606_tree=null;
Object TkQuotedString608_tree=null;
Object TkQuotedString611_tree=null;
Object TkQuotedString613_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 159) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:933:30: ( TkQuotedString ( ( escapedCharacter )+ TkQuotedString )* ( escapedCharacter )* | ( escapedCharacter )+ ( TkQuotedString ( escapedCharacter )+ )* ( TkQuotedString )? )
int alt217=2;
int LA217_0 = input.LA(1);
if ( (LA217_0==TkQuotedString) ) {
alt217=1;
}
else if ( (LA217_0==DEREFERENCE||LA217_0==TkCharacterEscapeCode) ) {
alt217=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 217, 0, input);
throw nvae;
}
switch (alt217) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:933:32: TkQuotedString ( ( escapedCharacter )+ TkQuotedString )* ( escapedCharacter )*
{
root_0 = (Object)adaptor.nil();
TkQuotedString606=(Token)match(input,TkQuotedString,FOLLOW_TkQuotedString_in_singleLineTextLiteral17392); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TkQuotedString606_tree = (Object)adaptor.create(TkQuotedString606);
adaptor.addChild(root_0, TkQuotedString606_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:933:47: ( ( escapedCharacter )+ TkQuotedString )*
loop211:
while (true) {
int alt211=2;
alt211 = dfa211.predict(input);
switch (alt211) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:933:48: ( escapedCharacter )+ TkQuotedString
{
// au/com/integradev/delphi/antlr/Delphi.g:933:48: ( escapedCharacter )+
int cnt210=0;
loop210:
while (true) {
int alt210=2;
int LA210_0 = input.LA(1);
if ( (LA210_0==DEREFERENCE||LA210_0==TkCharacterEscapeCode) ) {
alt210=1;
}
switch (alt210) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:933:48: escapedCharacter
{
pushFollow(FOLLOW_escapedCharacter_in_singleLineTextLiteral17395);
escapedCharacter607=escapedCharacter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, escapedCharacter607.getTree());
}
break;
default :
if ( cnt210 >= 1 ) break loop210;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(210, input);
throw eee;
}
cnt210++;
}
TkQuotedString608=(Token)match(input,TkQuotedString,FOLLOW_TkQuotedString_in_singleLineTextLiteral17398); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TkQuotedString608_tree = (Object)adaptor.create(TkQuotedString608);
adaptor.addChild(root_0, TkQuotedString608_tree);
}
}
break;
default :
break loop211;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:933:83: ( escapedCharacter )*
loop212:
while (true) {
int alt212=2;
int LA212_0 = input.LA(1);
if ( (LA212_0==DEREFERENCE) ) {
switch ( input.LA(2) ) {
case TkIntNumber:
{
int LA212_4 = input.LA(3);
if ( (synpred294_Delphi()) ) {
alt212=1;
}
}
break;
case TkIdentifier:
{
int LA212_5 = input.LA(3);
if ( (synpred294_Delphi()) ) {
alt212=1;
}
}
break;
case TkAnyChar:
{
int LA212_6 = input.LA(3);
if ( (synpred294_Delphi()) ) {
alt212=1;
}
}
break;
}
}
else if ( (LA212_0==TkCharacterEscapeCode) ) {
int LA212_3 = input.LA(2);
if ( (synpred294_Delphi()) ) {
alt212=1;
}
}
switch (alt212) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:933:83: escapedCharacter
{
pushFollow(FOLLOW_escapedCharacter_in_singleLineTextLiteral17402);
escapedCharacter609=escapedCharacter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, escapedCharacter609.getTree());
}
break;
default :
break loop212;
}
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:934:32: ( escapedCharacter )+ ( TkQuotedString ( escapedCharacter )+ )* ( TkQuotedString )?
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:934:32: ( escapedCharacter )+
int cnt213=0;
loop213:
while (true) {
int alt213=2;
int LA213_0 = input.LA(1);
if ( (LA213_0==DEREFERENCE) ) {
int LA213_2 = input.LA(2);
if ( (synpred296_Delphi()) ) {
alt213=1;
}
}
else if ( (LA213_0==TkCharacterEscapeCode) ) {
int LA213_3 = input.LA(2);
if ( (synpred296_Delphi()) ) {
alt213=1;
}
}
switch (alt213) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:934:32: escapedCharacter
{
pushFollow(FOLLOW_escapedCharacter_in_singleLineTextLiteral17436);
escapedCharacter610=escapedCharacter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, escapedCharacter610.getTree());
}
break;
default :
if ( cnt213 >= 1 ) break loop213;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(213, input);
throw eee;
}
cnt213++;
}
// au/com/integradev/delphi/antlr/Delphi.g:934:50: ( TkQuotedString ( escapedCharacter )+ )*
loop215:
while (true) {
int alt215=2;
int LA215_0 = input.LA(1);
if ( (LA215_0==TkQuotedString) ) {
int LA215_1 = input.LA(2);
if ( (LA215_1==DEREFERENCE) ) {
switch ( input.LA(3) ) {
case TkIntNumber:
{
int LA215_5 = input.LA(4);
if ( (synpred298_Delphi()) ) {
alt215=1;
}
}
break;
case TkIdentifier:
{
int LA215_6 = input.LA(4);
if ( (synpred298_Delphi()) ) {
alt215=1;
}
}
break;
case TkAnyChar:
{
int LA215_7 = input.LA(4);
if ( (synpred298_Delphi()) ) {
alt215=1;
}
}
break;
}
}
else if ( (LA215_1==TkCharacterEscapeCode) ) {
int LA215_4 = input.LA(3);
if ( (synpred298_Delphi()) ) {
alt215=1;
}
}
}
switch (alt215) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:934:51: TkQuotedString ( escapedCharacter )+
{
TkQuotedString611=(Token)match(input,TkQuotedString,FOLLOW_TkQuotedString_in_singleLineTextLiteral17440); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TkQuotedString611_tree = (Object)adaptor.create(TkQuotedString611);
adaptor.addChild(root_0, TkQuotedString611_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:934:66: ( escapedCharacter )+
int cnt214=0;
loop214:
while (true) {
int alt214=2;
int LA214_0 = input.LA(1);
if ( (LA214_0==DEREFERENCE) ) {
switch ( input.LA(2) ) {
case TkIntNumber:
{
int LA214_4 = input.LA(3);
if ( (synpred297_Delphi()) ) {
alt214=1;
}
}
break;
case TkIdentifier:
{
int LA214_5 = input.LA(3);
if ( (synpred297_Delphi()) ) {
alt214=1;
}
}
break;
case TkAnyChar:
{
int LA214_6 = input.LA(3);
if ( (synpred297_Delphi()) ) {
alt214=1;
}
}
break;
}
}
else if ( (LA214_0==TkCharacterEscapeCode) ) {
int LA214_3 = input.LA(2);
if ( (synpred297_Delphi()) ) {
alt214=1;
}
}
switch (alt214) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:934:66: escapedCharacter
{
pushFollow(FOLLOW_escapedCharacter_in_singleLineTextLiteral17442);
escapedCharacter612=escapedCharacter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, escapedCharacter612.getTree());
}
break;
default :
if ( cnt214 >= 1 ) break loop214;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(214, input);
throw eee;
}
cnt214++;
}
}
break;
default :
break loop215;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:934:86: ( TkQuotedString )?
int alt216=2;
int LA216_0 = input.LA(1);
if ( (LA216_0==TkQuotedString) ) {
int LA216_1 = input.LA(2);
if ( (synpred299_Delphi()) ) {
alt216=1;
}
}
switch (alt216) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:934:86: TkQuotedString
{
TkQuotedString613=(Token)match(input,TkQuotedString,FOLLOW_TkQuotedString_in_singleLineTextLiteral17447); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TkQuotedString613_tree = (Object)adaptor.create(TkQuotedString613);
adaptor.addChild(root_0, TkQuotedString613_tree);
}
}
break;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 159, singleLineTextLiteral_StartIndex); }
}
return retval;
}
// $ANTLR end "singleLineTextLiteral"
public static class multilineTextLiteral_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "multilineTextLiteral"
// au/com/integradev/delphi/antlr/Delphi.g:936:1: multilineTextLiteral : TkMultilineString ;
public final DelphiParser.multilineTextLiteral_return multilineTextLiteral() throws RecognitionException {
DelphiParser.multilineTextLiteral_return retval = new DelphiParser.multilineTextLiteral_return();
retval.start = input.LT(1);
int multilineTextLiteral_StartIndex = input.index();
Object root_0 = null;
Token TkMultilineString614=null;
Object TkMultilineString614_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 160) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:936:30: ( TkMultilineString )
// au/com/integradev/delphi/antlr/Delphi.g:936:32: TkMultilineString
{
root_0 = (Object)adaptor.nil();
TkMultilineString614=(Token)match(input,TkMultilineString,FOLLOW_TkMultilineString_in_multilineTextLiteral17493); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TkMultilineString614_tree = (Object)adaptor.create(TkMultilineString614);
adaptor.addChild(root_0, TkMultilineString614_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 160, multilineTextLiteral_StartIndex); }
}
return retval;
}
// $ANTLR end "multilineTextLiteral"
public static class escapedCharacter_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "escapedCharacter"
// au/com/integradev/delphi/antlr/Delphi.g:938:1: escapedCharacter : ( TkCharacterEscapeCode | '^' ( TkIdentifier | TkIntNumber | TkAnyChar ) -> ^() );
public final DelphiParser.escapedCharacter_return escapedCharacter() throws RecognitionException {
DelphiParser.escapedCharacter_return retval = new DelphiParser.escapedCharacter_return();
retval.start = input.LT(1);
int escapedCharacter_StartIndex = input.index();
Object root_0 = null;
Token TkCharacterEscapeCode615=null;
Token char_literal616=null;
Token TkIdentifier617=null;
Token TkIntNumber618=null;
Token TkAnyChar619=null;
Object TkCharacterEscapeCode615_tree=null;
Object char_literal616_tree=null;
Object TkIdentifier617_tree=null;
Object TkIntNumber618_tree=null;
Object TkAnyChar619_tree=null;
RewriteRuleTokenStream stream_TkIntNumber=new RewriteRuleTokenStream(adaptor,"token TkIntNumber");
RewriteRuleTokenStream stream_DEREFERENCE=new RewriteRuleTokenStream(adaptor,"token DEREFERENCE");
RewriteRuleTokenStream stream_TkIdentifier=new RewriteRuleTokenStream(adaptor,"token TkIdentifier");
RewriteRuleTokenStream stream_TkAnyChar=new RewriteRuleTokenStream(adaptor,"token TkAnyChar");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 161) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:938:30: ( TkCharacterEscapeCode | '^' ( TkIdentifier | TkIntNumber | TkAnyChar ) -> ^() )
int alt219=2;
int LA219_0 = input.LA(1);
if ( (LA219_0==TkCharacterEscapeCode) ) {
alt219=1;
}
else if ( (LA219_0==DEREFERENCE) ) {
alt219=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 219, 0, input);
throw nvae;
}
switch (alt219) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:938:32: TkCharacterEscapeCode
{
root_0 = (Object)adaptor.nil();
TkCharacterEscapeCode615=(Token)match(input,TkCharacterEscapeCode,FOLLOW_TkCharacterEscapeCode_in_escapedCharacter17542); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TkCharacterEscapeCode615_tree = (Object)adaptor.create(TkCharacterEscapeCode615);
adaptor.addChild(root_0, TkCharacterEscapeCode615_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:939:32: '^' ( TkIdentifier | TkIntNumber | TkAnyChar )
{
char_literal616=(Token)match(input,DEREFERENCE,FOLLOW_DEREFERENCE_in_escapedCharacter17575); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DEREFERENCE.add(char_literal616);
// au/com/integradev/delphi/antlr/Delphi.g:939:36: ( TkIdentifier | TkIntNumber | TkAnyChar )
int alt218=3;
switch ( input.LA(1) ) {
case TkIdentifier:
{
alt218=1;
}
break;
case TkIntNumber:
{
alt218=2;
}
break;
case TkAnyChar:
{
alt218=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 218, 0, input);
throw nvae;
}
switch (alt218) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:939:37: TkIdentifier
{
TkIdentifier617=(Token)match(input,TkIdentifier,FOLLOW_TkIdentifier_in_escapedCharacter17578); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TkIdentifier.add(TkIdentifier617);
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:939:52: TkIntNumber
{
TkIntNumber618=(Token)match(input,TkIntNumber,FOLLOW_TkIntNumber_in_escapedCharacter17582); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TkIntNumber.add(TkIntNumber618);
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:939:66: TkAnyChar
{
TkAnyChar619=(Token)match(input,TkAnyChar,FOLLOW_TkAnyChar_in_escapedCharacter17586); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TkAnyChar.add(TkAnyChar619);
}
break;
}
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 939:77: -> ^()
{
// au/com/integradev/delphi/antlr/Delphi.g:939:80: ^()
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(changeTokenType(TkEscapedCharacter), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 161, escapedCharacter_StartIndex); }
}
return retval;
}
// $ANTLR end "escapedCharacter"
public static class nilLiteral_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "nilLiteral"
// au/com/integradev/delphi/antlr/Delphi.g:941:1: nilLiteral : NIL ;
public final DelphiParser.nilLiteral_return nilLiteral() throws RecognitionException {
DelphiParser.nilLiteral_return retval = new DelphiParser.nilLiteral_return();
retval.start = input.LT(1);
int nilLiteral_StartIndex = input.index();
Object root_0 = null;
Token NIL620=null;
Object NIL620_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 162) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:941:30: ( NIL )
// au/com/integradev/delphi/antlr/Delphi.g:941:32: NIL
{
root_0 = (Object)adaptor.nil();
NIL620=(Token)match(input,NIL,FOLLOW_NIL_in_nilLiteral17648); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NIL620_tree = new NilLiteralNodeImpl(NIL620) ;
adaptor.addChild(root_0, NIL620_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 162, nilLiteral_StartIndex); }
}
return retval;
}
// $ANTLR end "nilLiteral"
public static class arrayConstructor_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arrayConstructor"
// au/com/integradev/delphi/antlr/Delphi.g:943:1: arrayConstructor : lbrack ( expressionOrRangeList )? rbrack -> ^( TkArrayConstructor lbrack ( expressionOrRangeList )? rbrack ) ;
public final DelphiParser.arrayConstructor_return arrayConstructor() throws RecognitionException {
DelphiParser.arrayConstructor_return retval = new DelphiParser.arrayConstructor_return();
retval.start = input.LT(1);
int arrayConstructor_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope lbrack621 =null;
ParserRuleReturnScope expressionOrRangeList622 =null;
ParserRuleReturnScope rbrack623 =null;
RewriteRuleSubtreeStream stream_rbrack=new RewriteRuleSubtreeStream(adaptor,"rule rbrack");
RewriteRuleSubtreeStream stream_lbrack=new RewriteRuleSubtreeStream(adaptor,"rule lbrack");
RewriteRuleSubtreeStream stream_expressionOrRangeList=new RewriteRuleSubtreeStream(adaptor,"rule expressionOrRangeList");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 163) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:943:30: ( lbrack ( expressionOrRangeList )? rbrack -> ^( TkArrayConstructor lbrack ( expressionOrRangeList )? rbrack ) )
// au/com/integradev/delphi/antlr/Delphi.g:943:32: lbrack ( expressionOrRangeList )? rbrack
{
pushFollow(FOLLOW_lbrack_in_arrayConstructor17700);
lbrack621=lbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lbrack.add(lbrack621.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:943:39: ( expressionOrRangeList )?
int alt220=2;
int LA220_0 = input.LA(1);
if ( ((LA220_0 >= ABSOLUTE && LA220_0 <= ALIGN)||(LA220_0 >= ASSEMBLER && LA220_0 <= ASSEMBLY)||(LA220_0 >= AT && LA220_0 <= AUTOMATED)||LA220_0==CDECL||LA220_0==CONTAINS||(LA220_0 >= DEFAULT && LA220_0 <= DEREFERENCE)||LA220_0==DISPID||LA220_0==DYNAMIC||(LA220_0 >= EXPERIMENTAL && LA220_0 <= EXPORT)||LA220_0==EXTERNAL||(LA220_0 >= FAR && LA220_0 <= FINAL)||(LA220_0 >= FORWARD && LA220_0 <= FUNCTION)||LA220_0==HELPER||LA220_0==IMPLEMENTS||(LA220_0 >= INDEX && LA220_0 <= INHERITED)||LA220_0==LABEL||LA220_0==LOCAL||(LA220_0 >= MESSAGE && LA220_0 <= MINUS)||(LA220_0 >= NAME && LA220_0 <= NOT)||(LA220_0 >= ON && LA220_0 <= OPERATOR)||(LA220_0 >= OUT && LA220_0 <= OVERRIDE)||LA220_0==PACKAGE||LA220_0==PAREN_BRACKET_LEFT||LA220_0==PAREN_LEFT||(LA220_0 >= PASCAL && LA220_0 <= PROCEDURE)||(LA220_0 >= PROTECTED && LA220_0 <= PUBLISHED)||(LA220_0 >= READ && LA220_0 <= READONLY)||(LA220_0 >= REFERENCE && LA220_0 <= REINTRODUCE)||(LA220_0 >= REQUIRES && LA220_0 <= RESIDENT)||(LA220_0 >= SAFECALL && LA220_0 <= SEALED)||LA220_0==SQUARE_BRACKET_LEFT||(LA220_0 >= STATIC && LA220_0 <= STRING)||LA220_0==TkBinaryNumber||LA220_0==TkCharacterEscapeCode||(LA220_0 >= TkHexNumber && LA220_0 <= TkIntNumber)||LA220_0==TkMultilineString||(LA220_0 >= TkQuotedString && LA220_0 <= TkRealNumber)||LA220_0==UNSAFE||(LA220_0 >= VARARGS && LA220_0 <= VIRTUAL)||LA220_0==WINAPI||(LA220_0 >= WRITE && LA220_0 <= WRITEONLY)) ) {
alt220=1;
}
switch (alt220) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:943:39: expressionOrRangeList
{
pushFollow(FOLLOW_expressionOrRangeList_in_arrayConstructor17702);
expressionOrRangeList622=expressionOrRangeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expressionOrRangeList.add(expressionOrRangeList622.getTree());
}
break;
}
pushFollow(FOLLOW_rbrack_in_arrayConstructor17705);
rbrack623=rbrack();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rbrack.add(rbrack623.getTree());
// AST REWRITE
// elements: lbrack, expressionOrRangeList, rbrack
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 944:30: -> ^( TkArrayConstructor lbrack ( expressionOrRangeList )? rbrack )
{
// au/com/integradev/delphi/antlr/Delphi.g:944:33: ^( TkArrayConstructor lbrack ( expressionOrRangeList )? rbrack )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ArrayConstructorNodeImpl(TkArrayConstructor), root_1);
adaptor.addChild(root_1, stream_lbrack.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:944:87: ( expressionOrRangeList )?
if ( stream_expressionOrRangeList.hasNext() ) {
adaptor.addChild(root_1, stream_expressionOrRangeList.nextTree());
}
stream_expressionOrRangeList.reset();
adaptor.addChild(root_1, stream_rbrack.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 163, arrayConstructor_StartIndex); }
}
return retval;
}
// $ANTLR end "arrayConstructor"
public static class addOperator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "addOperator"
// au/com/integradev/delphi/antlr/Delphi.g:946:1: addOperator : ( '+' | '-' | OR | XOR );
public final DelphiParser.addOperator_return addOperator() throws RecognitionException {
DelphiParser.addOperator_return retval = new DelphiParser.addOperator_return();
retval.start = input.LT(1);
int addOperator_StartIndex = input.index();
Object root_0 = null;
Token char_literal624=null;
Token char_literal625=null;
Token OR626=null;
Token XOR627=null;
Object char_literal624_tree=null;
Object char_literal625_tree=null;
Object OR626_tree=null;
Object XOR627_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 164) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:946:30: ( '+' | '-' | OR | XOR )
int alt221=4;
switch ( input.LA(1) ) {
case PLUS:
{
alt221=1;
}
break;
case MINUS:
{
alt221=2;
}
break;
case OR:
{
alt221=3;
}
break;
case XOR:
{
alt221=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 221, 0, input);
throw nvae;
}
switch (alt221) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:946:32: '+'
{
root_0 = (Object)adaptor.nil();
char_literal624=(Token)match(input,PLUS,FOLLOW_PLUS_in_addOperator17804); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal624_tree = new BinaryExpressionNodeImpl(char_literal624) ;
adaptor.addChild(root_0, char_literal624_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:947:32: '-'
{
root_0 = (Object)adaptor.nil();
char_literal625=(Token)match(input,MINUS,FOLLOW_MINUS_in_addOperator17840); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal625_tree = new BinaryExpressionNodeImpl(char_literal625) ;
adaptor.addChild(root_0, char_literal625_tree);
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:948:32: OR
{
root_0 = (Object)adaptor.nil();
OR626=(Token)match(input,OR,FOLLOW_OR_in_addOperator17876); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OR626_tree = new BinaryExpressionNodeImpl(OR626) ;
adaptor.addChild(root_0, OR626_tree);
}
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:949:32: XOR
{
root_0 = (Object)adaptor.nil();
XOR627=(Token)match(input,XOR,FOLLOW_XOR_in_addOperator17912); if (state.failed) return retval;
if ( state.backtracking==0 ) {
XOR627_tree = new BinaryExpressionNodeImpl(XOR627) ;
adaptor.addChild(root_0, XOR627_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 164, addOperator_StartIndex); }
}
return retval;
}
// $ANTLR end "addOperator"
public static class multOperator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "multOperator"
// au/com/integradev/delphi/antlr/Delphi.g:951:1: multOperator : ( '*' | '/' | DIV | MOD | AND | SHL | SHR | AS );
public final DelphiParser.multOperator_return multOperator() throws RecognitionException {
DelphiParser.multOperator_return retval = new DelphiParser.multOperator_return();
retval.start = input.LT(1);
int multOperator_StartIndex = input.index();
Object root_0 = null;
Token char_literal628=null;
Token char_literal629=null;
Token DIV630=null;
Token MOD631=null;
Token AND632=null;
Token SHL633=null;
Token SHR634=null;
Token AS635=null;
Object char_literal628_tree=null;
Object char_literal629_tree=null;
Object DIV630_tree=null;
Object MOD631_tree=null;
Object AND632_tree=null;
Object SHL633_tree=null;
Object SHR634_tree=null;
Object AS635_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 165) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:951:30: ( '*' | '/' | DIV | MOD | AND | SHL | SHR | AS )
int alt222=8;
switch ( input.LA(1) ) {
case MULTIPLY:
{
alt222=1;
}
break;
case DIVIDE:
{
alt222=2;
}
break;
case DIV:
{
alt222=3;
}
break;
case MOD:
{
alt222=4;
}
break;
case AND:
{
alt222=5;
}
break;
case SHL:
{
alt222=6;
}
break;
case SHR:
{
alt222=7;
}
break;
case AS:
{
alt222=8;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 222, 0, input);
throw nvae;
}
switch (alt222) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:951:32: '*'
{
root_0 = (Object)adaptor.nil();
char_literal628=(Token)match(input,MULTIPLY,FOLLOW_MULTIPLY_in_multOperator17968); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal628_tree = new BinaryExpressionNodeImpl(char_literal628) ;
adaptor.addChild(root_0, char_literal628_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:952:32: '/'
{
root_0 = (Object)adaptor.nil();
char_literal629=(Token)match(input,DIVIDE,FOLLOW_DIVIDE_in_multOperator18004); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal629_tree = new BinaryExpressionNodeImpl(char_literal629) ;
adaptor.addChild(root_0, char_literal629_tree);
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:953:32: DIV
{
root_0 = (Object)adaptor.nil();
DIV630=(Token)match(input,DIV,FOLLOW_DIV_in_multOperator18040); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DIV630_tree = new BinaryExpressionNodeImpl(DIV630) ;
adaptor.addChild(root_0, DIV630_tree);
}
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:954:32: MOD
{
root_0 = (Object)adaptor.nil();
MOD631=(Token)match(input,MOD,FOLLOW_MOD_in_multOperator18076); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MOD631_tree = new BinaryExpressionNodeImpl(MOD631) ;
adaptor.addChild(root_0, MOD631_tree);
}
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:955:32: AND
{
root_0 = (Object)adaptor.nil();
AND632=(Token)match(input,AND,FOLLOW_AND_in_multOperator18112); if (state.failed) return retval;
if ( state.backtracking==0 ) {
AND632_tree = new BinaryExpressionNodeImpl(AND632) ;
adaptor.addChild(root_0, AND632_tree);
}
}
break;
case 6 :
// au/com/integradev/delphi/antlr/Delphi.g:956:32: SHL
{
root_0 = (Object)adaptor.nil();
SHL633=(Token)match(input,SHL,FOLLOW_SHL_in_multOperator18148); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SHL633_tree = new BinaryExpressionNodeImpl(SHL633) ;
adaptor.addChild(root_0, SHL633_tree);
}
}
break;
case 7 :
// au/com/integradev/delphi/antlr/Delphi.g:957:32: SHR
{
root_0 = (Object)adaptor.nil();
SHR634=(Token)match(input,SHR,FOLLOW_SHR_in_multOperator18184); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SHR634_tree = new BinaryExpressionNodeImpl(SHR634) ;
adaptor.addChild(root_0, SHR634_tree);
}
}
break;
case 8 :
// au/com/integradev/delphi/antlr/Delphi.g:958:32: AS
{
root_0 = (Object)adaptor.nil();
AS635=(Token)match(input,AS,FOLLOW_AS_in_multOperator18220); if (state.failed) return retval;
if ( state.backtracking==0 ) {
AS635_tree = new BinaryExpressionNodeImpl(AS635) ;
adaptor.addChild(root_0, AS635_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 165, multOperator_StartIndex); }
}
return retval;
}
// $ANTLR end "multOperator"
public static class unaryOperator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unaryOperator"
// au/com/integradev/delphi/antlr/Delphi.g:960:1: unaryOperator : ( NOT | '+' | '-' | '@' );
public final DelphiParser.unaryOperator_return unaryOperator() throws RecognitionException {
DelphiParser.unaryOperator_return retval = new DelphiParser.unaryOperator_return();
retval.start = input.LT(1);
int unaryOperator_StartIndex = input.index();
Object root_0 = null;
Token NOT636=null;
Token char_literal637=null;
Token char_literal638=null;
Token char_literal639=null;
Object NOT636_tree=null;
Object char_literal637_tree=null;
Object char_literal638_tree=null;
Object char_literal639_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 166) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:960:30: ( NOT | '+' | '-' | '@' )
int alt223=4;
switch ( input.LA(1) ) {
case NOT:
{
alt223=1;
}
break;
case PLUS:
{
alt223=2;
}
break;
case MINUS:
{
alt223=3;
}
break;
case ADDRESS:
{
alt223=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 223, 0, input);
throw nvae;
}
switch (alt223) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:960:32: NOT
{
root_0 = (Object)adaptor.nil();
NOT636=(Token)match(input,NOT,FOLLOW_NOT_in_unaryOperator18275); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NOT636_tree = new UnaryExpressionNodeImpl(NOT636) ;
adaptor.addChild(root_0, NOT636_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:961:32: '+'
{
root_0 = (Object)adaptor.nil();
char_literal637=(Token)match(input,PLUS,FOLLOW_PLUS_in_unaryOperator18311); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal637_tree = new UnaryExpressionNodeImpl(char_literal637) ;
adaptor.addChild(root_0, char_literal637_tree);
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:962:32: '-'
{
root_0 = (Object)adaptor.nil();
char_literal638=(Token)match(input,MINUS,FOLLOW_MINUS_in_unaryOperator18347); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal638_tree = new UnaryExpressionNodeImpl(char_literal638) ;
adaptor.addChild(root_0, char_literal638_tree);
}
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:963:32: '@'
{
root_0 = (Object)adaptor.nil();
char_literal639=(Token)match(input,ADDRESS,FOLLOW_ADDRESS_in_unaryOperator18383); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal639_tree = new UnaryExpressionNodeImpl(char_literal639) ;
adaptor.addChild(root_0, char_literal639_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 166, unaryOperator_StartIndex); }
}
return retval;
}
// $ANTLR end "unaryOperator"
public static class relationalOperator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "relationalOperator"
// au/com/integradev/delphi/antlr/Delphi.g:965:1: relationalOperator : ( '=' | '>' | '<' | '<=' | '>=' | '<>' | IN | IS );
public final DelphiParser.relationalOperator_return relationalOperator() throws RecognitionException {
DelphiParser.relationalOperator_return retval = new DelphiParser.relationalOperator_return();
retval.start = input.LT(1);
int relationalOperator_StartIndex = input.index();
Object root_0 = null;
Token char_literal640=null;
Token char_literal641=null;
Token char_literal642=null;
Token string_literal643=null;
Token string_literal644=null;
Token string_literal645=null;
Token IN646=null;
Token IS647=null;
Object char_literal640_tree=null;
Object char_literal641_tree=null;
Object char_literal642_tree=null;
Object string_literal643_tree=null;
Object string_literal644_tree=null;
Object string_literal645_tree=null;
Object IN646_tree=null;
Object IS647_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 167) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:965:30: ( '=' | '>' | '<' | '<=' | '>=' | '<>' | IN | IS )
int alt224=8;
switch ( input.LA(1) ) {
case EQUAL:
{
alt224=1;
}
break;
case GREATER_THAN:
{
alt224=2;
}
break;
case LESS_THAN:
{
alt224=3;
}
break;
case LESS_THAN_EQUAL:
{
alt224=4;
}
break;
case GREATER_THAN_EQUAL:
{
alt224=5;
}
break;
case NOT_EQUAL:
{
alt224=6;
}
break;
case IN:
{
alt224=7;
}
break;
case IS:
{
alt224=8;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 224, 0, input);
throw nvae;
}
switch (alt224) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:965:32: '='
{
root_0 = (Object)adaptor.nil();
char_literal640=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_relationalOperator18433); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal640_tree = new BinaryExpressionNodeImpl(char_literal640) ;
adaptor.addChild(root_0, char_literal640_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:966:32: '>'
{
root_0 = (Object)adaptor.nil();
char_literal641=(Token)match(input,GREATER_THAN,FOLLOW_GREATER_THAN_in_relationalOperator18469); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal641_tree = new BinaryExpressionNodeImpl(char_literal641) ;
adaptor.addChild(root_0, char_literal641_tree);
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:967:32: '<'
{
root_0 = (Object)adaptor.nil();
char_literal642=(Token)match(input,LESS_THAN,FOLLOW_LESS_THAN_in_relationalOperator18505); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal642_tree = new BinaryExpressionNodeImpl(char_literal642) ;
adaptor.addChild(root_0, char_literal642_tree);
}
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:968:32: '<='
{
root_0 = (Object)adaptor.nil();
string_literal643=(Token)match(input,LESS_THAN_EQUAL,FOLLOW_LESS_THAN_EQUAL_in_relationalOperator18541); if (state.failed) return retval;
if ( state.backtracking==0 ) {
string_literal643_tree = new BinaryExpressionNodeImpl(string_literal643) ;
adaptor.addChild(root_0, string_literal643_tree);
}
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:969:32: '>='
{
root_0 = (Object)adaptor.nil();
string_literal644=(Token)match(input,GREATER_THAN_EQUAL,FOLLOW_GREATER_THAN_EQUAL_in_relationalOperator18577); if (state.failed) return retval;
if ( state.backtracking==0 ) {
string_literal644_tree = new BinaryExpressionNodeImpl(string_literal644) ;
adaptor.addChild(root_0, string_literal644_tree);
}
}
break;
case 6 :
// au/com/integradev/delphi/antlr/Delphi.g:970:32: '<>'
{
root_0 = (Object)adaptor.nil();
string_literal645=(Token)match(input,NOT_EQUAL,FOLLOW_NOT_EQUAL_in_relationalOperator18613); if (state.failed) return retval;
if ( state.backtracking==0 ) {
string_literal645_tree = new BinaryExpressionNodeImpl(string_literal645) ;
adaptor.addChild(root_0, string_literal645_tree);
}
}
break;
case 7 :
// au/com/integradev/delphi/antlr/Delphi.g:971:32: IN
{
root_0 = (Object)adaptor.nil();
IN646=(Token)match(input,IN,FOLLOW_IN_in_relationalOperator18649); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IN646_tree = new BinaryExpressionNodeImpl(IN646) ;
adaptor.addChild(root_0, IN646_tree);
}
}
break;
case 8 :
// au/com/integradev/delphi/antlr/Delphi.g:972:32: IS
{
root_0 = (Object)adaptor.nil();
IS647=(Token)match(input,IS,FOLLOW_IS_in_relationalOperator18685); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IS647_tree = new BinaryExpressionNodeImpl(IS647) ;
adaptor.addChild(root_0, IS647_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 167, relationalOperator_StartIndex); }
}
return retval;
}
// $ANTLR end "relationalOperator"
public static class constExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "constExpression"
// au/com/integradev/delphi/antlr/Delphi.g:974:1: constExpression : ( expression | recordExpression | arrayExpression );
public final DelphiParser.constExpression_return constExpression() throws RecognitionException {
DelphiParser.constExpression_return retval = new DelphiParser.constExpression_return();
retval.start = input.LT(1);
int constExpression_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope expression648 =null;
ParserRuleReturnScope recordExpression649 =null;
ParserRuleReturnScope arrayExpression650 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 168) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:974:30: ( expression | recordExpression | arrayExpression )
int alt225=3;
int LA225_0 = input.LA(1);
if ( ((LA225_0 >= ABSOLUTE && LA225_0 <= ALIGN)||(LA225_0 >= ASSEMBLER && LA225_0 <= ASSEMBLY)||(LA225_0 >= AT && LA225_0 <= AUTOMATED)||LA225_0==CDECL||LA225_0==CONTAINS||(LA225_0 >= DEFAULT && LA225_0 <= DEREFERENCE)||LA225_0==DISPID||LA225_0==DYNAMIC||(LA225_0 >= EXPERIMENTAL && LA225_0 <= EXPORT)||LA225_0==EXTERNAL||(LA225_0 >= FAR && LA225_0 <= FINAL)||(LA225_0 >= FORWARD && LA225_0 <= FUNCTION)||LA225_0==HELPER||LA225_0==IMPLEMENTS||(LA225_0 >= INDEX && LA225_0 <= INHERITED)||LA225_0==LABEL||LA225_0==LOCAL||(LA225_0 >= MESSAGE && LA225_0 <= MINUS)||(LA225_0 >= NAME && LA225_0 <= NOT)||(LA225_0 >= ON && LA225_0 <= OPERATOR)||(LA225_0 >= OUT && LA225_0 <= OVERRIDE)||LA225_0==PACKAGE||LA225_0==PAREN_BRACKET_LEFT||(LA225_0 >= PASCAL && LA225_0 <= PROCEDURE)||(LA225_0 >= PROTECTED && LA225_0 <= PUBLISHED)||(LA225_0 >= READ && LA225_0 <= READONLY)||(LA225_0 >= REFERENCE && LA225_0 <= REINTRODUCE)||(LA225_0 >= REQUIRES && LA225_0 <= RESIDENT)||(LA225_0 >= SAFECALL && LA225_0 <= SEALED)||LA225_0==SQUARE_BRACKET_LEFT||(LA225_0 >= STATIC && LA225_0 <= STRING)||LA225_0==TkBinaryNumber||LA225_0==TkCharacterEscapeCode||(LA225_0 >= TkHexNumber && LA225_0 <= TkIntNumber)||LA225_0==TkMultilineString||(LA225_0 >= TkQuotedString && LA225_0 <= TkRealNumber)||LA225_0==UNSAFE||(LA225_0 >= VARARGS && LA225_0 <= VIRTUAL)||LA225_0==WINAPI||(LA225_0 >= WRITE && LA225_0 <= WRITEONLY)) ) {
alt225=1;
}
else if ( (LA225_0==PAREN_LEFT) ) {
int LA225_19 = input.LA(2);
if ( (synpred324_Delphi()) ) {
alt225=1;
}
else if ( (synpred325_Delphi()) ) {
alt225=2;
}
else if ( (true) ) {
alt225=3;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 225, 0, input);
throw nvae;
}
switch (alt225) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:974:32: expression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expression_in_constExpression18738);
expression648=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression648.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:975:32: recordExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_recordExpression_in_constExpression18771);
recordExpression649=recordExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, recordExpression649.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:976:32: arrayExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_arrayExpression_in_constExpression18804);
arrayExpression650=arrayExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arrayExpression650.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 168, constExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "constExpression"
public static class recordExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "recordExpression"
// au/com/integradev/delphi/antlr/Delphi.g:978:1: recordExpression : '(' ^ ( recordExpressionItem ( ';' )? )+ ')' ;
public final DelphiParser.recordExpression_return recordExpression() throws RecognitionException {
DelphiParser.recordExpression_return retval = new DelphiParser.recordExpression_return();
retval.start = input.LT(1);
int recordExpression_StartIndex = input.index();
Object root_0 = null;
Token char_literal651=null;
Token char_literal653=null;
Token char_literal654=null;
ParserRuleReturnScope recordExpressionItem652 =null;
Object char_literal651_tree=null;
Object char_literal653_tree=null;
Object char_literal654_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 169) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:978:30: ( '(' ^ ( recordExpressionItem ( ';' )? )+ ')' )
// au/com/integradev/delphi/antlr/Delphi.g:978:32: '(' ^ ( recordExpressionItem ( ';' )? )+ ')'
{
root_0 = (Object)adaptor.nil();
char_literal651=(Token)match(input,PAREN_LEFT,FOLLOW_PAREN_LEFT_in_recordExpression18853); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal651_tree = new RecordExpressionNodeImpl(char_literal651) ;
root_0 = (Object)adaptor.becomeRoot(char_literal651_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:978:63: ( recordExpressionItem ( ';' )? )+
int cnt227=0;
loop227:
while (true) {
int alt227=2;
int LA227_0 = input.LA(1);
if ( ((LA227_0 >= ABSOLUTE && LA227_0 <= ABSTRACT)||LA227_0==ALIGN||(LA227_0 >= ASSEMBLER && LA227_0 <= ASSEMBLY)||(LA227_0 >= AT && LA227_0 <= AUTOMATED)||LA227_0==CDECL||LA227_0==CONTAINS||(LA227_0 >= DEFAULT && LA227_0 <= DEPRECATED)||LA227_0==DISPID||LA227_0==DYNAMIC||(LA227_0 >= EXPERIMENTAL && LA227_0 <= EXPORT)||LA227_0==EXTERNAL||LA227_0==FAR||LA227_0==FINAL||LA227_0==FORWARD||LA227_0==HELPER||LA227_0==IMPLEMENTS||LA227_0==INDEX||LA227_0==LABEL||LA227_0==LOCAL||LA227_0==MESSAGE||(LA227_0 >= NAME && LA227_0 <= NEAR)||LA227_0==NODEFAULT||(LA227_0 >= ON && LA227_0 <= OPERATOR)||(LA227_0 >= OUT && LA227_0 <= OVERRIDE)||LA227_0==PACKAGE||(LA227_0 >= PASCAL && LA227_0 <= PLATFORM)||LA227_0==PRIVATE||(LA227_0 >= PROTECTED && LA227_0 <= PUBLISHED)||(LA227_0 >= READ && LA227_0 <= READONLY)||(LA227_0 >= REFERENCE && LA227_0 <= REINTRODUCE)||(LA227_0 >= REQUIRES && LA227_0 <= RESIDENT)||(LA227_0 >= SAFECALL && LA227_0 <= SEALED)||(LA227_0 >= STATIC && LA227_0 <= STRICT)||LA227_0==TkIdentifier||LA227_0==UNSAFE||(LA227_0 >= VARARGS && LA227_0 <= VIRTUAL)||LA227_0==WINAPI||(LA227_0 >= WRITE && LA227_0 <= WRITEONLY)) ) {
alt227=1;
}
switch (alt227) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:978:64: recordExpressionItem ( ';' )?
{
pushFollow(FOLLOW_recordExpressionItem_in_recordExpression18860);
recordExpressionItem652=recordExpressionItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, recordExpressionItem652.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:978:85: ( ';' )?
int alt226=2;
int LA226_0 = input.LA(1);
if ( (LA226_0==SEMICOLON) ) {
alt226=1;
}
switch (alt226) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:978:86: ';'
{
char_literal653=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_recordExpression18863); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal653_tree = (Object)adaptor.create(char_literal653);
adaptor.addChild(root_0, char_literal653_tree);
}
}
break;
}
}
break;
default :
if ( cnt227 >= 1 ) break loop227;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(227, input);
throw eee;
}
cnt227++;
}
char_literal654=(Token)match(input,PAREN_RIGHT,FOLLOW_PAREN_RIGHT_in_recordExpression18869); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal654_tree = (Object)adaptor.create(char_literal654);
adaptor.addChild(root_0, char_literal654_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 169, recordExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "recordExpression"
public static class recordExpressionItem_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "recordExpressionItem"
// au/com/integradev/delphi/antlr/Delphi.g:980:1: recordExpressionItem : ident ':' constExpression -> ^( TkRecordExpressionItem ident constExpression ) ;
public final DelphiParser.recordExpressionItem_return recordExpressionItem() throws RecognitionException {
DelphiParser.recordExpressionItem_return retval = new DelphiParser.recordExpressionItem_return();
retval.start = input.LT(1);
int recordExpressionItem_StartIndex = input.index();
Object root_0 = null;
Token char_literal656=null;
ParserRuleReturnScope ident655 =null;
ParserRuleReturnScope constExpression657 =null;
Object char_literal656_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_ident=new RewriteRuleSubtreeStream(adaptor,"rule ident");
RewriteRuleSubtreeStream stream_constExpression=new RewriteRuleSubtreeStream(adaptor,"rule constExpression");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 170) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:980:30: ( ident ':' constExpression -> ^( TkRecordExpressionItem ident constExpression ) )
// au/com/integradev/delphi/antlr/Delphi.g:980:32: ident ':' constExpression
{
pushFollow(FOLLOW_ident_in_recordExpressionItem18914);
ident655=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ident.add(ident655.getTree());
char_literal656=(Token)match(input,COLON,FOLLOW_COLON_in_recordExpressionItem18916); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal656);
pushFollow(FOLLOW_constExpression_in_recordExpressionItem18918);
constExpression657=constExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constExpression.add(constExpression657.getTree());
// AST REWRITE
// elements: ident, constExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 981:30: -> ^( TkRecordExpressionItem ident constExpression )
{
// au/com/integradev/delphi/antlr/Delphi.g:981:33: ^( TkRecordExpressionItem ident constExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new RecordExpressionItemNodeImpl(TkRecordExpressionItem), root_1);
adaptor.addChild(root_1, stream_ident.nextTree());
adaptor.addChild(root_1, stream_constExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 170, recordExpressionItem_StartIndex); }
}
return retval;
}
// $ANTLR end "recordExpressionItem"
public static class arrayExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arrayExpression"
// au/com/integradev/delphi/antlr/Delphi.g:983:1: arrayExpression : '(' ^ ( constExpression ( ',' !)? )* ')' ;
public final DelphiParser.arrayExpression_return arrayExpression() throws RecognitionException {
DelphiParser.arrayExpression_return retval = new DelphiParser.arrayExpression_return();
retval.start = input.LT(1);
int arrayExpression_StartIndex = input.index();
Object root_0 = null;
Token char_literal658=null;
Token char_literal660=null;
Token char_literal661=null;
ParserRuleReturnScope constExpression659 =null;
Object char_literal658_tree=null;
Object char_literal660_tree=null;
Object char_literal661_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 171) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:983:30: ( '(' ^ ( constExpression ( ',' !)? )* ')' )
// au/com/integradev/delphi/antlr/Delphi.g:983:32: '(' ^ ( constExpression ( ',' !)? )* ')'
{
root_0 = (Object)adaptor.nil();
char_literal658=(Token)match(input,PAREN_LEFT,FOLLOW_PAREN_LEFT_in_arrayExpression19010); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal658_tree = new ArrayExpressionNodeImpl(char_literal658) ;
root_0 = (Object)adaptor.becomeRoot(char_literal658_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:983:62: ( constExpression ( ',' !)? )*
loop229:
while (true) {
int alt229=2;
int LA229_0 = input.LA(1);
if ( ((LA229_0 >= ABSOLUTE && LA229_0 <= ALIGN)||(LA229_0 >= ASSEMBLER && LA229_0 <= ASSEMBLY)||(LA229_0 >= AT && LA229_0 <= AUTOMATED)||LA229_0==CDECL||LA229_0==CONTAINS||(LA229_0 >= DEFAULT && LA229_0 <= DEREFERENCE)||LA229_0==DISPID||LA229_0==DYNAMIC||(LA229_0 >= EXPERIMENTAL && LA229_0 <= EXPORT)||LA229_0==EXTERNAL||(LA229_0 >= FAR && LA229_0 <= FINAL)||(LA229_0 >= FORWARD && LA229_0 <= FUNCTION)||LA229_0==HELPER||LA229_0==IMPLEMENTS||(LA229_0 >= INDEX && LA229_0 <= INHERITED)||LA229_0==LABEL||LA229_0==LOCAL||(LA229_0 >= MESSAGE && LA229_0 <= MINUS)||(LA229_0 >= NAME && LA229_0 <= NOT)||(LA229_0 >= ON && LA229_0 <= OPERATOR)||(LA229_0 >= OUT && LA229_0 <= OVERRIDE)||LA229_0==PACKAGE||LA229_0==PAREN_BRACKET_LEFT||LA229_0==PAREN_LEFT||(LA229_0 >= PASCAL && LA229_0 <= PROCEDURE)||(LA229_0 >= PROTECTED && LA229_0 <= PUBLISHED)||(LA229_0 >= READ && LA229_0 <= READONLY)||(LA229_0 >= REFERENCE && LA229_0 <= REINTRODUCE)||(LA229_0 >= REQUIRES && LA229_0 <= RESIDENT)||(LA229_0 >= SAFECALL && LA229_0 <= SEALED)||LA229_0==SQUARE_BRACKET_LEFT||(LA229_0 >= STATIC && LA229_0 <= STRING)||LA229_0==TkBinaryNumber||LA229_0==TkCharacterEscapeCode||(LA229_0 >= TkHexNumber && LA229_0 <= TkIntNumber)||LA229_0==TkMultilineString||(LA229_0 >= TkQuotedString && LA229_0 <= TkRealNumber)||LA229_0==UNSAFE||(LA229_0 >= VARARGS && LA229_0 <= VIRTUAL)||LA229_0==WINAPI||(LA229_0 >= WRITE && LA229_0 <= WRITEONLY)) ) {
alt229=1;
}
switch (alt229) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:983:63: constExpression ( ',' !)?
{
pushFollow(FOLLOW_constExpression_in_arrayExpression19017);
constExpression659=constExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, constExpression659.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:983:79: ( ',' !)?
int alt228=2;
int LA228_0 = input.LA(1);
if ( (LA228_0==COMMA) ) {
alt228=1;
}
switch (alt228) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:983:80: ',' !
{
char_literal660=(Token)match(input,COMMA,FOLLOW_COMMA_in_arrayExpression19020); if (state.failed) return retval;
}
break;
}
}
break;
default :
break loop229;
}
}
char_literal661=(Token)match(input,PAREN_RIGHT,FOLLOW_PAREN_RIGHT_in_arrayExpression19027); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal661_tree = (Object)adaptor.create(char_literal661);
adaptor.addChild(root_0, char_literal661_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 171, arrayExpression_StartIndex); }
}
return retval;
}
// $ANTLR end "arrayExpression"
public static class statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "statement"
// au/com/integradev/delphi/antlr/Delphi.g:989:1: statement : ( ifStatement | varStatement | constStatement | caseStatement | repeatStatement | whileStatement | forStatement | withStatement | tryStatement | raiseStatement | assemblerStatement | compoundStatement | labelStatement | assignmentStatement | expressionStatement | gotoStatement );
public final DelphiParser.statement_return statement() throws RecognitionException {
DelphiParser.statement_return retval = new DelphiParser.statement_return();
retval.start = input.LT(1);
int statement_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope ifStatement662 =null;
ParserRuleReturnScope varStatement663 =null;
ParserRuleReturnScope constStatement664 =null;
ParserRuleReturnScope caseStatement665 =null;
ParserRuleReturnScope repeatStatement666 =null;
ParserRuleReturnScope whileStatement667 =null;
ParserRuleReturnScope forStatement668 =null;
ParserRuleReturnScope withStatement669 =null;
ParserRuleReturnScope tryStatement670 =null;
ParserRuleReturnScope raiseStatement671 =null;
ParserRuleReturnScope assemblerStatement672 =null;
ParserRuleReturnScope compoundStatement673 =null;
ParserRuleReturnScope labelStatement674 =null;
ParserRuleReturnScope assignmentStatement675 =null;
ParserRuleReturnScope expressionStatement676 =null;
ParserRuleReturnScope gotoStatement677 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 172) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:989:30: ( ifStatement | varStatement | constStatement | caseStatement | repeatStatement | whileStatement | forStatement | withStatement | tryStatement | raiseStatement | assemblerStatement | compoundStatement | labelStatement | assignmentStatement | expressionStatement | gotoStatement )
int alt230=16;
switch ( input.LA(1) ) {
case IF:
{
alt230=1;
}
break;
case VAR:
{
alt230=2;
}
break;
case CONST:
{
alt230=3;
}
break;
case CASE:
{
alt230=4;
}
break;
case REPEAT:
{
alt230=5;
}
break;
case WHILE:
{
alt230=6;
}
break;
case FOR:
{
alt230=7;
}
break;
case WITH:
{
alt230=8;
}
break;
case TRY:
{
alt230=9;
}
break;
case RAISE:
{
alt230=10;
}
break;
case ASM:
{
alt230=11;
}
break;
case BEGIN:
{
alt230=12;
}
break;
case TkIdentifier:
{
int LA230_13 = input.LA(2);
if ( (((input.LA(2) == COLON)&&synpred342_Delphi())) ) {
alt230=13;
}
else if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 13, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA230_14 = input.LA(2);
if ( (((input.LA(2) == COLON)&&synpred342_Delphi())) ) {
alt230=13;
}
else if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 14, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TkIntNumber:
{
int LA230_15 = input.LA(2);
if ( (((input.LA(2) == COLON)&&synpred342_Delphi())) ) {
alt230=13;
}
else if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 15, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TkHexNumber:
{
int LA230_16 = input.LA(2);
if ( (((input.LA(2) == COLON)&&synpred342_Delphi())) ) {
alt230=13;
}
else if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 16, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TkBinaryNumber:
{
int LA230_17 = input.LA(2);
if ( (((input.LA(2) == COLON)&&synpred342_Delphi())) ) {
alt230=13;
}
else if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 17, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case NOT:
{
int LA230_18 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 18, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PLUS:
{
int LA230_19 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 19, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case MINUS:
{
int LA230_20 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 20, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ADDRESS:
{
int LA230_21 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 21, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TkRealNumber:
{
int LA230_22 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 22, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TkQuotedString:
{
int LA230_23 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 23, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TkCharacterEscapeCode:
{
int LA230_24 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 24, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DEREFERENCE:
{
int LA230_25 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 25, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TkMultilineString:
{
int LA230_26 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 26, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case NIL:
{
int LA230_27 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 27, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA230_28 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 28, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case STRING:
{
int LA230_29 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 29, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FILE:
{
int LA230_30 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 30, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PAREN_LEFT:
{
int LA230_31 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 31, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INHERITED:
{
int LA230_32 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 32, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PROCEDURE:
{
int LA230_33 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 33, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FUNCTION:
{
int LA230_34 = input.LA(2);
if ( (synpred343_Delphi()) ) {
alt230=14;
}
else if ( (synpred344_Delphi()) ) {
alt230=15;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 230, 34, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case GOTO:
{
alt230=16;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 230, 0, input);
throw nvae;
}
switch (alt230) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:989:32: ifStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_ifStatement_in_statement19087);
ifStatement662=ifStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ifStatement662.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:990:32: varStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_varStatement_in_statement19120);
varStatement663=varStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varStatement663.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:991:32: constStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_constStatement_in_statement19153);
constStatement664=constStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, constStatement664.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:992:32: caseStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_caseStatement_in_statement19186);
caseStatement665=caseStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, caseStatement665.getTree());
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:993:32: repeatStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_repeatStatement_in_statement19219);
repeatStatement666=repeatStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, repeatStatement666.getTree());
}
break;
case 6 :
// au/com/integradev/delphi/antlr/Delphi.g:994:32: whileStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_whileStatement_in_statement19252);
whileStatement667=whileStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, whileStatement667.getTree());
}
break;
case 7 :
// au/com/integradev/delphi/antlr/Delphi.g:995:32: forStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_forStatement_in_statement19285);
forStatement668=forStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, forStatement668.getTree());
}
break;
case 8 :
// au/com/integradev/delphi/antlr/Delphi.g:996:32: withStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_withStatement_in_statement19318);
withStatement669=withStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, withStatement669.getTree());
}
break;
case 9 :
// au/com/integradev/delphi/antlr/Delphi.g:997:32: tryStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_tryStatement_in_statement19351);
tryStatement670=tryStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, tryStatement670.getTree());
}
break;
case 10 :
// au/com/integradev/delphi/antlr/Delphi.g:998:32: raiseStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_raiseStatement_in_statement19384);
raiseStatement671=raiseStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, raiseStatement671.getTree());
}
break;
case 11 :
// au/com/integradev/delphi/antlr/Delphi.g:999:32: assemblerStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assemblerStatement_in_statement19417);
assemblerStatement672=assemblerStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assemblerStatement672.getTree());
}
break;
case 12 :
// au/com/integradev/delphi/antlr/Delphi.g:1000:32: compoundStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_compoundStatement_in_statement19450);
compoundStatement673=compoundStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, compoundStatement673.getTree());
}
break;
case 13 :
// au/com/integradev/delphi/antlr/Delphi.g:1001:32: labelStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_labelStatement_in_statement19483);
labelStatement674=labelStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, labelStatement674.getTree());
}
break;
case 14 :
// au/com/integradev/delphi/antlr/Delphi.g:1002:32: assignmentStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assignmentStatement_in_statement19516);
assignmentStatement675=assignmentStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assignmentStatement675.getTree());
}
break;
case 15 :
// au/com/integradev/delphi/antlr/Delphi.g:1003:32: expressionStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expressionStatement_in_statement19549);
expressionStatement676=expressionStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expressionStatement676.getTree());
}
break;
case 16 :
// au/com/integradev/delphi/antlr/Delphi.g:1004:32: gotoStatement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_gotoStatement_in_statement19582);
gotoStatement677=gotoStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, gotoStatement677.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 172, statement_StartIndex); }
}
return retval;
}
// $ANTLR end "statement"
public static class ifStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "ifStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1006:1: ifStatement : IF ^ expression THEN ( statement )? ( ELSE ( statement )? )? ;
public final DelphiParser.ifStatement_return ifStatement() throws RecognitionException {
DelphiParser.ifStatement_return retval = new DelphiParser.ifStatement_return();
retval.start = input.LT(1);
int ifStatement_StartIndex = input.index();
Object root_0 = null;
Token IF678=null;
Token THEN680=null;
Token ELSE682=null;
ParserRuleReturnScope expression679 =null;
ParserRuleReturnScope statement681 =null;
ParserRuleReturnScope statement683 =null;
Object IF678_tree=null;
Object THEN680_tree=null;
Object ELSE682_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 173) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1006:30: ( IF ^ expression THEN ( statement )? ( ELSE ( statement )? )? )
// au/com/integradev/delphi/antlr/Delphi.g:1006:32: IF ^ expression THEN ( statement )? ( ELSE ( statement )? )?
{
root_0 = (Object)adaptor.nil();
IF678=(Token)match(input,IF,FOLLOW_IF_in_ifStatement19636); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IF678_tree = new IfStatementNodeImpl(IF678) ;
root_0 = (Object)adaptor.becomeRoot(IF678_tree, root_0);
}
pushFollow(FOLLOW_expression_in_ifStatement19642);
expression679=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression679.getTree());
THEN680=(Token)match(input,THEN,FOLLOW_THEN_in_ifStatement19644); if (state.failed) return retval;
if ( state.backtracking==0 ) {
THEN680_tree = (Object)adaptor.create(THEN680);
adaptor.addChild(root_0, THEN680_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:1006:73: ( statement )?
int alt231=2;
switch ( input.LA(1) ) {
case IF:
{
int LA231_1 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case VAR:
{
int LA231_2 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case CONST:
{
int LA231_3 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case CASE:
{
int LA231_4 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case REPEAT:
{
int LA231_5 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case WHILE:
{
int LA231_6 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case FOR:
{
int LA231_7 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case WITH:
{
int LA231_8 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case TRY:
{
int LA231_9 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case RAISE:
{
int LA231_10 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case ASM:
{
int LA231_11 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case BEGIN:
{
int LA231_12 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case TkIdentifier:
{
int LA231_13 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case ON:
{
int LA231_14 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case TkIntNumber:
{
int LA231_15 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case TkHexNumber:
{
int LA231_16 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case TkBinaryNumber:
{
int LA231_17 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case NOT:
{
int LA231_18 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case PLUS:
{
int LA231_19 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case MINUS:
{
int LA231_20 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case ADDRESS:
{
int LA231_21 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case TkRealNumber:
{
int LA231_22 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case TkQuotedString:
{
int LA231_23 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case TkCharacterEscapeCode:
{
int LA231_24 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case DEREFERENCE:
{
int LA231_25 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case TkMultilineString:
{
int LA231_26 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case NIL:
{
int LA231_27 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA231_28 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case STRING:
{
int LA231_29 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case FILE:
{
int LA231_30 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case PAREN_LEFT:
{
int LA231_31 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case INHERITED:
{
int LA231_32 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case PROCEDURE:
{
int LA231_33 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case FUNCTION:
{
int LA231_34 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case GOTO:
{
int LA231_35 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA231_44 = input.LA(2);
if ( (synpred345_Delphi()) ) {
alt231=1;
}
}
break;
}
switch (alt231) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1006:73: statement
{
pushFollow(FOLLOW_statement_in_ifStatement19646);
statement681=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement681.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:1006:84: ( ELSE ( statement )? )?
int alt233=2;
int LA233_0 = input.LA(1);
if ( (LA233_0==ELSE) ) {
int LA233_1 = input.LA(2);
if ( (synpred347_Delphi()) ) {
alt233=1;
}
}
switch (alt233) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1006:85: ELSE ( statement )?
{
ELSE682=(Token)match(input,ELSE,FOLLOW_ELSE_in_ifStatement19650); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ELSE682_tree = (Object)adaptor.create(ELSE682);
adaptor.addChild(root_0, ELSE682_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:1006:90: ( statement )?
int alt232=2;
switch ( input.LA(1) ) {
case IF:
{
int LA232_1 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case VAR:
{
int LA232_2 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case CONST:
{
int LA232_3 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case CASE:
{
int LA232_4 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case REPEAT:
{
int LA232_5 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case WHILE:
{
int LA232_6 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case FOR:
{
int LA232_7 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case WITH:
{
int LA232_8 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case TRY:
{
int LA232_9 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case RAISE:
{
int LA232_10 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case ASM:
{
int LA232_11 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case BEGIN:
{
int LA232_12 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case TkIdentifier:
{
int LA232_13 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case ON:
{
int LA232_14 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case TkIntNumber:
{
int LA232_15 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case TkHexNumber:
{
int LA232_16 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case TkBinaryNumber:
{
int LA232_17 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case NOT:
{
int LA232_18 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case PLUS:
{
int LA232_19 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case MINUS:
{
int LA232_20 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case ADDRESS:
{
int LA232_21 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case TkRealNumber:
{
int LA232_22 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case TkQuotedString:
{
int LA232_23 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case TkCharacterEscapeCode:
{
int LA232_24 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case DEREFERENCE:
{
int LA232_25 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case TkMultilineString:
{
int LA232_26 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case NIL:
{
int LA232_27 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA232_28 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case STRING:
{
int LA232_29 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case FILE:
{
int LA232_30 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case PAREN_LEFT:
{
int LA232_31 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case INHERITED:
{
int LA232_32 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case PROCEDURE:
{
int LA232_33 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case FUNCTION:
{
int LA232_34 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case GOTO:
{
int LA232_35 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA232_44 = input.LA(2);
if ( (synpred346_Delphi()) ) {
alt232=1;
}
}
break;
}
switch (alt232) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1006:90: statement
{
pushFollow(FOLLOW_statement_in_ifStatement19652);
statement683=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement683.getTree());
}
break;
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 173, ifStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "ifStatement"
public static class varStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "varStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1008:1: varStatement : VAR ( attributeList )? nameDeclarationList ( ':' varType )? ( ':=' expression )? -> ^( VAR nameDeclarationList ( ':' varType )? ( ':=' expression )? ( attributeList )? ) ;
public final DelphiParser.varStatement_return varStatement() throws RecognitionException {
DelphiParser.varStatement_return retval = new DelphiParser.varStatement_return();
retval.start = input.LT(1);
int varStatement_StartIndex = input.index();
Object root_0 = null;
Token VAR684=null;
Token char_literal687=null;
Token string_literal689=null;
ParserRuleReturnScope attributeList685 =null;
ParserRuleReturnScope nameDeclarationList686 =null;
ParserRuleReturnScope varType688 =null;
ParserRuleReturnScope expression690 =null;
Object VAR684_tree=null;
Object char_literal687_tree=null;
Object string_literal689_tree=null;
RewriteRuleTokenStream stream_VAR=new RewriteRuleTokenStream(adaptor,"token VAR");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_nameDeclarationList=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclarationList");
RewriteRuleSubtreeStream stream_varType=new RewriteRuleSubtreeStream(adaptor,"rule varType");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 174) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1008:30: ( VAR ( attributeList )? nameDeclarationList ( ':' varType )? ( ':=' expression )? -> ^( VAR nameDeclarationList ( ':' varType )? ( ':=' expression )? ( attributeList )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:1008:32: VAR ( attributeList )? nameDeclarationList ( ':' varType )? ( ':=' expression )?
{
VAR684=(Token)match(input,VAR,FOLLOW_VAR_in_varStatement19708); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_VAR.add(VAR684);
// au/com/integradev/delphi/antlr/Delphi.g:1008:36: ( attributeList )?
int alt234=2;
int LA234_0 = input.LA(1);
if ( (LA234_0==PAREN_BRACKET_LEFT||LA234_0==SQUARE_BRACKET_LEFT) ) {
alt234=1;
}
switch (alt234) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1008:36: attributeList
{
pushFollow(FOLLOW_attributeList_in_varStatement19710);
attributeList685=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList685.getTree());
}
break;
}
pushFollow(FOLLOW_nameDeclarationList_in_varStatement19713);
nameDeclarationList686=nameDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclarationList.add(nameDeclarationList686.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1008:71: ( ':' varType )?
int alt235=2;
int LA235_0 = input.LA(1);
if ( (LA235_0==COLON) ) {
alt235=1;
}
switch (alt235) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1008:72: ':' varType
{
char_literal687=(Token)match(input,COLON,FOLLOW_COLON_in_varStatement19716); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal687);
pushFollow(FOLLOW_varType_in_varStatement19718);
varType688=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_varType.add(varType688.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:1008:86: ( ':=' expression )?
int alt236=2;
int LA236_0 = input.LA(1);
if ( (LA236_0==ASSIGN) ) {
alt236=1;
}
switch (alt236) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1008:87: ':=' expression
{
string_literal689=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_varStatement19723); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(string_literal689);
pushFollow(FOLLOW_expression_in_varStatement19725);
expression690=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression690.getTree());
}
break;
}
// AST REWRITE
// elements: VAR, nameDeclarationList, COLON, ASSIGN, expression, varType, attributeList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1009:30: -> ^( VAR nameDeclarationList ( ':' varType )? ( ':=' expression )? ( attributeList )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:1009:33: ^( VAR nameDeclarationList ( ':' varType )? ( ':=' expression )? ( attributeList )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new VarStatementNodeImpl(stream_VAR.nextToken()), root_1);
adaptor.addChild(root_1, stream_nameDeclarationList.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1009:81: ( ':' varType )?
if ( stream_COLON.hasNext()||stream_varType.hasNext() ) {
adaptor.addChild(root_1, stream_COLON.nextNode());
adaptor.addChild(root_1, stream_varType.nextTree());
}
stream_COLON.reset();
stream_varType.reset();
// au/com/integradev/delphi/antlr/Delphi.g:1009:96: ( ':=' expression )?
if ( stream_ASSIGN.hasNext()||stream_expression.hasNext() ) {
adaptor.addChild(root_1, stream_ASSIGN.nextNode());
adaptor.addChild(root_1, stream_expression.nextTree());
}
stream_ASSIGN.reset();
stream_expression.reset();
// au/com/integradev/delphi/antlr/Delphi.g:1009:115: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 174, varStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "varStatement"
public static class constStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "constStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1011:1: constStatement : CONST ( attributeList )? nameDeclaration ( ':' varType )? '=' expression -> ^( CONST nameDeclaration ( ':' varType )? '=' expression ( attributeList )? ) ;
public final DelphiParser.constStatement_return constStatement() throws RecognitionException {
DelphiParser.constStatement_return retval = new DelphiParser.constStatement_return();
retval.start = input.LT(1);
int constStatement_StartIndex = input.index();
Object root_0 = null;
Token CONST691=null;
Token char_literal694=null;
Token char_literal696=null;
ParserRuleReturnScope attributeList692 =null;
ParserRuleReturnScope nameDeclaration693 =null;
ParserRuleReturnScope varType695 =null;
ParserRuleReturnScope expression697 =null;
Object CONST691_tree=null;
Object char_literal694_tree=null;
Object char_literal696_tree=null;
RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
RewriteRuleTokenStream stream_CONST=new RewriteRuleTokenStream(adaptor,"token CONST");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_varType=new RewriteRuleSubtreeStream(adaptor,"rule varType");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_attributeList=new RewriteRuleSubtreeStream(adaptor,"rule attributeList");
RewriteRuleSubtreeStream stream_nameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclaration");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 175) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1011:30: ( CONST ( attributeList )? nameDeclaration ( ':' varType )? '=' expression -> ^( CONST nameDeclaration ( ':' varType )? '=' expression ( attributeList )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:1011:32: CONST ( attributeList )? nameDeclaration ( ':' varType )? '=' expression
{
CONST691=(Token)match(input,CONST,FOLLOW_CONST_in_constStatement19835); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CONST.add(CONST691);
// au/com/integradev/delphi/antlr/Delphi.g:1011:38: ( attributeList )?
int alt237=2;
int LA237_0 = input.LA(1);
if ( (LA237_0==PAREN_BRACKET_LEFT||LA237_0==SQUARE_BRACKET_LEFT) ) {
alt237=1;
}
switch (alt237) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1011:38: attributeList
{
pushFollow(FOLLOW_attributeList_in_constStatement19837);
attributeList692=attributeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_attributeList.add(attributeList692.getTree());
}
break;
}
pushFollow(FOLLOW_nameDeclaration_in_constStatement19840);
nameDeclaration693=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclaration.add(nameDeclaration693.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1011:69: ( ':' varType )?
int alt238=2;
int LA238_0 = input.LA(1);
if ( (LA238_0==COLON) ) {
alt238=1;
}
switch (alt238) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1011:70: ':' varType
{
char_literal694=(Token)match(input,COLON,FOLLOW_COLON_in_constStatement19843); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal694);
pushFollow(FOLLOW_varType_in_constStatement19845);
varType695=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_varType.add(varType695.getTree());
}
break;
}
char_literal696=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_constStatement19849); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EQUAL.add(char_literal696);
pushFollow(FOLLOW_expression_in_constStatement19851);
expression697=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression697.getTree());
// AST REWRITE
// elements: expression, varType, nameDeclaration, COLON, EQUAL, CONST, attributeList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1012:30: -> ^( CONST nameDeclaration ( ':' varType )? '=' expression ( attributeList )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:1012:33: ^( CONST nameDeclaration ( ':' varType )? '=' expression ( attributeList )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ConstStatementNodeImpl(stream_CONST.nextToken()), root_1);
adaptor.addChild(root_1, stream_nameDeclaration.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1012:81: ( ':' varType )?
if ( stream_varType.hasNext()||stream_COLON.hasNext() ) {
adaptor.addChild(root_1, stream_COLON.nextNode());
adaptor.addChild(root_1, stream_varType.nextTree());
}
stream_varType.reset();
stream_COLON.reset();
adaptor.addChild(root_1, stream_EQUAL.nextNode());
adaptor.addChild(root_1, stream_expression.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1012:111: ( attributeList )?
if ( stream_attributeList.hasNext() ) {
adaptor.addChild(root_1, stream_attributeList.nextTree());
}
stream_attributeList.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 175, constStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "constStatement"
public static class caseStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "caseStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1014:1: caseStatement : CASE ^ expression OF ( caseItem )* ( elseBlock )? END ;
public final DelphiParser.caseStatement_return caseStatement() throws RecognitionException {
DelphiParser.caseStatement_return retval = new DelphiParser.caseStatement_return();
retval.start = input.LT(1);
int caseStatement_StartIndex = input.index();
Object root_0 = null;
Token CASE698=null;
Token OF700=null;
Token END703=null;
ParserRuleReturnScope expression699 =null;
ParserRuleReturnScope caseItem701 =null;
ParserRuleReturnScope elseBlock702 =null;
Object CASE698_tree=null;
Object OF700_tree=null;
Object END703_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 176) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1014:30: ( CASE ^ expression OF ( caseItem )* ( elseBlock )? END )
// au/com/integradev/delphi/antlr/Delphi.g:1014:32: CASE ^ expression OF ( caseItem )* ( elseBlock )? END
{
root_0 = (Object)adaptor.nil();
CASE698=(Token)match(input,CASE,FOLLOW_CASE_in_caseStatement19957); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CASE698_tree = new CaseStatementNodeImpl(CASE698) ;
root_0 = (Object)adaptor.becomeRoot(CASE698_tree, root_0);
}
pushFollow(FOLLOW_expression_in_caseStatement19963);
expression699=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression699.getTree());
OF700=(Token)match(input,OF,FOLLOW_OF_in_caseStatement19965); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OF700_tree = (Object)adaptor.create(OF700);
adaptor.addChild(root_0, OF700_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:1014:75: ( caseItem )*
loop239:
while (true) {
int alt239=2;
int LA239_0 = input.LA(1);
if ( ((LA239_0 >= ABSOLUTE && LA239_0 <= ALIGN)||(LA239_0 >= ASSEMBLER && LA239_0 <= ASSEMBLY)||(LA239_0 >= AT && LA239_0 <= AUTOMATED)||LA239_0==CDECL||LA239_0==CONTAINS||(LA239_0 >= DEFAULT && LA239_0 <= DEREFERENCE)||LA239_0==DISPID||LA239_0==DYNAMIC||(LA239_0 >= EXPERIMENTAL && LA239_0 <= EXPORT)||LA239_0==EXTERNAL||(LA239_0 >= FAR && LA239_0 <= FINAL)||(LA239_0 >= FORWARD && LA239_0 <= FUNCTION)||LA239_0==HELPER||LA239_0==IMPLEMENTS||(LA239_0 >= INDEX && LA239_0 <= INHERITED)||LA239_0==LABEL||LA239_0==LOCAL||(LA239_0 >= MESSAGE && LA239_0 <= MINUS)||(LA239_0 >= NAME && LA239_0 <= NOT)||(LA239_0 >= ON && LA239_0 <= OPERATOR)||(LA239_0 >= OUT && LA239_0 <= OVERRIDE)||LA239_0==PACKAGE||LA239_0==PAREN_BRACKET_LEFT||LA239_0==PAREN_LEFT||(LA239_0 >= PASCAL && LA239_0 <= PROCEDURE)||(LA239_0 >= PROTECTED && LA239_0 <= PUBLISHED)||(LA239_0 >= READ && LA239_0 <= READONLY)||(LA239_0 >= REFERENCE && LA239_0 <= REINTRODUCE)||(LA239_0 >= REQUIRES && LA239_0 <= RESIDENT)||(LA239_0 >= SAFECALL && LA239_0 <= SEALED)||LA239_0==SQUARE_BRACKET_LEFT||(LA239_0 >= STATIC && LA239_0 <= STRING)||LA239_0==TkBinaryNumber||LA239_0==TkCharacterEscapeCode||(LA239_0 >= TkHexNumber && LA239_0 <= TkIntNumber)||LA239_0==TkMultilineString||(LA239_0 >= TkQuotedString && LA239_0 <= TkRealNumber)||LA239_0==UNSAFE||(LA239_0 >= VARARGS && LA239_0 <= VIRTUAL)||LA239_0==WINAPI||(LA239_0 >= WRITE && LA239_0 <= WRITEONLY)) ) {
alt239=1;
}
switch (alt239) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1014:75: caseItem
{
pushFollow(FOLLOW_caseItem_in_caseStatement19967);
caseItem701=caseItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, caseItem701.getTree());
}
break;
default :
break loop239;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:1014:85: ( elseBlock )?
int alt240=2;
int LA240_0 = input.LA(1);
if ( (LA240_0==ELSE) ) {
alt240=1;
}
switch (alt240) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1014:85: elseBlock
{
pushFollow(FOLLOW_elseBlock_in_caseStatement19970);
elseBlock702=elseBlock();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, elseBlock702.getTree());
}
break;
}
END703=(Token)match(input,END,FOLLOW_END_in_caseStatement19973); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END703_tree = (Object)adaptor.create(END703);
adaptor.addChild(root_0, END703_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 176, caseStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "caseStatement"
public static class elseBlock_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "elseBlock"
// au/com/integradev/delphi/antlr/Delphi.g:1016:1: elseBlock : ELSE ^ statementList ;
public final DelphiParser.elseBlock_return elseBlock() throws RecognitionException {
DelphiParser.elseBlock_return retval = new DelphiParser.elseBlock_return();
retval.start = input.LT(1);
int elseBlock_StartIndex = input.index();
Object root_0 = null;
Token ELSE704=null;
ParserRuleReturnScope statementList705 =null;
Object ELSE704_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 177) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1016:30: ( ELSE ^ statementList )
// au/com/integradev/delphi/antlr/Delphi.g:1016:32: ELSE ^ statementList
{
root_0 = (Object)adaptor.nil();
ELSE704=(Token)match(input,ELSE,FOLLOW_ELSE_in_elseBlock20029); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ELSE704_tree = new ElseBlockNodeImpl(ELSE704) ;
root_0 = (Object)adaptor.becomeRoot(ELSE704_tree, root_0);
}
pushFollow(FOLLOW_statementList_in_elseBlock20035);
statementList705=statementList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statementList705.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 177, elseBlock_StartIndex); }
}
return retval;
}
// $ANTLR end "elseBlock"
public static class caseItem_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "caseItem"
// au/com/integradev/delphi/antlr/Delphi.g:1018:1: caseItem : expressionOrRangeList ':' ( statement )? ( ';' )? -> ^( TkCaseItem expressionOrRangeList ( statement )? ( ';' )? ) ;
public final DelphiParser.caseItem_return caseItem() throws RecognitionException {
DelphiParser.caseItem_return retval = new DelphiParser.caseItem_return();
retval.start = input.LT(1);
int caseItem_StartIndex = input.index();
Object root_0 = null;
Token char_literal707=null;
Token char_literal709=null;
ParserRuleReturnScope expressionOrRangeList706 =null;
ParserRuleReturnScope statement708 =null;
Object char_literal707_tree=null;
Object char_literal709_tree=null;
RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_expressionOrRangeList=new RewriteRuleSubtreeStream(adaptor,"rule expressionOrRangeList");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 178) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1018:30: ( expressionOrRangeList ':' ( statement )? ( ';' )? -> ^( TkCaseItem expressionOrRangeList ( statement )? ( ';' )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:1018:32: expressionOrRangeList ':' ( statement )? ( ';' )?
{
pushFollow(FOLLOW_expressionOrRangeList_in_caseItem20092);
expressionOrRangeList706=expressionOrRangeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expressionOrRangeList.add(expressionOrRangeList706.getTree());
char_literal707=(Token)match(input,COLON,FOLLOW_COLON_in_caseItem20094); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal707);
// au/com/integradev/delphi/antlr/Delphi.g:1018:58: ( statement )?
int alt241=2;
switch ( input.LA(1) ) {
case ASM:
case BEGIN:
case CASE:
case CONST:
case FOR:
case GOTO:
case IF:
case RAISE:
case REPEAT:
case TRY:
case VAR:
case WHILE:
case WITH:
{
alt241=1;
}
break;
case TkIdentifier:
{
int LA241_13 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA241_14 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case TkIntNumber:
{
int LA241_15 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case TkHexNumber:
{
int LA241_16 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case TkBinaryNumber:
{
int LA241_17 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case NOT:
{
int LA241_18 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case PLUS:
{
int LA241_19 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case MINUS:
{
int LA241_20 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case ADDRESS:
{
int LA241_21 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case TkRealNumber:
{
int LA241_22 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case TkQuotedString:
{
int LA241_23 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case TkCharacterEscapeCode:
{
int LA241_24 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case DEREFERENCE:
{
int LA241_25 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case TkMultilineString:
{
int LA241_26 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case NIL:
{
int LA241_27 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA241_28 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case STRING:
{
int LA241_29 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case FILE:
{
int LA241_30 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case PAREN_LEFT:
{
int LA241_31 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case INHERITED:
{
int LA241_32 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case PROCEDURE:
{
int LA241_33 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
case FUNCTION:
{
int LA241_34 = input.LA(2);
if ( (synpred355_Delphi()) ) {
alt241=1;
}
}
break;
}
switch (alt241) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1018:59: statement
{
pushFollow(FOLLOW_statement_in_caseItem20097);
statement708=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement708.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:1018:71: ( ';' )?
int alt242=2;
int LA242_0 = input.LA(1);
if ( (LA242_0==SEMICOLON) ) {
alt242=1;
}
switch (alt242) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1018:72: ';'
{
char_literal709=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_caseItem20102); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMICOLON.add(char_literal709);
}
break;
}
// AST REWRITE
// elements: expressionOrRangeList, SEMICOLON, statement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1018:78: -> ^( TkCaseItem expressionOrRangeList ( statement )? ( ';' )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:1018:81: ^( TkCaseItem expressionOrRangeList ( statement )? ( ';' )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new CaseItemStatementNodeImpl(TkCaseItem), root_1);
adaptor.addChild(root_1, stream_expressionOrRangeList.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1018:143: ( statement )?
if ( stream_statement.hasNext() ) {
adaptor.addChild(root_1, stream_statement.nextTree());
}
stream_statement.reset();
// au/com/integradev/delphi/antlr/Delphi.g:1018:156: ( ';' )?
if ( stream_SEMICOLON.hasNext() ) {
adaptor.addChild(root_1, stream_SEMICOLON.nextNode());
}
stream_SEMICOLON.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 178, caseItem_StartIndex); }
}
return retval;
}
// $ANTLR end "caseItem"
public static class repeatStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "repeatStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1020:1: repeatStatement : REPEAT ^ statementList UNTIL expression ;
public final DelphiParser.repeatStatement_return repeatStatement() throws RecognitionException {
DelphiParser.repeatStatement_return retval = new DelphiParser.repeatStatement_return();
retval.start = input.LT(1);
int repeatStatement_StartIndex = input.index();
Object root_0 = null;
Token REPEAT710=null;
Token UNTIL712=null;
ParserRuleReturnScope statementList711 =null;
ParserRuleReturnScope expression713 =null;
Object REPEAT710_tree=null;
Object UNTIL712_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 179) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1020:30: ( REPEAT ^ statementList UNTIL expression )
// au/com/integradev/delphi/antlr/Delphi.g:1020:32: REPEAT ^ statementList UNTIL expression
{
root_0 = (Object)adaptor.nil();
REPEAT710=(Token)match(input,REPEAT,FOLLOW_REPEAT_in_repeatStatement20176); if (state.failed) return retval;
if ( state.backtracking==0 ) {
REPEAT710_tree = new RepeatStatementNodeImpl(REPEAT710) ;
root_0 = (Object)adaptor.becomeRoot(REPEAT710_tree, root_0);
}
pushFollow(FOLLOW_statementList_in_repeatStatement20182);
statementList711=statementList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statementList711.getTree());
UNTIL712=(Token)match(input,UNTIL,FOLLOW_UNTIL_in_repeatStatement20184); if (state.failed) return retval;
if ( state.backtracking==0 ) {
UNTIL712_tree = (Object)adaptor.create(UNTIL712);
adaptor.addChild(root_0, UNTIL712_tree);
}
pushFollow(FOLLOW_expression_in_repeatStatement20186);
expression713=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression713.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 179, repeatStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "repeatStatement"
public static class whileStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "whileStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1022:1: whileStatement : WHILE ^ expression DO ( statement )? ;
public final DelphiParser.whileStatement_return whileStatement() throws RecognitionException {
DelphiParser.whileStatement_return retval = new DelphiParser.whileStatement_return();
retval.start = input.LT(1);
int whileStatement_StartIndex = input.index();
Object root_0 = null;
Token WHILE714=null;
Token DO716=null;
ParserRuleReturnScope expression715 =null;
ParserRuleReturnScope statement717 =null;
Object WHILE714_tree=null;
Object DO716_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 180) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1022:30: ( WHILE ^ expression DO ( statement )? )
// au/com/integradev/delphi/antlr/Delphi.g:1022:32: WHILE ^ expression DO ( statement )?
{
root_0 = (Object)adaptor.nil();
WHILE714=(Token)match(input,WHILE,FOLLOW_WHILE_in_whileStatement20237); if (state.failed) return retval;
if ( state.backtracking==0 ) {
WHILE714_tree = new WhileStatementNodeImpl(WHILE714) ;
root_0 = (Object)adaptor.becomeRoot(WHILE714_tree, root_0);
}
pushFollow(FOLLOW_expression_in_whileStatement20243);
expression715=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression715.getTree());
DO716=(Token)match(input,DO,FOLLOW_DO_in_whileStatement20245); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DO716_tree = (Object)adaptor.create(DO716);
adaptor.addChild(root_0, DO716_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:1022:77: ( statement )?
int alt243=2;
switch ( input.LA(1) ) {
case IF:
{
int LA243_1 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case VAR:
{
int LA243_2 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case CONST:
{
int LA243_3 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case CASE:
{
int LA243_4 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case REPEAT:
{
int LA243_5 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case WHILE:
{
int LA243_6 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case FOR:
{
int LA243_7 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case WITH:
{
int LA243_8 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case TRY:
{
int LA243_9 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case RAISE:
{
int LA243_10 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case ASM:
{
int LA243_11 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case BEGIN:
{
int LA243_12 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case TkIdentifier:
{
int LA243_13 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case ON:
{
int LA243_14 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case TkIntNumber:
{
int LA243_15 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case TkHexNumber:
{
int LA243_16 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case TkBinaryNumber:
{
int LA243_17 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case NOT:
{
int LA243_18 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case PLUS:
{
int LA243_19 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case MINUS:
{
int LA243_20 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case ADDRESS:
{
int LA243_21 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case TkRealNumber:
{
int LA243_22 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case TkQuotedString:
{
int LA243_23 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case TkCharacterEscapeCode:
{
int LA243_24 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case DEREFERENCE:
{
int LA243_25 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case TkMultilineString:
{
int LA243_26 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case NIL:
{
int LA243_27 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA243_28 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case STRING:
{
int LA243_29 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case FILE:
{
int LA243_30 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case PAREN_LEFT:
{
int LA243_31 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case INHERITED:
{
int LA243_32 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case PROCEDURE:
{
int LA243_33 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case FUNCTION:
{
int LA243_34 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case GOTO:
{
int LA243_35 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA243_44 = input.LA(2);
if ( (synpred357_Delphi()) ) {
alt243=1;
}
}
break;
}
switch (alt243) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1022:77: statement
{
pushFollow(FOLLOW_statement_in_whileStatement20247);
statement717=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement717.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 180, whileStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "whileStatement"
public static class forStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "forStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1024:1: forStatement : ( FOR ^ forVar ':=' expression TO expression DO ( statement )? | FOR ^ forVar ':=' expression DOWNTO expression DO ( statement )? | FOR ^ forVar IN expression DO ( statement )? );
public final DelphiParser.forStatement_return forStatement() throws RecognitionException {
DelphiParser.forStatement_return retval = new DelphiParser.forStatement_return();
retval.start = input.LT(1);
int forStatement_StartIndex = input.index();
Object root_0 = null;
Token FOR718=null;
Token string_literal720=null;
Token TO722=null;
Token DO724=null;
Token FOR726=null;
Token string_literal728=null;
Token DOWNTO730=null;
Token DO732=null;
Token FOR734=null;
Token IN736=null;
Token DO738=null;
ParserRuleReturnScope forVar719 =null;
ParserRuleReturnScope expression721 =null;
ParserRuleReturnScope expression723 =null;
ParserRuleReturnScope statement725 =null;
ParserRuleReturnScope forVar727 =null;
ParserRuleReturnScope expression729 =null;
ParserRuleReturnScope expression731 =null;
ParserRuleReturnScope statement733 =null;
ParserRuleReturnScope forVar735 =null;
ParserRuleReturnScope expression737 =null;
ParserRuleReturnScope statement739 =null;
Object FOR718_tree=null;
Object string_literal720_tree=null;
Object TO722_tree=null;
Object DO724_tree=null;
Object FOR726_tree=null;
Object string_literal728_tree=null;
Object DOWNTO730_tree=null;
Object DO732_tree=null;
Object FOR734_tree=null;
Object IN736_tree=null;
Object DO738_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 181) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1024:30: ( FOR ^ forVar ':=' expression TO expression DO ( statement )? | FOR ^ forVar ':=' expression DOWNTO expression DO ( statement )? | FOR ^ forVar IN expression DO ( statement )? )
int alt247=3;
int LA247_0 = input.LA(1);
if ( (LA247_0==FOR) ) {
int LA247_1 = input.LA(2);
if ( (synpred359_Delphi()) ) {
alt247=1;
}
else if ( (synpred361_Delphi()) ) {
alt247=2;
}
else if ( (true) ) {
alt247=3;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 247, 0, input);
throw nvae;
}
switch (alt247) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1024:32: FOR ^ forVar ':=' expression TO expression DO ( statement )?
{
root_0 = (Object)adaptor.nil();
FOR718=(Token)match(input,FOR,FOLLOW_FOR_in_forStatement20301); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FOR718_tree = new ForToStatementNodeImpl(FOR718) ;
root_0 = (Object)adaptor.becomeRoot(FOR718_tree, root_0);
}
pushFollow(FOLLOW_forVar_in_forStatement20307);
forVar719=forVar();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, forVar719.getTree());
string_literal720=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_forStatement20309); if (state.failed) return retval;
if ( state.backtracking==0 ) {
string_literal720_tree = (Object)adaptor.create(string_literal720);
adaptor.addChild(root_0, string_literal720_tree);
}
pushFollow(FOLLOW_expression_in_forStatement20311);
expression721=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression721.getTree());
TO722=(Token)match(input,TO,FOLLOW_TO_in_forStatement20313); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TO722_tree = (Object)adaptor.create(TO722);
adaptor.addChild(root_0, TO722_tree);
}
pushFollow(FOLLOW_expression_in_forStatement20315);
expression723=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression723.getTree());
DO724=(Token)match(input,DO,FOLLOW_DO_in_forStatement20317); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DO724_tree = (Object)adaptor.create(DO724);
adaptor.addChild(root_0, DO724_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:1024:101: ( statement )?
int alt244=2;
switch ( input.LA(1) ) {
case IF:
{
int LA244_1 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case VAR:
{
int LA244_2 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case CONST:
{
int LA244_3 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case CASE:
{
int LA244_4 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case REPEAT:
{
int LA244_5 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case WHILE:
{
int LA244_6 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case FOR:
{
int LA244_7 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case WITH:
{
int LA244_8 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case TRY:
{
int LA244_9 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case RAISE:
{
int LA244_10 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case ASM:
{
int LA244_11 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case BEGIN:
{
int LA244_12 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case TkIdentifier:
{
int LA244_13 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case ON:
{
int LA244_14 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case TkIntNumber:
{
int LA244_15 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case TkHexNumber:
{
int LA244_16 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case TkBinaryNumber:
{
int LA244_17 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case NOT:
{
int LA244_18 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case PLUS:
{
int LA244_19 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case MINUS:
{
int LA244_20 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case ADDRESS:
{
int LA244_21 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case TkRealNumber:
{
int LA244_22 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case TkQuotedString:
{
int LA244_23 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case TkCharacterEscapeCode:
{
int LA244_24 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case DEREFERENCE:
{
int LA244_25 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case TkMultilineString:
{
int LA244_26 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case NIL:
{
int LA244_27 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA244_28 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case STRING:
{
int LA244_29 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case FILE:
{
int LA244_30 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case PAREN_LEFT:
{
int LA244_31 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case INHERITED:
{
int LA244_32 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case PROCEDURE:
{
int LA244_33 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case FUNCTION:
{
int LA244_34 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case GOTO:
{
int LA244_35 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA244_44 = input.LA(2);
if ( (synpred358_Delphi()) ) {
alt244=1;
}
}
break;
}
switch (alt244) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1024:101: statement
{
pushFollow(FOLLOW_statement_in_forStatement20319);
statement725=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement725.getTree());
}
break;
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1025:32: FOR ^ forVar ':=' expression DOWNTO expression DO ( statement )?
{
root_0 = (Object)adaptor.nil();
FOR726=(Token)match(input,FOR,FOLLOW_FOR_in_forStatement20353); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FOR726_tree = new ForToStatementNodeImpl(FOR726) ;
root_0 = (Object)adaptor.becomeRoot(FOR726_tree, root_0);
}
pushFollow(FOLLOW_forVar_in_forStatement20359);
forVar727=forVar();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, forVar727.getTree());
string_literal728=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_forStatement20361); if (state.failed) return retval;
if ( state.backtracking==0 ) {
string_literal728_tree = (Object)adaptor.create(string_literal728);
adaptor.addChild(root_0, string_literal728_tree);
}
pushFollow(FOLLOW_expression_in_forStatement20363);
expression729=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression729.getTree());
DOWNTO730=(Token)match(input,DOWNTO,FOLLOW_DOWNTO_in_forStatement20365); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOWNTO730_tree = (Object)adaptor.create(DOWNTO730);
adaptor.addChild(root_0, DOWNTO730_tree);
}
pushFollow(FOLLOW_expression_in_forStatement20367);
expression731=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression731.getTree());
DO732=(Token)match(input,DO,FOLLOW_DO_in_forStatement20369); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DO732_tree = (Object)adaptor.create(DO732);
adaptor.addChild(root_0, DO732_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:1025:105: ( statement )?
int alt245=2;
switch ( input.LA(1) ) {
case IF:
{
int LA245_1 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case VAR:
{
int LA245_2 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case CONST:
{
int LA245_3 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case CASE:
{
int LA245_4 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case REPEAT:
{
int LA245_5 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case WHILE:
{
int LA245_6 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case FOR:
{
int LA245_7 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case WITH:
{
int LA245_8 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case TRY:
{
int LA245_9 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case RAISE:
{
int LA245_10 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case ASM:
{
int LA245_11 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case BEGIN:
{
int LA245_12 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case TkIdentifier:
{
int LA245_13 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case ON:
{
int LA245_14 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case TkIntNumber:
{
int LA245_15 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case TkHexNumber:
{
int LA245_16 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case TkBinaryNumber:
{
int LA245_17 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case NOT:
{
int LA245_18 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case PLUS:
{
int LA245_19 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case MINUS:
{
int LA245_20 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case ADDRESS:
{
int LA245_21 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case TkRealNumber:
{
int LA245_22 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case TkQuotedString:
{
int LA245_23 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case TkCharacterEscapeCode:
{
int LA245_24 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case DEREFERENCE:
{
int LA245_25 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case TkMultilineString:
{
int LA245_26 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case NIL:
{
int LA245_27 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA245_28 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case STRING:
{
int LA245_29 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case FILE:
{
int LA245_30 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case PAREN_LEFT:
{
int LA245_31 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case INHERITED:
{
int LA245_32 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case PROCEDURE:
{
int LA245_33 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case FUNCTION:
{
int LA245_34 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case GOTO:
{
int LA245_35 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA245_44 = input.LA(2);
if ( (synpred360_Delphi()) ) {
alt245=1;
}
}
break;
}
switch (alt245) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1025:105: statement
{
pushFollow(FOLLOW_statement_in_forStatement20371);
statement733=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement733.getTree());
}
break;
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:1026:32: FOR ^ forVar IN expression DO ( statement )?
{
root_0 = (Object)adaptor.nil();
FOR734=(Token)match(input,FOR,FOLLOW_FOR_in_forStatement20405); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FOR734_tree = new ForInStatementNodeImpl(FOR734) ;
root_0 = (Object)adaptor.becomeRoot(FOR734_tree, root_0);
}
pushFollow(FOLLOW_forVar_in_forStatement20411);
forVar735=forVar();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, forVar735.getTree());
IN736=(Token)match(input,IN,FOLLOW_IN_in_forStatement20413); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IN736_tree = (Object)adaptor.create(IN736);
adaptor.addChild(root_0, IN736_tree);
}
pushFollow(FOLLOW_expression_in_forStatement20415);
expression737=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression737.getTree());
DO738=(Token)match(input,DO,FOLLOW_DO_in_forStatement20417); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DO738_tree = (Object)adaptor.create(DO738);
adaptor.addChild(root_0, DO738_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:1026:85: ( statement )?
int alt246=2;
switch ( input.LA(1) ) {
case IF:
{
int LA246_1 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case VAR:
{
int LA246_2 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case CONST:
{
int LA246_3 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case CASE:
{
int LA246_4 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case REPEAT:
{
int LA246_5 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case WHILE:
{
int LA246_6 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case FOR:
{
int LA246_7 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case WITH:
{
int LA246_8 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case TRY:
{
int LA246_9 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case RAISE:
{
int LA246_10 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case ASM:
{
int LA246_11 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case BEGIN:
{
int LA246_12 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case TkIdentifier:
{
int LA246_13 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case ON:
{
int LA246_14 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case TkIntNumber:
{
int LA246_15 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case TkHexNumber:
{
int LA246_16 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case TkBinaryNumber:
{
int LA246_17 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case NOT:
{
int LA246_18 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case PLUS:
{
int LA246_19 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case MINUS:
{
int LA246_20 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case ADDRESS:
{
int LA246_21 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case TkRealNumber:
{
int LA246_22 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case TkQuotedString:
{
int LA246_23 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case TkCharacterEscapeCode:
{
int LA246_24 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case DEREFERENCE:
{
int LA246_25 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case TkMultilineString:
{
int LA246_26 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case NIL:
{
int LA246_27 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA246_28 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case STRING:
{
int LA246_29 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case FILE:
{
int LA246_30 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case PAREN_LEFT:
{
int LA246_31 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case INHERITED:
{
int LA246_32 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case PROCEDURE:
{
int LA246_33 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case FUNCTION:
{
int LA246_34 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case GOTO:
{
int LA246_35 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA246_44 = input.LA(2);
if ( (synpred362_Delphi()) ) {
alt246=1;
}
}
break;
}
switch (alt246) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1026:85: statement
{
pushFollow(FOLLOW_statement_in_forStatement20419);
statement739=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement739.getTree());
}
break;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 181, forStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "forStatement"
public static class forVar_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "forVar"
// au/com/integradev/delphi/antlr/Delphi.g:1028:1: forVar : ( VAR nameDeclaration ( ':' varType )? -> ^( TkForLoopVar nameDeclaration ( varType )? ) | simpleNameReference -> ^( TkForLoopVar simpleNameReference ) );
public final DelphiParser.forVar_return forVar() throws RecognitionException {
DelphiParser.forVar_return retval = new DelphiParser.forVar_return();
retval.start = input.LT(1);
int forVar_StartIndex = input.index();
Object root_0 = null;
Token VAR740=null;
Token char_literal742=null;
ParserRuleReturnScope nameDeclaration741 =null;
ParserRuleReturnScope varType743 =null;
ParserRuleReturnScope simpleNameReference744 =null;
Object VAR740_tree=null;
Object char_literal742_tree=null;
RewriteRuleTokenStream stream_VAR=new RewriteRuleTokenStream(adaptor,"token VAR");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_varType=new RewriteRuleSubtreeStream(adaptor,"rule varType");
RewriteRuleSubtreeStream stream_simpleNameReference=new RewriteRuleSubtreeStream(adaptor,"rule simpleNameReference");
RewriteRuleSubtreeStream stream_nameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclaration");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 182) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1028:30: ( VAR nameDeclaration ( ':' varType )? -> ^( TkForLoopVar nameDeclaration ( varType )? ) | simpleNameReference -> ^( TkForLoopVar simpleNameReference ) )
int alt249=2;
int LA249_0 = input.LA(1);
if ( (LA249_0==VAR) ) {
alt249=1;
}
else if ( ((LA249_0 >= ABSOLUTE && LA249_0 <= ABSTRACT)||LA249_0==ALIGN||(LA249_0 >= ASSEMBLER && LA249_0 <= ASSEMBLY)||(LA249_0 >= AT && LA249_0 <= AUTOMATED)||LA249_0==CDECL||LA249_0==CONTAINS||(LA249_0 >= DEFAULT && LA249_0 <= DEPRECATED)||LA249_0==DISPID||LA249_0==DYNAMIC||(LA249_0 >= EXPERIMENTAL && LA249_0 <= EXPORT)||LA249_0==EXTERNAL||LA249_0==FAR||LA249_0==FINAL||LA249_0==FORWARD||LA249_0==HELPER||LA249_0==IMPLEMENTS||LA249_0==INDEX||LA249_0==LABEL||LA249_0==LOCAL||LA249_0==MESSAGE||(LA249_0 >= NAME && LA249_0 <= NEAR)||LA249_0==NODEFAULT||(LA249_0 >= ON && LA249_0 <= OPERATOR)||(LA249_0 >= OUT && LA249_0 <= OVERRIDE)||LA249_0==PACKAGE||(LA249_0 >= PASCAL && LA249_0 <= PLATFORM)||LA249_0==PRIVATE||(LA249_0 >= PROTECTED && LA249_0 <= PUBLISHED)||(LA249_0 >= READ && LA249_0 <= READONLY)||(LA249_0 >= REFERENCE && LA249_0 <= REINTRODUCE)||(LA249_0 >= REQUIRES && LA249_0 <= RESIDENT)||(LA249_0 >= SAFECALL && LA249_0 <= SEALED)||(LA249_0 >= STATIC && LA249_0 <= STRICT)||LA249_0==TkIdentifier||LA249_0==UNSAFE||(LA249_0 >= VARARGS && LA249_0 <= VIRTUAL)||LA249_0==WINAPI||(LA249_0 >= WRITE && LA249_0 <= WRITEONLY)) ) {
alt249=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 249, 0, input);
throw nvae;
}
switch (alt249) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1028:32: VAR nameDeclaration ( ':' varType )?
{
VAR740=(Token)match(input,VAR,FOLLOW_VAR_in_forVar20479); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_VAR.add(VAR740);
pushFollow(FOLLOW_nameDeclaration_in_forVar20481);
nameDeclaration741=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclaration.add(nameDeclaration741.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1028:52: ( ':' varType )?
int alt248=2;
int LA248_0 = input.LA(1);
if ( (LA248_0==COLON) ) {
alt248=1;
}
switch (alt248) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1028:53: ':' varType
{
char_literal742=(Token)match(input,COLON,FOLLOW_COLON_in_forVar20484); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal742);
pushFollow(FOLLOW_varType_in_forVar20486);
varType743=varType();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_varType.add(varType743.getTree());
}
break;
}
// AST REWRITE
// elements: nameDeclaration, varType
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1028:67: -> ^( TkForLoopVar nameDeclaration ( varType )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:1028:70: ^( TkForLoopVar nameDeclaration ( varType )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ForLoopVarDeclarationNodeImpl(TkForLoopVar), root_1);
adaptor.addChild(root_1, stream_nameDeclaration.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1028:132: ( varType )?
if ( stream_varType.hasNext() ) {
adaptor.addChild(root_1, stream_varType.nextTree());
}
stream_varType.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1029:32: simpleNameReference
{
pushFollow(FOLLOW_simpleNameReference_in_forVar20535);
simpleNameReference744=simpleNameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_simpleNameReference.add(simpleNameReference744.getTree());
// AST REWRITE
// elements: simpleNameReference
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1029:52: -> ^( TkForLoopVar simpleNameReference )
{
// au/com/integradev/delphi/antlr/Delphi.g:1029:55: ^( TkForLoopVar simpleNameReference )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ForLoopVarReferenceNodeImpl(TkForLoopVar), root_1);
adaptor.addChild(root_1, stream_simpleNameReference.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 182, forVar_StartIndex); }
}
return retval;
}
// $ANTLR end "forVar"
public static class withStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "withStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1031:1: withStatement : WITH ^ expressionList DO ( statement )? ;
public final DelphiParser.withStatement_return withStatement() throws RecognitionException {
DelphiParser.withStatement_return retval = new DelphiParser.withStatement_return();
retval.start = input.LT(1);
int withStatement_StartIndex = input.index();
Object root_0 = null;
Token WITH745=null;
Token DO747=null;
ParserRuleReturnScope expressionList746 =null;
ParserRuleReturnScope statement748 =null;
Object WITH745_tree=null;
Object DO747_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 183) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1031:30: ( WITH ^ expressionList DO ( statement )? )
// au/com/integradev/delphi/antlr/Delphi.g:1031:32: WITH ^ expressionList DO ( statement )?
{
root_0 = (Object)adaptor.nil();
WITH745=(Token)match(input,WITH,FOLLOW_WITH_in_withStatement20598); if (state.failed) return retval;
if ( state.backtracking==0 ) {
WITH745_tree = new WithStatementNodeImpl(WITH745) ;
root_0 = (Object)adaptor.becomeRoot(WITH745_tree, root_0);
}
pushFollow(FOLLOW_expressionList_in_withStatement20604);
expressionList746=expressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expressionList746.getTree());
DO747=(Token)match(input,DO,FOLLOW_DO_in_withStatement20606); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DO747_tree = (Object)adaptor.create(DO747);
adaptor.addChild(root_0, DO747_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:1031:79: ( statement )?
int alt250=2;
switch ( input.LA(1) ) {
case IF:
{
int LA250_1 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case VAR:
{
int LA250_2 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case CONST:
{
int LA250_3 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case CASE:
{
int LA250_4 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case REPEAT:
{
int LA250_5 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case WHILE:
{
int LA250_6 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case FOR:
{
int LA250_7 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case WITH:
{
int LA250_8 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case TRY:
{
int LA250_9 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case RAISE:
{
int LA250_10 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case ASM:
{
int LA250_11 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case BEGIN:
{
int LA250_12 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case TkIdentifier:
{
int LA250_13 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case ON:
{
int LA250_14 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case TkIntNumber:
{
int LA250_15 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case TkHexNumber:
{
int LA250_16 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case TkBinaryNumber:
{
int LA250_17 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case NOT:
{
int LA250_18 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case PLUS:
{
int LA250_19 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case MINUS:
{
int LA250_20 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case ADDRESS:
{
int LA250_21 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case TkRealNumber:
{
int LA250_22 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case TkQuotedString:
{
int LA250_23 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case TkCharacterEscapeCode:
{
int LA250_24 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case DEREFERENCE:
{
int LA250_25 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case TkMultilineString:
{
int LA250_26 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case NIL:
{
int LA250_27 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA250_28 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case STRING:
{
int LA250_29 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case FILE:
{
int LA250_30 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case PAREN_LEFT:
{
int LA250_31 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case INHERITED:
{
int LA250_32 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case PROCEDURE:
{
int LA250_33 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case FUNCTION:
{
int LA250_34 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case GOTO:
{
int LA250_35 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA250_44 = input.LA(2);
if ( (synpred365_Delphi()) ) {
alt250=1;
}
}
break;
}
switch (alt250) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1031:79: statement
{
pushFollow(FOLLOW_statement_in_withStatement20608);
statement748=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement748.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 183, withStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "withStatement"
public static class compoundStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "compoundStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1033:1: compoundStatement : BEGIN ^ statementList END ;
public final DelphiParser.compoundStatement_return compoundStatement() throws RecognitionException {
DelphiParser.compoundStatement_return retval = new DelphiParser.compoundStatement_return();
retval.start = input.LT(1);
int compoundStatement_StartIndex = input.index();
Object root_0 = null;
Token BEGIN749=null;
Token END751=null;
ParserRuleReturnScope statementList750 =null;
Object BEGIN749_tree=null;
Object END751_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 184) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1033:30: ( BEGIN ^ statementList END )
// au/com/integradev/delphi/antlr/Delphi.g:1033:32: BEGIN ^ statementList END
{
root_0 = (Object)adaptor.nil();
BEGIN749=(Token)match(input,BEGIN,FOLLOW_BEGIN_in_compoundStatement20657); if (state.failed) return retval;
if ( state.backtracking==0 ) {
BEGIN749_tree = new CompoundStatementNodeImpl(BEGIN749) ;
root_0 = (Object)adaptor.becomeRoot(BEGIN749_tree, root_0);
}
pushFollow(FOLLOW_statementList_in_compoundStatement20663);
statementList750=statementList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statementList750.getTree());
END751=(Token)match(input,END,FOLLOW_END_in_compoundStatement20665); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END751_tree = (Object)adaptor.create(END751);
adaptor.addChild(root_0, END751_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 184, compoundStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "compoundStatement"
public static class statementList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "statementList"
// au/com/integradev/delphi/antlr/Delphi.g:1035:1: statementList : ( delimitedStatements )? -> ^( TkStatementList ( delimitedStatements )? ) ;
public final DelphiParser.statementList_return statementList() throws RecognitionException {
DelphiParser.statementList_return retval = new DelphiParser.statementList_return();
retval.start = input.LT(1);
int statementList_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope delimitedStatements752 =null;
RewriteRuleSubtreeStream stream_delimitedStatements=new RewriteRuleSubtreeStream(adaptor,"rule delimitedStatements");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 185) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1035:30: ( ( delimitedStatements )? -> ^( TkStatementList ( delimitedStatements )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:1035:32: ( delimitedStatements )?
{
// au/com/integradev/delphi/antlr/Delphi.g:1035:32: ( delimitedStatements )?
int alt251=2;
int LA251_0 = input.LA(1);
if ( ((LA251_0 >= ABSOLUTE && LA251_0 <= ALIGN)||(LA251_0 >= ASM && LA251_0 <= ASSEMBLY)||(LA251_0 >= AT && LA251_0 <= AUTOMATED)||LA251_0==BEGIN||(LA251_0 >= CASE && LA251_0 <= CDECL)||LA251_0==CONST||LA251_0==CONTAINS||(LA251_0 >= DEFAULT && LA251_0 <= DEREFERENCE)||LA251_0==DISPID||LA251_0==DYNAMIC||(LA251_0 >= EXPERIMENTAL && LA251_0 <= EXPORT)||LA251_0==EXTERNAL||(LA251_0 >= FAR && LA251_0 <= FINAL)||(LA251_0 >= FOR && LA251_0 <= FUNCTION)||LA251_0==GOTO||LA251_0==HELPER||LA251_0==IF||LA251_0==IMPLEMENTS||(LA251_0 >= INDEX && LA251_0 <= INHERITED)||LA251_0==LABEL||LA251_0==LOCAL||(LA251_0 >= MESSAGE && LA251_0 <= MINUS)||(LA251_0 >= NAME && LA251_0 <= NOT)||(LA251_0 >= ON && LA251_0 <= OPERATOR)||(LA251_0 >= OUT && LA251_0 <= OVERRIDE)||LA251_0==PACKAGE||LA251_0==PAREN_BRACKET_LEFT||LA251_0==PAREN_LEFT||(LA251_0 >= PASCAL && LA251_0 <= PROCEDURE)||(LA251_0 >= PROTECTED && LA251_0 <= PUBLISHED)||(LA251_0 >= RAISE && LA251_0 <= READONLY)||(LA251_0 >= REFERENCE && LA251_0 <= RESIDENT)||(LA251_0 >= SAFECALL && LA251_0 <= SEMICOLON)||LA251_0==SQUARE_BRACKET_LEFT||(LA251_0 >= STATIC && LA251_0 <= STRING)||LA251_0==TRY||LA251_0==TkBinaryNumber||LA251_0==TkCharacterEscapeCode||(LA251_0 >= TkHexNumber && LA251_0 <= TkIntNumber)||LA251_0==TkMultilineString||(LA251_0 >= TkQuotedString && LA251_0 <= TkRealNumber)||LA251_0==UNSAFE||(LA251_0 >= VAR && LA251_0 <= VIRTUAL)||LA251_0==WHILE||(LA251_0 >= WINAPI && LA251_0 <= WRITEONLY)) ) {
alt251=1;
}
switch (alt251) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1035:32: delimitedStatements
{
pushFollow(FOLLOW_delimitedStatements_in_statementList20717);
delimitedStatements752=delimitedStatements();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_delimitedStatements.add(delimitedStatements752.getTree());
}
break;
}
// AST REWRITE
// elements: delimitedStatements
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1035:53: -> ^( TkStatementList ( delimitedStatements )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:1035:56: ^( TkStatementList ( delimitedStatements )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new StatementListNodeImpl(TkStatementList), root_1);
// au/com/integradev/delphi/antlr/Delphi.g:1035:97: ( delimitedStatements )?
if ( stream_delimitedStatements.hasNext() ) {
adaptor.addChild(root_1, stream_delimitedStatements.nextTree());
}
stream_delimitedStatements.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 185, statementList_StartIndex); }
}
return retval;
}
// $ANTLR end "statementList"
public static class delimitedStatements_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "delimitedStatements"
// au/com/integradev/delphi/antlr/Delphi.g:1037:1: delimitedStatements : ( statement | ';' )+ ;
public final DelphiParser.delimitedStatements_return delimitedStatements() throws RecognitionException {
DelphiParser.delimitedStatements_return retval = new DelphiParser.delimitedStatements_return();
retval.start = input.LT(1);
int delimitedStatements_StartIndex = input.index();
Object root_0 = null;
Token char_literal754=null;
ParserRuleReturnScope statement753 =null;
Object char_literal754_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 186) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1037:30: ( ( statement | ';' )+ )
// au/com/integradev/delphi/antlr/Delphi.g:1037:32: ( statement | ';' )+
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:1037:32: ( statement | ';' )+
int cnt252=0;
loop252:
while (true) {
int alt252=3;
int LA252_0 = input.LA(1);
if ( ((LA252_0 >= ABSOLUTE && LA252_0 <= ALIGN)||(LA252_0 >= ASM && LA252_0 <= ASSEMBLY)||(LA252_0 >= AT && LA252_0 <= AUTOMATED)||LA252_0==BEGIN||(LA252_0 >= CASE && LA252_0 <= CDECL)||LA252_0==CONST||LA252_0==CONTAINS||(LA252_0 >= DEFAULT && LA252_0 <= DEREFERENCE)||LA252_0==DISPID||LA252_0==DYNAMIC||(LA252_0 >= EXPERIMENTAL && LA252_0 <= EXPORT)||LA252_0==EXTERNAL||(LA252_0 >= FAR && LA252_0 <= FINAL)||(LA252_0 >= FOR && LA252_0 <= FUNCTION)||LA252_0==GOTO||LA252_0==HELPER||LA252_0==IF||LA252_0==IMPLEMENTS||(LA252_0 >= INDEX && LA252_0 <= INHERITED)||LA252_0==LABEL||LA252_0==LOCAL||(LA252_0 >= MESSAGE && LA252_0 <= MINUS)||(LA252_0 >= NAME && LA252_0 <= NOT)||(LA252_0 >= ON && LA252_0 <= OPERATOR)||(LA252_0 >= OUT && LA252_0 <= OVERRIDE)||LA252_0==PACKAGE||LA252_0==PAREN_BRACKET_LEFT||LA252_0==PAREN_LEFT||(LA252_0 >= PASCAL && LA252_0 <= PROCEDURE)||(LA252_0 >= PROTECTED && LA252_0 <= PUBLISHED)||(LA252_0 >= RAISE && LA252_0 <= READONLY)||(LA252_0 >= REFERENCE && LA252_0 <= RESIDENT)||(LA252_0 >= SAFECALL && LA252_0 <= SEALED)||LA252_0==SQUARE_BRACKET_LEFT||(LA252_0 >= STATIC && LA252_0 <= STRING)||LA252_0==TRY||LA252_0==TkBinaryNumber||LA252_0==TkCharacterEscapeCode||(LA252_0 >= TkHexNumber && LA252_0 <= TkIntNumber)||LA252_0==TkMultilineString||(LA252_0 >= TkQuotedString && LA252_0 <= TkRealNumber)||LA252_0==UNSAFE||(LA252_0 >= VAR && LA252_0 <= VIRTUAL)||LA252_0==WHILE||(LA252_0 >= WINAPI && LA252_0 <= WRITEONLY)) ) {
alt252=1;
}
else if ( (LA252_0==SEMICOLON) ) {
alt252=2;
}
switch (alt252) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1037:33: statement
{
pushFollow(FOLLOW_statement_in_delimitedStatements20777);
statement753=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement753.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1037:45: ';'
{
char_literal754=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_delimitedStatements20781); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal754_tree = (Object)adaptor.create(char_literal754);
adaptor.addChild(root_0, char_literal754_tree);
}
}
break;
default :
if ( cnt252 >= 1 ) break loop252;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(252, input);
throw eee;
}
cnt252++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 186, delimitedStatements_StartIndex); }
}
return retval;
}
// $ANTLR end "delimitedStatements"
public static class labelStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "labelStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1039:1: labelStatement :{...}? => labelNameReference ':' ( statement )? -> ^( TkLabelStatement labelNameReference ':' ( statement )? ) ;
public final DelphiParser.labelStatement_return labelStatement() throws RecognitionException {
DelphiParser.labelStatement_return retval = new DelphiParser.labelStatement_return();
retval.start = input.LT(1);
int labelStatement_StartIndex = input.index();
Object root_0 = null;
Token char_literal756=null;
ParserRuleReturnScope labelNameReference755 =null;
ParserRuleReturnScope statement757 =null;
Object char_literal756_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_labelNameReference=new RewriteRuleSubtreeStream(adaptor,"rule labelNameReference");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 187) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1039:30: ({...}? => labelNameReference ':' ( statement )? -> ^( TkLabelStatement labelNameReference ':' ( statement )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:1039:32: {...}? => labelNameReference ':' ( statement )?
{
if ( !((input.LA(2) == COLON)) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "labelStatement", "input.LA(2) == COLON");
}
pushFollow(FOLLOW_labelNameReference_in_labelStatement20838);
labelNameReference755=labelNameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_labelNameReference.add(labelNameReference755.getTree());
char_literal756=(Token)match(input,COLON,FOLLOW_COLON_in_labelStatement20840); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(char_literal756);
// au/com/integradev/delphi/antlr/Delphi.g:1039:82: ( statement )?
int alt253=2;
switch ( input.LA(1) ) {
case IF:
{
int LA253_1 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case VAR:
{
int LA253_2 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case CONST:
{
int LA253_3 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case CASE:
{
int LA253_4 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case REPEAT:
{
int LA253_5 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case WHILE:
{
int LA253_6 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case FOR:
{
int LA253_7 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case WITH:
{
int LA253_8 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case TRY:
{
int LA253_9 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case RAISE:
{
int LA253_10 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case ASM:
{
int LA253_11 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case BEGIN:
{
int LA253_12 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case TkIdentifier:
{
int LA253_13 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case ON:
{
int LA253_14 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case TkIntNumber:
{
int LA253_15 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case TkHexNumber:
{
int LA253_16 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case TkBinaryNumber:
{
int LA253_17 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case NOT:
{
int LA253_18 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case PLUS:
{
int LA253_19 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case MINUS:
{
int LA253_20 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case ADDRESS:
{
int LA253_21 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case TkRealNumber:
{
int LA253_22 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case TkQuotedString:
{
int LA253_23 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case TkCharacterEscapeCode:
{
int LA253_24 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case DEREFERENCE:
{
int LA253_25 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case TkMultilineString:
{
int LA253_26 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case NIL:
{
int LA253_27 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA253_28 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case STRING:
{
int LA253_29 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case FILE:
{
int LA253_30 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case PAREN_LEFT:
{
int LA253_31 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case INHERITED:
{
int LA253_32 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case PROCEDURE:
{
int LA253_33 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case FUNCTION:
{
int LA253_34 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case GOTO:
{
int LA253_35 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA253_44 = input.LA(2);
if ( (synpred369_Delphi()) ) {
alt253=1;
}
}
break;
}
switch (alt253) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1039:82: statement
{
pushFollow(FOLLOW_statement_in_labelStatement20842);
statement757=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement757.getTree());
}
break;
}
// AST REWRITE
// elements: statement, labelNameReference, COLON
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1040:30: -> ^( TkLabelStatement labelNameReference ':' ( statement )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:1040:33: ^( TkLabelStatement labelNameReference ':' ( statement )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new LabelStatementNodeImpl(TkLabelStatement), root_1);
adaptor.addChild(root_1, stream_labelNameReference.nextTree());
adaptor.addChild(root_1, stream_COLON.nextNode());
// au/com/integradev/delphi/antlr/Delphi.g:1040:99: ( statement )?
if ( stream_statement.hasNext() ) {
adaptor.addChild(root_1, stream_statement.nextTree());
}
stream_statement.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 187, labelStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "labelStatement"
public static class assignmentStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assignmentStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1042:1: assignmentStatement : expression ':=' ^ expression ;
public final DelphiParser.assignmentStatement_return assignmentStatement() throws RecognitionException {
DelphiParser.assignmentStatement_return retval = new DelphiParser.assignmentStatement_return();
retval.start = input.LT(1);
int assignmentStatement_StartIndex = input.index();
Object root_0 = null;
Token string_literal759=null;
ParserRuleReturnScope expression758 =null;
ParserRuleReturnScope expression760 =null;
Object string_literal759_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 188) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1042:30: ( expression ':=' ^ expression )
// au/com/integradev/delphi/antlr/Delphi.g:1042:32: expression ':=' ^ expression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expression_in_assignmentStatement20934);
expression758=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression758.getTree());
string_literal759=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_assignmentStatement20936); if (state.failed) return retval;
if ( state.backtracking==0 ) {
string_literal759_tree = new AssignmentStatementNodeImpl(string_literal759) ;
root_0 = (Object)adaptor.becomeRoot(string_literal759_tree, root_0);
}
pushFollow(FOLLOW_expression_in_assignmentStatement20942);
expression760=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression760.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 188, assignmentStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "assignmentStatement"
public static class expressionStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "expressionStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1044:1: expressionStatement : expression -> ^( TkExpressionStatement expression ) ;
public final DelphiParser.expressionStatement_return expressionStatement() throws RecognitionException {
DelphiParser.expressionStatement_return retval = new DelphiParser.expressionStatement_return();
retval.start = input.LT(1);
int expressionStatement_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope expression761 =null;
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 189) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1044:30: ( expression -> ^( TkExpressionStatement expression ) )
// au/com/integradev/delphi/antlr/Delphi.g:1044:32: expression
{
pushFollow(FOLLOW_expression_in_expressionStatement20988);
expression761=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression761.getTree());
// AST REWRITE
// elements: expression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1044:43: -> ^( TkExpressionStatement expression )
{
// au/com/integradev/delphi/antlr/Delphi.g:1044:46: ^( TkExpressionStatement expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new ExpressionStatementNodeImpl(TkExpressionStatement), root_1);
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 189, expressionStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "expressionStatement"
public static class gotoStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "gotoStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1046:1: gotoStatement : GOTO ^ labelNameReference ;
public final DelphiParser.gotoStatement_return gotoStatement() throws RecognitionException {
DelphiParser.gotoStatement_return retval = new DelphiParser.gotoStatement_return();
retval.start = input.LT(1);
int gotoStatement_StartIndex = input.index();
Object root_0 = null;
Token GOTO762=null;
ParserRuleReturnScope labelNameReference763 =null;
Object GOTO762_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 190) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1046:30: ( GOTO ^ labelNameReference )
// au/com/integradev/delphi/antlr/Delphi.g:1046:32: GOTO ^ labelNameReference
{
root_0 = (Object)adaptor.nil();
GOTO762=(Token)match(input,GOTO,FOLLOW_GOTO_in_gotoStatement21051); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GOTO762_tree = new GotoStatementNodeImpl(GOTO762) ;
root_0 = (Object)adaptor.becomeRoot(GOTO762_tree, root_0);
}
pushFollow(FOLLOW_labelNameReference_in_gotoStatement21057);
labelNameReference763=labelNameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, labelNameReference763.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 190, gotoStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "gotoStatement"
public static class tryStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "tryStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1048:1: tryStatement : TRY ^ statementList ( exceptBlock | finallyBlock ) END ;
public final DelphiParser.tryStatement_return tryStatement() throws RecognitionException {
DelphiParser.tryStatement_return retval = new DelphiParser.tryStatement_return();
retval.start = input.LT(1);
int tryStatement_StartIndex = input.index();
Object root_0 = null;
Token TRY764=null;
Token END768=null;
ParserRuleReturnScope statementList765 =null;
ParserRuleReturnScope exceptBlock766 =null;
ParserRuleReturnScope finallyBlock767 =null;
Object TRY764_tree=null;
Object END768_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 191) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1048:30: ( TRY ^ statementList ( exceptBlock | finallyBlock ) END )
// au/com/integradev/delphi/antlr/Delphi.g:1048:32: TRY ^ statementList ( exceptBlock | finallyBlock ) END
{
root_0 = (Object)adaptor.nil();
TRY764=(Token)match(input,TRY,FOLLOW_TRY_in_tryStatement21110); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TRY764_tree = new TryStatementNodeImpl(TRY764) ;
root_0 = (Object)adaptor.becomeRoot(TRY764_tree, root_0);
}
pushFollow(FOLLOW_statementList_in_tryStatement21116);
statementList765=statementList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statementList765.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1048:73: ( exceptBlock | finallyBlock )
int alt254=2;
int LA254_0 = input.LA(1);
if ( (LA254_0==EXCEPT) ) {
alt254=1;
}
else if ( (LA254_0==FINALLY) ) {
alt254=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 254, 0, input);
throw nvae;
}
switch (alt254) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1048:74: exceptBlock
{
pushFollow(FOLLOW_exceptBlock_in_tryStatement21119);
exceptBlock766=exceptBlock();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, exceptBlock766.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1048:88: finallyBlock
{
pushFollow(FOLLOW_finallyBlock_in_tryStatement21123);
finallyBlock767=finallyBlock();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, finallyBlock767.getTree());
}
break;
}
END768=(Token)match(input,END,FOLLOW_END_in_tryStatement21126); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END768_tree = (Object)adaptor.create(END768);
adaptor.addChild(root_0, END768_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 191, tryStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "tryStatement"
public static class exceptBlock_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "exceptBlock"
// au/com/integradev/delphi/antlr/Delphi.g:1050:1: exceptBlock : EXCEPT ^ handlerList ;
public final DelphiParser.exceptBlock_return exceptBlock() throws RecognitionException {
DelphiParser.exceptBlock_return retval = new DelphiParser.exceptBlock_return();
retval.start = input.LT(1);
int exceptBlock_StartIndex = input.index();
Object root_0 = null;
Token EXCEPT769=null;
ParserRuleReturnScope handlerList770 =null;
Object EXCEPT769_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 192) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1050:30: ( EXCEPT ^ handlerList )
// au/com/integradev/delphi/antlr/Delphi.g:1050:32: EXCEPT ^ handlerList
{
root_0 = (Object)adaptor.nil();
EXCEPT769=(Token)match(input,EXCEPT,FOLLOW_EXCEPT_in_exceptBlock21180); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXCEPT769_tree = new ExceptBlockNodeImpl(EXCEPT769) ;
root_0 = (Object)adaptor.becomeRoot(EXCEPT769_tree, root_0);
}
pushFollow(FOLLOW_handlerList_in_exceptBlock21186);
handlerList770=handlerList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, handlerList770.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 192, exceptBlock_StartIndex); }
}
return retval;
}
// $ANTLR end "exceptBlock"
public static class finallyBlock_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "finallyBlock"
// au/com/integradev/delphi/antlr/Delphi.g:1052:1: finallyBlock : FINALLY ^ statementList ;
public final DelphiParser.finallyBlock_return finallyBlock() throws RecognitionException {
DelphiParser.finallyBlock_return retval = new DelphiParser.finallyBlock_return();
retval.start = input.LT(1);
int finallyBlock_StartIndex = input.index();
Object root_0 = null;
Token FINALLY771=null;
ParserRuleReturnScope statementList772 =null;
Object FINALLY771_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 193) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1052:30: ( FINALLY ^ statementList )
// au/com/integradev/delphi/antlr/Delphi.g:1052:32: FINALLY ^ statementList
{
root_0 = (Object)adaptor.nil();
FINALLY771=(Token)match(input,FINALLY,FOLLOW_FINALLY_in_finallyBlock21239); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FINALLY771_tree = new FinallyBlockNodeImpl(FINALLY771) ;
root_0 = (Object)adaptor.becomeRoot(FINALLY771_tree, root_0);
}
pushFollow(FOLLOW_statementList_in_finallyBlock21245);
statementList772=statementList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statementList772.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 193, finallyBlock_StartIndex); }
}
return retval;
}
// $ANTLR end "finallyBlock"
public static class handlerList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "handlerList"
// au/com/integradev/delphi/antlr/Delphi.g:1054:1: handlerList : ( ( handler )+ ( elseBlock )? | statementList );
public final DelphiParser.handlerList_return handlerList() throws RecognitionException {
DelphiParser.handlerList_return retval = new DelphiParser.handlerList_return();
retval.start = input.LT(1);
int handlerList_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope handler773 =null;
ParserRuleReturnScope elseBlock774 =null;
ParserRuleReturnScope statementList775 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 194) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1054:30: ( ( handler )+ ( elseBlock )? | statementList )
int alt257=2;
int LA257_0 = input.LA(1);
if ( (LA257_0==ON) ) {
int LA257_1 = input.LA(2);
if ( (synpred373_Delphi()) ) {
alt257=1;
}
else if ( (true) ) {
alt257=2;
}
}
else if ( (LA257_0==EOF||(LA257_0 >= ABSOLUTE && LA257_0 <= ALIGN)||(LA257_0 >= ASM && LA257_0 <= ASSEMBLY)||(LA257_0 >= AT && LA257_0 <= AUTOMATED)||LA257_0==BEGIN||(LA257_0 >= CASE && LA257_0 <= CDECL)||LA257_0==CONST||LA257_0==CONTAINS||(LA257_0 >= DEFAULT && LA257_0 <= DEREFERENCE)||LA257_0==DISPID||LA257_0==DYNAMIC||LA257_0==END||(LA257_0 >= EXPERIMENTAL && LA257_0 <= EXPORT)||LA257_0==EXTERNAL||(LA257_0 >= FAR && LA257_0 <= FINAL)||(LA257_0 >= FOR && LA257_0 <= FUNCTION)||LA257_0==GOTO||LA257_0==HELPER||LA257_0==IF||LA257_0==IMPLEMENTS||(LA257_0 >= INDEX && LA257_0 <= INHERITED)||LA257_0==LABEL||LA257_0==LOCAL||(LA257_0 >= MESSAGE && LA257_0 <= MINUS)||(LA257_0 >= NAME && LA257_0 <= NOT)||LA257_0==OPERATOR||(LA257_0 >= OUT && LA257_0 <= OVERRIDE)||LA257_0==PACKAGE||LA257_0==PAREN_BRACKET_LEFT||LA257_0==PAREN_LEFT||(LA257_0 >= PASCAL && LA257_0 <= PROCEDURE)||(LA257_0 >= PROTECTED && LA257_0 <= PUBLISHED)||(LA257_0 >= RAISE && LA257_0 <= READONLY)||(LA257_0 >= REFERENCE && LA257_0 <= RESIDENT)||(LA257_0 >= SAFECALL && LA257_0 <= SEMICOLON)||LA257_0==SQUARE_BRACKET_LEFT||(LA257_0 >= STATIC && LA257_0 <= STRING)||LA257_0==TRY||LA257_0==TkBinaryNumber||LA257_0==TkCharacterEscapeCode||(LA257_0 >= TkHexNumber && LA257_0 <= TkIntNumber)||LA257_0==TkMultilineString||(LA257_0 >= TkQuotedString && LA257_0 <= TkRealNumber)||LA257_0==UNSAFE||(LA257_0 >= VAR && LA257_0 <= VIRTUAL)||LA257_0==WHILE||(LA257_0 >= WINAPI && LA257_0 <= WRITEONLY)) ) {
alt257=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 257, 0, input);
throw nvae;
}
switch (alt257) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1054:32: ( handler )+ ( elseBlock )?
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:1054:32: ( handler )+
int cnt255=0;
loop255:
while (true) {
int alt255=2;
int LA255_0 = input.LA(1);
if ( (LA255_0==ON) ) {
alt255=1;
}
switch (alt255) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1054:32: handler
{
pushFollow(FOLLOW_handler_in_handlerList21299);
handler773=handler();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, handler773.getTree());
}
break;
default :
if ( cnt255 >= 1 ) break loop255;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(255, input);
throw eee;
}
cnt255++;
}
// au/com/integradev/delphi/antlr/Delphi.g:1054:41: ( elseBlock )?
int alt256=2;
int LA256_0 = input.LA(1);
if ( (LA256_0==ELSE) ) {
alt256=1;
}
switch (alt256) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1054:41: elseBlock
{
pushFollow(FOLLOW_elseBlock_in_handlerList21302);
elseBlock774=elseBlock();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, elseBlock774.getTree());
}
break;
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1055:32: statementList
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statementList_in_handlerList21336);
statementList775=statementList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statementList775.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 194, handlerList_StartIndex); }
}
return retval;
}
// $ANTLR end "handlerList"
public static class handler_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "handler"
// au/com/integradev/delphi/antlr/Delphi.g:1057:1: handler : ON ^ ( nameDeclaration ':' !)? typeReference DO ( statement )? ( ';' )? ;
public final DelphiParser.handler_return handler() throws RecognitionException {
DelphiParser.handler_return retval = new DelphiParser.handler_return();
retval.start = input.LT(1);
int handler_StartIndex = input.index();
Object root_0 = null;
Token ON776=null;
Token char_literal778=null;
Token DO780=null;
Token char_literal782=null;
ParserRuleReturnScope nameDeclaration777 =null;
ParserRuleReturnScope typeReference779 =null;
ParserRuleReturnScope statement781 =null;
Object ON776_tree=null;
Object char_literal778_tree=null;
Object DO780_tree=null;
Object char_literal782_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 195) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1057:30: ( ON ^ ( nameDeclaration ':' !)? typeReference DO ( statement )? ( ';' )? )
// au/com/integradev/delphi/antlr/Delphi.g:1057:32: ON ^ ( nameDeclaration ':' !)? typeReference DO ( statement )? ( ';' )?
{
root_0 = (Object)adaptor.nil();
ON776=(Token)match(input,ON,FOLLOW_ON_in_handler21394); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ON776_tree = new ExceptItemNodeImpl(ON776) ;
root_0 = (Object)adaptor.becomeRoot(ON776_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:1057:56: ( nameDeclaration ':' !)?
int alt258=2;
int LA258_0 = input.LA(1);
if ( (LA258_0==TkIdentifier) ) {
int LA258_1 = input.LA(2);
if ( (LA258_1==COLON) ) {
alt258=1;
}
}
else if ( ((LA258_0 >= ABSOLUTE && LA258_0 <= ABSTRACT)||LA258_0==ALIGN||(LA258_0 >= ASSEMBLER && LA258_0 <= ASSEMBLY)||(LA258_0 >= AT && LA258_0 <= AUTOMATED)||LA258_0==CDECL||LA258_0==CONTAINS||(LA258_0 >= DEFAULT && LA258_0 <= DEPRECATED)||LA258_0==DISPID||LA258_0==DYNAMIC||(LA258_0 >= EXPERIMENTAL && LA258_0 <= EXPORT)||LA258_0==EXTERNAL||LA258_0==FAR||LA258_0==FINAL||LA258_0==FORWARD||LA258_0==HELPER||LA258_0==IMPLEMENTS||LA258_0==INDEX||LA258_0==LABEL||LA258_0==LOCAL||LA258_0==MESSAGE||(LA258_0 >= NAME && LA258_0 <= NEAR)||LA258_0==NODEFAULT||(LA258_0 >= ON && LA258_0 <= OPERATOR)||(LA258_0 >= OUT && LA258_0 <= OVERRIDE)||LA258_0==PACKAGE||(LA258_0 >= PASCAL && LA258_0 <= PLATFORM)||LA258_0==PRIVATE||(LA258_0 >= PROTECTED && LA258_0 <= PUBLISHED)||(LA258_0 >= READ && LA258_0 <= READONLY)||(LA258_0 >= REFERENCE && LA258_0 <= REINTRODUCE)||(LA258_0 >= REQUIRES && LA258_0 <= RESIDENT)||(LA258_0 >= SAFECALL && LA258_0 <= SEALED)||(LA258_0 >= STATIC && LA258_0 <= STRICT)||LA258_0==UNSAFE||(LA258_0 >= VARARGS && LA258_0 <= VIRTUAL)||LA258_0==WINAPI||(LA258_0 >= WRITE && LA258_0 <= WRITEONLY)) ) {
int LA258_2 = input.LA(2);
if ( (LA258_2==COLON) ) {
alt258=1;
}
}
switch (alt258) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1057:57: nameDeclaration ':' !
{
pushFollow(FOLLOW_nameDeclaration_in_handler21401);
nameDeclaration777=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, nameDeclaration777.getTree());
char_literal778=(Token)match(input,COLON,FOLLOW_COLON_in_handler21403); if (state.failed) return retval;
}
break;
}
pushFollow(FOLLOW_typeReference_in_handler21408);
typeReference779=typeReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeReference779.getTree());
DO780=(Token)match(input,DO,FOLLOW_DO_in_handler21410); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DO780_tree = (Object)adaptor.create(DO780);
adaptor.addChild(root_0, DO780_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:1057:97: ( statement )?
int alt259=2;
int LA259_0 = input.LA(1);
if ( ((LA259_0 >= ABSOLUTE && LA259_0 <= ALIGN)||(LA259_0 >= ASM && LA259_0 <= ASSEMBLY)||(LA259_0 >= AT && LA259_0 <= AUTOMATED)||LA259_0==BEGIN||(LA259_0 >= CASE && LA259_0 <= CDECL)||LA259_0==CONST||LA259_0==CONTAINS||(LA259_0 >= DEFAULT && LA259_0 <= DEREFERENCE)||LA259_0==DISPID||LA259_0==DYNAMIC||(LA259_0 >= EXPERIMENTAL && LA259_0 <= EXPORT)||LA259_0==EXTERNAL||(LA259_0 >= FAR && LA259_0 <= FINAL)||(LA259_0 >= FOR && LA259_0 <= FUNCTION)||LA259_0==GOTO||LA259_0==HELPER||LA259_0==IF||LA259_0==IMPLEMENTS||(LA259_0 >= INDEX && LA259_0 <= INHERITED)||LA259_0==LABEL||LA259_0==LOCAL||(LA259_0 >= MESSAGE && LA259_0 <= MINUS)||(LA259_0 >= NAME && LA259_0 <= NOT)||LA259_0==OPERATOR||(LA259_0 >= OUT && LA259_0 <= OVERRIDE)||LA259_0==PACKAGE||LA259_0==PAREN_BRACKET_LEFT||LA259_0==PAREN_LEFT||(LA259_0 >= PASCAL && LA259_0 <= PROCEDURE)||(LA259_0 >= PROTECTED && LA259_0 <= PUBLISHED)||(LA259_0 >= RAISE && LA259_0 <= READONLY)||(LA259_0 >= REFERENCE && LA259_0 <= RESIDENT)||(LA259_0 >= SAFECALL && LA259_0 <= SEALED)||LA259_0==SQUARE_BRACKET_LEFT||(LA259_0 >= STATIC && LA259_0 <= STRING)||LA259_0==TRY||LA259_0==TkBinaryNumber||LA259_0==TkCharacterEscapeCode||(LA259_0 >= TkHexNumber && LA259_0 <= TkIntNumber)||LA259_0==TkMultilineString||(LA259_0 >= TkQuotedString && LA259_0 <= TkRealNumber)||LA259_0==UNSAFE||(LA259_0 >= VAR && LA259_0 <= VIRTUAL)||LA259_0==WHILE||(LA259_0 >= WINAPI && LA259_0 <= WRITEONLY)) ) {
alt259=1;
}
else if ( (LA259_0==ON) ) {
int LA259_2 = input.LA(2);
if ( (LA259_2==EOF||LA259_2==AND||LA259_2==AS||LA259_2==ASSIGN||LA259_2==COLON||LA259_2==DEREFERENCE||(LA259_2 >= DIV && LA259_2 <= DIVIDE)||LA259_2==DOT||(LA259_2 >= ELSE && LA259_2 <= EQUAL)||(LA259_2 >= GREATER_THAN && LA259_2 <= GREATER_THAN_EQUAL)||LA259_2==IN||LA259_2==IS||(LA259_2 >= LESS_THAN && LA259_2 <= LESS_THAN_EQUAL)||(LA259_2 >= MINUS && LA259_2 <= MULTIPLY)||LA259_2==NOT_EQUAL||LA259_2==OR||LA259_2==PAREN_BRACKET_LEFT||LA259_2==PAREN_LEFT||LA259_2==PLUS||LA259_2==SEMICOLON||(LA259_2 >= SHL && LA259_2 <= SQUARE_BRACKET_LEFT)||LA259_2==XOR) ) {
alt259=1;
}
else if ( (LA259_2==ON) ) {
int LA259_4 = input.LA(3);
if ( ((LA259_4 >= ABSOLUTE && LA259_4 <= ABSTRACT)||LA259_4==ALIGN||(LA259_4 >= ASSEMBLER && LA259_4 <= ASSEMBLY)||(LA259_4 >= AT && LA259_4 <= AUTOMATED)||LA259_4==CDECL||LA259_4==CONTAINS||(LA259_4 >= DEFAULT && LA259_4 <= DEPRECATED)||LA259_4==DISPID||LA259_4==DYNAMIC||(LA259_4 >= EXPERIMENTAL && LA259_4 <= EXPORT)||LA259_4==EXTERNAL||LA259_4==FAR||LA259_4==FINAL||LA259_4==FORWARD||LA259_4==HELPER||LA259_4==IMPLEMENTS||LA259_4==INDEX||LA259_4==LABEL||LA259_4==LOCAL||LA259_4==MESSAGE||(LA259_4 >= NAME && LA259_4 <= NEAR)||LA259_4==NODEFAULT||(LA259_4 >= ON && LA259_4 <= OPERATOR)||(LA259_4 >= OUT && LA259_4 <= OVERRIDE)||LA259_4==PACKAGE||(LA259_4 >= PASCAL && LA259_4 <= PLATFORM)||LA259_4==PRIVATE||(LA259_4 >= PROTECTED && LA259_4 <= PUBLISHED)||(LA259_4 >= READ && LA259_4 <= READONLY)||(LA259_4 >= REFERENCE && LA259_4 <= REINTRODUCE)||(LA259_4 >= REQUIRES && LA259_4 <= RESIDENT)||(LA259_4 >= SAFECALL && LA259_4 <= SEALED)||(LA259_4 >= STATIC && LA259_4 <= STRICT)||LA259_4==TkIdentifier||LA259_4==UNSAFE||(LA259_4 >= VARARGS && LA259_4 <= VIRTUAL)||LA259_4==WINAPI||(LA259_4 >= WRITE && LA259_4 <= WRITEONLY)) ) {
alt259=1;
}
}
}
switch (alt259) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1057:97: statement
{
pushFollow(FOLLOW_statement_in_handler21412);
statement781=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement781.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:1057:108: ( ';' )?
int alt260=2;
int LA260_0 = input.LA(1);
if ( (LA260_0==SEMICOLON) ) {
alt260=1;
}
switch (alt260) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1057:109: ';'
{
char_literal782=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_handler21416); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal782_tree = (Object)adaptor.create(char_literal782);
adaptor.addChild(root_0, char_literal782_tree);
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 195, handler_StartIndex); }
}
return retval;
}
// $ANTLR end "handler"
public static class raiseStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "raiseStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1059:1: raiseStatement : RAISE ^ ( expression )? ( AT ! expression )? ;
public final DelphiParser.raiseStatement_return raiseStatement() throws RecognitionException {
DelphiParser.raiseStatement_return retval = new DelphiParser.raiseStatement_return();
retval.start = input.LT(1);
int raiseStatement_StartIndex = input.index();
Object root_0 = null;
Token RAISE783=null;
Token AT785=null;
ParserRuleReturnScope expression784 =null;
ParserRuleReturnScope expression786 =null;
Object RAISE783_tree=null;
Object AT785_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 196) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1059:30: ( RAISE ^ ( expression )? ( AT ! expression )? )
// au/com/integradev/delphi/antlr/Delphi.g:1059:32: RAISE ^ ( expression )? ( AT ! expression )?
{
root_0 = (Object)adaptor.nil();
RAISE783=(Token)match(input,RAISE,FOLLOW_RAISE_in_raiseStatement21469); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RAISE783_tree = new RaiseStatementNodeImpl(RAISE783) ;
root_0 = (Object)adaptor.becomeRoot(RAISE783_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:1059:63: ( expression )?
int alt261=2;
switch ( input.LA(1) ) {
case NOT:
{
int LA261_1 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case PLUS:
{
int LA261_2 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case MINUS:
{
int LA261_3 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case ADDRESS:
{
int LA261_4 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case TkIntNumber:
{
int LA261_5 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case TkHexNumber:
{
int LA261_6 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case TkBinaryNumber:
{
int LA261_7 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case TkRealNumber:
{
int LA261_8 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case TkQuotedString:
{
int LA261_9 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case TkCharacterEscapeCode:
{
int LA261_10 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case DEREFERENCE:
{
int LA261_11 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case TkMultilineString:
{
int LA261_12 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case NIL:
{
int LA261_13 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case TkIdentifier:
{
int LA261_14 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case AT:
{
int LA261_15 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case PAREN_BRACKET_LEFT:
case SQUARE_BRACKET_LEFT:
{
int LA261_16 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case STRING:
{
int LA261_17 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case FILE:
{
int LA261_18 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case PAREN_LEFT:
{
int LA261_19 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case INHERITED:
{
int LA261_20 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case PROCEDURE:
{
int LA261_21 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case FUNCTION:
{
int LA261_22 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case ON:
{
int LA261_23 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA261_45 = input.LA(2);
if ( (synpred377_Delphi()) ) {
alt261=1;
}
}
break;
}
switch (alt261) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1059:63: expression
{
pushFollow(FOLLOW_expression_in_raiseStatement21475);
expression784=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression784.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:1059:75: ( AT ! expression )?
int alt262=2;
int LA262_0 = input.LA(1);
if ( (LA262_0==AT) ) {
int LA262_1 = input.LA(2);
if ( (synpred378_Delphi()) ) {
alt262=1;
}
}
switch (alt262) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1059:76: AT ! expression
{
AT785=(Token)match(input,AT,FOLLOW_AT_in_raiseStatement21479); if (state.failed) return retval;
pushFollow(FOLLOW_expression_in_raiseStatement21482);
expression786=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression786.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 196, raiseStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "raiseStatement"
public static class assemblerStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assemblerStatement"
// au/com/integradev/delphi/antlr/Delphi.g:1061:1: assemblerStatement : ASM ^ assemblerInstructions END ;
public final DelphiParser.assemblerStatement_return assemblerStatement() throws RecognitionException {
DelphiParser.assemblerStatement_return retval = new DelphiParser.assemblerStatement_return();
retval.start = input.LT(1);
int assemblerStatement_StartIndex = input.index();
Object root_0 = null;
Token ASM787=null;
Token END789=null;
ParserRuleReturnScope assemblerInstructions788 =null;
Object ASM787_tree=null;
Object END789_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 197) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1061:30: ( ASM ^ assemblerInstructions END )
// au/com/integradev/delphi/antlr/Delphi.g:1061:32: ASM ^ assemblerInstructions END
{
root_0 = (Object)adaptor.nil();
ASM787=(Token)match(input,ASM,FOLLOW_ASM_in_assemblerStatement21531); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ASM787_tree = new AsmStatementNodeImpl(ASM787) ;
root_0 = (Object)adaptor.becomeRoot(ASM787_tree, root_0);
}
pushFollow(FOLLOW_assemblerInstructions_in_assemblerStatement21537);
assemblerInstructions788=assemblerInstructions();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assemblerInstructions788.getTree());
END789=(Token)match(input,END,FOLLOW_END_in_assemblerStatement21539); if (state.failed) return retval;
if ( state.backtracking==0 ) {
END789_tree = (Object)adaptor.create(END789);
adaptor.addChild(root_0, END789_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 197, assemblerStatement_StartIndex); }
}
return retval;
}
// $ANTLR end "assemblerStatement"
public static class assemblerInstructions_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assemblerInstructions"
// au/com/integradev/delphi/antlr/Delphi.g:1063:1: assemblerInstructions : (~ ( END ) )* ;
public final DelphiParser.assemblerInstructions_return assemblerInstructions() throws RecognitionException {
DelphiParser.assemblerInstructions_return retval = new DelphiParser.assemblerInstructions_return();
retval.start = input.LT(1);
int assemblerInstructions_StartIndex = input.index();
Object root_0 = null;
Token set790=null;
Object set790_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 198) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1063:30: ( (~ ( END ) )* )
// au/com/integradev/delphi/antlr/Delphi.g:1063:32: (~ ( END ) )*
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:1063:32: (~ ( END ) )*
loop263:
while (true) {
int alt263=2;
int LA263_0 = input.LA(1);
if ( ((LA263_0 >= A && LA263_0 <= ELSE)||(LA263_0 >= EQUAL && LA263_0 <= Z)) ) {
alt263=1;
}
switch (alt263) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:
{
set790=input.LT(1);
if ( (input.LA(1) >= A && input.LA(1) <= ELSE)||(input.LA(1) >= EQUAL && input.LA(1) <= Z) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set790));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
break;
default :
break loop263;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 198, assemblerInstructions_StartIndex); }
}
return retval;
}
// $ANTLR end "assemblerInstructions"
public static class implDirectiveSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "implDirectiveSection"
// au/com/integradev/delphi/antlr/Delphi.g:1069:1: implDirectiveSection : ( ( ( ';' )? implDirective )* ';' | ( ';' implDirective )+ );
public final DelphiParser.implDirectiveSection_return implDirectiveSection() throws RecognitionException {
DelphiParser.implDirectiveSection_return retval = new DelphiParser.implDirectiveSection_return();
retval.start = input.LT(1);
int implDirectiveSection_StartIndex = input.index();
Object root_0 = null;
Token char_literal791=null;
Token char_literal793=null;
Token char_literal794=null;
ParserRuleReturnScope implDirective792 =null;
ParserRuleReturnScope implDirective795 =null;
Object char_literal791_tree=null;
Object char_literal793_tree=null;
Object char_literal794_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 199) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1069:30: ( ( ( ';' )? implDirective )* ';' | ( ';' implDirective )+ )
int alt267=2;
int LA267_0 = input.LA(1);
if ( (LA267_0==SEMICOLON) ) {
int LA267_1 = input.LA(2);
if ( (synpred383_Delphi()) ) {
alt267=1;
}
else if ( (true) ) {
alt267=2;
}
}
else if ( (LA267_0==ABSTRACT||LA267_0==ASSEMBLER||LA267_0==CDECL||LA267_0==DEPRECATED||LA267_0==DISPID||LA267_0==DYNAMIC||(LA267_0 >= EXPERIMENTAL && LA267_0 <= EXPORT)||LA267_0==FAR||LA267_0==FINAL||LA267_0==INLINE||(LA267_0 >= LIBRARY && LA267_0 <= LOCAL)||LA267_0==MESSAGE||LA267_0==NEAR||(LA267_0 >= OVERLOAD && LA267_0 <= OVERRIDE)||(LA267_0 >= PASCAL && LA267_0 <= PLATFORM)||(LA267_0 >= REGISTER && LA267_0 <= REINTRODUCE)||LA267_0==SAFECALL||(LA267_0 >= STATIC && LA267_0 <= STDCALL)||LA267_0==UNSAFE||(LA267_0 >= VARARGS && LA267_0 <= VIRTUAL)||LA267_0==WINAPI) ) {
alt267=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 267, 0, input);
throw nvae;
}
switch (alt267) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1069:32: ( ( ';' )? implDirective )* ';'
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:1069:32: ( ( ';' )? implDirective )*
loop265:
while (true) {
int alt265=2;
int LA265_0 = input.LA(1);
if ( (LA265_0==SEMICOLON) ) {
int LA265_1 = input.LA(2);
if ( (LA265_1==ABSTRACT||LA265_1==ASSEMBLER||LA265_1==CDECL||LA265_1==DEPRECATED||LA265_1==DISPID||LA265_1==DYNAMIC||(LA265_1 >= EXPERIMENTAL && LA265_1 <= EXPORT)||LA265_1==FAR||LA265_1==FINAL||LA265_1==INLINE||(LA265_1 >= LIBRARY && LA265_1 <= LOCAL)||LA265_1==MESSAGE||LA265_1==NEAR||(LA265_1 >= OVERLOAD && LA265_1 <= OVERRIDE)||(LA265_1 >= PASCAL && LA265_1 <= PLATFORM)||(LA265_1 >= REGISTER && LA265_1 <= REINTRODUCE)||LA265_1==SAFECALL||(LA265_1 >= STATIC && LA265_1 <= STDCALL)||LA265_1==UNSAFE||(LA265_1 >= VARARGS && LA265_1 <= VIRTUAL)||LA265_1==WINAPI) ) {
alt265=1;
}
}
else if ( (LA265_0==ABSTRACT||LA265_0==ASSEMBLER||LA265_0==CDECL||LA265_0==DEPRECATED||LA265_0==DISPID||LA265_0==DYNAMIC||(LA265_0 >= EXPERIMENTAL && LA265_0 <= EXPORT)||LA265_0==FAR||LA265_0==FINAL||LA265_0==INLINE||(LA265_0 >= LIBRARY && LA265_0 <= LOCAL)||LA265_0==MESSAGE||LA265_0==NEAR||(LA265_0 >= OVERLOAD && LA265_0 <= OVERRIDE)||(LA265_0 >= PASCAL && LA265_0 <= PLATFORM)||(LA265_0 >= REGISTER && LA265_0 <= REINTRODUCE)||LA265_0==SAFECALL||(LA265_0 >= STATIC && LA265_0 <= STDCALL)||LA265_0==UNSAFE||(LA265_0 >= VARARGS && LA265_0 <= VIRTUAL)||LA265_0==WINAPI) ) {
alt265=1;
}
switch (alt265) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1069:33: ( ';' )? implDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1069:33: ( ';' )?
int alt264=2;
int LA264_0 = input.LA(1);
if ( (LA264_0==SEMICOLON) ) {
alt264=1;
}
switch (alt264) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1069:33: ';'
{
char_literal791=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_implDirectiveSection21638); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal791_tree = (Object)adaptor.create(char_literal791);
adaptor.addChild(root_0, char_literal791_tree);
}
}
break;
}
pushFollow(FOLLOW_implDirective_in_implDirectiveSection21641);
implDirective792=implDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implDirective792.getTree());
}
break;
default :
break loop265;
}
}
char_literal793=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_implDirectiveSection21645); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal793_tree = (Object)adaptor.create(char_literal793);
adaptor.addChild(root_0, char_literal793_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1070:32: ( ';' implDirective )+
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:1070:32: ( ';' implDirective )+
int cnt266=0;
loop266:
while (true) {
int alt266=2;
int LA266_0 = input.LA(1);
if ( (LA266_0==SEMICOLON) ) {
alt266=1;
}
switch (alt266) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1070:33: ';' implDirective
{
char_literal794=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_implDirectiveSection21679); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal794_tree = (Object)adaptor.create(char_literal794);
adaptor.addChild(root_0, char_literal794_tree);
}
pushFollow(FOLLOW_implDirective_in_implDirectiveSection21681);
implDirective795=implDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implDirective795.getTree());
}
break;
default :
if ( cnt266 >= 1 ) break loop266;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(266, input);
throw eee;
}
cnt266++;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 199, implDirectiveSection_StartIndex); }
}
return retval;
}
// $ANTLR end "implDirectiveSection"
public static class interfaceDirectiveSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "interfaceDirectiveSection"
// au/com/integradev/delphi/antlr/Delphi.g:1072:1: interfaceDirectiveSection : ( ( ( ';' )? interfaceDirective )* ';' | ( ';' interfaceDirective )+ );
public final DelphiParser.interfaceDirectiveSection_return interfaceDirectiveSection() throws RecognitionException {
DelphiParser.interfaceDirectiveSection_return retval = new DelphiParser.interfaceDirectiveSection_return();
retval.start = input.LT(1);
int interfaceDirectiveSection_StartIndex = input.index();
Object root_0 = null;
Token char_literal796=null;
Token char_literal798=null;
Token char_literal799=null;
ParserRuleReturnScope interfaceDirective797 =null;
ParserRuleReturnScope interfaceDirective800 =null;
Object char_literal796_tree=null;
Object char_literal798_tree=null;
Object char_literal799_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 200) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1072:30: ( ( ( ';' )? interfaceDirective )* ';' | ( ';' interfaceDirective )+ )
int alt271=2;
int LA271_0 = input.LA(1);
if ( (LA271_0==SEMICOLON) ) {
int LA271_1 = input.LA(2);
if ( (synpred387_Delphi()) ) {
alt271=1;
}
else if ( (true) ) {
alt271=2;
}
}
else if ( (LA271_0==ABSTRACT||LA271_0==ASSEMBLER||LA271_0==CDECL||LA271_0==DEPRECATED||LA271_0==DISPID||LA271_0==DYNAMIC||(LA271_0 >= EXPERIMENTAL && LA271_0 <= EXPORT)||LA271_0==EXTERNAL||LA271_0==FAR||LA271_0==FINAL||LA271_0==FORWARD||LA271_0==INLINE||(LA271_0 >= LIBRARY && LA271_0 <= LOCAL)||LA271_0==MESSAGE||LA271_0==NEAR||(LA271_0 >= OVERLOAD && LA271_0 <= OVERRIDE)||(LA271_0 >= PASCAL && LA271_0 <= PLATFORM)||(LA271_0 >= REGISTER && LA271_0 <= REINTRODUCE)||LA271_0==SAFECALL||(LA271_0 >= STATIC && LA271_0 <= STDCALL)||LA271_0==UNSAFE||(LA271_0 >= VARARGS && LA271_0 <= VIRTUAL)||LA271_0==WINAPI) ) {
alt271=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 271, 0, input);
throw nvae;
}
switch (alt271) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1072:32: ( ( ';' )? interfaceDirective )* ';'
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:1072:32: ( ( ';' )? interfaceDirective )*
loop269:
while (true) {
int alt269=2;
int LA269_0 = input.LA(1);
if ( (LA269_0==SEMICOLON) ) {
switch ( input.LA(2) ) {
case FORWARD:
{
int LA269_4 = input.LA(3);
if ( (LA269_4==ABSTRACT||LA269_4==ASSEMBLER||LA269_4==CDECL||LA269_4==DEPRECATED||LA269_4==DISPID||LA269_4==DYNAMIC||(LA269_4 >= EXPERIMENTAL && LA269_4 <= EXPORT)||LA269_4==EXTERNAL||LA269_4==FAR||LA269_4==FINAL||LA269_4==FORWARD||LA269_4==INLINE||(LA269_4 >= LIBRARY && LA269_4 <= LOCAL)||LA269_4==MESSAGE||LA269_4==NEAR||(LA269_4 >= OVERLOAD && LA269_4 <= OVERRIDE)||(LA269_4 >= PASCAL && LA269_4 <= PLATFORM)||(LA269_4 >= REGISTER && LA269_4 <= REINTRODUCE)||LA269_4==SAFECALL||LA269_4==SEMICOLON||(LA269_4 >= STATIC && LA269_4 <= STDCALL)||LA269_4==UNSAFE||(LA269_4 >= VARARGS && LA269_4 <= VIRTUAL)||LA269_4==WINAPI) ) {
alt269=1;
}
}
break;
case EXTERNAL:
{
int LA269_5 = input.LA(3);
if ( ((LA269_5 >= ABSOLUTE && LA269_5 <= ALIGN)||(LA269_5 >= ASSEMBLER && LA269_5 <= ASSEMBLY)||(LA269_5 >= AT && LA269_5 <= AUTOMATED)||LA269_5==CDECL||LA269_5==CONTAINS||(LA269_5 >= DEFAULT && LA269_5 <= DEREFERENCE)||LA269_5==DISPID||LA269_5==DYNAMIC||(LA269_5 >= EXPERIMENTAL && LA269_5 <= EXPORT)||LA269_5==EXTERNAL||(LA269_5 >= FAR && LA269_5 <= FINAL)||(LA269_5 >= FORWARD && LA269_5 <= FUNCTION)||LA269_5==HELPER||LA269_5==IMPLEMENTS||(LA269_5 >= INDEX && LA269_5 <= INHERITED)||LA269_5==INLINE||LA269_5==LABEL||(LA269_5 >= LIBRARY && LA269_5 <= LOCAL)||(LA269_5 >= MESSAGE && LA269_5 <= MINUS)||(LA269_5 >= NAME && LA269_5 <= NOT)||(LA269_5 >= ON && LA269_5 <= OPERATOR)||(LA269_5 >= OUT && LA269_5 <= OVERRIDE)||LA269_5==PACKAGE||LA269_5==PAREN_BRACKET_LEFT||LA269_5==PAREN_LEFT||(LA269_5 >= PASCAL && LA269_5 <= PROCEDURE)||(LA269_5 >= PROTECTED && LA269_5 <= PUBLISHED)||(LA269_5 >= READ && LA269_5 <= READONLY)||(LA269_5 >= REFERENCE && LA269_5 <= REINTRODUCE)||(LA269_5 >= REQUIRES && LA269_5 <= RESIDENT)||(LA269_5 >= SAFECALL && LA269_5 <= SEMICOLON)||LA269_5==SQUARE_BRACKET_LEFT||(LA269_5 >= STATIC && LA269_5 <= STRING)||LA269_5==TkBinaryNumber||LA269_5==TkCharacterEscapeCode||(LA269_5 >= TkHexNumber && LA269_5 <= TkIntNumber)||LA269_5==TkMultilineString||(LA269_5 >= TkQuotedString && LA269_5 <= TkRealNumber)||LA269_5==UNSAFE||(LA269_5 >= VARARGS && LA269_5 <= VIRTUAL)||LA269_5==WINAPI||(LA269_5 >= WRITE && LA269_5 <= WRITEONLY)) ) {
alt269=1;
}
}
break;
case OVERLOAD:
{
int LA269_6 = input.LA(3);
if ( (LA269_6==ABSTRACT||LA269_6==ASSEMBLER||LA269_6==CDECL||LA269_6==DEPRECATED||LA269_6==DISPID||LA269_6==DYNAMIC||(LA269_6 >= EXPERIMENTAL && LA269_6 <= EXPORT)||LA269_6==EXTERNAL||LA269_6==FAR||LA269_6==FINAL||LA269_6==FORWARD||LA269_6==INLINE||(LA269_6 >= LIBRARY && LA269_6 <= LOCAL)||LA269_6==MESSAGE||LA269_6==NEAR||(LA269_6 >= OVERLOAD && LA269_6 <= OVERRIDE)||(LA269_6 >= PASCAL && LA269_6 <= PLATFORM)||(LA269_6 >= REGISTER && LA269_6 <= REINTRODUCE)||LA269_6==SAFECALL||LA269_6==SEMICOLON||(LA269_6 >= STATIC && LA269_6 <= STDCALL)||LA269_6==UNSAFE||(LA269_6 >= VARARGS && LA269_6 <= VIRTUAL)||LA269_6==WINAPI) ) {
alt269=1;
}
}
break;
case REINTRODUCE:
{
int LA269_7 = input.LA(3);
if ( (LA269_7==ABSTRACT||LA269_7==ASSEMBLER||LA269_7==CDECL||LA269_7==DEPRECATED||LA269_7==DISPID||LA269_7==DYNAMIC||(LA269_7 >= EXPERIMENTAL && LA269_7 <= EXPORT)||LA269_7==EXTERNAL||LA269_7==FAR||LA269_7==FINAL||LA269_7==FORWARD||LA269_7==INLINE||(LA269_7 >= LIBRARY && LA269_7 <= LOCAL)||LA269_7==MESSAGE||LA269_7==NEAR||(LA269_7 >= OVERLOAD && LA269_7 <= OVERRIDE)||(LA269_7 >= PASCAL && LA269_7 <= PLATFORM)||(LA269_7 >= REGISTER && LA269_7 <= REINTRODUCE)||LA269_7==SAFECALL||LA269_7==SEMICOLON||(LA269_7 >= STATIC && LA269_7 <= STDCALL)||LA269_7==UNSAFE||(LA269_7 >= VARARGS && LA269_7 <= VIRTUAL)||LA269_7==WINAPI) ) {
alt269=1;
}
}
break;
case MESSAGE:
{
int LA269_8 = input.LA(3);
if ( ((LA269_8 >= ABSOLUTE && LA269_8 <= ALIGN)||(LA269_8 >= ASSEMBLER && LA269_8 <= ASSEMBLY)||(LA269_8 >= AT && LA269_8 <= AUTOMATED)||LA269_8==CDECL||LA269_8==CONTAINS||(LA269_8 >= DEFAULT && LA269_8 <= DEREFERENCE)||LA269_8==DISPID||LA269_8==DYNAMIC||(LA269_8 >= EXPERIMENTAL && LA269_8 <= EXPORT)||LA269_8==EXTERNAL||(LA269_8 >= FAR && LA269_8 <= FINAL)||(LA269_8 >= FORWARD && LA269_8 <= FUNCTION)||LA269_8==HELPER||LA269_8==IMPLEMENTS||(LA269_8 >= INDEX && LA269_8 <= INHERITED)||LA269_8==LABEL||LA269_8==LOCAL||(LA269_8 >= MESSAGE && LA269_8 <= MINUS)||(LA269_8 >= NAME && LA269_8 <= NOT)||(LA269_8 >= ON && LA269_8 <= OPERATOR)||(LA269_8 >= OUT && LA269_8 <= OVERRIDE)||LA269_8==PACKAGE||LA269_8==PAREN_BRACKET_LEFT||LA269_8==PAREN_LEFT||(LA269_8 >= PASCAL && LA269_8 <= PROCEDURE)||(LA269_8 >= PROTECTED && LA269_8 <= PUBLISHED)||(LA269_8 >= READ && LA269_8 <= READONLY)||(LA269_8 >= REFERENCE && LA269_8 <= REINTRODUCE)||(LA269_8 >= REQUIRES && LA269_8 <= RESIDENT)||(LA269_8 >= SAFECALL && LA269_8 <= SEALED)||LA269_8==SQUARE_BRACKET_LEFT||(LA269_8 >= STATIC && LA269_8 <= STRING)||LA269_8==TkBinaryNumber||LA269_8==TkCharacterEscapeCode||(LA269_8 >= TkHexNumber && LA269_8 <= TkIntNumber)||LA269_8==TkMultilineString||(LA269_8 >= TkQuotedString && LA269_8 <= TkRealNumber)||LA269_8==UNSAFE||(LA269_8 >= VARARGS && LA269_8 <= VIRTUAL)||LA269_8==WINAPI||(LA269_8 >= WRITE && LA269_8 <= WRITEONLY)) ) {
alt269=1;
}
}
break;
case STATIC:
{
int LA269_9 = input.LA(3);
if ( (LA269_9==ABSTRACT||LA269_9==ASSEMBLER||LA269_9==CDECL||LA269_9==DEPRECATED||LA269_9==DISPID||LA269_9==DYNAMIC||(LA269_9 >= EXPERIMENTAL && LA269_9 <= EXPORT)||LA269_9==EXTERNAL||LA269_9==FAR||LA269_9==FINAL||LA269_9==FORWARD||LA269_9==INLINE||(LA269_9 >= LIBRARY && LA269_9 <= LOCAL)||LA269_9==MESSAGE||LA269_9==NEAR||(LA269_9 >= OVERLOAD && LA269_9 <= OVERRIDE)||(LA269_9 >= PASCAL && LA269_9 <= PLATFORM)||(LA269_9 >= REGISTER && LA269_9 <= REINTRODUCE)||LA269_9==SAFECALL||LA269_9==SEMICOLON||(LA269_9 >= STATIC && LA269_9 <= STDCALL)||LA269_9==UNSAFE||(LA269_9 >= VARARGS && LA269_9 <= VIRTUAL)||LA269_9==WINAPI) ) {
alt269=1;
}
}
break;
case DYNAMIC:
{
int LA269_10 = input.LA(3);
if ( (LA269_10==ABSTRACT||LA269_10==ASSEMBLER||LA269_10==CDECL||LA269_10==DEPRECATED||LA269_10==DISPID||LA269_10==DYNAMIC||(LA269_10 >= EXPERIMENTAL && LA269_10 <= EXPORT)||LA269_10==EXTERNAL||LA269_10==FAR||LA269_10==FINAL||LA269_10==FORWARD||LA269_10==INLINE||(LA269_10 >= LIBRARY && LA269_10 <= LOCAL)||LA269_10==MESSAGE||LA269_10==NEAR||(LA269_10 >= OVERLOAD && LA269_10 <= OVERRIDE)||(LA269_10 >= PASCAL && LA269_10 <= PLATFORM)||(LA269_10 >= REGISTER && LA269_10 <= REINTRODUCE)||LA269_10==SAFECALL||LA269_10==SEMICOLON||(LA269_10 >= STATIC && LA269_10 <= STDCALL)||LA269_10==UNSAFE||(LA269_10 >= VARARGS && LA269_10 <= VIRTUAL)||LA269_10==WINAPI) ) {
alt269=1;
}
}
break;
case OVERRIDE:
{
int LA269_11 = input.LA(3);
if ( (LA269_11==ABSTRACT||LA269_11==ASSEMBLER||LA269_11==CDECL||LA269_11==DEPRECATED||LA269_11==DISPID||LA269_11==DYNAMIC||(LA269_11 >= EXPERIMENTAL && LA269_11 <= EXPORT)||LA269_11==EXTERNAL||LA269_11==FAR||LA269_11==FINAL||LA269_11==FORWARD||LA269_11==INLINE||(LA269_11 >= LIBRARY && LA269_11 <= LOCAL)||LA269_11==MESSAGE||LA269_11==NEAR||(LA269_11 >= OVERLOAD && LA269_11 <= OVERRIDE)||(LA269_11 >= PASCAL && LA269_11 <= PLATFORM)||(LA269_11 >= REGISTER && LA269_11 <= REINTRODUCE)||LA269_11==SAFECALL||LA269_11==SEMICOLON||(LA269_11 >= STATIC && LA269_11 <= STDCALL)||LA269_11==UNSAFE||(LA269_11 >= VARARGS && LA269_11 <= VIRTUAL)||LA269_11==WINAPI) ) {
alt269=1;
}
}
break;
case VIRTUAL:
{
int LA269_12 = input.LA(3);
if ( (LA269_12==ABSTRACT||LA269_12==ASSEMBLER||LA269_12==CDECL||LA269_12==DEPRECATED||LA269_12==DISPID||LA269_12==DYNAMIC||(LA269_12 >= EXPERIMENTAL && LA269_12 <= EXPORT)||LA269_12==EXTERNAL||LA269_12==FAR||LA269_12==FINAL||LA269_12==FORWARD||LA269_12==INLINE||(LA269_12 >= LIBRARY && LA269_12 <= LOCAL)||LA269_12==MESSAGE||LA269_12==NEAR||(LA269_12 >= OVERLOAD && LA269_12 <= OVERRIDE)||(LA269_12 >= PASCAL && LA269_12 <= PLATFORM)||(LA269_12 >= REGISTER && LA269_12 <= REINTRODUCE)||LA269_12==SAFECALL||LA269_12==SEMICOLON||(LA269_12 >= STATIC && LA269_12 <= STDCALL)||LA269_12==UNSAFE||(LA269_12 >= VARARGS && LA269_12 <= VIRTUAL)||LA269_12==WINAPI) ) {
alt269=1;
}
}
break;
case ABSTRACT:
case FINAL:
{
int LA269_13 = input.LA(3);
if ( (LA269_13==ABSTRACT||LA269_13==ASSEMBLER||LA269_13==CDECL||LA269_13==DEPRECATED||LA269_13==DISPID||LA269_13==DYNAMIC||(LA269_13 >= EXPERIMENTAL && LA269_13 <= EXPORT)||LA269_13==EXTERNAL||LA269_13==FAR||LA269_13==FINAL||LA269_13==FORWARD||LA269_13==INLINE||(LA269_13 >= LIBRARY && LA269_13 <= LOCAL)||LA269_13==MESSAGE||LA269_13==NEAR||(LA269_13 >= OVERLOAD && LA269_13 <= OVERRIDE)||(LA269_13 >= PASCAL && LA269_13 <= PLATFORM)||(LA269_13 >= REGISTER && LA269_13 <= REINTRODUCE)||LA269_13==SAFECALL||LA269_13==SEMICOLON||(LA269_13 >= STATIC && LA269_13 <= STDCALL)||LA269_13==UNSAFE||(LA269_13 >= VARARGS && LA269_13 <= VIRTUAL)||LA269_13==WINAPI) ) {
alt269=1;
}
}
break;
case ASSEMBLER:
{
int LA269_14 = input.LA(3);
if ( (LA269_14==ABSTRACT||LA269_14==ASSEMBLER||LA269_14==CDECL||LA269_14==DEPRECATED||LA269_14==DISPID||LA269_14==DYNAMIC||(LA269_14 >= EXPERIMENTAL && LA269_14 <= EXPORT)||LA269_14==EXTERNAL||LA269_14==FAR||LA269_14==FINAL||LA269_14==FORWARD||LA269_14==INLINE||(LA269_14 >= LIBRARY && LA269_14 <= LOCAL)||LA269_14==MESSAGE||LA269_14==NEAR||(LA269_14 >= OVERLOAD && LA269_14 <= OVERRIDE)||(LA269_14 >= PASCAL && LA269_14 <= PLATFORM)||(LA269_14 >= REGISTER && LA269_14 <= REINTRODUCE)||LA269_14==SAFECALL||LA269_14==SEMICOLON||(LA269_14 >= STATIC && LA269_14 <= STDCALL)||LA269_14==UNSAFE||(LA269_14 >= VARARGS && LA269_14 <= VIRTUAL)||LA269_14==WINAPI) ) {
alt269=1;
}
}
break;
case CDECL:
case EXPORT:
case PASCAL:
case REGISTER:
case SAFECALL:
case STDCALL:
case WINAPI:
{
int LA269_15 = input.LA(3);
if ( (LA269_15==ABSTRACT||LA269_15==ASSEMBLER||LA269_15==CDECL||LA269_15==DEPRECATED||LA269_15==DISPID||LA269_15==DYNAMIC||(LA269_15 >= EXPERIMENTAL && LA269_15 <= EXPORT)||LA269_15==EXTERNAL||LA269_15==FAR||LA269_15==FINAL||LA269_15==FORWARD||LA269_15==INLINE||(LA269_15 >= LIBRARY && LA269_15 <= LOCAL)||LA269_15==MESSAGE||LA269_15==NEAR||(LA269_15 >= OVERLOAD && LA269_15 <= OVERRIDE)||(LA269_15 >= PASCAL && LA269_15 <= PLATFORM)||(LA269_15 >= REGISTER && LA269_15 <= REINTRODUCE)||LA269_15==SAFECALL||LA269_15==SEMICOLON||(LA269_15 >= STATIC && LA269_15 <= STDCALL)||LA269_15==UNSAFE||(LA269_15 >= VARARGS && LA269_15 <= VIRTUAL)||LA269_15==WINAPI) ) {
alt269=1;
}
}
break;
case INLINE:
case LIBRARY:
{
alt269=1;
}
break;
case DEPRECATED:
{
int LA269_16 = input.LA(3);
if ( (LA269_16==ABSTRACT||LA269_16==ASSEMBLER||LA269_16==CDECL||(LA269_16 >= DEPRECATED && LA269_16 <= DEREFERENCE)||LA269_16==DISPID||LA269_16==DYNAMIC||(LA269_16 >= EXPERIMENTAL && LA269_16 <= EXPORT)||LA269_16==EXTERNAL||LA269_16==FAR||LA269_16==FINAL||LA269_16==FORWARD||LA269_16==INLINE||(LA269_16 >= LIBRARY && LA269_16 <= LOCAL)||LA269_16==MESSAGE||LA269_16==NEAR||(LA269_16 >= OVERLOAD && LA269_16 <= OVERRIDE)||(LA269_16 >= PASCAL && LA269_16 <= PLATFORM)||(LA269_16 >= REGISTER && LA269_16 <= REINTRODUCE)||LA269_16==SAFECALL||LA269_16==SEMICOLON||(LA269_16 >= STATIC && LA269_16 <= STDCALL)||LA269_16==TkCharacterEscapeCode||LA269_16==TkMultilineString||LA269_16==TkQuotedString||LA269_16==UNSAFE||(LA269_16 >= VARARGS && LA269_16 <= VIRTUAL)||LA269_16==WINAPI) ) {
alt269=1;
}
}
break;
case EXPERIMENTAL:
{
int LA269_17 = input.LA(3);
if ( (LA269_17==ABSTRACT||LA269_17==ASSEMBLER||LA269_17==CDECL||LA269_17==DEPRECATED||LA269_17==DISPID||LA269_17==DYNAMIC||(LA269_17 >= EXPERIMENTAL && LA269_17 <= EXPORT)||LA269_17==EXTERNAL||LA269_17==FAR||LA269_17==FINAL||LA269_17==FORWARD||LA269_17==INLINE||(LA269_17 >= LIBRARY && LA269_17 <= LOCAL)||LA269_17==MESSAGE||LA269_17==NEAR||(LA269_17 >= OVERLOAD && LA269_17 <= OVERRIDE)||(LA269_17 >= PASCAL && LA269_17 <= PLATFORM)||(LA269_17 >= REGISTER && LA269_17 <= REINTRODUCE)||LA269_17==SAFECALL||LA269_17==SEMICOLON||(LA269_17 >= STATIC && LA269_17 <= STDCALL)||LA269_17==UNSAFE||(LA269_17 >= VARARGS && LA269_17 <= VIRTUAL)||LA269_17==WINAPI) ) {
alt269=1;
}
}
break;
case PLATFORM:
{
int LA269_18 = input.LA(3);
if ( (LA269_18==ABSTRACT||LA269_18==ASSEMBLER||LA269_18==CDECL||LA269_18==DEPRECATED||LA269_18==DISPID||LA269_18==DYNAMIC||(LA269_18 >= EXPERIMENTAL && LA269_18 <= EXPORT)||LA269_18==EXTERNAL||LA269_18==FAR||LA269_18==FINAL||LA269_18==FORWARD||LA269_18==INLINE||(LA269_18 >= LIBRARY && LA269_18 <= LOCAL)||LA269_18==MESSAGE||LA269_18==NEAR||(LA269_18 >= OVERLOAD && LA269_18 <= OVERRIDE)||(LA269_18 >= PASCAL && LA269_18 <= PLATFORM)||(LA269_18 >= REGISTER && LA269_18 <= REINTRODUCE)||LA269_18==SAFECALL||LA269_18==SEMICOLON||(LA269_18 >= STATIC && LA269_18 <= STDCALL)||LA269_18==UNSAFE||(LA269_18 >= VARARGS && LA269_18 <= VIRTUAL)||LA269_18==WINAPI) ) {
alt269=1;
}
}
break;
case FAR:
case LOCAL:
case NEAR:
{
int LA269_19 = input.LA(3);
if ( (LA269_19==ABSTRACT||LA269_19==ASSEMBLER||LA269_19==CDECL||LA269_19==DEPRECATED||LA269_19==DISPID||LA269_19==DYNAMIC||(LA269_19 >= EXPERIMENTAL && LA269_19 <= EXPORT)||LA269_19==EXTERNAL||LA269_19==FAR||LA269_19==FINAL||LA269_19==FORWARD||LA269_19==INLINE||(LA269_19 >= LIBRARY && LA269_19 <= LOCAL)||LA269_19==MESSAGE||LA269_19==NEAR||(LA269_19 >= OVERLOAD && LA269_19 <= OVERRIDE)||(LA269_19 >= PASCAL && LA269_19 <= PLATFORM)||(LA269_19 >= REGISTER && LA269_19 <= REINTRODUCE)||LA269_19==SAFECALL||LA269_19==SEMICOLON||(LA269_19 >= STATIC && LA269_19 <= STDCALL)||LA269_19==UNSAFE||(LA269_19 >= VARARGS && LA269_19 <= VIRTUAL)||LA269_19==WINAPI) ) {
alt269=1;
}
}
break;
case DISPID:
{
int LA269_20 = input.LA(3);
if ( ((LA269_20 >= ABSOLUTE && LA269_20 <= ALIGN)||(LA269_20 >= ASSEMBLER && LA269_20 <= ASSEMBLY)||(LA269_20 >= AT && LA269_20 <= AUTOMATED)||LA269_20==CDECL||LA269_20==CONTAINS||(LA269_20 >= DEFAULT && LA269_20 <= DEREFERENCE)||LA269_20==DISPID||LA269_20==DYNAMIC||(LA269_20 >= EXPERIMENTAL && LA269_20 <= EXPORT)||LA269_20==EXTERNAL||(LA269_20 >= FAR && LA269_20 <= FINAL)||(LA269_20 >= FORWARD && LA269_20 <= FUNCTION)||LA269_20==HELPER||LA269_20==IMPLEMENTS||(LA269_20 >= INDEX && LA269_20 <= INHERITED)||LA269_20==LABEL||LA269_20==LOCAL||(LA269_20 >= MESSAGE && LA269_20 <= MINUS)||(LA269_20 >= NAME && LA269_20 <= NOT)||(LA269_20 >= ON && LA269_20 <= OPERATOR)||(LA269_20 >= OUT && LA269_20 <= OVERRIDE)||LA269_20==PACKAGE||LA269_20==PAREN_BRACKET_LEFT||LA269_20==PAREN_LEFT||(LA269_20 >= PASCAL && LA269_20 <= PROCEDURE)||(LA269_20 >= PROTECTED && LA269_20 <= PUBLISHED)||(LA269_20 >= READ && LA269_20 <= READONLY)||(LA269_20 >= REFERENCE && LA269_20 <= REINTRODUCE)||(LA269_20 >= REQUIRES && LA269_20 <= RESIDENT)||(LA269_20 >= SAFECALL && LA269_20 <= SEALED)||LA269_20==SQUARE_BRACKET_LEFT||(LA269_20 >= STATIC && LA269_20 <= STRING)||LA269_20==TkBinaryNumber||LA269_20==TkCharacterEscapeCode||(LA269_20 >= TkHexNumber && LA269_20 <= TkIntNumber)||LA269_20==TkMultilineString||(LA269_20 >= TkQuotedString && LA269_20 <= TkRealNumber)||LA269_20==UNSAFE||(LA269_20 >= VARARGS && LA269_20 <= VIRTUAL)||LA269_20==WINAPI||(LA269_20 >= WRITE && LA269_20 <= WRITEONLY)) ) {
alt269=1;
}
}
break;
case VARARGS:
{
int LA269_21 = input.LA(3);
if ( (LA269_21==ABSTRACT||LA269_21==ASSEMBLER||LA269_21==CDECL||LA269_21==DEPRECATED||LA269_21==DISPID||LA269_21==DYNAMIC||(LA269_21 >= EXPERIMENTAL && LA269_21 <= EXPORT)||LA269_21==EXTERNAL||LA269_21==FAR||LA269_21==FINAL||LA269_21==FORWARD||LA269_21==INLINE||(LA269_21 >= LIBRARY && LA269_21 <= LOCAL)||LA269_21==MESSAGE||LA269_21==NEAR||(LA269_21 >= OVERLOAD && LA269_21 <= OVERRIDE)||(LA269_21 >= PASCAL && LA269_21 <= PLATFORM)||(LA269_21 >= REGISTER && LA269_21 <= REINTRODUCE)||LA269_21==SAFECALL||LA269_21==SEMICOLON||(LA269_21 >= STATIC && LA269_21 <= STDCALL)||LA269_21==UNSAFE||(LA269_21 >= VARARGS && LA269_21 <= VIRTUAL)||LA269_21==WINAPI) ) {
alt269=1;
}
}
break;
case UNSAFE:
{
int LA269_22 = input.LA(3);
if ( (LA269_22==ABSTRACT||LA269_22==ASSEMBLER||LA269_22==CDECL||LA269_22==DEPRECATED||LA269_22==DISPID||LA269_22==DYNAMIC||(LA269_22 >= EXPERIMENTAL && LA269_22 <= EXPORT)||LA269_22==EXTERNAL||LA269_22==FAR||LA269_22==FINAL||LA269_22==FORWARD||LA269_22==INLINE||(LA269_22 >= LIBRARY && LA269_22 <= LOCAL)||LA269_22==MESSAGE||LA269_22==NEAR||(LA269_22 >= OVERLOAD && LA269_22 <= OVERRIDE)||(LA269_22 >= PASCAL && LA269_22 <= PLATFORM)||(LA269_22 >= REGISTER && LA269_22 <= REINTRODUCE)||LA269_22==SAFECALL||LA269_22==SEMICOLON||(LA269_22 >= STATIC && LA269_22 <= STDCALL)||LA269_22==UNSAFE||(LA269_22 >= VARARGS && LA269_22 <= VIRTUAL)||LA269_22==WINAPI) ) {
alt269=1;
}
}
break;
}
}
else if ( (LA269_0==ABSTRACT||LA269_0==ASSEMBLER||LA269_0==CDECL||LA269_0==DEPRECATED||LA269_0==DISPID||LA269_0==DYNAMIC||(LA269_0 >= EXPERIMENTAL && LA269_0 <= EXPORT)||LA269_0==EXTERNAL||LA269_0==FAR||LA269_0==FINAL||LA269_0==FORWARD||LA269_0==INLINE||(LA269_0 >= LIBRARY && LA269_0 <= LOCAL)||LA269_0==MESSAGE||LA269_0==NEAR||(LA269_0 >= OVERLOAD && LA269_0 <= OVERRIDE)||(LA269_0 >= PASCAL && LA269_0 <= PLATFORM)||(LA269_0 >= REGISTER && LA269_0 <= REINTRODUCE)||LA269_0==SAFECALL||(LA269_0 >= STATIC && LA269_0 <= STDCALL)||LA269_0==UNSAFE||(LA269_0 >= VARARGS && LA269_0 <= VIRTUAL)||LA269_0==WINAPI) ) {
alt269=1;
}
switch (alt269) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1072:33: ( ';' )? interfaceDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1072:33: ( ';' )?
int alt268=2;
int LA268_0 = input.LA(1);
if ( (LA268_0==SEMICOLON) ) {
alt268=1;
}
switch (alt268) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1072:33: ';'
{
char_literal796=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_interfaceDirectiveSection21724); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal796_tree = (Object)adaptor.create(char_literal796);
adaptor.addChild(root_0, char_literal796_tree);
}
}
break;
}
pushFollow(FOLLOW_interfaceDirective_in_interfaceDirectiveSection21727);
interfaceDirective797=interfaceDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceDirective797.getTree());
}
break;
default :
break loop269;
}
}
char_literal798=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_interfaceDirectiveSection21731); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal798_tree = (Object)adaptor.create(char_literal798);
adaptor.addChild(root_0, char_literal798_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1073:32: ( ';' interfaceDirective )+
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:1073:32: ( ';' interfaceDirective )+
int cnt270=0;
loop270:
while (true) {
int alt270=2;
int LA270_0 = input.LA(1);
if ( (LA270_0==SEMICOLON) ) {
alt270=1;
}
switch (alt270) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1073:33: ';' interfaceDirective
{
char_literal799=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_interfaceDirectiveSection21765); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal799_tree = (Object)adaptor.create(char_literal799);
adaptor.addChild(root_0, char_literal799_tree);
}
pushFollow(FOLLOW_interfaceDirective_in_interfaceDirectiveSection21767);
interfaceDirective800=interfaceDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, interfaceDirective800.getTree());
}
break;
default :
if ( cnt270 >= 1 ) break loop270;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(270, input);
throw eee;
}
cnt270++;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 200, interfaceDirectiveSection_StartIndex); }
}
return retval;
}
// $ANTLR end "interfaceDirectiveSection"
public static class externalDirectiveSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "externalDirectiveSection"
// au/com/integradev/delphi/antlr/Delphi.g:1075:1: externalDirectiveSection : ( ( ( ';' )? implDirective )* ( ';' )? externalDirective ( ( ';' )? implDirective )* ';' | ( ';' implDirective )* ';' externalDirective ( ';' implDirective )* );
public final DelphiParser.externalDirectiveSection_return externalDirectiveSection() throws RecognitionException {
DelphiParser.externalDirectiveSection_return retval = new DelphiParser.externalDirectiveSection_return();
retval.start = input.LT(1);
int externalDirectiveSection_StartIndex = input.index();
Object root_0 = null;
Token char_literal801=null;
Token char_literal803=null;
Token char_literal805=null;
Token char_literal807=null;
Token char_literal808=null;
Token char_literal810=null;
Token char_literal812=null;
ParserRuleReturnScope implDirective802 =null;
ParserRuleReturnScope externalDirective804 =null;
ParserRuleReturnScope implDirective806 =null;
ParserRuleReturnScope implDirective809 =null;
ParserRuleReturnScope externalDirective811 =null;
ParserRuleReturnScope implDirective813 =null;
Object char_literal801_tree=null;
Object char_literal803_tree=null;
Object char_literal805_tree=null;
Object char_literal807_tree=null;
Object char_literal808_tree=null;
Object char_literal810_tree=null;
Object char_literal812_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 201) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1075:31: ( ( ( ';' )? implDirective )* ( ';' )? externalDirective ( ( ';' )? implDirective )* ';' | ( ';' implDirective )* ';' externalDirective ( ';' implDirective )* )
int alt279=2;
int LA279_0 = input.LA(1);
if ( (LA279_0==SEMICOLON) ) {
int LA279_1 = input.LA(2);
if ( (synpred394_Delphi()) ) {
alt279=1;
}
else if ( (true) ) {
alt279=2;
}
}
else if ( (LA279_0==ABSTRACT||LA279_0==ASSEMBLER||LA279_0==CDECL||LA279_0==DEPRECATED||LA279_0==DISPID||LA279_0==DYNAMIC||(LA279_0 >= EXPERIMENTAL && LA279_0 <= EXPORT)||LA279_0==EXTERNAL||LA279_0==FAR||LA279_0==FINAL||LA279_0==INLINE||(LA279_0 >= LIBRARY && LA279_0 <= LOCAL)||LA279_0==MESSAGE||LA279_0==NEAR||(LA279_0 >= OVERLOAD && LA279_0 <= OVERRIDE)||(LA279_0 >= PASCAL && LA279_0 <= PLATFORM)||(LA279_0 >= REGISTER && LA279_0 <= REINTRODUCE)||LA279_0==SAFECALL||(LA279_0 >= STATIC && LA279_0 <= STDCALL)||LA279_0==UNSAFE||(LA279_0 >= VARARGS && LA279_0 <= VIRTUAL)||LA279_0==WINAPI) ) {
alt279=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 279, 0, input);
throw nvae;
}
switch (alt279) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1075:33: ( ( ';' )? implDirective )* ( ';' )? externalDirective ( ( ';' )? implDirective )* ';'
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:1075:33: ( ( ';' )? implDirective )*
loop273:
while (true) {
int alt273=2;
int LA273_0 = input.LA(1);
if ( (LA273_0==SEMICOLON) ) {
int LA273_1 = input.LA(2);
if ( (LA273_1==ABSTRACT||LA273_1==ASSEMBLER||LA273_1==CDECL||LA273_1==DEPRECATED||LA273_1==DISPID||LA273_1==DYNAMIC||(LA273_1 >= EXPERIMENTAL && LA273_1 <= EXPORT)||LA273_1==FAR||LA273_1==FINAL||LA273_1==INLINE||(LA273_1 >= LIBRARY && LA273_1 <= LOCAL)||LA273_1==MESSAGE||LA273_1==NEAR||(LA273_1 >= OVERLOAD && LA273_1 <= OVERRIDE)||(LA273_1 >= PASCAL && LA273_1 <= PLATFORM)||(LA273_1 >= REGISTER && LA273_1 <= REINTRODUCE)||LA273_1==SAFECALL||(LA273_1 >= STATIC && LA273_1 <= STDCALL)||LA273_1==UNSAFE||(LA273_1 >= VARARGS && LA273_1 <= VIRTUAL)||LA273_1==WINAPI) ) {
alt273=1;
}
}
else if ( (LA273_0==ABSTRACT||LA273_0==ASSEMBLER||LA273_0==CDECL||LA273_0==DEPRECATED||LA273_0==DISPID||LA273_0==DYNAMIC||(LA273_0 >= EXPERIMENTAL && LA273_0 <= EXPORT)||LA273_0==FAR||LA273_0==FINAL||LA273_0==INLINE||(LA273_0 >= LIBRARY && LA273_0 <= LOCAL)||LA273_0==MESSAGE||LA273_0==NEAR||(LA273_0 >= OVERLOAD && LA273_0 <= OVERRIDE)||(LA273_0 >= PASCAL && LA273_0 <= PLATFORM)||(LA273_0 >= REGISTER && LA273_0 <= REINTRODUCE)||LA273_0==SAFECALL||(LA273_0 >= STATIC && LA273_0 <= STDCALL)||LA273_0==UNSAFE||(LA273_0 >= VARARGS && LA273_0 <= VIRTUAL)||LA273_0==WINAPI) ) {
alt273=1;
}
switch (alt273) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1075:34: ( ';' )? implDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1075:34: ( ';' )?
int alt272=2;
int LA272_0 = input.LA(1);
if ( (LA272_0==SEMICOLON) ) {
alt272=1;
}
switch (alt272) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1075:34: ';'
{
char_literal801=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_externalDirectiveSection21812); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal801_tree = (Object)adaptor.create(char_literal801);
adaptor.addChild(root_0, char_literal801_tree);
}
}
break;
}
pushFollow(FOLLOW_implDirective_in_externalDirectiveSection21815);
implDirective802=implDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implDirective802.getTree());
}
break;
default :
break loop273;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:1075:55: ( ';' )?
int alt274=2;
int LA274_0 = input.LA(1);
if ( (LA274_0==SEMICOLON) ) {
alt274=1;
}
switch (alt274) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1075:55: ';'
{
char_literal803=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_externalDirectiveSection21819); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal803_tree = (Object)adaptor.create(char_literal803);
adaptor.addChild(root_0, char_literal803_tree);
}
}
break;
}
pushFollow(FOLLOW_externalDirective_in_externalDirectiveSection21822);
externalDirective804=externalDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, externalDirective804.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1075:78: ( ( ';' )? implDirective )*
loop276:
while (true) {
int alt276=2;
int LA276_0 = input.LA(1);
if ( (LA276_0==SEMICOLON) ) {
int LA276_1 = input.LA(2);
if ( (LA276_1==ABSTRACT||LA276_1==ASSEMBLER||LA276_1==CDECL||LA276_1==DEPRECATED||LA276_1==DISPID||LA276_1==DYNAMIC||(LA276_1 >= EXPERIMENTAL && LA276_1 <= EXPORT)||LA276_1==FAR||LA276_1==FINAL||LA276_1==INLINE||(LA276_1 >= LIBRARY && LA276_1 <= LOCAL)||LA276_1==MESSAGE||LA276_1==NEAR||(LA276_1 >= OVERLOAD && LA276_1 <= OVERRIDE)||(LA276_1 >= PASCAL && LA276_1 <= PLATFORM)||(LA276_1 >= REGISTER && LA276_1 <= REINTRODUCE)||LA276_1==SAFECALL||(LA276_1 >= STATIC && LA276_1 <= STDCALL)||LA276_1==UNSAFE||(LA276_1 >= VARARGS && LA276_1 <= VIRTUAL)||LA276_1==WINAPI) ) {
alt276=1;
}
}
else if ( (LA276_0==ABSTRACT||LA276_0==ASSEMBLER||LA276_0==CDECL||LA276_0==DEPRECATED||LA276_0==DISPID||LA276_0==DYNAMIC||(LA276_0 >= EXPERIMENTAL && LA276_0 <= EXPORT)||LA276_0==FAR||LA276_0==FINAL||LA276_0==INLINE||(LA276_0 >= LIBRARY && LA276_0 <= LOCAL)||LA276_0==MESSAGE||LA276_0==NEAR||(LA276_0 >= OVERLOAD && LA276_0 <= OVERRIDE)||(LA276_0 >= PASCAL && LA276_0 <= PLATFORM)||(LA276_0 >= REGISTER && LA276_0 <= REINTRODUCE)||LA276_0==SAFECALL||(LA276_0 >= STATIC && LA276_0 <= STDCALL)||LA276_0==UNSAFE||(LA276_0 >= VARARGS && LA276_0 <= VIRTUAL)||LA276_0==WINAPI) ) {
alt276=1;
}
switch (alt276) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1075:79: ( ';' )? implDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1075:79: ( ';' )?
int alt275=2;
int LA275_0 = input.LA(1);
if ( (LA275_0==SEMICOLON) ) {
alt275=1;
}
switch (alt275) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1075:79: ';'
{
char_literal805=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_externalDirectiveSection21825); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal805_tree = (Object)adaptor.create(char_literal805);
adaptor.addChild(root_0, char_literal805_tree);
}
}
break;
}
pushFollow(FOLLOW_implDirective_in_externalDirectiveSection21828);
implDirective806=implDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implDirective806.getTree());
}
break;
default :
break loop276;
}
}
char_literal807=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_externalDirectiveSection21831); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal807_tree = (Object)adaptor.create(char_literal807);
adaptor.addChild(root_0, char_literal807_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1076:32: ( ';' implDirective )* ';' externalDirective ( ';' implDirective )*
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:1076:32: ( ';' implDirective )*
loop277:
while (true) {
int alt277=2;
int LA277_0 = input.LA(1);
if ( (LA277_0==SEMICOLON) ) {
int LA277_1 = input.LA(2);
if ( (LA277_1==ABSTRACT||LA277_1==ASSEMBLER||LA277_1==CDECL||LA277_1==DEPRECATED||LA277_1==DISPID||LA277_1==DYNAMIC||(LA277_1 >= EXPERIMENTAL && LA277_1 <= EXPORT)||LA277_1==FAR||LA277_1==FINAL||LA277_1==INLINE||(LA277_1 >= LIBRARY && LA277_1 <= LOCAL)||LA277_1==MESSAGE||LA277_1==NEAR||(LA277_1 >= OVERLOAD && LA277_1 <= OVERRIDE)||(LA277_1 >= PASCAL && LA277_1 <= PLATFORM)||(LA277_1 >= REGISTER && LA277_1 <= REINTRODUCE)||LA277_1==SAFECALL||(LA277_1 >= STATIC && LA277_1 <= STDCALL)||LA277_1==UNSAFE||(LA277_1 >= VARARGS && LA277_1 <= VIRTUAL)||LA277_1==WINAPI) ) {
alt277=1;
}
}
switch (alt277) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1076:33: ';' implDirective
{
char_literal808=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_externalDirectiveSection21865); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal808_tree = (Object)adaptor.create(char_literal808);
adaptor.addChild(root_0, char_literal808_tree);
}
pushFollow(FOLLOW_implDirective_in_externalDirectiveSection21867);
implDirective809=implDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implDirective809.getTree());
}
break;
default :
break loop277;
}
}
char_literal810=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_externalDirectiveSection21871); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal810_tree = (Object)adaptor.create(char_literal810);
adaptor.addChild(root_0, char_literal810_tree);
}
pushFollow(FOLLOW_externalDirective_in_externalDirectiveSection21873);
externalDirective811=externalDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, externalDirective811.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1076:75: ( ';' implDirective )*
loop278:
while (true) {
int alt278=2;
int LA278_0 = input.LA(1);
if ( (LA278_0==SEMICOLON) ) {
alt278=1;
}
switch (alt278) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1076:76: ';' implDirective
{
char_literal812=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_externalDirectiveSection21876); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal812_tree = (Object)adaptor.create(char_literal812);
adaptor.addChild(root_0, char_literal812_tree);
}
pushFollow(FOLLOW_implDirective_in_externalDirectiveSection21878);
implDirective813=implDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implDirective813.getTree());
}
break;
default :
break loop278;
}
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 201, externalDirectiveSection_StartIndex); }
}
return retval;
}
// $ANTLR end "externalDirectiveSection"
public static class forwardDirectiveSection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "forwardDirectiveSection"
// au/com/integradev/delphi/antlr/Delphi.g:1078:1: forwardDirectiveSection : ( ( ( ';' )? implDirective )* ( ';' )? FORWARD ( ( ';' )? implDirective )* ';' | ( ';' implDirective )* ';' FORWARD ( ';' implDirective )* );
public final DelphiParser.forwardDirectiveSection_return forwardDirectiveSection() throws RecognitionException {
DelphiParser.forwardDirectiveSection_return retval = new DelphiParser.forwardDirectiveSection_return();
retval.start = input.LT(1);
int forwardDirectiveSection_StartIndex = input.index();
Object root_0 = null;
Token char_literal814=null;
Token char_literal816=null;
Token FORWARD817=null;
Token char_literal818=null;
Token char_literal820=null;
Token char_literal821=null;
Token char_literal823=null;
Token FORWARD824=null;
Token char_literal825=null;
ParserRuleReturnScope implDirective815 =null;
ParserRuleReturnScope implDirective819 =null;
ParserRuleReturnScope implDirective822 =null;
ParserRuleReturnScope implDirective826 =null;
Object char_literal814_tree=null;
Object char_literal816_tree=null;
Object FORWARD817_tree=null;
Object char_literal818_tree=null;
Object char_literal820_tree=null;
Object char_literal821_tree=null;
Object char_literal823_tree=null;
Object FORWARD824_tree=null;
Object char_literal825_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 202) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1078:30: ( ( ( ';' )? implDirective )* ( ';' )? FORWARD ( ( ';' )? implDirective )* ';' | ( ';' implDirective )* ';' FORWARD ( ';' implDirective )* )
int alt287=2;
int LA287_0 = input.LA(1);
if ( (LA287_0==SEMICOLON) ) {
int LA287_1 = input.LA(2);
if ( (synpred402_Delphi()) ) {
alt287=1;
}
else if ( (true) ) {
alt287=2;
}
}
else if ( (LA287_0==ABSTRACT||LA287_0==ASSEMBLER||LA287_0==CDECL||LA287_0==DEPRECATED||LA287_0==DISPID||LA287_0==DYNAMIC||(LA287_0 >= EXPERIMENTAL && LA287_0 <= EXPORT)||LA287_0==FAR||LA287_0==FINAL||LA287_0==FORWARD||LA287_0==INLINE||(LA287_0 >= LIBRARY && LA287_0 <= LOCAL)||LA287_0==MESSAGE||LA287_0==NEAR||(LA287_0 >= OVERLOAD && LA287_0 <= OVERRIDE)||(LA287_0 >= PASCAL && LA287_0 <= PLATFORM)||(LA287_0 >= REGISTER && LA287_0 <= REINTRODUCE)||LA287_0==SAFECALL||(LA287_0 >= STATIC && LA287_0 <= STDCALL)||LA287_0==UNSAFE||(LA287_0 >= VARARGS && LA287_0 <= VIRTUAL)||LA287_0==WINAPI) ) {
alt287=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 287, 0, input);
throw nvae;
}
switch (alt287) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1078:32: ( ( ';' )? implDirective )* ( ';' )? FORWARD ( ( ';' )? implDirective )* ';'
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:1078:32: ( ( ';' )? implDirective )*
loop281:
while (true) {
int alt281=2;
int LA281_0 = input.LA(1);
if ( (LA281_0==SEMICOLON) ) {
int LA281_1 = input.LA(2);
if ( (LA281_1==ABSTRACT||LA281_1==ASSEMBLER||LA281_1==CDECL||LA281_1==DEPRECATED||LA281_1==DISPID||LA281_1==DYNAMIC||(LA281_1 >= EXPERIMENTAL && LA281_1 <= EXPORT)||LA281_1==FAR||LA281_1==FINAL||LA281_1==INLINE||(LA281_1 >= LIBRARY && LA281_1 <= LOCAL)||LA281_1==MESSAGE||LA281_1==NEAR||(LA281_1 >= OVERLOAD && LA281_1 <= OVERRIDE)||(LA281_1 >= PASCAL && LA281_1 <= PLATFORM)||(LA281_1 >= REGISTER && LA281_1 <= REINTRODUCE)||LA281_1==SAFECALL||(LA281_1 >= STATIC && LA281_1 <= STDCALL)||LA281_1==UNSAFE||(LA281_1 >= VARARGS && LA281_1 <= VIRTUAL)||LA281_1==WINAPI) ) {
alt281=1;
}
}
else if ( (LA281_0==ABSTRACT||LA281_0==ASSEMBLER||LA281_0==CDECL||LA281_0==DEPRECATED||LA281_0==DISPID||LA281_0==DYNAMIC||(LA281_0 >= EXPERIMENTAL && LA281_0 <= EXPORT)||LA281_0==FAR||LA281_0==FINAL||LA281_0==INLINE||(LA281_0 >= LIBRARY && LA281_0 <= LOCAL)||LA281_0==MESSAGE||LA281_0==NEAR||(LA281_0 >= OVERLOAD && LA281_0 <= OVERRIDE)||(LA281_0 >= PASCAL && LA281_0 <= PLATFORM)||(LA281_0 >= REGISTER && LA281_0 <= REINTRODUCE)||LA281_0==SAFECALL||(LA281_0 >= STATIC && LA281_0 <= STDCALL)||LA281_0==UNSAFE||(LA281_0 >= VARARGS && LA281_0 <= VIRTUAL)||LA281_0==WINAPI) ) {
alt281=1;
}
switch (alt281) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1078:33: ( ';' )? implDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1078:33: ( ';' )?
int alt280=2;
int LA280_0 = input.LA(1);
if ( (LA280_0==SEMICOLON) ) {
alt280=1;
}
switch (alt280) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1078:33: ';'
{
char_literal814=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_forwardDirectiveSection21923); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal814_tree = (Object)adaptor.create(char_literal814);
adaptor.addChild(root_0, char_literal814_tree);
}
}
break;
}
pushFollow(FOLLOW_implDirective_in_forwardDirectiveSection21926);
implDirective815=implDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implDirective815.getTree());
}
break;
default :
break loop281;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:1078:54: ( ';' )?
int alt282=2;
int LA282_0 = input.LA(1);
if ( (LA282_0==SEMICOLON) ) {
alt282=1;
}
switch (alt282) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1078:54: ';'
{
char_literal816=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_forwardDirectiveSection21930); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal816_tree = (Object)adaptor.create(char_literal816);
adaptor.addChild(root_0, char_literal816_tree);
}
}
break;
}
FORWARD817=(Token)match(input,FORWARD,FOLLOW_FORWARD_in_forwardDirectiveSection21933); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FORWARD817_tree = (Object)adaptor.create(FORWARD817);
adaptor.addChild(root_0, FORWARD817_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:1078:67: ( ( ';' )? implDirective )*
loop284:
while (true) {
int alt284=2;
int LA284_0 = input.LA(1);
if ( (LA284_0==SEMICOLON) ) {
int LA284_1 = input.LA(2);
if ( (LA284_1==ABSTRACT||LA284_1==ASSEMBLER||LA284_1==CDECL||LA284_1==DEPRECATED||LA284_1==DISPID||LA284_1==DYNAMIC||(LA284_1 >= EXPERIMENTAL && LA284_1 <= EXPORT)||LA284_1==FAR||LA284_1==FINAL||LA284_1==INLINE||(LA284_1 >= LIBRARY && LA284_1 <= LOCAL)||LA284_1==MESSAGE||LA284_1==NEAR||(LA284_1 >= OVERLOAD && LA284_1 <= OVERRIDE)||(LA284_1 >= PASCAL && LA284_1 <= PLATFORM)||(LA284_1 >= REGISTER && LA284_1 <= REINTRODUCE)||LA284_1==SAFECALL||(LA284_1 >= STATIC && LA284_1 <= STDCALL)||LA284_1==UNSAFE||(LA284_1 >= VARARGS && LA284_1 <= VIRTUAL)||LA284_1==WINAPI) ) {
alt284=1;
}
}
else if ( (LA284_0==ABSTRACT||LA284_0==ASSEMBLER||LA284_0==CDECL||LA284_0==DEPRECATED||LA284_0==DISPID||LA284_0==DYNAMIC||(LA284_0 >= EXPERIMENTAL && LA284_0 <= EXPORT)||LA284_0==FAR||LA284_0==FINAL||LA284_0==INLINE||(LA284_0 >= LIBRARY && LA284_0 <= LOCAL)||LA284_0==MESSAGE||LA284_0==NEAR||(LA284_0 >= OVERLOAD && LA284_0 <= OVERRIDE)||(LA284_0 >= PASCAL && LA284_0 <= PLATFORM)||(LA284_0 >= REGISTER && LA284_0 <= REINTRODUCE)||LA284_0==SAFECALL||(LA284_0 >= STATIC && LA284_0 <= STDCALL)||LA284_0==UNSAFE||(LA284_0 >= VARARGS && LA284_0 <= VIRTUAL)||LA284_0==WINAPI) ) {
alt284=1;
}
switch (alt284) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1078:68: ( ';' )? implDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1078:68: ( ';' )?
int alt283=2;
int LA283_0 = input.LA(1);
if ( (LA283_0==SEMICOLON) ) {
alt283=1;
}
switch (alt283) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1078:68: ';'
{
char_literal818=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_forwardDirectiveSection21936); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal818_tree = (Object)adaptor.create(char_literal818);
adaptor.addChild(root_0, char_literal818_tree);
}
}
break;
}
pushFollow(FOLLOW_implDirective_in_forwardDirectiveSection21939);
implDirective819=implDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implDirective819.getTree());
}
break;
default :
break loop284;
}
}
char_literal820=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_forwardDirectiveSection21942); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal820_tree = (Object)adaptor.create(char_literal820);
adaptor.addChild(root_0, char_literal820_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1079:32: ( ';' implDirective )* ';' FORWARD ( ';' implDirective )*
{
root_0 = (Object)adaptor.nil();
// au/com/integradev/delphi/antlr/Delphi.g:1079:32: ( ';' implDirective )*
loop285:
while (true) {
int alt285=2;
int LA285_0 = input.LA(1);
if ( (LA285_0==SEMICOLON) ) {
int LA285_1 = input.LA(2);
if ( (LA285_1==ABSTRACT||LA285_1==ASSEMBLER||LA285_1==CDECL||LA285_1==DEPRECATED||LA285_1==DISPID||LA285_1==DYNAMIC||(LA285_1 >= EXPERIMENTAL && LA285_1 <= EXPORT)||LA285_1==FAR||LA285_1==FINAL||LA285_1==INLINE||(LA285_1 >= LIBRARY && LA285_1 <= LOCAL)||LA285_1==MESSAGE||LA285_1==NEAR||(LA285_1 >= OVERLOAD && LA285_1 <= OVERRIDE)||(LA285_1 >= PASCAL && LA285_1 <= PLATFORM)||(LA285_1 >= REGISTER && LA285_1 <= REINTRODUCE)||LA285_1==SAFECALL||(LA285_1 >= STATIC && LA285_1 <= STDCALL)||LA285_1==UNSAFE||(LA285_1 >= VARARGS && LA285_1 <= VIRTUAL)||LA285_1==WINAPI) ) {
alt285=1;
}
}
switch (alt285) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1079:33: ';' implDirective
{
char_literal821=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_forwardDirectiveSection21976); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal821_tree = (Object)adaptor.create(char_literal821);
adaptor.addChild(root_0, char_literal821_tree);
}
pushFollow(FOLLOW_implDirective_in_forwardDirectiveSection21978);
implDirective822=implDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implDirective822.getTree());
}
break;
default :
break loop285;
}
}
char_literal823=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_forwardDirectiveSection21982); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal823_tree = (Object)adaptor.create(char_literal823);
adaptor.addChild(root_0, char_literal823_tree);
}
FORWARD824=(Token)match(input,FORWARD,FOLLOW_FORWARD_in_forwardDirectiveSection21984); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FORWARD824_tree = (Object)adaptor.create(FORWARD824);
adaptor.addChild(root_0, FORWARD824_tree);
}
// au/com/integradev/delphi/antlr/Delphi.g:1079:65: ( ';' implDirective )*
loop286:
while (true) {
int alt286=2;
int LA286_0 = input.LA(1);
if ( (LA286_0==SEMICOLON) ) {
alt286=1;
}
switch (alt286) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1079:66: ';' implDirective
{
char_literal825=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_forwardDirectiveSection21987); if (state.failed) return retval;
if ( state.backtracking==0 ) {
char_literal825_tree = (Object)adaptor.create(char_literal825);
adaptor.addChild(root_0, char_literal825_tree);
}
pushFollow(FOLLOW_implDirective_in_forwardDirectiveSection21989);
implDirective826=implDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implDirective826.getTree());
}
break;
default :
break loop286;
}
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 202, forwardDirectiveSection_StartIndex); }
}
return retval;
}
// $ANTLR end "forwardDirectiveSection"
public static class implDirective_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "implDirective"
// au/com/integradev/delphi/antlr/Delphi.g:1081:1: implDirective : ( OVERLOAD | REINTRODUCE | bindingDirective | abstractDirective | inlineDirective | callConvention | portabilityDirective | oldCallConventionDirective | dispIDDirective | VARARGS | UNSAFE );
public final DelphiParser.implDirective_return implDirective() throws RecognitionException {
DelphiParser.implDirective_return retval = new DelphiParser.implDirective_return();
retval.start = input.LT(1);
int implDirective_StartIndex = input.index();
Object root_0 = null;
Token OVERLOAD827=null;
Token REINTRODUCE828=null;
Token VARARGS836=null;
Token UNSAFE837=null;
ParserRuleReturnScope bindingDirective829 =null;
ParserRuleReturnScope abstractDirective830 =null;
ParserRuleReturnScope inlineDirective831 =null;
ParserRuleReturnScope callConvention832 =null;
ParserRuleReturnScope portabilityDirective833 =null;
ParserRuleReturnScope oldCallConventionDirective834 =null;
ParserRuleReturnScope dispIDDirective835 =null;
Object OVERLOAD827_tree=null;
Object REINTRODUCE828_tree=null;
Object VARARGS836_tree=null;
Object UNSAFE837_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 203) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1081:30: ( OVERLOAD | REINTRODUCE | bindingDirective | abstractDirective | inlineDirective | callConvention | portabilityDirective | oldCallConventionDirective | dispIDDirective | VARARGS | UNSAFE )
int alt288=11;
switch ( input.LA(1) ) {
case OVERLOAD:
{
alt288=1;
}
break;
case REINTRODUCE:
{
alt288=2;
}
break;
case DYNAMIC:
case MESSAGE:
case OVERRIDE:
case STATIC:
case VIRTUAL:
{
alt288=3;
}
break;
case ABSTRACT:
case FINAL:
{
alt288=4;
}
break;
case ASSEMBLER:
case INLINE:
{
alt288=5;
}
break;
case CDECL:
case EXPORT:
case PASCAL:
case REGISTER:
case SAFECALL:
case STDCALL:
case WINAPI:
{
alt288=6;
}
break;
case DEPRECATED:
case EXPERIMENTAL:
case LIBRARY:
case PLATFORM:
{
alt288=7;
}
break;
case FAR:
case LOCAL:
case NEAR:
{
alt288=8;
}
break;
case DISPID:
{
alt288=9;
}
break;
case VARARGS:
{
alt288=10;
}
break;
case UNSAFE:
{
alt288=11;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 288, 0, input);
throw nvae;
}
switch (alt288) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1081:32: OVERLOAD
{
root_0 = (Object)adaptor.nil();
OVERLOAD827=(Token)match(input,OVERLOAD,FOLLOW_OVERLOAD_in_implDirective22043); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OVERLOAD827_tree = (Object)adaptor.create(OVERLOAD827);
adaptor.addChild(root_0, OVERLOAD827_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1082:32: REINTRODUCE
{
root_0 = (Object)adaptor.nil();
REINTRODUCE828=(Token)match(input,REINTRODUCE,FOLLOW_REINTRODUCE_in_implDirective22076); if (state.failed) return retval;
if ( state.backtracking==0 ) {
REINTRODUCE828_tree = (Object)adaptor.create(REINTRODUCE828);
adaptor.addChild(root_0, REINTRODUCE828_tree);
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:1083:32: bindingDirective
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_bindingDirective_in_implDirective22109);
bindingDirective829=bindingDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, bindingDirective829.getTree());
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:1084:32: abstractDirective
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_abstractDirective_in_implDirective22142);
abstractDirective830=abstractDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractDirective830.getTree());
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:1085:32: inlineDirective
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_inlineDirective_in_implDirective22175);
inlineDirective831=inlineDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, inlineDirective831.getTree());
}
break;
case 6 :
// au/com/integradev/delphi/antlr/Delphi.g:1086:32: callConvention
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_callConvention_in_implDirective22208);
callConvention832=callConvention();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, callConvention832.getTree());
}
break;
case 7 :
// au/com/integradev/delphi/antlr/Delphi.g:1087:32: portabilityDirective
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_portabilityDirective_in_implDirective22241);
portabilityDirective833=portabilityDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, portabilityDirective833.getTree());
}
break;
case 8 :
// au/com/integradev/delphi/antlr/Delphi.g:1088:32: oldCallConventionDirective
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_oldCallConventionDirective_in_implDirective22274);
oldCallConventionDirective834=oldCallConventionDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, oldCallConventionDirective834.getTree());
}
break;
case 9 :
// au/com/integradev/delphi/antlr/Delphi.g:1089:32: dispIDDirective
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_dispIDDirective_in_implDirective22307);
dispIDDirective835=dispIDDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, dispIDDirective835.getTree());
}
break;
case 10 :
// au/com/integradev/delphi/antlr/Delphi.g:1090:32: VARARGS
{
root_0 = (Object)adaptor.nil();
VARARGS836=(Token)match(input,VARARGS,FOLLOW_VARARGS_in_implDirective22340); if (state.failed) return retval;
if ( state.backtracking==0 ) {
VARARGS836_tree = (Object)adaptor.create(VARARGS836);
adaptor.addChild(root_0, VARARGS836_tree);
}
}
break;
case 11 :
// au/com/integradev/delphi/antlr/Delphi.g:1091:32: UNSAFE
{
root_0 = (Object)adaptor.nil();
UNSAFE837=(Token)match(input,UNSAFE,FOLLOW_UNSAFE_in_implDirective22374); if (state.failed) return retval;
if ( state.backtracking==0 ) {
UNSAFE837_tree = (Object)adaptor.create(UNSAFE837);
adaptor.addChild(root_0, UNSAFE837_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 203, implDirective_StartIndex); }
}
return retval;
}
// $ANTLR end "implDirective"
public static class interfaceDirective_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "interfaceDirective"
// au/com/integradev/delphi/antlr/Delphi.g:1093:1: interfaceDirective : ( FORWARD | externalDirective | implDirective );
public final DelphiParser.interfaceDirective_return interfaceDirective() throws RecognitionException {
DelphiParser.interfaceDirective_return retval = new DelphiParser.interfaceDirective_return();
retval.start = input.LT(1);
int interfaceDirective_StartIndex = input.index();
Object root_0 = null;
Token FORWARD838=null;
ParserRuleReturnScope externalDirective839 =null;
ParserRuleReturnScope implDirective840 =null;
Object FORWARD838_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 204) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1093:30: ( FORWARD | externalDirective | implDirective )
int alt289=3;
switch ( input.LA(1) ) {
case FORWARD:
{
alt289=1;
}
break;
case EXTERNAL:
{
alt289=2;
}
break;
case ABSTRACT:
case ASSEMBLER:
case CDECL:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case FAR:
case FINAL:
case INLINE:
case LIBRARY:
case LOCAL:
case MESSAGE:
case NEAR:
case OVERLOAD:
case OVERRIDE:
case PASCAL:
case PLATFORM:
case REGISTER:
case REINTRODUCE:
case SAFECALL:
case STATIC:
case STDCALL:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
{
alt289=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 289, 0, input);
throw nvae;
}
switch (alt289) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1093:32: FORWARD
{
root_0 = (Object)adaptor.nil();
FORWARD838=(Token)match(input,FORWARD,FOLLOW_FORWARD_in_interfaceDirective22422); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FORWARD838_tree = (Object)adaptor.create(FORWARD838);
adaptor.addChild(root_0, FORWARD838_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1094:32: externalDirective
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_externalDirective_in_interfaceDirective22455);
externalDirective839=externalDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, externalDirective839.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:1095:32: implDirective
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_implDirective_in_interfaceDirective22488);
implDirective840=implDirective();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, implDirective840.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 204, interfaceDirective_StartIndex); }
}
return retval;
}
// $ANTLR end "interfaceDirective"
public static class bindingDirective_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "bindingDirective"
// au/com/integradev/delphi/antlr/Delphi.g:1097:1: bindingDirective : ( MESSAGE expression | STATIC | DYNAMIC | OVERRIDE | VIRTUAL );
public final DelphiParser.bindingDirective_return bindingDirective() throws RecognitionException {
DelphiParser.bindingDirective_return retval = new DelphiParser.bindingDirective_return();
retval.start = input.LT(1);
int bindingDirective_StartIndex = input.index();
Object root_0 = null;
Token MESSAGE841=null;
Token STATIC843=null;
Token DYNAMIC844=null;
Token OVERRIDE845=null;
Token VIRTUAL846=null;
ParserRuleReturnScope expression842 =null;
Object MESSAGE841_tree=null;
Object STATIC843_tree=null;
Object DYNAMIC844_tree=null;
Object OVERRIDE845_tree=null;
Object VIRTUAL846_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 205) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1097:30: ( MESSAGE expression | STATIC | DYNAMIC | OVERRIDE | VIRTUAL )
int alt290=5;
switch ( input.LA(1) ) {
case MESSAGE:
{
alt290=1;
}
break;
case STATIC:
{
alt290=2;
}
break;
case DYNAMIC:
{
alt290=3;
}
break;
case OVERRIDE:
{
alt290=4;
}
break;
case VIRTUAL:
{
alt290=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 290, 0, input);
throw nvae;
}
switch (alt290) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1097:32: MESSAGE expression
{
root_0 = (Object)adaptor.nil();
MESSAGE841=(Token)match(input,MESSAGE,FOLLOW_MESSAGE_in_bindingDirective22537); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MESSAGE841_tree = (Object)adaptor.create(MESSAGE841);
adaptor.addChild(root_0, MESSAGE841_tree);
}
pushFollow(FOLLOW_expression_in_bindingDirective22539);
expression842=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression842.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1098:32: STATIC
{
root_0 = (Object)adaptor.nil();
STATIC843=(Token)match(input,STATIC,FOLLOW_STATIC_in_bindingDirective22572); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STATIC843_tree = (Object)adaptor.create(STATIC843);
adaptor.addChild(root_0, STATIC843_tree);
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:1099:32: DYNAMIC
{
root_0 = (Object)adaptor.nil();
DYNAMIC844=(Token)match(input,DYNAMIC,FOLLOW_DYNAMIC_in_bindingDirective22605); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DYNAMIC844_tree = (Object)adaptor.create(DYNAMIC844);
adaptor.addChild(root_0, DYNAMIC844_tree);
}
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:1100:32: OVERRIDE
{
root_0 = (Object)adaptor.nil();
OVERRIDE845=(Token)match(input,OVERRIDE,FOLLOW_OVERRIDE_in_bindingDirective22638); if (state.failed) return retval;
if ( state.backtracking==0 ) {
OVERRIDE845_tree = (Object)adaptor.create(OVERRIDE845);
adaptor.addChild(root_0, OVERRIDE845_tree);
}
}
break;
case 5 :
// au/com/integradev/delphi/antlr/Delphi.g:1101:32: VIRTUAL
{
root_0 = (Object)adaptor.nil();
VIRTUAL846=(Token)match(input,VIRTUAL,FOLLOW_VIRTUAL_in_bindingDirective22671); if (state.failed) return retval;
if ( state.backtracking==0 ) {
VIRTUAL846_tree = (Object)adaptor.create(VIRTUAL846);
adaptor.addChild(root_0, VIRTUAL846_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 205, bindingDirective_StartIndex); }
}
return retval;
}
// $ANTLR end "bindingDirective"
public static class abstractDirective_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "abstractDirective"
// au/com/integradev/delphi/antlr/Delphi.g:1103:1: abstractDirective : ( ABSTRACT | FINAL );
public final DelphiParser.abstractDirective_return abstractDirective() throws RecognitionException {
DelphiParser.abstractDirective_return retval = new DelphiParser.abstractDirective_return();
retval.start = input.LT(1);
int abstractDirective_StartIndex = input.index();
Object root_0 = null;
Token set847=null;
Object set847_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 206) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1103:30: ( ABSTRACT | FINAL )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set847=input.LT(1);
if ( input.LA(1)==ABSTRACT||input.LA(1)==FINAL ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set847));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 206, abstractDirective_StartIndex); }
}
return retval;
}
// $ANTLR end "abstractDirective"
public static class inlineDirective_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "inlineDirective"
// au/com/integradev/delphi/antlr/Delphi.g:1106:1: inlineDirective : ( INLINE | ASSEMBLER );
public final DelphiParser.inlineDirective_return inlineDirective() throws RecognitionException {
DelphiParser.inlineDirective_return retval = new DelphiParser.inlineDirective_return();
retval.start = input.LT(1);
int inlineDirective_StartIndex = input.index();
Object root_0 = null;
Token set848=null;
Object set848_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 207) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1106:30: ( INLINE | ASSEMBLER )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set848=input.LT(1);
if ( input.LA(1)==ASSEMBLER||input.LA(1)==INLINE ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set848));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 207, inlineDirective_StartIndex); }
}
return retval;
}
// $ANTLR end "inlineDirective"
public static class callConvention_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "callConvention"
// au/com/integradev/delphi/antlr/Delphi.g:1109:1: callConvention : ( CDECL | PASCAL | REGISTER | SAFECALL | STDCALL | WINAPI | EXPORT );
public final DelphiParser.callConvention_return callConvention() throws RecognitionException {
DelphiParser.callConvention_return retval = new DelphiParser.callConvention_return();
retval.start = input.LT(1);
int callConvention_StartIndex = input.index();
Object root_0 = null;
Token set849=null;
Object set849_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 208) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1109:30: ( CDECL | PASCAL | REGISTER | SAFECALL | STDCALL | WINAPI | EXPORT )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set849=input.LT(1);
if ( input.LA(1)==CDECL||input.LA(1)==EXPORT||input.LA(1)==PASCAL||input.LA(1)==REGISTER||input.LA(1)==SAFECALL||input.LA(1)==STDCALL||input.LA(1)==WINAPI ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set849));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 208, callConvention_StartIndex); }
}
return retval;
}
// $ANTLR end "callConvention"
public static class oldCallConventionDirective_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "oldCallConventionDirective"
// au/com/integradev/delphi/antlr/Delphi.g:1117:1: oldCallConventionDirective : ( FAR | LOCAL | NEAR );
public final DelphiParser.oldCallConventionDirective_return oldCallConventionDirective() throws RecognitionException {
DelphiParser.oldCallConventionDirective_return retval = new DelphiParser.oldCallConventionDirective_return();
retval.start = input.LT(1);
int oldCallConventionDirective_StartIndex = input.index();
Object root_0 = null;
Token set850=null;
Object set850_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 209) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1117:30: ( FAR | LOCAL | NEAR )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set850=input.LT(1);
if ( input.LA(1)==FAR||input.LA(1)==LOCAL||input.LA(1)==NEAR ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set850));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 209, oldCallConventionDirective_StartIndex); }
}
return retval;
}
// $ANTLR end "oldCallConventionDirective"
public static class portabilityDirective_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "portabilityDirective"
// au/com/integradev/delphi/antlr/Delphi.g:1121:1: portabilityDirective : ( DEPRECATED ^ ( textLiteral )? | EXPERIMENTAL | PLATFORM | LIBRARY );
public final DelphiParser.portabilityDirective_return portabilityDirective() throws RecognitionException {
DelphiParser.portabilityDirective_return retval = new DelphiParser.portabilityDirective_return();
retval.start = input.LT(1);
int portabilityDirective_StartIndex = input.index();
Object root_0 = null;
Token DEPRECATED851=null;
Token EXPERIMENTAL853=null;
Token PLATFORM854=null;
Token LIBRARY855=null;
ParserRuleReturnScope textLiteral852 =null;
Object DEPRECATED851_tree=null;
Object EXPERIMENTAL853_tree=null;
Object PLATFORM854_tree=null;
Object LIBRARY855_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 210) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1121:30: ( DEPRECATED ^ ( textLiteral )? | EXPERIMENTAL | PLATFORM | LIBRARY )
int alt292=4;
switch ( input.LA(1) ) {
case DEPRECATED:
{
alt292=1;
}
break;
case EXPERIMENTAL:
{
alt292=2;
}
break;
case PLATFORM:
{
alt292=3;
}
break;
case LIBRARY:
{
alt292=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 292, 0, input);
throw nvae;
}
switch (alt292) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1121:32: DEPRECATED ^ ( textLiteral )?
{
root_0 = (Object)adaptor.nil();
DEPRECATED851=(Token)match(input,DEPRECATED,FOLLOW_DEPRECATED_in_portabilityDirective23239); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DEPRECATED851_tree = (Object)adaptor.create(DEPRECATED851);
root_0 = (Object)adaptor.becomeRoot(DEPRECATED851_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:1121:44: ( textLiteral )?
int alt291=2;
switch ( input.LA(1) ) {
case TkQuotedString:
{
int LA291_1 = input.LA(2);
if ( (synpred431_Delphi()) ) {
alt291=1;
}
}
break;
case TkCharacterEscapeCode:
{
int LA291_2 = input.LA(2);
if ( (synpred431_Delphi()) ) {
alt291=1;
}
}
break;
case DEREFERENCE:
{
switch ( input.LA(2) ) {
case TkIdentifier:
{
int LA291_7 = input.LA(3);
if ( (synpred431_Delphi()) ) {
alt291=1;
}
}
break;
case TkIntNumber:
{
int LA291_8 = input.LA(3);
if ( (synpred431_Delphi()) ) {
alt291=1;
}
}
break;
case TkAnyChar:
{
int LA291_9 = input.LA(3);
if ( (synpred431_Delphi()) ) {
alt291=1;
}
}
break;
}
}
break;
case TkMultilineString:
{
int LA291_4 = input.LA(2);
if ( (synpred431_Delphi()) ) {
alt291=1;
}
}
break;
}
switch (alt291) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1121:44: textLiteral
{
pushFollow(FOLLOW_textLiteral_in_portabilityDirective23242);
textLiteral852=textLiteral();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, textLiteral852.getTree());
}
break;
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1122:32: EXPERIMENTAL
{
root_0 = (Object)adaptor.nil();
EXPERIMENTAL853=(Token)match(input,EXPERIMENTAL,FOLLOW_EXPERIMENTAL_in_portabilityDirective23276); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXPERIMENTAL853_tree = (Object)adaptor.create(EXPERIMENTAL853);
adaptor.addChild(root_0, EXPERIMENTAL853_tree);
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:1123:32: PLATFORM
{
root_0 = (Object)adaptor.nil();
PLATFORM854=(Token)match(input,PLATFORM,FOLLOW_PLATFORM_in_portabilityDirective23309); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PLATFORM854_tree = (Object)adaptor.create(PLATFORM854);
adaptor.addChild(root_0, PLATFORM854_tree);
}
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:1124:32: LIBRARY
{
root_0 = (Object)adaptor.nil();
LIBRARY855=(Token)match(input,LIBRARY,FOLLOW_LIBRARY_in_portabilityDirective23342); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LIBRARY855_tree = (Object)adaptor.create(LIBRARY855);
adaptor.addChild(root_0, LIBRARY855_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 210, portabilityDirective_StartIndex); }
}
return retval;
}
// $ANTLR end "portabilityDirective"
public static class externalDirective_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "externalDirective"
// au/com/integradev/delphi/antlr/Delphi.g:1126:1: externalDirective : EXTERNAL ^ ( dllName )? ( externalSpecifier )* ;
public final DelphiParser.externalDirective_return externalDirective() throws RecognitionException {
DelphiParser.externalDirective_return retval = new DelphiParser.externalDirective_return();
retval.start = input.LT(1);
int externalDirective_StartIndex = input.index();
Object root_0 = null;
Token EXTERNAL856=null;
ParserRuleReturnScope dllName857 =null;
ParserRuleReturnScope externalSpecifier858 =null;
Object EXTERNAL856_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 211) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1126:30: ( EXTERNAL ^ ( dllName )? ( externalSpecifier )* )
// au/com/integradev/delphi/antlr/Delphi.g:1126:32: EXTERNAL ^ ( dllName )? ( externalSpecifier )*
{
root_0 = (Object)adaptor.nil();
EXTERNAL856=(Token)match(input,EXTERNAL,FOLLOW_EXTERNAL_in_externalDirective23390); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTERNAL856_tree = (Object)adaptor.create(EXTERNAL856);
root_0 = (Object)adaptor.becomeRoot(EXTERNAL856_tree, root_0);
}
// au/com/integradev/delphi/antlr/Delphi.g:1126:42: ( dllName )?
int alt293=2;
alt293 = dfa293.predict(input);
switch (alt293) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1126:42: dllName
{
pushFollow(FOLLOW_dllName_in_externalDirective23393);
dllName857=dllName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, dllName857.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:1126:51: ( externalSpecifier )*
loop294:
while (true) {
int alt294=2;
alt294 = dfa294.predict(input);
switch (alt294) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1126:51: externalSpecifier
{
pushFollow(FOLLOW_externalSpecifier_in_externalDirective23396);
externalSpecifier858=externalSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, externalSpecifier858.getTree());
}
break;
default :
break loop294;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 211, externalDirective_StartIndex); }
}
return retval;
}
// $ANTLR end "externalDirective"
public static class dllName_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "dllName"
// au/com/integradev/delphi/antlr/Delphi.g:1128:1: dllName :{...}? expression ;
public final DelphiParser.dllName_return dllName() throws RecognitionException {
DelphiParser.dllName_return retval = new DelphiParser.dllName_return();
retval.start = input.LT(1);
int dllName_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope expression859 =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 212) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1128:30: ({...}? expression )
// au/com/integradev/delphi/antlr/Delphi.g:1128:32: {...}? expression
{
root_0 = (Object)adaptor.nil();
if ( !((!input.LT(1).getText().equals("name"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "dllName", "!input.LT(1).getText().equals(\"name\")");
}
pushFollow(FOLLOW_expression_in_dllName23457);
expression859=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression859.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 212, dllName_StartIndex); }
}
return retval;
}
// $ANTLR end "dllName"
public static class externalSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "externalSpecifier"
// au/com/integradev/delphi/antlr/Delphi.g:1130:1: externalSpecifier : ( NAME ^ expression | INDEX ^ expression | DELAYED );
public final DelphiParser.externalSpecifier_return externalSpecifier() throws RecognitionException {
DelphiParser.externalSpecifier_return retval = new DelphiParser.externalSpecifier_return();
retval.start = input.LT(1);
int externalSpecifier_StartIndex = input.index();
Object root_0 = null;
Token NAME860=null;
Token INDEX862=null;
Token DELAYED864=null;
ParserRuleReturnScope expression861 =null;
ParserRuleReturnScope expression863 =null;
Object NAME860_tree=null;
Object INDEX862_tree=null;
Object DELAYED864_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 213) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1130:30: ( NAME ^ expression | INDEX ^ expression | DELAYED )
int alt295=3;
switch ( input.LA(1) ) {
case NAME:
{
alt295=1;
}
break;
case INDEX:
{
alt295=2;
}
break;
case DELAYED:
{
alt295=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 295, 0, input);
throw nvae;
}
switch (alt295) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1130:32: NAME ^ expression
{
root_0 = (Object)adaptor.nil();
NAME860=(Token)match(input,NAME,FOLLOW_NAME_in_externalSpecifier23505); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NAME860_tree = (Object)adaptor.create(NAME860);
root_0 = (Object)adaptor.becomeRoot(NAME860_tree, root_0);
}
pushFollow(FOLLOW_expression_in_externalSpecifier23508);
expression861=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression861.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1131:32: INDEX ^ expression
{
root_0 = (Object)adaptor.nil();
INDEX862=(Token)match(input,INDEX,FOLLOW_INDEX_in_externalSpecifier23541); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INDEX862_tree = (Object)adaptor.create(INDEX862);
root_0 = (Object)adaptor.becomeRoot(INDEX862_tree, root_0);
}
pushFollow(FOLLOW_expression_in_externalSpecifier23544);
expression863=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression863.getTree());
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:1132:32: DELAYED
{
root_0 = (Object)adaptor.nil();
DELAYED864=(Token)match(input,DELAYED,FOLLOW_DELAYED_in_externalSpecifier23578); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DELAYED864_tree = (Object)adaptor.create(DELAYED864);
adaptor.addChild(root_0, DELAYED864_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 213, externalSpecifier_StartIndex); }
}
return retval;
}
// $ANTLR end "externalSpecifier"
public static class dispIDDirective_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "dispIDDirective"
// au/com/integradev/delphi/antlr/Delphi.g:1134:1: dispIDDirective : DISPID expression ;
public final DelphiParser.dispIDDirective_return dispIDDirective() throws RecognitionException {
DelphiParser.dispIDDirective_return retval = new DelphiParser.dispIDDirective_return();
retval.start = input.LT(1);
int dispIDDirective_StartIndex = input.index();
Object root_0 = null;
Token DISPID865=null;
ParserRuleReturnScope expression866 =null;
Object DISPID865_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 214) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1134:30: ( DISPID expression )
// au/com/integradev/delphi/antlr/Delphi.g:1134:32: DISPID expression
{
root_0 = (Object)adaptor.nil();
DISPID865=(Token)match(input,DISPID,FOLLOW_DISPID_in_dispIDDirective23629); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DISPID865_tree = (Object)adaptor.create(DISPID865);
adaptor.addChild(root_0, DISPID865_tree);
}
pushFollow(FOLLOW_expression_in_dispIDDirective23631);
expression866=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression866.getTree());
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 214, dispIDDirective_StartIndex); }
}
return retval;
}
// $ANTLR end "dispIDDirective"
public static class ident_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "ident"
// au/com/integradev/delphi/antlr/Delphi.g:1140:1: ident : ( TkIdentifier | keywordsUsedAsNames -> ^() );
public final DelphiParser.ident_return ident() throws RecognitionException {
DelphiParser.ident_return retval = new DelphiParser.ident_return();
retval.start = input.LT(1);
int ident_StartIndex = input.index();
Object root_0 = null;
Token TkIdentifier867=null;
ParserRuleReturnScope keywordsUsedAsNames868 =null;
Object TkIdentifier867_tree=null;
RewriteRuleSubtreeStream stream_keywordsUsedAsNames=new RewriteRuleSubtreeStream(adaptor,"rule keywordsUsedAsNames");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 215) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1140:30: ( TkIdentifier | keywordsUsedAsNames -> ^() )
int alt296=2;
int LA296_0 = input.LA(1);
if ( (LA296_0==TkIdentifier) ) {
alt296=1;
}
else if ( ((LA296_0 >= ABSOLUTE && LA296_0 <= ABSTRACT)||LA296_0==ALIGN||(LA296_0 >= ASSEMBLER && LA296_0 <= ASSEMBLY)||(LA296_0 >= AT && LA296_0 <= AUTOMATED)||LA296_0==CDECL||LA296_0==CONTAINS||(LA296_0 >= DEFAULT && LA296_0 <= DEPRECATED)||LA296_0==DISPID||LA296_0==DYNAMIC||(LA296_0 >= EXPERIMENTAL && LA296_0 <= EXPORT)||LA296_0==EXTERNAL||LA296_0==FAR||LA296_0==FINAL||LA296_0==FORWARD||LA296_0==HELPER||LA296_0==IMPLEMENTS||LA296_0==INDEX||LA296_0==LABEL||LA296_0==LOCAL||LA296_0==MESSAGE||(LA296_0 >= NAME && LA296_0 <= NEAR)||LA296_0==NODEFAULT||(LA296_0 >= ON && LA296_0 <= OPERATOR)||(LA296_0 >= OUT && LA296_0 <= OVERRIDE)||LA296_0==PACKAGE||(LA296_0 >= PASCAL && LA296_0 <= PLATFORM)||LA296_0==PRIVATE||(LA296_0 >= PROTECTED && LA296_0 <= PUBLISHED)||(LA296_0 >= READ && LA296_0 <= READONLY)||(LA296_0 >= REFERENCE && LA296_0 <= REINTRODUCE)||(LA296_0 >= REQUIRES && LA296_0 <= RESIDENT)||(LA296_0 >= SAFECALL && LA296_0 <= SEALED)||(LA296_0 >= STATIC && LA296_0 <= STRICT)||LA296_0==UNSAFE||(LA296_0 >= VARARGS && LA296_0 <= VIRTUAL)||LA296_0==WINAPI||(LA296_0 >= WRITE && LA296_0 <= WRITEONLY)) ) {
alt296=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 296, 0, input);
throw nvae;
}
switch (alt296) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1140:32: TkIdentifier
{
root_0 = (Object)adaptor.nil();
TkIdentifier867=(Token)match(input,TkIdentifier,FOLLOW_TkIdentifier_in_ident23695); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TkIdentifier867_tree = (Object)adaptor.create(TkIdentifier867);
adaptor.addChild(root_0, TkIdentifier867_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1141:32: keywordsUsedAsNames
{
pushFollow(FOLLOW_keywordsUsedAsNames_in_ident23728);
keywordsUsedAsNames868=keywordsUsedAsNames();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_keywordsUsedAsNames.add(keywordsUsedAsNames868.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1141:52: -> ^()
{
// au/com/integradev/delphi/antlr/Delphi.g:1141:55: ^()
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(changeTokenType(TkIdentifier), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 215, ident_StartIndex); }
}
return retval;
}
// $ANTLR end "ident"
public static class keywordsUsedAsNames_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "keywordsUsedAsNames"
// au/com/integradev/delphi/antlr/Delphi.g:1143:1: keywordsUsedAsNames : ( ( ABSOLUTE | ABSTRACT | ALIGN | ASSEMBLER | ASSEMBLY | AT | AUTOMATED | CDECL ) | ( CONTAINS | DEFAULT | DELAYED | DEPRECATED | DISPID | DYNAMIC | EXPERIMENTAL | EXPORT ) | ( EXTERNAL | FAR | FINAL | FORWARD | HELPER | IMPLEMENTS | INDEX | LOCAL | MESSAGE | NAME ) | ( NEAR | NODEFAULT | ON | OPERATOR | OUT | OVERLOAD | OVERRIDE | PACKAGE | PASCAL | PLATFORM ) | ( PRIVATE | PROTECTED | PUBLIC | PUBLISHED | READ | READONLY | REFERENCE | REGISTER | REINTRODUCE ) | ( REQUIRES | RESIDENT | SAFECALL | SEALED | STATIC | STDCALL | STORED | STRICT | UNSAFE ) | ( VARARGS | VIRTUAL | WINAPI | WRITE | WRITEONLY ) | ( LABEL ) );
public final DelphiParser.keywordsUsedAsNames_return keywordsUsedAsNames() throws RecognitionException {
DelphiParser.keywordsUsedAsNames_return retval = new DelphiParser.keywordsUsedAsNames_return();
retval.start = input.LT(1);
int keywordsUsedAsNames_StartIndex = input.index();
Object root_0 = null;
Token set869=null;
Object set869_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 216) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1143:30: ( ( ABSOLUTE | ABSTRACT | ALIGN | ASSEMBLER | ASSEMBLY | AT | AUTOMATED | CDECL ) | ( CONTAINS | DEFAULT | DELAYED | DEPRECATED | DISPID | DYNAMIC | EXPERIMENTAL | EXPORT ) | ( EXTERNAL | FAR | FINAL | FORWARD | HELPER | IMPLEMENTS | INDEX | LOCAL | MESSAGE | NAME ) | ( NEAR | NODEFAULT | ON | OPERATOR | OUT | OVERLOAD | OVERRIDE | PACKAGE | PASCAL | PLATFORM ) | ( PRIVATE | PROTECTED | PUBLIC | PUBLISHED | READ | READONLY | REFERENCE | REGISTER | REINTRODUCE ) | ( REQUIRES | RESIDENT | SAFECALL | SEALED | STATIC | STDCALL | STORED | STRICT | UNSAFE ) | ( VARARGS | VIRTUAL | WINAPI | WRITE | WRITEONLY ) | ( LABEL ) )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set869=input.LT(1);
if ( (input.LA(1) >= ABSOLUTE && input.LA(1) <= ABSTRACT)||input.LA(1)==ALIGN||(input.LA(1) >= ASSEMBLER && input.LA(1) <= ASSEMBLY)||(input.LA(1) >= AT && input.LA(1) <= AUTOMATED)||input.LA(1)==CDECL||input.LA(1)==CONTAINS||(input.LA(1) >= DEFAULT && input.LA(1) <= DEPRECATED)||input.LA(1)==DISPID||input.LA(1)==DYNAMIC||(input.LA(1) >= EXPERIMENTAL && input.LA(1) <= EXPORT)||input.LA(1)==EXTERNAL||input.LA(1)==FAR||input.LA(1)==FINAL||input.LA(1)==FORWARD||input.LA(1)==HELPER||input.LA(1)==IMPLEMENTS||input.LA(1)==INDEX||input.LA(1)==LABEL||input.LA(1)==LOCAL||input.LA(1)==MESSAGE||(input.LA(1) >= NAME && input.LA(1) <= NEAR)||input.LA(1)==NODEFAULT||(input.LA(1) >= ON && input.LA(1) <= OPERATOR)||(input.LA(1) >= OUT && input.LA(1) <= OVERRIDE)||input.LA(1)==PACKAGE||(input.LA(1) >= PASCAL && input.LA(1) <= PLATFORM)||input.LA(1)==PRIVATE||(input.LA(1) >= PROTECTED && input.LA(1) <= PUBLISHED)||(input.LA(1) >= READ && input.LA(1) <= READONLY)||(input.LA(1) >= REFERENCE && input.LA(1) <= REINTRODUCE)||(input.LA(1) >= REQUIRES && input.LA(1) <= RESIDENT)||(input.LA(1) >= SAFECALL && input.LA(1) <= SEALED)||(input.LA(1) >= STATIC && input.LA(1) <= STRICT)||input.LA(1)==UNSAFE||(input.LA(1) >= VARARGS && input.LA(1) <= VIRTUAL)||input.LA(1)==WINAPI||(input.LA(1) >= WRITE && input.LA(1) <= WRITEONLY) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set869));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 216, keywordsUsedAsNames_StartIndex); }
}
return retval;
}
// $ANTLR end "keywordsUsedAsNames"
public static class keywords_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "keywords"
// au/com/integradev/delphi/antlr/Delphi.g:1152:1: keywords : ( ( ABSOLUTE | ABSTRACT | AND | ALIGN | ARRAY | AS | ASM | ASSEMBLER | ASSEMBLY ) | ( AT | AUTOMATED | BEGIN | CASE | CDECL | CLASS | CONST | CONSTRUCTOR | CONTAINS | DEFAULT ) | ( DELAYED | DEPRECATED | DESTRUCTOR | DISPID | DISPINTERFACE | DIV | DO | DOWNTO | DYNAMIC ) | ( ELSE | END | EXCEPT | EXPERIMENTAL | EXPORT | EXPORTS | EXTERNAL | FAR | FILE | FINAL ) | ( FINALIZATION | FINALLY | FOR | FORWARD | FUNCTION | GOTO | HELPER | IF | IMPLEMENTATION ) | ( IMPLEMENTS | IN | INDEX | INHERITED | INITIALIZATION | INLINE | INTERFACE | IS | LABEL ) | ( LIBRARY | LOCAL | MESSAGE | MOD | NAME | NEAR | NIL | NODEFAULT | NOT | OBJECT | OF | ON ) | ( OPERATOR | OR | OUT | OVERLOAD | OVERRIDE | PACKAGE | PACKED | PASCAL | PLATFORM | PRIVATE ) | ( PROCEDURE | PROGRAM | PROPERTY | PROTECTED | PUBLIC | PUBLISHED | RAISE | READ | READONLY ) | ( RECORD | REFERENCE | REGISTER | REINTRODUCE | REPEAT | REQUIRES | RESIDENT ) | ( RESOURCESTRING | SAFECALL | SEALED | SET | SHL | SHR | STATIC | STDCALL | STORED | STRICT ) | ( STRING | THEN | THREADVAR | TO | TRY | TYPE | UNIT | UNSAFE | UNTIL | USES | VAR | VARARGS ) | ( VIRTUAL | WHILE | WINAPI | WITH | WRITE | WRITEONLY | XOR ) );
public final DelphiParser.keywords_return keywords() throws RecognitionException {
DelphiParser.keywords_return retval = new DelphiParser.keywords_return();
retval.start = input.LT(1);
int keywords_StartIndex = input.index();
Object root_0 = null;
Token set870=null;
Object set870_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 217) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1152:30: ( ( ABSOLUTE | ABSTRACT | AND | ALIGN | ARRAY | AS | ASM | ASSEMBLER | ASSEMBLY ) | ( AT | AUTOMATED | BEGIN | CASE | CDECL | CLASS | CONST | CONSTRUCTOR | CONTAINS | DEFAULT ) | ( DELAYED | DEPRECATED | DESTRUCTOR | DISPID | DISPINTERFACE | DIV | DO | DOWNTO | DYNAMIC ) | ( ELSE | END | EXCEPT | EXPERIMENTAL | EXPORT | EXPORTS | EXTERNAL | FAR | FILE | FINAL ) | ( FINALIZATION | FINALLY | FOR | FORWARD | FUNCTION | GOTO | HELPER | IF | IMPLEMENTATION ) | ( IMPLEMENTS | IN | INDEX | INHERITED | INITIALIZATION | INLINE | INTERFACE | IS | LABEL ) | ( LIBRARY | LOCAL | MESSAGE | MOD | NAME | NEAR | NIL | NODEFAULT | NOT | OBJECT | OF | ON ) | ( OPERATOR | OR | OUT | OVERLOAD | OVERRIDE | PACKAGE | PACKED | PASCAL | PLATFORM | PRIVATE ) | ( PROCEDURE | PROGRAM | PROPERTY | PROTECTED | PUBLIC | PUBLISHED | RAISE | READ | READONLY ) | ( RECORD | REFERENCE | REGISTER | REINTRODUCE | REPEAT | REQUIRES | RESIDENT ) | ( RESOURCESTRING | SAFECALL | SEALED | SET | SHL | SHR | STATIC | STDCALL | STORED | STRICT ) | ( STRING | THEN | THREADVAR | TO | TRY | TYPE | UNIT | UNSAFE | UNTIL | USES | VAR | VARARGS ) | ( VIRTUAL | WHILE | WINAPI | WITH | WRITE | WRITEONLY | XOR ) )
// au/com/integradev/delphi/antlr/Delphi.g:
{
root_0 = (Object)adaptor.nil();
set870=input.LT(1);
if ( (input.LA(1) >= ABSOLUTE && input.LA(1) <= ABSTRACT)||input.LA(1)==ALIGN||(input.LA(1) >= AND && input.LA(1) <= ASSEMBLY)||(input.LA(1) >= AT && input.LA(1) <= AUTOMATED)||input.LA(1)==BEGIN||(input.LA(1) >= CASE && input.LA(1) <= CLASS)||(input.LA(1) >= CONST && input.LA(1) <= CONTAINS)||(input.LA(1) >= DEFAULT && input.LA(1) <= DEPRECATED)||(input.LA(1) >= DESTRUCTOR && input.LA(1) <= DIV)||input.LA(1)==DO||(input.LA(1) >= DOWNTO && input.LA(1) <= DYNAMIC)||(input.LA(1) >= ELSE && input.LA(1) <= END)||(input.LA(1) >= EXCEPT && input.LA(1) <= EXTERNAL)||(input.LA(1) >= FAR && input.LA(1) <= FUNCTION)||input.LA(1)==GOTO||input.LA(1)==HELPER||(input.LA(1) >= IF && input.LA(1) <= IS)||input.LA(1)==LABEL||(input.LA(1) >= LIBRARY && input.LA(1) <= LOCAL)||input.LA(1)==MESSAGE||input.LA(1)==MOD||(input.LA(1) >= NAME && input.LA(1) <= NOT)||(input.LA(1) >= OBJECT && input.LA(1) <= OVERRIDE)||(input.LA(1) >= PACKAGE && input.LA(1) <= PACKED)||(input.LA(1) >= PASCAL && input.LA(1) <= PLATFORM)||(input.LA(1) >= PRIVATE && input.LA(1) <= PUBLISHED)||(input.LA(1) >= RAISE && input.LA(1) <= RESOURCESTRING)||(input.LA(1) >= SAFECALL && input.LA(1) <= SEALED)||(input.LA(1) >= SET && input.LA(1) <= SHR)||(input.LA(1) >= STATIC && input.LA(1) <= STRING)||(input.LA(1) >= THEN && input.LA(1) <= TYPE)||(input.LA(1) >= UNIT && input.LA(1) <= USES)||(input.LA(1) >= VAR && input.LA(1) <= VIRTUAL)||input.LA(1)==WHILE||(input.LA(1) >= WINAPI && input.LA(1) <= WRITEONLY)||input.LA(1)==XOR ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set870));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 217, keywords_StartIndex); }
}
return retval;
}
// $ANTLR end "keywords"
public static class nameDeclarationList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "nameDeclarationList"
// au/com/integradev/delphi/antlr/Delphi.g:1166:1: nameDeclarationList : nameDeclaration ( ',' nameDeclaration )* -> ^( TkNameDeclarationList nameDeclaration ( ',' nameDeclaration )* ) ;
public final DelphiParser.nameDeclarationList_return nameDeclarationList() throws RecognitionException {
DelphiParser.nameDeclarationList_return retval = new DelphiParser.nameDeclarationList_return();
retval.start = input.LT(1);
int nameDeclarationList_StartIndex = input.index();
Object root_0 = null;
Token char_literal872=null;
ParserRuleReturnScope nameDeclaration871 =null;
ParserRuleReturnScope nameDeclaration873 =null;
Object char_literal872_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_nameDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule nameDeclaration");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 218) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1166:30: ( nameDeclaration ( ',' nameDeclaration )* -> ^( TkNameDeclarationList nameDeclaration ( ',' nameDeclaration )* ) )
// au/com/integradev/delphi/antlr/Delphi.g:1166:32: nameDeclaration ( ',' nameDeclaration )*
{
pushFollow(FOLLOW_nameDeclaration_in_nameDeclarationList25200);
nameDeclaration871=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclaration.add(nameDeclaration871.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1166:48: ( ',' nameDeclaration )*
loop297:
while (true) {
int alt297=2;
int LA297_0 = input.LA(1);
if ( (LA297_0==COMMA) ) {
alt297=1;
}
switch (alt297) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1166:49: ',' nameDeclaration
{
char_literal872=(Token)match(input,COMMA,FOLLOW_COMMA_in_nameDeclarationList25203); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(char_literal872);
pushFollow(FOLLOW_nameDeclaration_in_nameDeclarationList25205);
nameDeclaration873=nameDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_nameDeclaration.add(nameDeclaration873.getTree());
}
break;
default :
break loop297;
}
}
// AST REWRITE
// elements: nameDeclaration, nameDeclaration, COMMA
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1166:71: -> ^( TkNameDeclarationList nameDeclaration ( ',' nameDeclaration )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:1166:74: ^( TkNameDeclarationList nameDeclaration ( ',' nameDeclaration )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new NameDeclarationListNodeImpl(TkNameDeclarationList), root_1);
adaptor.addChild(root_1, stream_nameDeclaration.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1166:143: ( ',' nameDeclaration )*
while ( stream_nameDeclaration.hasNext()||stream_COMMA.hasNext() ) {
adaptor.addChild(root_1, stream_COMMA.nextNode());
adaptor.addChild(root_1, stream_nameDeclaration.nextTree());
}
stream_nameDeclaration.reset();
stream_COMMA.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 218, nameDeclarationList_StartIndex); }
}
return retval;
}
// $ANTLR end "nameDeclarationList"
public static class nameDeclaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "nameDeclaration"
// au/com/integradev/delphi/antlr/Delphi.g:1168:1: nameDeclaration : ident -> ^( TkNameDeclaration ident ) ;
public final DelphiParser.nameDeclaration_return nameDeclaration() throws RecognitionException {
DelphiParser.nameDeclaration_return retval = new DelphiParser.nameDeclaration_return();
retval.start = input.LT(1);
int nameDeclaration_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope ident874 =null;
RewriteRuleSubtreeStream stream_ident=new RewriteRuleSubtreeStream(adaptor,"rule ident");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 219) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1168:30: ( ident -> ^( TkNameDeclaration ident ) )
// au/com/integradev/delphi/antlr/Delphi.g:1168:32: ident
{
pushFollow(FOLLOW_ident_in_nameDeclaration25275);
ident874=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ident.add(ident874.getTree());
// AST REWRITE
// elements: ident
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1168:38: -> ^( TkNameDeclaration ident )
{
// au/com/integradev/delphi/antlr/Delphi.g:1168:41: ^( TkNameDeclaration ident )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new SimpleNameDeclarationNodeImpl(TkNameDeclaration), root_1);
adaptor.addChild(root_1, stream_ident.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 219, nameDeclaration_StartIndex); }
}
return retval;
}
// $ANTLR end "nameDeclaration"
public static class genericNameDeclaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "genericNameDeclaration"
// au/com/integradev/delphi/antlr/Delphi.g:1170:1: genericNameDeclaration : ident ( '.' extendedIdent )* ( genericDefinition )? -> ^( TkNameDeclaration ident ( extendedIdent )* ( genericDefinition )? ) ;
public final DelphiParser.genericNameDeclaration_return genericNameDeclaration() throws RecognitionException {
DelphiParser.genericNameDeclaration_return retval = new DelphiParser.genericNameDeclaration_return();
retval.start = input.LT(1);
int genericNameDeclaration_StartIndex = input.index();
Object root_0 = null;
Token char_literal876=null;
ParserRuleReturnScope ident875 =null;
ParserRuleReturnScope extendedIdent877 =null;
ParserRuleReturnScope genericDefinition878 =null;
Object char_literal876_tree=null;
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleSubtreeStream stream_genericDefinition=new RewriteRuleSubtreeStream(adaptor,"rule genericDefinition");
RewriteRuleSubtreeStream stream_ident=new RewriteRuleSubtreeStream(adaptor,"rule ident");
RewriteRuleSubtreeStream stream_extendedIdent=new RewriteRuleSubtreeStream(adaptor,"rule extendedIdent");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 220) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1170:30: ( ident ( '.' extendedIdent )* ( genericDefinition )? -> ^( TkNameDeclaration ident ( extendedIdent )* ( genericDefinition )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:1170:32: ident ( '.' extendedIdent )* ( genericDefinition )?
{
pushFollow(FOLLOW_ident_in_genericNameDeclaration25329);
ident875=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ident.add(ident875.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1170:38: ( '.' extendedIdent )*
loop298:
while (true) {
int alt298=2;
int LA298_0 = input.LA(1);
if ( (LA298_0==DOT) ) {
alt298=1;
}
switch (alt298) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1170:39: '.' extendedIdent
{
char_literal876=(Token)match(input,DOT,FOLLOW_DOT_in_genericNameDeclaration25332); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(char_literal876);
pushFollow(FOLLOW_extendedIdent_in_genericNameDeclaration25334);
extendedIdent877=extendedIdent();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_extendedIdent.add(extendedIdent877.getTree());
}
break;
default :
break loop298;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:1170:59: ( genericDefinition )?
int alt299=2;
int LA299_0 = input.LA(1);
if ( (LA299_0==LESS_THAN) ) {
alt299=1;
}
switch (alt299) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1170:59: genericDefinition
{
pushFollow(FOLLOW_genericDefinition_in_genericNameDeclaration25338);
genericDefinition878=genericDefinition();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_genericDefinition.add(genericDefinition878.getTree());
}
break;
}
// AST REWRITE
// elements: extendedIdent, genericDefinition, ident
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1171:30: -> ^( TkNameDeclaration ident ( extendedIdent )* ( genericDefinition )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:1171:33: ^( TkNameDeclaration ident ( extendedIdent )* ( genericDefinition )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new SimpleNameDeclarationNodeImpl(TkNameDeclaration), root_1);
adaptor.addChild(root_1, stream_ident.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1171:90: ( extendedIdent )*
while ( stream_extendedIdent.hasNext() ) {
adaptor.addChild(root_1, stream_extendedIdent.nextTree());
}
stream_extendedIdent.reset();
// au/com/integradev/delphi/antlr/Delphi.g:1171:105: ( genericDefinition )?
if ( stream_genericDefinition.hasNext() ) {
adaptor.addChild(root_1, stream_genericDefinition.nextTree());
}
stream_genericDefinition.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 220, genericNameDeclaration_StartIndex); }
}
return retval;
}
// $ANTLR end "genericNameDeclaration"
public static class qualifiedNameDeclaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "qualifiedNameDeclaration"
// au/com/integradev/delphi/antlr/Delphi.g:1173:1: qualifiedNameDeclaration : ident ( '.' extendedIdent )* -> ^( TkNameDeclaration ident ( extendedIdent )* ) ;
public final DelphiParser.qualifiedNameDeclaration_return qualifiedNameDeclaration() throws RecognitionException {
DelphiParser.qualifiedNameDeclaration_return retval = new DelphiParser.qualifiedNameDeclaration_return();
retval.start = input.LT(1);
int qualifiedNameDeclaration_StartIndex = input.index();
Object root_0 = null;
Token char_literal880=null;
ParserRuleReturnScope ident879 =null;
ParserRuleReturnScope extendedIdent881 =null;
Object char_literal880_tree=null;
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleSubtreeStream stream_ident=new RewriteRuleSubtreeStream(adaptor,"rule ident");
RewriteRuleSubtreeStream stream_extendedIdent=new RewriteRuleSubtreeStream(adaptor,"rule extendedIdent");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 221) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1173:30: ( ident ( '.' extendedIdent )* -> ^( TkNameDeclaration ident ( extendedIdent )* ) )
// au/com/integradev/delphi/antlr/Delphi.g:1173:32: ident ( '.' extendedIdent )*
{
pushFollow(FOLLOW_ident_in_qualifiedNameDeclaration25426);
ident879=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ident.add(ident879.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1173:38: ( '.' extendedIdent )*
loop300:
while (true) {
int alt300=2;
int LA300_0 = input.LA(1);
if ( (LA300_0==DOT) ) {
alt300=1;
}
switch (alt300) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1173:39: '.' extendedIdent
{
char_literal880=(Token)match(input,DOT,FOLLOW_DOT_in_qualifiedNameDeclaration25429); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(char_literal880);
pushFollow(FOLLOW_extendedIdent_in_qualifiedNameDeclaration25431);
extendedIdent881=extendedIdent();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_extendedIdent.add(extendedIdent881.getTree());
}
break;
default :
break loop300;
}
}
// AST REWRITE
// elements: extendedIdent, ident
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1174:30: -> ^( TkNameDeclaration ident ( extendedIdent )* )
{
// au/com/integradev/delphi/antlr/Delphi.g:1174:33: ^( TkNameDeclaration ident ( extendedIdent )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new QualifiedNameDeclarationNodeImpl(TkNameDeclaration), root_1);
adaptor.addChild(root_1, stream_ident.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1174:93: ( extendedIdent )*
while ( stream_extendedIdent.hasNext() ) {
adaptor.addChild(root_1, stream_extendedIdent.nextTree());
}
stream_extendedIdent.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 221, qualifiedNameDeclaration_StartIndex); }
}
return retval;
}
// $ANTLR end "qualifiedNameDeclaration"
public static class specialOpNameDeclaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "specialOpNameDeclaration"
// au/com/integradev/delphi/antlr/Delphi.g:1176:1: specialOpNameDeclaration : specialOperatorName -> ^( TkNameDeclaration specialOperatorName ) ;
public final DelphiParser.specialOpNameDeclaration_return specialOpNameDeclaration() throws RecognitionException {
DelphiParser.specialOpNameDeclaration_return retval = new DelphiParser.specialOpNameDeclaration_return();
retval.start = input.LT(1);
int specialOpNameDeclaration_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope specialOperatorName882 =null;
RewriteRuleSubtreeStream stream_specialOperatorName=new RewriteRuleSubtreeStream(adaptor,"rule specialOperatorName");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 222) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1176:30: ( specialOperatorName -> ^( TkNameDeclaration specialOperatorName ) )
// au/com/integradev/delphi/antlr/Delphi.g:1176:32: specialOperatorName
{
pushFollow(FOLLOW_specialOperatorName_in_specialOpNameDeclaration25517);
specialOperatorName882=specialOperatorName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_specialOperatorName.add(specialOperatorName882.getTree());
// AST REWRITE
// elements: specialOperatorName
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1177:30: -> ^( TkNameDeclaration specialOperatorName )
{
// au/com/integradev/delphi/antlr/Delphi.g:1177:33: ^( TkNameDeclaration specialOperatorName )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new SimpleNameDeclarationNodeImpl(TkNameDeclaration), root_1);
adaptor.addChild(root_1, stream_specialOperatorName.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 222, specialOpNameDeclaration_StartIndex); }
}
return retval;
}
// $ANTLR end "specialOpNameDeclaration"
public static class specialOperatorName_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "specialOperatorName"
// au/com/integradev/delphi/antlr/Delphi.g:1179:1: specialOperatorName : IN -> ^() ;
public final DelphiParser.specialOperatorName_return specialOperatorName() throws RecognitionException {
DelphiParser.specialOperatorName_return retval = new DelphiParser.specialOperatorName_return();
retval.start = input.LT(1);
int specialOperatorName_StartIndex = input.index();
Object root_0 = null;
Token IN883=null;
Object IN883_tree=null;
RewriteRuleTokenStream stream_IN=new RewriteRuleTokenStream(adaptor,"token IN");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 223) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1179:30: ( IN -> ^() )
// au/com/integradev/delphi/antlr/Delphi.g:1179:32: IN
{
IN883=(Token)match(input,IN,FOLLOW_IN_in_specialOperatorName25603); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IN.add(IN883);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1179:35: -> ^()
{
// au/com/integradev/delphi/antlr/Delphi.g:1179:38: ^()
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(changeTokenType(TkIdentifier), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 223, specialOperatorName_StartIndex); }
}
return retval;
}
// $ANTLR end "specialOperatorName"
public static class nameReference_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "nameReference"
// au/com/integradev/delphi/antlr/Delphi.g:1181:1: nameReference : ident ( genericArguments )? ( '.' extendedNameReference )? -> ^( TkNameReference ident ( genericArguments )? ( '.' extendedNameReference )? ) ;
public final DelphiParser.nameReference_return nameReference() throws RecognitionException {
DelphiParser.nameReference_return retval = new DelphiParser.nameReference_return();
retval.start = input.LT(1);
int nameReference_StartIndex = input.index();
Object root_0 = null;
Token char_literal886=null;
ParserRuleReturnScope ident884 =null;
ParserRuleReturnScope genericArguments885 =null;
ParserRuleReturnScope extendedNameReference887 =null;
Object char_literal886_tree=null;
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleSubtreeStream stream_extendedNameReference=new RewriteRuleSubtreeStream(adaptor,"rule extendedNameReference");
RewriteRuleSubtreeStream stream_genericArguments=new RewriteRuleSubtreeStream(adaptor,"rule genericArguments");
RewriteRuleSubtreeStream stream_ident=new RewriteRuleSubtreeStream(adaptor,"rule ident");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 224) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1181:30: ( ident ( genericArguments )? ( '.' extendedNameReference )? -> ^( TkNameReference ident ( genericArguments )? ( '.' extendedNameReference )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:1181:32: ident ( genericArguments )? ( '.' extendedNameReference )?
{
pushFollow(FOLLOW_ident_in_nameReference25661);
ident884=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ident.add(ident884.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1181:38: ( genericArguments )?
int alt301=2;
alt301 = dfa301.predict(input);
switch (alt301) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1181:38: genericArguments
{
pushFollow(FOLLOW_genericArguments_in_nameReference25663);
genericArguments885=genericArguments();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_genericArguments.add(genericArguments885.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:1181:56: ( '.' extendedNameReference )?
int alt302=2;
int LA302_0 = input.LA(1);
if ( (LA302_0==DOT) ) {
switch ( input.LA(2) ) {
case TkIdentifier:
{
int LA302_3 = input.LA(3);
if ( (synpred626_Delphi()) ) {
alt302=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA302_4 = input.LA(3);
if ( (synpred626_Delphi()) ) {
alt302=1;
}
}
break;
case AND:
case ARRAY:
case AS:
case ASM:
case BEGIN:
case CASE:
case CLASS:
case CONST:
case CONSTRUCTOR:
case DESTRUCTOR:
case DISPINTERFACE:
case DIV:
case DO:
case DOWNTO:
case ELSE:
case END:
case EXCEPT:
case EXPORTS:
case FILE:
case FINALIZATION:
case FINALLY:
case FOR:
case FUNCTION:
case GOTO:
case IF:
case IMPLEMENTATION:
case IN:
case INHERITED:
case INITIALIZATION:
case INLINE:
case INTERFACE:
case IS:
case LIBRARY:
case MOD:
case NIL:
case NOT:
case OBJECT:
case OF:
case OR:
case PACKED:
case PROCEDURE:
case PROGRAM:
case PROPERTY:
case RAISE:
case RECORD:
case REPEAT:
case RESOURCESTRING:
case SET:
case SHL:
case SHR:
case STRING:
case THEN:
case THREADVAR:
case TO:
case TRY:
case TYPE:
case UNIT:
case UNTIL:
case USES:
case VAR:
case WHILE:
case WITH:
case XOR:
{
int LA302_5 = input.LA(3);
if ( (synpred626_Delphi()) ) {
alt302=1;
}
}
break;
}
}
switch (alt302) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1181:57: '.' extendedNameReference
{
char_literal886=(Token)match(input,DOT,FOLLOW_DOT_in_nameReference25667); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(char_literal886);
pushFollow(FOLLOW_extendedNameReference_in_nameReference25669);
extendedNameReference887=extendedNameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_extendedNameReference.add(extendedNameReference887.getTree());
}
break;
}
// AST REWRITE
// elements: ident, extendedNameReference, genericArguments, DOT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1182:30: -> ^( TkNameReference ident ( genericArguments )? ( '.' extendedNameReference )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:1182:33: ^( TkNameReference ident ( genericArguments )? ( '.' extendedNameReference )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new NameReferenceNodeImpl(TkNameReference), root_1);
adaptor.addChild(root_1, stream_ident.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1182:80: ( genericArguments )?
if ( stream_genericArguments.hasNext() ) {
adaptor.addChild(root_1, stream_genericArguments.nextTree());
}
stream_genericArguments.reset();
// au/com/integradev/delphi/antlr/Delphi.g:1182:98: ( '.' extendedNameReference )?
if ( stream_extendedNameReference.hasNext()||stream_DOT.hasNext() ) {
adaptor.addChild(root_1, stream_DOT.nextNode());
adaptor.addChild(root_1, stream_extendedNameReference.nextTree());
}
stream_extendedNameReference.reset();
stream_DOT.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 224, nameReference_StartIndex); }
}
return retval;
}
// $ANTLR end "nameReference"
public static class simpleNameReference_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "simpleNameReference"
// au/com/integradev/delphi/antlr/Delphi.g:1184:1: simpleNameReference : ident -> ^( TkNameReference ident ) ;
public final DelphiParser.simpleNameReference_return simpleNameReference() throws RecognitionException {
DelphiParser.simpleNameReference_return retval = new DelphiParser.simpleNameReference_return();
retval.start = input.LT(1);
int simpleNameReference_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope ident888 =null;
RewriteRuleSubtreeStream stream_ident=new RewriteRuleSubtreeStream(adaptor,"rule ident");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 225) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1184:30: ( ident -> ^( TkNameReference ident ) )
// au/com/integradev/delphi/antlr/Delphi.g:1184:32: ident
{
pushFollow(FOLLOW_ident_in_simpleNameReference25767);
ident888=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ident.add(ident888.getTree());
// AST REWRITE
// elements: ident
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1185:30: -> ^( TkNameReference ident )
{
// au/com/integradev/delphi/antlr/Delphi.g:1185:33: ^( TkNameReference ident )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new NameReferenceNodeImpl(TkNameReference), root_1);
adaptor.addChild(root_1, stream_ident.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 225, simpleNameReference_StartIndex); }
}
return retval;
}
// $ANTLR end "simpleNameReference"
public static class extendedNameReference_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "extendedNameReference"
// au/com/integradev/delphi/antlr/Delphi.g:1187:1: extendedNameReference : extendedIdent ( genericArguments )? ( '.' extendedNameReference )? -> ^( TkNameReference extendedIdent ( genericArguments )? ( '.' extendedNameReference )? ) ;
public final DelphiParser.extendedNameReference_return extendedNameReference() throws RecognitionException {
DelphiParser.extendedNameReference_return retval = new DelphiParser.extendedNameReference_return();
retval.start = input.LT(1);
int extendedNameReference_StartIndex = input.index();
Object root_0 = null;
Token char_literal891=null;
ParserRuleReturnScope extendedIdent889 =null;
ParserRuleReturnScope genericArguments890 =null;
ParserRuleReturnScope extendedNameReference892 =null;
Object char_literal891_tree=null;
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleSubtreeStream stream_extendedNameReference=new RewriteRuleSubtreeStream(adaptor,"rule extendedNameReference");
RewriteRuleSubtreeStream stream_genericArguments=new RewriteRuleSubtreeStream(adaptor,"rule genericArguments");
RewriteRuleSubtreeStream stream_extendedIdent=new RewriteRuleSubtreeStream(adaptor,"rule extendedIdent");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 226) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1187:30: ( extendedIdent ( genericArguments )? ( '.' extendedNameReference )? -> ^( TkNameReference extendedIdent ( genericArguments )? ( '.' extendedNameReference )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:1187:32: extendedIdent ( genericArguments )? ( '.' extendedNameReference )?
{
pushFollow(FOLLOW_extendedIdent_in_extendedNameReference25851);
extendedIdent889=extendedIdent();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_extendedIdent.add(extendedIdent889.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1187:46: ( genericArguments )?
int alt303=2;
alt303 = dfa303.predict(input);
switch (alt303) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1187:46: genericArguments
{
pushFollow(FOLLOW_genericArguments_in_extendedNameReference25853);
genericArguments890=genericArguments();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_genericArguments.add(genericArguments890.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:1187:64: ( '.' extendedNameReference )?
int alt304=2;
int LA304_0 = input.LA(1);
if ( (LA304_0==DOT) ) {
switch ( input.LA(2) ) {
case TkIdentifier:
{
int LA304_3 = input.LA(3);
if ( (synpred628_Delphi()) ) {
alt304=1;
}
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA304_4 = input.LA(3);
if ( (synpred628_Delphi()) ) {
alt304=1;
}
}
break;
case AND:
case ARRAY:
case AS:
case ASM:
case BEGIN:
case CASE:
case CLASS:
case CONST:
case CONSTRUCTOR:
case DESTRUCTOR:
case DISPINTERFACE:
case DIV:
case DO:
case DOWNTO:
case ELSE:
case END:
case EXCEPT:
case EXPORTS:
case FILE:
case FINALIZATION:
case FINALLY:
case FOR:
case FUNCTION:
case GOTO:
case IF:
case IMPLEMENTATION:
case IN:
case INHERITED:
case INITIALIZATION:
case INLINE:
case INTERFACE:
case IS:
case LIBRARY:
case MOD:
case NIL:
case NOT:
case OBJECT:
case OF:
case OR:
case PACKED:
case PROCEDURE:
case PROGRAM:
case PROPERTY:
case RAISE:
case RECORD:
case REPEAT:
case RESOURCESTRING:
case SET:
case SHL:
case SHR:
case STRING:
case THEN:
case THREADVAR:
case TO:
case TRY:
case TYPE:
case UNIT:
case UNTIL:
case USES:
case VAR:
case WHILE:
case WITH:
case XOR:
{
int LA304_5 = input.LA(3);
if ( (synpred628_Delphi()) ) {
alt304=1;
}
}
break;
}
}
switch (alt304) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1187:65: '.' extendedNameReference
{
char_literal891=(Token)match(input,DOT,FOLLOW_DOT_in_extendedNameReference25857); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(char_literal891);
pushFollow(FOLLOW_extendedNameReference_in_extendedNameReference25859);
extendedNameReference892=extendedNameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_extendedNameReference.add(extendedNameReference892.getTree());
}
break;
}
// AST REWRITE
// elements: extendedIdent, extendedNameReference, DOT, genericArguments
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1188:30: -> ^( TkNameReference extendedIdent ( genericArguments )? ( '.' extendedNameReference )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:1188:33: ^( TkNameReference extendedIdent ( genericArguments )? ( '.' extendedNameReference )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new NameReferenceNodeImpl(TkNameReference), root_1);
adaptor.addChild(root_1, stream_extendedIdent.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1188:88: ( genericArguments )?
if ( stream_genericArguments.hasNext() ) {
adaptor.addChild(root_1, stream_genericArguments.nextTree());
}
stream_genericArguments.reset();
// au/com/integradev/delphi/antlr/Delphi.g:1188:106: ( '.' extendedNameReference )?
if ( stream_extendedNameReference.hasNext()||stream_DOT.hasNext() ) {
adaptor.addChild(root_1, stream_DOT.nextNode());
adaptor.addChild(root_1, stream_extendedNameReference.nextTree());
}
stream_extendedNameReference.reset();
stream_DOT.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 226, extendedNameReference_StartIndex); }
}
return retval;
}
// $ANTLR end "extendedNameReference"
public static class routineNameReference_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "routineNameReference"
// au/com/integradev/delphi/antlr/Delphi.g:1190:1: routineNameReference : ident ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? -> ^( TkNameReference ident ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? ) ;
public final DelphiParser.routineNameReference_return routineNameReference() throws RecognitionException {
DelphiParser.routineNameReference_return retval = new DelphiParser.routineNameReference_return();
retval.start = input.LT(1);
int routineNameReference_StartIndex = input.index();
Object root_0 = null;
Token char_literal895=null;
ParserRuleReturnScope ident893 =null;
ParserRuleReturnScope routineNameGenericArguments894 =null;
ParserRuleReturnScope extendedRoutineNameReference896 =null;
Object char_literal895_tree=null;
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleSubtreeStream stream_ident=new RewriteRuleSubtreeStream(adaptor,"rule ident");
RewriteRuleSubtreeStream stream_routineNameGenericArguments=new RewriteRuleSubtreeStream(adaptor,"rule routineNameGenericArguments");
RewriteRuleSubtreeStream stream_extendedRoutineNameReference=new RewriteRuleSubtreeStream(adaptor,"rule extendedRoutineNameReference");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 227) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1190:30: ( ident ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? -> ^( TkNameReference ident ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:1190:32: ident ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )?
{
pushFollow(FOLLOW_ident_in_routineNameReference25956);
ident893=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ident.add(ident893.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1190:38: ( routineNameGenericArguments )?
int alt305=2;
int LA305_0 = input.LA(1);
if ( (LA305_0==LESS_THAN) ) {
alt305=1;
}
switch (alt305) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1190:38: routineNameGenericArguments
{
pushFollow(FOLLOW_routineNameGenericArguments_in_routineNameReference25958);
routineNameGenericArguments894=routineNameGenericArguments();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineNameGenericArguments.add(routineNameGenericArguments894.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:1190:67: ( '.' extendedRoutineNameReference )?
int alt306=2;
int LA306_0 = input.LA(1);
if ( (LA306_0==DOT) ) {
alt306=1;
}
switch (alt306) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1190:68: '.' extendedRoutineNameReference
{
char_literal895=(Token)match(input,DOT,FOLLOW_DOT_in_routineNameReference25962); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(char_literal895);
pushFollow(FOLLOW_extendedRoutineNameReference_in_routineNameReference25964);
extendedRoutineNameReference896=extendedRoutineNameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_extendedRoutineNameReference.add(extendedRoutineNameReference896.getTree());
}
break;
}
// AST REWRITE
// elements: ident, extendedRoutineNameReference, routineNameGenericArguments, DOT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1191:30: -> ^( TkNameReference ident ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:1191:33: ^( TkNameReference ident ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new NameReferenceNodeImpl(TkNameReference), root_1);
adaptor.addChild(root_1, stream_ident.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1191:80: ( routineNameGenericArguments )?
if ( stream_routineNameGenericArguments.hasNext() ) {
adaptor.addChild(root_1, stream_routineNameGenericArguments.nextTree());
}
stream_routineNameGenericArguments.reset();
// au/com/integradev/delphi/antlr/Delphi.g:1191:109: ( '.' extendedRoutineNameReference )?
if ( stream_extendedRoutineNameReference.hasNext()||stream_DOT.hasNext() ) {
adaptor.addChild(root_1, stream_DOT.nextNode());
adaptor.addChild(root_1, stream_extendedRoutineNameReference.nextTree());
}
stream_extendedRoutineNameReference.reset();
stream_DOT.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 227, routineNameReference_StartIndex); }
}
return retval;
}
// $ANTLR end "routineNameReference"
public static class extendedRoutineNameReference_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "extendedRoutineNameReference"
// au/com/integradev/delphi/antlr/Delphi.g:1193:1: extendedRoutineNameReference : extendedIdent ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? -> ^( TkNameReference extendedIdent ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? ) ;
public final DelphiParser.extendedRoutineNameReference_return extendedRoutineNameReference() throws RecognitionException {
DelphiParser.extendedRoutineNameReference_return retval = new DelphiParser.extendedRoutineNameReference_return();
retval.start = input.LT(1);
int extendedRoutineNameReference_StartIndex = input.index();
Object root_0 = null;
Token char_literal899=null;
ParserRuleReturnScope extendedIdent897 =null;
ParserRuleReturnScope routineNameGenericArguments898 =null;
ParserRuleReturnScope extendedRoutineNameReference900 =null;
Object char_literal899_tree=null;
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleSubtreeStream stream_extendedIdent=new RewriteRuleSubtreeStream(adaptor,"rule extendedIdent");
RewriteRuleSubtreeStream stream_routineNameGenericArguments=new RewriteRuleSubtreeStream(adaptor,"rule routineNameGenericArguments");
RewriteRuleSubtreeStream stream_extendedRoutineNameReference=new RewriteRuleSubtreeStream(adaptor,"rule extendedRoutineNameReference");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 228) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1193:30: ( extendedIdent ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? -> ^( TkNameReference extendedIdent ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? ) )
// au/com/integradev/delphi/antlr/Delphi.g:1193:32: extendedIdent ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )?
{
pushFollow(FOLLOW_extendedIdent_in_extendedRoutineNameReference26053);
extendedIdent897=extendedIdent();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_extendedIdent.add(extendedIdent897.getTree());
// au/com/integradev/delphi/antlr/Delphi.g:1193:46: ( routineNameGenericArguments )?
int alt307=2;
int LA307_0 = input.LA(1);
if ( (LA307_0==LESS_THAN) ) {
alt307=1;
}
switch (alt307) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1193:46: routineNameGenericArguments
{
pushFollow(FOLLOW_routineNameGenericArguments_in_extendedRoutineNameReference26055);
routineNameGenericArguments898=routineNameGenericArguments();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_routineNameGenericArguments.add(routineNameGenericArguments898.getTree());
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:1193:75: ( '.' extendedRoutineNameReference )?
int alt308=2;
int LA308_0 = input.LA(1);
if ( (LA308_0==DOT) ) {
alt308=1;
}
switch (alt308) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1193:76: '.' extendedRoutineNameReference
{
char_literal899=(Token)match(input,DOT,FOLLOW_DOT_in_extendedRoutineNameReference26059); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(char_literal899);
pushFollow(FOLLOW_extendedRoutineNameReference_in_extendedRoutineNameReference26061);
extendedRoutineNameReference900=extendedRoutineNameReference();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_extendedRoutineNameReference.add(extendedRoutineNameReference900.getTree());
}
break;
}
// AST REWRITE
// elements: extendedIdent, extendedRoutineNameReference, DOT, routineNameGenericArguments
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1194:30: -> ^( TkNameReference extendedIdent ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? )
{
// au/com/integradev/delphi/antlr/Delphi.g:1194:33: ^( TkNameReference extendedIdent ( routineNameGenericArguments )? ( '.' extendedRoutineNameReference )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new NameReferenceNodeImpl(TkNameReference), root_1);
adaptor.addChild(root_1, stream_extendedIdent.nextTree());
// au/com/integradev/delphi/antlr/Delphi.g:1194:88: ( routineNameGenericArguments )?
if ( stream_routineNameGenericArguments.hasNext() ) {
adaptor.addChild(root_1, stream_routineNameGenericArguments.nextTree());
}
stream_routineNameGenericArguments.reset();
// au/com/integradev/delphi/antlr/Delphi.g:1194:117: ( '.' extendedRoutineNameReference )?
if ( stream_extendedRoutineNameReference.hasNext()||stream_DOT.hasNext() ) {
adaptor.addChild(root_1, stream_DOT.nextNode());
adaptor.addChild(root_1, stream_extendedRoutineNameReference.nextTree());
}
stream_extendedRoutineNameReference.reset();
stream_DOT.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 228, extendedRoutineNameReference_StartIndex); }
}
return retval;
}
// $ANTLR end "extendedRoutineNameReference"
public static class extendedIdent_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "extendedIdent"
// au/com/integradev/delphi/antlr/Delphi.g:1196:1: extendedIdent : ( ident | keywords -> ^() );
public final DelphiParser.extendedIdent_return extendedIdent() throws RecognitionException {
DelphiParser.extendedIdent_return retval = new DelphiParser.extendedIdent_return();
retval.start = input.LT(1);
int extendedIdent_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope ident901 =null;
ParserRuleReturnScope keywords902 =null;
RewriteRuleSubtreeStream stream_keywords=new RewriteRuleSubtreeStream(adaptor,"rule keywords");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 229) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1196:30: ( ident | keywords -> ^() )
int alt309=2;
switch ( input.LA(1) ) {
case TkIdentifier:
{
alt309=1;
}
break;
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
int LA309_2 = input.LA(2);
if ( (synpred633_Delphi()) ) {
alt309=1;
}
else if ( (true) ) {
alt309=2;
}
}
break;
case AND:
case ARRAY:
case AS:
case ASM:
case BEGIN:
case CASE:
case CLASS:
case CONST:
case CONSTRUCTOR:
case DESTRUCTOR:
case DISPINTERFACE:
case DIV:
case DO:
case DOWNTO:
case ELSE:
case END:
case EXCEPT:
case EXPORTS:
case FILE:
case FINALIZATION:
case FINALLY:
case FOR:
case FUNCTION:
case GOTO:
case IF:
case IMPLEMENTATION:
case IN:
case INHERITED:
case INITIALIZATION:
case INLINE:
case INTERFACE:
case IS:
case LIBRARY:
case MOD:
case NIL:
case NOT:
case OBJECT:
case OF:
case OR:
case PACKED:
case PROCEDURE:
case PROGRAM:
case PROPERTY:
case RAISE:
case RECORD:
case REPEAT:
case RESOURCESTRING:
case SET:
case SHL:
case SHR:
case STRING:
case THEN:
case THREADVAR:
case TO:
case TRY:
case TYPE:
case UNIT:
case UNTIL:
case USES:
case VAR:
case WHILE:
case WITH:
case XOR:
{
alt309=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 309, 0, input);
throw nvae;
}
switch (alt309) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1196:32: ident
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_ident_in_extendedIdent26165);
ident901=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ident901.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1197:32: keywords
{
pushFollow(FOLLOW_keywords_in_extendedIdent26198);
keywords902=keywords();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_keywords.add(keywords902.getTree());
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1197:41: -> ^()
{
// au/com/integradev/delphi/antlr/Delphi.g:1197:44: ^()
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(changeTokenType(TkIdentifier), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 229, extendedIdent_StartIndex); }
}
return retval;
}
// $ANTLR end "extendedIdent"
public static class labelIdent_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "labelIdent"
// au/com/integradev/delphi/antlr/Delphi.g:1199:1: labelIdent : ( ident | TkIntNumber -> ^() | TkHexNumber -> ^() | TkBinaryNumber -> ^() );
public final DelphiParser.labelIdent_return labelIdent() throws RecognitionException {
DelphiParser.labelIdent_return retval = new DelphiParser.labelIdent_return();
retval.start = input.LT(1);
int labelIdent_StartIndex = input.index();
Object root_0 = null;
Token TkIntNumber904=null;
Token TkHexNumber905=null;
Token TkBinaryNumber906=null;
ParserRuleReturnScope ident903 =null;
Object TkIntNumber904_tree=null;
Object TkHexNumber905_tree=null;
Object TkBinaryNumber906_tree=null;
RewriteRuleTokenStream stream_TkHexNumber=new RewriteRuleTokenStream(adaptor,"token TkHexNumber");
RewriteRuleTokenStream stream_TkIntNumber=new RewriteRuleTokenStream(adaptor,"token TkIntNumber");
RewriteRuleTokenStream stream_TkBinaryNumber=new RewriteRuleTokenStream(adaptor,"token TkBinaryNumber");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 230) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1199:30: ( ident | TkIntNumber -> ^() | TkHexNumber -> ^() | TkBinaryNumber -> ^() )
int alt310=4;
switch ( input.LA(1) ) {
case ABSOLUTE:
case ABSTRACT:
case ALIGN:
case ASSEMBLER:
case ASSEMBLY:
case AT:
case AUTOMATED:
case CDECL:
case CONTAINS:
case DEFAULT:
case DELAYED:
case DEPRECATED:
case DISPID:
case DYNAMIC:
case EXPERIMENTAL:
case EXPORT:
case EXTERNAL:
case FAR:
case FINAL:
case FORWARD:
case HELPER:
case IMPLEMENTS:
case INDEX:
case LABEL:
case LOCAL:
case MESSAGE:
case NAME:
case NEAR:
case NODEFAULT:
case ON:
case OPERATOR:
case OUT:
case OVERLOAD:
case OVERRIDE:
case PACKAGE:
case PASCAL:
case PLATFORM:
case PRIVATE:
case PROTECTED:
case PUBLIC:
case PUBLISHED:
case READ:
case READONLY:
case REFERENCE:
case REGISTER:
case REINTRODUCE:
case REQUIRES:
case RESIDENT:
case SAFECALL:
case SEALED:
case STATIC:
case STDCALL:
case STORED:
case STRICT:
case TkIdentifier:
case UNSAFE:
case VARARGS:
case VIRTUAL:
case WINAPI:
case WRITE:
case WRITEONLY:
{
alt310=1;
}
break;
case TkIntNumber:
{
alt310=2;
}
break;
case TkHexNumber:
{
alt310=3;
}
break;
case TkBinaryNumber:
{
alt310=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 310, 0, input);
throw nvae;
}
switch (alt310) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1199:32: ident
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_ident_in_labelIdent26259);
ident903=ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ident903.getTree());
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1200:32: TkIntNumber
{
TkIntNumber904=(Token)match(input,TkIntNumber,FOLLOW_TkIntNumber_in_labelIdent26292); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TkIntNumber.add(TkIntNumber904);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1200:44: -> ^()
{
// au/com/integradev/delphi/antlr/Delphi.g:1200:47: ^()
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(changeTokenType(TkIdentifier), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:1201:32: TkHexNumber
{
TkHexNumber905=(Token)match(input,TkHexNumber,FOLLOW_TkHexNumber_in_labelIdent26331); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TkHexNumber.add(TkHexNumber905);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1201:44: -> ^()
{
// au/com/integradev/delphi/antlr/Delphi.g:1201:47: ^()
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(changeTokenType(TkIdentifier), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// au/com/integradev/delphi/antlr/Delphi.g:1202:32: TkBinaryNumber
{
TkBinaryNumber906=(Token)match(input,TkBinaryNumber,FOLLOW_TkBinaryNumber_in_labelIdent26370); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TkBinaryNumber.add(TkBinaryNumber906);
// AST REWRITE
// elements:
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1202:47: -> ^()
{
// au/com/integradev/delphi/antlr/Delphi.g:1202:50: ^()
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(changeTokenType(TkIdentifier), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 230, labelIdent_StartIndex); }
}
return retval;
}
// $ANTLR end "labelIdent"
public static class labelNameDeclaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "labelNameDeclaration"
// au/com/integradev/delphi/antlr/Delphi.g:1204:1: labelNameDeclaration : labelIdent -> ^( TkNameDeclaration labelIdent ) ;
public final DelphiParser.labelNameDeclaration_return labelNameDeclaration() throws RecognitionException {
DelphiParser.labelNameDeclaration_return retval = new DelphiParser.labelNameDeclaration_return();
retval.start = input.LT(1);
int labelNameDeclaration_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope labelIdent907 =null;
RewriteRuleSubtreeStream stream_labelIdent=new RewriteRuleSubtreeStream(adaptor,"rule labelIdent");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 231) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1204:30: ( labelIdent -> ^( TkNameDeclaration labelIdent ) )
// au/com/integradev/delphi/antlr/Delphi.g:1204:32: labelIdent
{
pushFollow(FOLLOW_labelIdent_in_labelNameDeclaration26421);
labelIdent907=labelIdent();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_labelIdent.add(labelIdent907.getTree());
// AST REWRITE
// elements: labelIdent
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1204:43: -> ^( TkNameDeclaration labelIdent )
{
// au/com/integradev/delphi/antlr/Delphi.g:1204:46: ^( TkNameDeclaration labelIdent )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new SimpleNameDeclarationNodeImpl(TkNameDeclaration), root_1);
adaptor.addChild(root_1, stream_labelIdent.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 231, labelNameDeclaration_StartIndex); }
}
return retval;
}
// $ANTLR end "labelNameDeclaration"
public static class labelNameReference_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "labelNameReference"
// au/com/integradev/delphi/antlr/Delphi.g:1206:1: labelNameReference : labelIdent -> ^( TkNameReference labelIdent ) ;
public final DelphiParser.labelNameReference_return labelNameReference() throws RecognitionException {
DelphiParser.labelNameReference_return retval = new DelphiParser.labelNameReference_return();
retval.start = input.LT(1);
int labelNameReference_StartIndex = input.index();
Object root_0 = null;
ParserRuleReturnScope labelIdent908 =null;
RewriteRuleSubtreeStream stream_labelIdent=new RewriteRuleSubtreeStream(adaptor,"rule labelIdent");
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 232) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1206:30: ( labelIdent -> ^( TkNameReference labelIdent ) )
// au/com/integradev/delphi/antlr/Delphi.g:1206:32: labelIdent
{
pushFollow(FOLLOW_labelIdent_in_labelNameReference26479);
labelIdent908=labelIdent();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_labelIdent.add(labelIdent908.getTree());
// AST REWRITE
// elements: labelIdent
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1206:43: -> ^( TkNameReference labelIdent )
{
// au/com/integradev/delphi/antlr/Delphi.g:1206:46: ^( TkNameReference labelIdent )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(new NameReferenceNodeImpl(TkNameReference), root_1);
adaptor.addChild(root_1, stream_labelIdent.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 232, labelNameReference_StartIndex); }
}
return retval;
}
// $ANTLR end "labelNameReference"
public static class intNum_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "intNum"
// au/com/integradev/delphi/antlr/Delphi.g:1211:1: intNum : ( TkIntNumber | TkHexNumber | TkBinaryNumber );
public final DelphiParser.intNum_return intNum() throws RecognitionException {
DelphiParser.intNum_return retval = new DelphiParser.intNum_return();
retval.start = input.LT(1);
int intNum_StartIndex = input.index();
Object root_0 = null;
Token TkIntNumber909=null;
Token TkHexNumber910=null;
Token TkBinaryNumber911=null;
Object TkIntNumber909_tree=null;
Object TkHexNumber910_tree=null;
Object TkBinaryNumber911_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 233) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1211:30: ( TkIntNumber | TkHexNumber | TkBinaryNumber )
int alt311=3;
switch ( input.LA(1) ) {
case TkIntNumber:
{
alt311=1;
}
break;
case TkHexNumber:
{
alt311=2;
}
break;
case TkBinaryNumber:
{
alt311=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 311, 0, input);
throw nvae;
}
switch (alt311) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1211:32: TkIntNumber
{
root_0 = (Object)adaptor.nil();
TkIntNumber909=(Token)match(input,TkIntNumber,FOLLOW_TkIntNumber_in_intNum26552); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TkIntNumber909_tree = new IntegerLiteralNodeImpl(TkIntNumber909) ;
adaptor.addChild(root_0, TkIntNumber909_tree);
}
}
break;
case 2 :
// au/com/integradev/delphi/antlr/Delphi.g:1212:32: TkHexNumber
{
root_0 = (Object)adaptor.nil();
TkHexNumber910=(Token)match(input,TkHexNumber,FOLLOW_TkHexNumber_in_intNum26588); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TkHexNumber910_tree = new IntegerLiteralNodeImpl(TkHexNumber910) ;
adaptor.addChild(root_0, TkHexNumber910_tree);
}
}
break;
case 3 :
// au/com/integradev/delphi/antlr/Delphi.g:1213:32: TkBinaryNumber
{
root_0 = (Object)adaptor.nil();
TkBinaryNumber911=(Token)match(input,TkBinaryNumber,FOLLOW_TkBinaryNumber_in_intNum26624); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TkBinaryNumber911_tree = new IntegerLiteralNodeImpl(TkBinaryNumber911) ;
adaptor.addChild(root_0, TkBinaryNumber911_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 233, intNum_StartIndex); }
}
return retval;
}
// $ANTLR end "intNum"
public static class realNum_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "realNum"
// au/com/integradev/delphi/antlr/Delphi.g:1215:1: realNum : TkRealNumber ;
public final DelphiParser.realNum_return realNum() throws RecognitionException {
DelphiParser.realNum_return retval = new DelphiParser.realNum_return();
retval.start = input.LT(1);
int realNum_StartIndex = input.index();
Object root_0 = null;
Token TkRealNumber912=null;
Object TkRealNumber912_tree=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 234) ) { return retval; }
// au/com/integradev/delphi/antlr/Delphi.g:1215:30: ( TkRealNumber )
// au/com/integradev/delphi/antlr/Delphi.g:1215:32: TkRealNumber
{
root_0 = (Object)adaptor.nil();
TkRealNumber912=(Token)match(input,TkRealNumber,FOLLOW_TkRealNumber_in_realNum26685); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TkRealNumber912_tree = new RealLiteralNodeImpl(TkRealNumber912) ;
adaptor.addChild(root_0, TkRealNumber912_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 234, realNum_StartIndex); }
}
return retval;
}
// $ANTLR end "realNum"
// $ANTLR start synpred37_Delphi
public final void synpred37_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:455:32: ( routineImplementation )
// au/com/integradev/delphi/antlr/Delphi.g:455:32: routineImplementation
{
pushFollow(FOLLOW_routineImplementation_in_synpred37_Delphi2487);
routineImplementation();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred37_Delphi
// $ANTLR start synpred43_Delphi
public final void synpred43_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:463:32: ( routineInterface )
// au/com/integradev/delphi/antlr/Delphi.g:463:32: routineInterface
{
pushFollow(FOLLOW_routineInterface_in_synpred43_Delphi2737);
routineInterface();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred43_Delphi
// $ANTLR start synpred46_Delphi
public final void synpred46_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:468:103: ( constDeclaration )
// au/com/integradev/delphi/antlr/Delphi.g:468:103: constDeclaration
{
pushFollow(FOLLOW_constDeclaration_in_synpred46_Delphi2903);
constDeclaration();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred46_Delphi
// $ANTLR start synpred49_Delphi
public final void synpred49_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:473:32: ( ( attributeList )? nameDeclaration ':' fixedArrayType '=' arrayExpression ( portabilityDirective )* ';' )
// au/com/integradev/delphi/antlr/Delphi.g:473:32: ( attributeList )? nameDeclaration ':' fixedArrayType '=' arrayExpression ( portabilityDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:473:32: ( attributeList )?
int alt314=2;
int LA314_0 = input.LA(1);
if ( (LA314_0==PAREN_BRACKET_LEFT||LA314_0==SQUARE_BRACKET_LEFT) ) {
alt314=1;
}
switch (alt314) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:473:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_synpred49_Delphi3043);
attributeList();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_nameDeclaration_in_synpred49_Delphi3046);
nameDeclaration();
state._fsp--;
if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_synpred49_Delphi3048); if (state.failed) return;
pushFollow(FOLLOW_fixedArrayType_in_synpred49_Delphi3050);
fixedArrayType();
state._fsp--;
if (state.failed) return;
match(input,EQUAL,FOLLOW_EQUAL_in_synpred49_Delphi3052); if (state.failed) return;
pushFollow(FOLLOW_arrayExpression_in_synpred49_Delphi3054);
arrayExpression();
state._fsp--;
if (state.failed) return;
// au/com/integradev/delphi/antlr/Delphi.g:473:102: ( portabilityDirective )*
loop315:
while (true) {
int alt315=2;
int LA315_0 = input.LA(1);
if ( (LA315_0==DEPRECATED||LA315_0==EXPERIMENTAL||LA315_0==LIBRARY||LA315_0==PLATFORM) ) {
alt315=1;
}
switch (alt315) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:473:102: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_synpred49_Delphi3056);
portabilityDirective();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop315;
}
}
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred49_Delphi3059); if (state.failed) return;
}
}
// $ANTLR end synpred49_Delphi
// $ANTLR start synpred53_Delphi
public final void synpred53_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:478:59: ( typeDeclaration )
// au/com/integradev/delphi/antlr/Delphi.g:478:59: typeDeclaration
{
pushFollow(FOLLOW_typeDeclaration_in_synpred53_Delphi3272);
typeDeclaration();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred53_Delphi
// $ANTLR start synpred54_Delphi
public final void synpred54_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:480:59: ( typeDeclaration )
// au/com/integradev/delphi/antlr/Delphi.g:480:59: typeDeclaration
{
pushFollow(FOLLOW_typeDeclaration_in_synpred54_Delphi3328);
typeDeclaration();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred54_Delphi
// $ANTLR start synpred58_Delphi
public final void synpred58_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:485:107: ( varDeclaration )
// au/com/integradev/delphi/antlr/Delphi.g:485:107: varDeclaration
{
pushFollow(FOLLOW_varDeclaration_in_synpred58_Delphi3512);
varDeclaration();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred58_Delphi
// $ANTLR start synpred60_Delphi
public final void synpred60_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:487:86: ( portabilityDirective )
// au/com/integradev/delphi/antlr/Delphi.g:487:86: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_synpred60_Delphi3573);
portabilityDirective();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred60_Delphi
// $ANTLR start synpred63_Delphi
public final void synpred63_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:487:32: ( ( attributeList )? nameDeclarationList ':' fixedArrayType ( portabilityDirective )* ( arrayVarValueSpec )? ( portabilityDirective )* ';' )
// au/com/integradev/delphi/antlr/Delphi.g:487:32: ( attributeList )? nameDeclarationList ':' fixedArrayType ( portabilityDirective )* ( arrayVarValueSpec )? ( portabilityDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:487:32: ( attributeList )?
int alt316=2;
int LA316_0 = input.LA(1);
if ( (LA316_0==PAREN_BRACKET_LEFT||LA316_0==SQUARE_BRACKET_LEFT) ) {
alt316=1;
}
switch (alt316) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:487:32: attributeList
{
pushFollow(FOLLOW_attributeList_in_synpred63_Delphi3564);
attributeList();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_nameDeclarationList_in_synpred63_Delphi3567);
nameDeclarationList();
state._fsp--;
if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_synpred63_Delphi3569); if (state.failed) return;
pushFollow(FOLLOW_fixedArrayType_in_synpred63_Delphi3571);
fixedArrayType();
state._fsp--;
if (state.failed) return;
// au/com/integradev/delphi/antlr/Delphi.g:487:86: ( portabilityDirective )*
loop317:
while (true) {
int alt317=2;
switch ( input.LA(1) ) {
case DEPRECATED:
{
int LA317_2 = input.LA(2);
if ( (synpred60_Delphi()) ) {
alt317=1;
}
}
break;
case EXPERIMENTAL:
{
int LA317_3 = input.LA(2);
if ( (synpred60_Delphi()) ) {
alt317=1;
}
}
break;
case PLATFORM:
{
int LA317_4 = input.LA(2);
if ( (synpred60_Delphi()) ) {
alt317=1;
}
}
break;
case LIBRARY:
{
int LA317_5 = input.LA(2);
if ( (synpred60_Delphi()) ) {
alt317=1;
}
}
break;
}
switch (alt317) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:487:86: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_synpred63_Delphi3573);
portabilityDirective();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop317;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:487:108: ( arrayVarValueSpec )?
int alt318=2;
int LA318_0 = input.LA(1);
if ( (LA318_0==ABSOLUTE||LA318_0==EQUAL) ) {
alt318=1;
}
switch (alt318) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:487:108: arrayVarValueSpec
{
pushFollow(FOLLOW_arrayVarValueSpec_in_synpred63_Delphi3576);
arrayVarValueSpec();
state._fsp--;
if (state.failed) return;
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:487:127: ( portabilityDirective )*
loop319:
while (true) {
int alt319=2;
int LA319_0 = input.LA(1);
if ( (LA319_0==DEPRECATED||LA319_0==EXPERIMENTAL||LA319_0==LIBRARY||LA319_0==PLATFORM) ) {
alt319=1;
}
switch (alt319) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:487:127: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_synpred63_Delphi3579);
portabilityDirective();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop319;
}
}
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred63_Delphi3582); if (state.failed) return;
}
}
// $ANTLR end synpred63_Delphi
// $ANTLR start synpred65_Delphi
public final void synpred65_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:489:79: ( portabilityDirective )
// au/com/integradev/delphi/antlr/Delphi.g:489:79: portabilityDirective
{
pushFollow(FOLLOW_portabilityDirective_in_synpred65_Delphi3672);
portabilityDirective();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred65_Delphi
// $ANTLR start synpred77_Delphi
public final void synpred77_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:508:32: ( fullFileType )
// au/com/integradev/delphi/antlr/Delphi.g:508:32: fullFileType
{
pushFollow(FOLLOW_fullFileType_in_synpred77_Delphi4178);
fullFileType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred77_Delphi
// $ANTLR start synpred78_Delphi
public final void synpred78_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:509:32: ( classHelperType )
// au/com/integradev/delphi/antlr/Delphi.g:509:32: classHelperType
{
pushFollow(FOLLOW_classHelperType_in_synpred78_Delphi4211);
classHelperType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred78_Delphi
// $ANTLR start synpred79_Delphi
public final void synpred79_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:510:32: ( classReferenceType )
// au/com/integradev/delphi/antlr/Delphi.g:510:32: classReferenceType
{
pushFollow(FOLLOW_classReferenceType_in_synpred79_Delphi4244);
classReferenceType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred79_Delphi
// $ANTLR start synpred80_Delphi
public final void synpred80_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:511:32: ( classType )
// au/com/integradev/delphi/antlr/Delphi.g:511:32: classType
{
pushFollow(FOLLOW_classType_in_synpred80_Delphi4277);
classType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred80_Delphi
// $ANTLR start synpred83_Delphi
public final void synpred83_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:514:32: ( recordType )
// au/com/integradev/delphi/antlr/Delphi.g:514:32: recordType
{
pushFollow(FOLLOW_recordType_in_synpred83_Delphi4376);
recordType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred83_Delphi
// $ANTLR start synpred84_Delphi
public final void synpred84_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:515:32: ( recordHelperType )
// au/com/integradev/delphi/antlr/Delphi.g:515:32: recordHelperType
{
pushFollow(FOLLOW_recordHelperType_in_synpred84_Delphi4409);
recordHelperType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred84_Delphi
// $ANTLR start synpred85_Delphi
public final void synpred85_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:516:32: ( pointerType )
// au/com/integradev/delphi/antlr/Delphi.g:516:32: pointerType
{
pushFollow(FOLLOW_pointerType_in_synpred85_Delphi4442);
pointerType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred85_Delphi
// $ANTLR start synpred86_Delphi
public final void synpred86_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:517:32: ( fullStringType )
// au/com/integradev/delphi/antlr/Delphi.g:517:32: fullStringType
{
pushFollow(FOLLOW_fullStringType_in_synpred86_Delphi4475);
fullStringType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred86_Delphi
// $ANTLR start synpred87_Delphi
public final void synpred87_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:518:32: ( procedureType )
// au/com/integradev/delphi/antlr/Delphi.g:518:32: procedureType
{
pushFollow(FOLLOW_procedureType_in_synpred87_Delphi4508);
procedureType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred87_Delphi
// $ANTLR start synpred88_Delphi
public final void synpred88_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:519:32: ( subRangeType )
// au/com/integradev/delphi/antlr/Delphi.g:519:32: subRangeType
{
pushFollow(FOLLOW_subRangeType_in_synpred88_Delphi4541);
subRangeType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred88_Delphi
// $ANTLR start synpred89_Delphi
public final void synpred89_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:520:32: ( typeOfType )
// au/com/integradev/delphi/antlr/Delphi.g:520:32: typeOfType
{
pushFollow(FOLLOW_typeOfType_in_synpred89_Delphi4574);
typeOfType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred89_Delphi
// $ANTLR start synpred90_Delphi
public final void synpred90_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:521:32: ( strongAliasType )
// au/com/integradev/delphi/antlr/Delphi.g:521:32: strongAliasType
{
pushFollow(FOLLOW_strongAliasType_in_synpred90_Delphi4607);
strongAliasType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred90_Delphi
// $ANTLR start synpred91_Delphi
public final void synpred91_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:522:32: ( weakAliasType )
// au/com/integradev/delphi/antlr/Delphi.g:522:32: weakAliasType
{
pushFollow(FOLLOW_weakAliasType_in_synpred91_Delphi4640);
weakAliasType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred91_Delphi
// $ANTLR start synpred92_Delphi
public final void synpred92_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:523:32: ( enumType )
// au/com/integradev/delphi/antlr/Delphi.g:523:32: enumType
{
pushFollow(FOLLOW_enumType_in_synpred92_Delphi4673);
enumType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred92_Delphi
// $ANTLR start synpred95_Delphi
public final void synpred95_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:528:32: ( fullStringType )
// au/com/integradev/delphi/antlr/Delphi.g:528:32: fullStringType
{
pushFollow(FOLLOW_fullStringType_in_synpred95_Delphi4833);
fullStringType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred95_Delphi
// $ANTLR start synpred96_Delphi
public final void synpred96_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:529:32: ( fullFileType )
// au/com/integradev/delphi/antlr/Delphi.g:529:32: fullFileType
{
pushFollow(FOLLOW_fullFileType_in_synpred96_Delphi4866);
fullFileType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred96_Delphi
// $ANTLR start synpred98_Delphi
public final void synpred98_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:531:32: ( pointerType )
// au/com/integradev/delphi/antlr/Delphi.g:531:32: pointerType
{
pushFollow(FOLLOW_pointerType_in_synpred98_Delphi4932);
pointerType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred98_Delphi
// $ANTLR start synpred99_Delphi
public final void synpred99_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:532:32: ( procedureType )
// au/com/integradev/delphi/antlr/Delphi.g:532:32: procedureType
{
pushFollow(FOLLOW_procedureType_in_synpred99_Delphi4965);
procedureType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred99_Delphi
// $ANTLR start synpred100_Delphi
public final void synpred100_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:533:32: ( subRangeType )
// au/com/integradev/delphi/antlr/Delphi.g:533:32: subRangeType
{
pushFollow(FOLLOW_subRangeType_in_synpred100_Delphi4998);
subRangeType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred100_Delphi
// $ANTLR start synpred101_Delphi
public final void synpred101_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:534:32: ( typeReference )
// au/com/integradev/delphi/antlr/Delphi.g:534:32: typeReference
{
pushFollow(FOLLOW_typeReference_in_synpred101_Delphi5031);
typeReference();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred101_Delphi
// $ANTLR start synpred102_Delphi
public final void synpred102_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:535:32: ( enumType )
// au/com/integradev/delphi/antlr/Delphi.g:535:32: enumType
{
pushFollow(FOLLOW_enumType_in_synpred102_Delphi5064);
enumType();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred102_Delphi
// $ANTLR start synpred114_Delphi
public final void synpred114_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:572:61: ( lbrack expression rbrack )
// au/com/integradev/delphi/antlr/Delphi.g:572:61: lbrack expression rbrack
{
pushFollow(FOLLOW_lbrack_in_synpred114_Delphi6249);
lbrack();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_expression_in_synpred114_Delphi6251);
expression();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_rbrack_in_synpred114_Delphi6253);
rbrack();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred114_Delphi
// $ANTLR start synpred115_Delphi
public final void synpred115_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:574:32: ( procedureOfObject )
// au/com/integradev/delphi/antlr/Delphi.g:574:32: procedureOfObject
{
pushFollow(FOLLOW_procedureOfObject_in_synpred115_Delphi6307);
procedureOfObject();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred115_Delphi
// $ANTLR start synpred118_Delphi
public final void synpred118_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:578:96: ( ( ';' )? interfaceDirective )
// au/com/integradev/delphi/antlr/Delphi.g:578:96: ( ';' )? interfaceDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:578:96: ( ';' )?
int alt321=2;
int LA321_0 = input.LA(1);
if ( (LA321_0==SEMICOLON) ) {
alt321=1;
}
switch (alt321) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:578:97: ';'
{
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred118_Delphi6433); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_interfaceDirective_in_synpred118_Delphi6437);
interfaceDirective();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred118_Delphi
// $ANTLR start synpred119_Delphi
public final void synpred119_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:584:72: ( routineParameters )
// au/com/integradev/delphi/antlr/Delphi.g:584:72: routineParameters
{
pushFollow(FOLLOW_routineParameters_in_synpred119_Delphi6603);
routineParameters();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred119_Delphi
// $ANTLR start synpred122_Delphi
public final void synpred122_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:584:111: ( ( ';' )? interfaceDirective )
// au/com/integradev/delphi/antlr/Delphi.g:584:111: ( ';' )? interfaceDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:584:111: ( ';' )?
int alt322=2;
int LA322_0 = input.LA(1);
if ( (LA322_0==SEMICOLON) ) {
alt322=1;
}
switch (alt322) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:584:112: ';'
{
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred122_Delphi6611); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_interfaceDirective_in_synpred122_Delphi6615);
interfaceDirective();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred122_Delphi
// $ANTLR start synpred124_Delphi
public final void synpred124_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:585:73: ( routineParameters )
// au/com/integradev/delphi/antlr/Delphi.g:585:73: routineParameters
{
pushFollow(FOLLOW_routineParameters_in_synpred124_Delphi6656);
routineParameters();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred124_Delphi
// $ANTLR start synpred126_Delphi
public final void synpred126_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:585:93: ( ( ';' )? interfaceDirective )
// au/com/integradev/delphi/antlr/Delphi.g:585:93: ( ';' )? interfaceDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:585:93: ( ';' )?
int alt327=2;
int LA327_0 = input.LA(1);
if ( (LA327_0==SEMICOLON) ) {
alt327=1;
}
switch (alt327) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:585:94: ';'
{
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred126_Delphi6661); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_interfaceDirective_in_synpred126_Delphi6665);
interfaceDirective();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred126_Delphi
// $ANTLR start synpred140_Delphi
public final void synpred140_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:627:43: ( visibilitySectionItem )
// au/com/integradev/delphi/antlr/Delphi.g:627:43: visibilitySectionItem
{
pushFollow(FOLLOW_visibilitySectionItem_in_synpred140_Delphi7840);
visibilitySectionItem();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred140_Delphi
// $ANTLR start synpred142_Delphi
public final void synpred142_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:628:32: ( visibilitySectionItem )
// au/com/integradev/delphi/antlr/Delphi.g:628:32: visibilitySectionItem
{
pushFollow(FOLLOW_visibilitySectionItem_in_synpred142_Delphi7874);
visibilitySectionItem();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred142_Delphi
// $ANTLR start synpred143_Delphi
public final void synpred143_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:630:32: ( fieldSection )
// au/com/integradev/delphi/antlr/Delphi.g:630:32: fieldSection
{
pushFollow(FOLLOW_fieldSection_in_synpred143_Delphi7919);
fieldSection();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred143_Delphi
// $ANTLR start synpred144_Delphi
public final void synpred144_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:631:32: ( routineInterface )
// au/com/integradev/delphi/antlr/Delphi.g:631:32: routineInterface
{
pushFollow(FOLLOW_routineInterface_in_synpred144_Delphi7952);
routineInterface();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred144_Delphi
// $ANTLR start synpred145_Delphi
public final void synpred145_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:632:32: ( methodResolutionClause )
// au/com/integradev/delphi/antlr/Delphi.g:632:32: methodResolutionClause
{
pushFollow(FOLLOW_methodResolutionClause_in_synpred145_Delphi7985);
methodResolutionClause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred145_Delphi
// $ANTLR start synpred146_Delphi
public final void synpred146_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:633:32: ( property )
// au/com/integradev/delphi/antlr/Delphi.g:633:32: property
{
pushFollow(FOLLOW_property_in_synpred146_Delphi8018);
property();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred146_Delphi
// $ANTLR start synpred150_Delphi
public final void synpred150_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:640:55: ( fieldDecl )
// au/com/integradev/delphi/antlr/Delphi.g:640:55: fieldDecl
{
pushFollow(FOLLOW_fieldDecl_in_synpred150_Delphi8225);
fieldDecl();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred150_Delphi
// $ANTLR start synpred152_Delphi
public final void synpred152_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:641:32: ( fieldDecl )
// au/com/integradev/delphi/antlr/Delphi.g:641:32: fieldDecl
{
pushFollow(FOLLOW_fieldDecl_in_synpred152_Delphi8276);
fieldDecl();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred152_Delphi
// $ANTLR start synpred160_Delphi
public final void synpred160_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:648:122: ( interfaceGuid )
// au/com/integradev/delphi/antlr/Delphi.g:648:122: interfaceGuid
{
pushFollow(FOLLOW_interfaceGuid_in_synpred160_Delphi8549);
interfaceGuid();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred160_Delphi
// $ANTLR start synpred164_Delphi
public final void synpred164_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:654:32: ( routineInterface )
// au/com/integradev/delphi/antlr/Delphi.g:654:32: routineInterface
{
pushFollow(FOLLOW_routineInterface_in_synpred164_Delphi8740);
routineInterface();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred164_Delphi
// $ANTLR start synpred169_Delphi
public final void synpred169_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:659:106: ( ALIGN expression )
// au/com/integradev/delphi/antlr/Delphi.g:659:106: ALIGN expression
{
match(input,ALIGN,FOLLOW_ALIGN_in_synpred169_Delphi8976); if (state.failed) return;
pushFollow(FOLLOW_expression_in_synpred169_Delphi8978);
expression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred169_Delphi
// $ANTLR start synpred209_Delphi
public final void synpred209_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:748:32: ( fullRoutineImplementation )
// au/com/integradev/delphi/antlr/Delphi.g:748:32: fullRoutineImplementation
{
pushFollow(FOLLOW_fullRoutineImplementation_in_synpred209_Delphi11627);
fullRoutineImplementation();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred209_Delphi
// $ANTLR start synpred210_Delphi
public final void synpred210_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:749:32: ( externalRoutine )
// au/com/integradev/delphi/antlr/Delphi.g:749:32: externalRoutine
{
pushFollow(FOLLOW_externalRoutine_in_synpred210_Delphi11660);
externalRoutine();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred210_Delphi
// $ANTLR start synpred242_Delphi
public final void synpred242_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:847:32: ( attributeGroup )
// au/com/integradev/delphi/antlr/Delphi.g:847:32: attributeGroup
{
pushFollow(FOLLOW_attributeGroup_in_synpred242_Delphi14863);
attributeGroup();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred242_Delphi
// $ANTLR start synpred245_Delphi
public final void synpred245_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:853:33: ( ASSEMBLY ':' )
// au/com/integradev/delphi/antlr/Delphi.g:853:33: ASSEMBLY ':'
{
match(input,ASSEMBLY,FOLLOW_ASSEMBLY_in_synpred245_Delphi15064); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_synpred245_Delphi15066); if (state.failed) return;
}
}
// $ANTLR end synpred245_Delphi
// $ANTLR start synpred250_Delphi
public final void synpred250_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:868:52: ( relationalOperator additiveExpression )
// au/com/integradev/delphi/antlr/Delphi.g:868:52: relationalOperator additiveExpression
{
pushFollow(FOLLOW_relationalOperator_in_synpred250_Delphi15284);
relationalOperator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_additiveExpression_in_synpred250_Delphi15287);
additiveExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred250_Delphi
// $ANTLR start synpred251_Delphi
public final void synpred251_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:870:58: ( addOperator multiplicativeExpression )
// au/com/integradev/delphi/antlr/Delphi.g:870:58: addOperator multiplicativeExpression
{
pushFollow(FOLLOW_addOperator_in_synpred251_Delphi15341);
addOperator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_multiplicativeExpression_in_synpred251_Delphi15344);
multiplicativeExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred251_Delphi
// $ANTLR start synpred254_Delphi
public final void synpred254_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:877:32: ( atom )
// au/com/integradev/delphi/antlr/Delphi.g:877:32: atom
{
pushFollow(FOLLOW_atom_in_synpred254_Delphi15533);
atom();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred254_Delphi
// $ANTLR start synpred255_Delphi
public final void synpred255_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:878:32: ( parenthesizedExpression )
// au/com/integradev/delphi/antlr/Delphi.g:878:32: parenthesizedExpression
{
pushFollow(FOLLOW_parenthesizedExpression_in_synpred255_Delphi15577);
parenthesizedExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred255_Delphi
// $ANTLR start synpred256_Delphi
public final void synpred256_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:879:43: ( nameReference )
// au/com/integradev/delphi/antlr/Delphi.g:879:43: nameReference
{
pushFollow(FOLLOW_nameReference_in_synpred256_Delphi15613);
nameReference();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred256_Delphi
// $ANTLR start synpred257_Delphi
public final void synpred257_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:879:58: ( particleItem )
// au/com/integradev/delphi/antlr/Delphi.g:879:58: particleItem
{
pushFollow(FOLLOW_particleItem_in_synpred257_Delphi15616);
particleItem();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred257_Delphi
// $ANTLR start synpred258_Delphi
public final void synpred258_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:879:43: ( ( nameReference )? ( particleItem )* )
// au/com/integradev/delphi/antlr/Delphi.g:879:43: ( nameReference )? ( particleItem )*
{
// au/com/integradev/delphi/antlr/Delphi.g:879:43: ( nameReference )?
int alt341=2;
int LA341_0 = input.LA(1);
if ( ((LA341_0 >= ABSOLUTE && LA341_0 <= ABSTRACT)||LA341_0==ALIGN||(LA341_0 >= ASSEMBLER && LA341_0 <= ASSEMBLY)||(LA341_0 >= AT && LA341_0 <= AUTOMATED)||LA341_0==CDECL||LA341_0==CONTAINS||(LA341_0 >= DEFAULT && LA341_0 <= DEPRECATED)||LA341_0==DISPID||LA341_0==DYNAMIC||(LA341_0 >= EXPERIMENTAL && LA341_0 <= EXPORT)||LA341_0==EXTERNAL||LA341_0==FAR||LA341_0==FINAL||LA341_0==FORWARD||LA341_0==HELPER||LA341_0==IMPLEMENTS||LA341_0==INDEX||LA341_0==LABEL||LA341_0==LOCAL||LA341_0==MESSAGE||(LA341_0 >= NAME && LA341_0 <= NEAR)||LA341_0==NODEFAULT||(LA341_0 >= ON && LA341_0 <= OPERATOR)||(LA341_0 >= OUT && LA341_0 <= OVERRIDE)||LA341_0==PACKAGE||(LA341_0 >= PASCAL && LA341_0 <= PLATFORM)||LA341_0==PRIVATE||(LA341_0 >= PROTECTED && LA341_0 <= PUBLISHED)||(LA341_0 >= READ && LA341_0 <= READONLY)||(LA341_0 >= REFERENCE && LA341_0 <= REINTRODUCE)||(LA341_0 >= REQUIRES && LA341_0 <= RESIDENT)||(LA341_0 >= SAFECALL && LA341_0 <= SEALED)||(LA341_0 >= STATIC && LA341_0 <= STRICT)||LA341_0==TkIdentifier||LA341_0==UNSAFE||(LA341_0 >= VARARGS && LA341_0 <= VIRTUAL)||LA341_0==WINAPI||(LA341_0 >= WRITE && LA341_0 <= WRITEONLY)) ) {
alt341=1;
}
switch (alt341) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:879:43: nameReference
{
pushFollow(FOLLOW_nameReference_in_synpred258_Delphi15613);
nameReference();
state._fsp--;
if (state.failed) return;
}
break;
}
// au/com/integradev/delphi/antlr/Delphi.g:879:58: ( particleItem )*
loop342:
while (true) {
int alt342=2;
int LA342_0 = input.LA(1);
if ( (LA342_0==DEREFERENCE||LA342_0==DOT||LA342_0==PAREN_BRACKET_LEFT||LA342_0==PAREN_LEFT||LA342_0==SQUARE_BRACKET_LEFT) ) {
alt342=1;
}
switch (alt342) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:879:58: particleItem
{
pushFollow(FOLLOW_particleItem_in_synpred258_Delphi15616);
particleItem();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop342;
}
}
}
}
// $ANTLR end synpred258_Delphi
// $ANTLR start synpred259_Delphi
public final void synpred259_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:883:41: ( particleItem )
// au/com/integradev/delphi/antlr/Delphi.g:883:41: particleItem
{
pushFollow(FOLLOW_particleItem_in_synpred259_Delphi15763);
particleItem();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred259_Delphi
// $ANTLR start synpred268_Delphi
public final void synpred268_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:893:56: ( particleItem )
// au/com/integradev/delphi/antlr/Delphi.g:893:56: particleItem
{
pushFollow(FOLLOW_particleItem_in_synpred268_Delphi16087);
particleItem();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred268_Delphi
// $ANTLR start synpred276_Delphi
public final void synpred276_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:910:32: ( ident ':=' )
// au/com/integradev/delphi/antlr/Delphi.g:910:32: ident ':='
{
pushFollow(FOLLOW_ident_in_synpred276_Delphi16633);
ident();
state._fsp--;
if (state.failed) return;
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred276_Delphi16635); if (state.failed) return;
}
}
// $ANTLR end synpred276_Delphi
// $ANTLR start synpred293_Delphi
public final void synpred293_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:933:48: ( ( escapedCharacter )+ TkQuotedString )
// au/com/integradev/delphi/antlr/Delphi.g:933:48: ( escapedCharacter )+ TkQuotedString
{
// au/com/integradev/delphi/antlr/Delphi.g:933:48: ( escapedCharacter )+
int cnt352=0;
loop352:
while (true) {
int alt352=2;
int LA352_0 = input.LA(1);
if ( (LA352_0==DEREFERENCE||LA352_0==TkCharacterEscapeCode) ) {
alt352=1;
}
switch (alt352) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:933:48: escapedCharacter
{
pushFollow(FOLLOW_escapedCharacter_in_synpred293_Delphi17395);
escapedCharacter();
state._fsp--;
if (state.failed) return;
}
break;
default :
if ( cnt352 >= 1 ) break loop352;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(352, input);
throw eee;
}
cnt352++;
}
match(input,TkQuotedString,FOLLOW_TkQuotedString_in_synpred293_Delphi17398); if (state.failed) return;
}
}
// $ANTLR end synpred293_Delphi
// $ANTLR start synpred294_Delphi
public final void synpred294_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:933:83: ( escapedCharacter )
// au/com/integradev/delphi/antlr/Delphi.g:933:83: escapedCharacter
{
pushFollow(FOLLOW_escapedCharacter_in_synpred294_Delphi17402);
escapedCharacter();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred294_Delphi
// $ANTLR start synpred296_Delphi
public final void synpred296_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:934:32: ( escapedCharacter )
// au/com/integradev/delphi/antlr/Delphi.g:934:32: escapedCharacter
{
pushFollow(FOLLOW_escapedCharacter_in_synpred296_Delphi17436);
escapedCharacter();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred296_Delphi
// $ANTLR start synpred297_Delphi
public final void synpred297_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:934:66: ( escapedCharacter )
// au/com/integradev/delphi/antlr/Delphi.g:934:66: escapedCharacter
{
pushFollow(FOLLOW_escapedCharacter_in_synpred297_Delphi17442);
escapedCharacter();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred297_Delphi
// $ANTLR start synpred298_Delphi
public final void synpred298_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:934:51: ( TkQuotedString ( escapedCharacter )+ )
// au/com/integradev/delphi/antlr/Delphi.g:934:51: TkQuotedString ( escapedCharacter )+
{
match(input,TkQuotedString,FOLLOW_TkQuotedString_in_synpred298_Delphi17440); if (state.failed) return;
// au/com/integradev/delphi/antlr/Delphi.g:934:66: ( escapedCharacter )+
int cnt356=0;
loop356:
while (true) {
int alt356=2;
int LA356_0 = input.LA(1);
if ( (LA356_0==DEREFERENCE||LA356_0==TkCharacterEscapeCode) ) {
alt356=1;
}
switch (alt356) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:934:66: escapedCharacter
{
pushFollow(FOLLOW_escapedCharacter_in_synpred298_Delphi17442);
escapedCharacter();
state._fsp--;
if (state.failed) return;
}
break;
default :
if ( cnt356 >= 1 ) break loop356;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(356, input);
throw eee;
}
cnt356++;
}
}
}
// $ANTLR end synpred298_Delphi
// $ANTLR start synpred299_Delphi
public final void synpred299_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:934:86: ( TkQuotedString )
// au/com/integradev/delphi/antlr/Delphi.g:934:86: TkQuotedString
{
match(input,TkQuotedString,FOLLOW_TkQuotedString_in_synpred299_Delphi17447); if (state.failed) return;
}
}
// $ANTLR end synpred299_Delphi
// $ANTLR start synpred324_Delphi
public final void synpred324_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:974:32: ( expression )
// au/com/integradev/delphi/antlr/Delphi.g:974:32: expression
{
pushFollow(FOLLOW_expression_in_synpred324_Delphi18738);
expression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred324_Delphi
// $ANTLR start synpred325_Delphi
public final void synpred325_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:975:32: ( recordExpression )
// au/com/integradev/delphi/antlr/Delphi.g:975:32: recordExpression
{
pushFollow(FOLLOW_recordExpression_in_synpred325_Delphi18771);
recordExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred325_Delphi
// $ANTLR start synpred342_Delphi
public final void synpred342_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1001:32: ( labelStatement )
// au/com/integradev/delphi/antlr/Delphi.g:1001:32: labelStatement
{
pushFollow(FOLLOW_labelStatement_in_synpred342_Delphi19483);
labelStatement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred342_Delphi
// $ANTLR start synpred343_Delphi
public final void synpred343_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1002:32: ( assignmentStatement )
// au/com/integradev/delphi/antlr/Delphi.g:1002:32: assignmentStatement
{
pushFollow(FOLLOW_assignmentStatement_in_synpred343_Delphi19516);
assignmentStatement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred343_Delphi
// $ANTLR start synpred344_Delphi
public final void synpred344_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1003:32: ( expressionStatement )
// au/com/integradev/delphi/antlr/Delphi.g:1003:32: expressionStatement
{
pushFollow(FOLLOW_expressionStatement_in_synpred344_Delphi19549);
expressionStatement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred344_Delphi
// $ANTLR start synpred345_Delphi
public final void synpred345_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1006:73: ( statement )
// au/com/integradev/delphi/antlr/Delphi.g:1006:73: statement
{
pushFollow(FOLLOW_statement_in_synpred345_Delphi19646);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred345_Delphi
// $ANTLR start synpred346_Delphi
public final void synpred346_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1006:90: ( statement )
// au/com/integradev/delphi/antlr/Delphi.g:1006:90: statement
{
pushFollow(FOLLOW_statement_in_synpred346_Delphi19652);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred346_Delphi
// $ANTLR start synpred347_Delphi
public final void synpred347_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1006:85: ( ELSE ( statement )? )
// au/com/integradev/delphi/antlr/Delphi.g:1006:85: ELSE ( statement )?
{
match(input,ELSE,FOLLOW_ELSE_in_synpred347_Delphi19650); if (state.failed) return;
// au/com/integradev/delphi/antlr/Delphi.g:1006:90: ( statement )?
int alt359=2;
int LA359_0 = input.LA(1);
if ( ((LA359_0 >= ABSOLUTE && LA359_0 <= ALIGN)||(LA359_0 >= ASM && LA359_0 <= ASSEMBLY)||(LA359_0 >= AT && LA359_0 <= AUTOMATED)||LA359_0==BEGIN||(LA359_0 >= CASE && LA359_0 <= CDECL)||LA359_0==CONST||LA359_0==CONTAINS||(LA359_0 >= DEFAULT && LA359_0 <= DEREFERENCE)||LA359_0==DISPID||LA359_0==DYNAMIC||(LA359_0 >= EXPERIMENTAL && LA359_0 <= EXPORT)||LA359_0==EXTERNAL||(LA359_0 >= FAR && LA359_0 <= FINAL)||(LA359_0 >= FOR && LA359_0 <= FUNCTION)||LA359_0==GOTO||LA359_0==HELPER||LA359_0==IF||LA359_0==IMPLEMENTS||(LA359_0 >= INDEX && LA359_0 <= INHERITED)||LA359_0==LABEL||LA359_0==LOCAL||(LA359_0 >= MESSAGE && LA359_0 <= MINUS)||(LA359_0 >= NAME && LA359_0 <= NOT)||(LA359_0 >= ON && LA359_0 <= OPERATOR)||(LA359_0 >= OUT && LA359_0 <= OVERRIDE)||LA359_0==PACKAGE||LA359_0==PAREN_BRACKET_LEFT||LA359_0==PAREN_LEFT||(LA359_0 >= PASCAL && LA359_0 <= PROCEDURE)||(LA359_0 >= PROTECTED && LA359_0 <= PUBLISHED)||(LA359_0 >= RAISE && LA359_0 <= READONLY)||(LA359_0 >= REFERENCE && LA359_0 <= RESIDENT)||(LA359_0 >= SAFECALL && LA359_0 <= SEALED)||LA359_0==SQUARE_BRACKET_LEFT||(LA359_0 >= STATIC && LA359_0 <= STRING)||LA359_0==TRY||LA359_0==TkBinaryNumber||LA359_0==TkCharacterEscapeCode||(LA359_0 >= TkHexNumber && LA359_0 <= TkIntNumber)||LA359_0==TkMultilineString||(LA359_0 >= TkQuotedString && LA359_0 <= TkRealNumber)||LA359_0==UNSAFE||(LA359_0 >= VAR && LA359_0 <= VIRTUAL)||LA359_0==WHILE||(LA359_0 >= WINAPI && LA359_0 <= WRITEONLY)) ) {
alt359=1;
}
switch (alt359) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1006:90: statement
{
pushFollow(FOLLOW_statement_in_synpred347_Delphi19652);
statement();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred347_Delphi
// $ANTLR start synpred355_Delphi
public final void synpred355_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1018:59: ( statement )
// au/com/integradev/delphi/antlr/Delphi.g:1018:59: statement
{
pushFollow(FOLLOW_statement_in_synpred355_Delphi20097);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred355_Delphi
// $ANTLR start synpred357_Delphi
public final void synpred357_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1022:77: ( statement )
// au/com/integradev/delphi/antlr/Delphi.g:1022:77: statement
{
pushFollow(FOLLOW_statement_in_synpred357_Delphi20247);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred357_Delphi
// $ANTLR start synpred358_Delphi
public final void synpred358_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1024:101: ( statement )
// au/com/integradev/delphi/antlr/Delphi.g:1024:101: statement
{
pushFollow(FOLLOW_statement_in_synpred358_Delphi20319);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred358_Delphi
// $ANTLR start synpred359_Delphi
public final void synpred359_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1024:32: ( FOR forVar ':=' expression TO expression DO ( statement )? )
// au/com/integradev/delphi/antlr/Delphi.g:1024:32: FOR forVar ':=' expression TO expression DO ( statement )?
{
match(input,FOR,FOLLOW_FOR_in_synpred359_Delphi20301); if (state.failed) return;
pushFollow(FOLLOW_forVar_in_synpred359_Delphi20307);
forVar();
state._fsp--;
if (state.failed) return;
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred359_Delphi20309); if (state.failed) return;
pushFollow(FOLLOW_expression_in_synpred359_Delphi20311);
expression();
state._fsp--;
if (state.failed) return;
match(input,TO,FOLLOW_TO_in_synpred359_Delphi20313); if (state.failed) return;
pushFollow(FOLLOW_expression_in_synpred359_Delphi20315);
expression();
state._fsp--;
if (state.failed) return;
match(input,DO,FOLLOW_DO_in_synpred359_Delphi20317); if (state.failed) return;
// au/com/integradev/delphi/antlr/Delphi.g:1024:101: ( statement )?
int alt360=2;
int LA360_0 = input.LA(1);
if ( ((LA360_0 >= ABSOLUTE && LA360_0 <= ALIGN)||(LA360_0 >= ASM && LA360_0 <= ASSEMBLY)||(LA360_0 >= AT && LA360_0 <= AUTOMATED)||LA360_0==BEGIN||(LA360_0 >= CASE && LA360_0 <= CDECL)||LA360_0==CONST||LA360_0==CONTAINS||(LA360_0 >= DEFAULT && LA360_0 <= DEREFERENCE)||LA360_0==DISPID||LA360_0==DYNAMIC||(LA360_0 >= EXPERIMENTAL && LA360_0 <= EXPORT)||LA360_0==EXTERNAL||(LA360_0 >= FAR && LA360_0 <= FINAL)||(LA360_0 >= FOR && LA360_0 <= FUNCTION)||LA360_0==GOTO||LA360_0==HELPER||LA360_0==IF||LA360_0==IMPLEMENTS||(LA360_0 >= INDEX && LA360_0 <= INHERITED)||LA360_0==LABEL||LA360_0==LOCAL||(LA360_0 >= MESSAGE && LA360_0 <= MINUS)||(LA360_0 >= NAME && LA360_0 <= NOT)||(LA360_0 >= ON && LA360_0 <= OPERATOR)||(LA360_0 >= OUT && LA360_0 <= OVERRIDE)||LA360_0==PACKAGE||LA360_0==PAREN_BRACKET_LEFT||LA360_0==PAREN_LEFT||(LA360_0 >= PASCAL && LA360_0 <= PROCEDURE)||(LA360_0 >= PROTECTED && LA360_0 <= PUBLISHED)||(LA360_0 >= RAISE && LA360_0 <= READONLY)||(LA360_0 >= REFERENCE && LA360_0 <= RESIDENT)||(LA360_0 >= SAFECALL && LA360_0 <= SEALED)||LA360_0==SQUARE_BRACKET_LEFT||(LA360_0 >= STATIC && LA360_0 <= STRING)||LA360_0==TRY||LA360_0==TkBinaryNumber||LA360_0==TkCharacterEscapeCode||(LA360_0 >= TkHexNumber && LA360_0 <= TkIntNumber)||LA360_0==TkMultilineString||(LA360_0 >= TkQuotedString && LA360_0 <= TkRealNumber)||LA360_0==UNSAFE||(LA360_0 >= VAR && LA360_0 <= VIRTUAL)||LA360_0==WHILE||(LA360_0 >= WINAPI && LA360_0 <= WRITEONLY)) ) {
alt360=1;
}
switch (alt360) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1024:101: statement
{
pushFollow(FOLLOW_statement_in_synpred359_Delphi20319);
statement();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred359_Delphi
// $ANTLR start synpred360_Delphi
public final void synpred360_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1025:105: ( statement )
// au/com/integradev/delphi/antlr/Delphi.g:1025:105: statement
{
pushFollow(FOLLOW_statement_in_synpred360_Delphi20371);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred360_Delphi
// $ANTLR start synpred361_Delphi
public final void synpred361_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1025:32: ( FOR forVar ':=' expression DOWNTO expression DO ( statement )? )
// au/com/integradev/delphi/antlr/Delphi.g:1025:32: FOR forVar ':=' expression DOWNTO expression DO ( statement )?
{
match(input,FOR,FOLLOW_FOR_in_synpred361_Delphi20353); if (state.failed) return;
pushFollow(FOLLOW_forVar_in_synpred361_Delphi20359);
forVar();
state._fsp--;
if (state.failed) return;
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred361_Delphi20361); if (state.failed) return;
pushFollow(FOLLOW_expression_in_synpred361_Delphi20363);
expression();
state._fsp--;
if (state.failed) return;
match(input,DOWNTO,FOLLOW_DOWNTO_in_synpred361_Delphi20365); if (state.failed) return;
pushFollow(FOLLOW_expression_in_synpred361_Delphi20367);
expression();
state._fsp--;
if (state.failed) return;
match(input,DO,FOLLOW_DO_in_synpred361_Delphi20369); if (state.failed) return;
// au/com/integradev/delphi/antlr/Delphi.g:1025:105: ( statement )?
int alt361=2;
int LA361_0 = input.LA(1);
if ( ((LA361_0 >= ABSOLUTE && LA361_0 <= ALIGN)||(LA361_0 >= ASM && LA361_0 <= ASSEMBLY)||(LA361_0 >= AT && LA361_0 <= AUTOMATED)||LA361_0==BEGIN||(LA361_0 >= CASE && LA361_0 <= CDECL)||LA361_0==CONST||LA361_0==CONTAINS||(LA361_0 >= DEFAULT && LA361_0 <= DEREFERENCE)||LA361_0==DISPID||LA361_0==DYNAMIC||(LA361_0 >= EXPERIMENTAL && LA361_0 <= EXPORT)||LA361_0==EXTERNAL||(LA361_0 >= FAR && LA361_0 <= FINAL)||(LA361_0 >= FOR && LA361_0 <= FUNCTION)||LA361_0==GOTO||LA361_0==HELPER||LA361_0==IF||LA361_0==IMPLEMENTS||(LA361_0 >= INDEX && LA361_0 <= INHERITED)||LA361_0==LABEL||LA361_0==LOCAL||(LA361_0 >= MESSAGE && LA361_0 <= MINUS)||(LA361_0 >= NAME && LA361_0 <= NOT)||(LA361_0 >= ON && LA361_0 <= OPERATOR)||(LA361_0 >= OUT && LA361_0 <= OVERRIDE)||LA361_0==PACKAGE||LA361_0==PAREN_BRACKET_LEFT||LA361_0==PAREN_LEFT||(LA361_0 >= PASCAL && LA361_0 <= PROCEDURE)||(LA361_0 >= PROTECTED && LA361_0 <= PUBLISHED)||(LA361_0 >= RAISE && LA361_0 <= READONLY)||(LA361_0 >= REFERENCE && LA361_0 <= RESIDENT)||(LA361_0 >= SAFECALL && LA361_0 <= SEALED)||LA361_0==SQUARE_BRACKET_LEFT||(LA361_0 >= STATIC && LA361_0 <= STRING)||LA361_0==TRY||LA361_0==TkBinaryNumber||LA361_0==TkCharacterEscapeCode||(LA361_0 >= TkHexNumber && LA361_0 <= TkIntNumber)||LA361_0==TkMultilineString||(LA361_0 >= TkQuotedString && LA361_0 <= TkRealNumber)||LA361_0==UNSAFE||(LA361_0 >= VAR && LA361_0 <= VIRTUAL)||LA361_0==WHILE||(LA361_0 >= WINAPI && LA361_0 <= WRITEONLY)) ) {
alt361=1;
}
switch (alt361) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1025:105: statement
{
pushFollow(FOLLOW_statement_in_synpred361_Delphi20371);
statement();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred361_Delphi
// $ANTLR start synpred362_Delphi
public final void synpred362_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1026:85: ( statement )
// au/com/integradev/delphi/antlr/Delphi.g:1026:85: statement
{
pushFollow(FOLLOW_statement_in_synpred362_Delphi20419);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred362_Delphi
// $ANTLR start synpred365_Delphi
public final void synpred365_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1031:79: ( statement )
// au/com/integradev/delphi/antlr/Delphi.g:1031:79: statement
{
pushFollow(FOLLOW_statement_in_synpred365_Delphi20608);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred365_Delphi
// $ANTLR start synpred369_Delphi
public final void synpred369_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1039:82: ( statement )
// au/com/integradev/delphi/antlr/Delphi.g:1039:82: statement
{
pushFollow(FOLLOW_statement_in_synpred369_Delphi20842);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred369_Delphi
// $ANTLR start synpred373_Delphi
public final void synpred373_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1054:32: ( ( handler )+ ( elseBlock )? )
// au/com/integradev/delphi/antlr/Delphi.g:1054:32: ( handler )+ ( elseBlock )?
{
// au/com/integradev/delphi/antlr/Delphi.g:1054:32: ( handler )+
int cnt363=0;
loop363:
while (true) {
int alt363=2;
int LA363_0 = input.LA(1);
if ( (LA363_0==ON) ) {
alt363=1;
}
switch (alt363) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1054:32: handler
{
pushFollow(FOLLOW_handler_in_synpred373_Delphi21299);
handler();
state._fsp--;
if (state.failed) return;
}
break;
default :
if ( cnt363 >= 1 ) break loop363;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(363, input);
throw eee;
}
cnt363++;
}
// au/com/integradev/delphi/antlr/Delphi.g:1054:41: ( elseBlock )?
int alt364=2;
int LA364_0 = input.LA(1);
if ( (LA364_0==ELSE) ) {
alt364=1;
}
switch (alt364) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1054:41: elseBlock
{
pushFollow(FOLLOW_elseBlock_in_synpred373_Delphi21302);
elseBlock();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred373_Delphi
// $ANTLR start synpred377_Delphi
public final void synpred377_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1059:63: ( expression )
// au/com/integradev/delphi/antlr/Delphi.g:1059:63: expression
{
pushFollow(FOLLOW_expression_in_synpred377_Delphi21475);
expression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred377_Delphi
// $ANTLR start synpred378_Delphi
public final void synpred378_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1059:76: ( AT expression )
// au/com/integradev/delphi/antlr/Delphi.g:1059:76: AT expression
{
match(input,AT,FOLLOW_AT_in_synpred378_Delphi21479); if (state.failed) return;
pushFollow(FOLLOW_expression_in_synpred378_Delphi21482);
expression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred378_Delphi
// $ANTLR start synpred383_Delphi
public final void synpred383_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1069:32: ( ( ( ';' )? implDirective )* ';' )
// au/com/integradev/delphi/antlr/Delphi.g:1069:32: ( ( ';' )? implDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:1069:32: ( ( ';' )? implDirective )*
loop367:
while (true) {
int alt367=2;
int LA367_0 = input.LA(1);
if ( (LA367_0==SEMICOLON) ) {
int LA367_1 = input.LA(2);
if ( (LA367_1==ABSTRACT||LA367_1==ASSEMBLER||LA367_1==CDECL||LA367_1==DEPRECATED||LA367_1==DISPID||LA367_1==DYNAMIC||(LA367_1 >= EXPERIMENTAL && LA367_1 <= EXPORT)||LA367_1==FAR||LA367_1==FINAL||LA367_1==INLINE||(LA367_1 >= LIBRARY && LA367_1 <= LOCAL)||LA367_1==MESSAGE||LA367_1==NEAR||(LA367_1 >= OVERLOAD && LA367_1 <= OVERRIDE)||(LA367_1 >= PASCAL && LA367_1 <= PLATFORM)||(LA367_1 >= REGISTER && LA367_1 <= REINTRODUCE)||LA367_1==SAFECALL||(LA367_1 >= STATIC && LA367_1 <= STDCALL)||LA367_1==UNSAFE||(LA367_1 >= VARARGS && LA367_1 <= VIRTUAL)||LA367_1==WINAPI) ) {
alt367=1;
}
}
else if ( (LA367_0==ABSTRACT||LA367_0==ASSEMBLER||LA367_0==CDECL||LA367_0==DEPRECATED||LA367_0==DISPID||LA367_0==DYNAMIC||(LA367_0 >= EXPERIMENTAL && LA367_0 <= EXPORT)||LA367_0==FAR||LA367_0==FINAL||LA367_0==INLINE||(LA367_0 >= LIBRARY && LA367_0 <= LOCAL)||LA367_0==MESSAGE||LA367_0==NEAR||(LA367_0 >= OVERLOAD && LA367_0 <= OVERRIDE)||(LA367_0 >= PASCAL && LA367_0 <= PLATFORM)||(LA367_0 >= REGISTER && LA367_0 <= REINTRODUCE)||LA367_0==SAFECALL||(LA367_0 >= STATIC && LA367_0 <= STDCALL)||LA367_0==UNSAFE||(LA367_0 >= VARARGS && LA367_0 <= VIRTUAL)||LA367_0==WINAPI) ) {
alt367=1;
}
switch (alt367) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1069:33: ( ';' )? implDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1069:33: ( ';' )?
int alt366=2;
int LA366_0 = input.LA(1);
if ( (LA366_0==SEMICOLON) ) {
alt366=1;
}
switch (alt366) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1069:33: ';'
{
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred383_Delphi21638); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_implDirective_in_synpred383_Delphi21641);
implDirective();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop367;
}
}
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred383_Delphi21645); if (state.failed) return;
}
}
// $ANTLR end synpred383_Delphi
// $ANTLR start synpred387_Delphi
public final void synpred387_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1072:32: ( ( ( ';' )? interfaceDirective )* ';' )
// au/com/integradev/delphi/antlr/Delphi.g:1072:32: ( ( ';' )? interfaceDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:1072:32: ( ( ';' )? interfaceDirective )*
loop370:
while (true) {
int alt370=2;
int LA370_0 = input.LA(1);
if ( (LA370_0==SEMICOLON) ) {
int LA370_1 = input.LA(2);
if ( (LA370_1==ABSTRACT||LA370_1==ASSEMBLER||LA370_1==CDECL||LA370_1==DEPRECATED||LA370_1==DISPID||LA370_1==DYNAMIC||(LA370_1 >= EXPERIMENTAL && LA370_1 <= EXPORT)||LA370_1==EXTERNAL||LA370_1==FAR||LA370_1==FINAL||LA370_1==FORWARD||LA370_1==INLINE||(LA370_1 >= LIBRARY && LA370_1 <= LOCAL)||LA370_1==MESSAGE||LA370_1==NEAR||(LA370_1 >= OVERLOAD && LA370_1 <= OVERRIDE)||(LA370_1 >= PASCAL && LA370_1 <= PLATFORM)||(LA370_1 >= REGISTER && LA370_1 <= REINTRODUCE)||LA370_1==SAFECALL||(LA370_1 >= STATIC && LA370_1 <= STDCALL)||LA370_1==UNSAFE||(LA370_1 >= VARARGS && LA370_1 <= VIRTUAL)||LA370_1==WINAPI) ) {
alt370=1;
}
}
else if ( (LA370_0==ABSTRACT||LA370_0==ASSEMBLER||LA370_0==CDECL||LA370_0==DEPRECATED||LA370_0==DISPID||LA370_0==DYNAMIC||(LA370_0 >= EXPERIMENTAL && LA370_0 <= EXPORT)||LA370_0==EXTERNAL||LA370_0==FAR||LA370_0==FINAL||LA370_0==FORWARD||LA370_0==INLINE||(LA370_0 >= LIBRARY && LA370_0 <= LOCAL)||LA370_0==MESSAGE||LA370_0==NEAR||(LA370_0 >= OVERLOAD && LA370_0 <= OVERRIDE)||(LA370_0 >= PASCAL && LA370_0 <= PLATFORM)||(LA370_0 >= REGISTER && LA370_0 <= REINTRODUCE)||LA370_0==SAFECALL||(LA370_0 >= STATIC && LA370_0 <= STDCALL)||LA370_0==UNSAFE||(LA370_0 >= VARARGS && LA370_0 <= VIRTUAL)||LA370_0==WINAPI) ) {
alt370=1;
}
switch (alt370) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1072:33: ( ';' )? interfaceDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1072:33: ( ';' )?
int alt369=2;
int LA369_0 = input.LA(1);
if ( (LA369_0==SEMICOLON) ) {
alt369=1;
}
switch (alt369) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1072:33: ';'
{
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred387_Delphi21724); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_interfaceDirective_in_synpred387_Delphi21727);
interfaceDirective();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop370;
}
}
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred387_Delphi21731); if (state.failed) return;
}
}
// $ANTLR end synpred387_Delphi
// $ANTLR start synpred394_Delphi
public final void synpred394_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1075:33: ( ( ( ';' )? implDirective )* ( ';' )? externalDirective ( ( ';' )? implDirective )* ';' )
// au/com/integradev/delphi/antlr/Delphi.g:1075:33: ( ( ';' )? implDirective )* ( ';' )? externalDirective ( ( ';' )? implDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:1075:33: ( ( ';' )? implDirective )*
loop374:
while (true) {
int alt374=2;
int LA374_0 = input.LA(1);
if ( (LA374_0==SEMICOLON) ) {
int LA374_1 = input.LA(2);
if ( (LA374_1==ABSTRACT||LA374_1==ASSEMBLER||LA374_1==CDECL||LA374_1==DEPRECATED||LA374_1==DISPID||LA374_1==DYNAMIC||(LA374_1 >= EXPERIMENTAL && LA374_1 <= EXPORT)||LA374_1==FAR||LA374_1==FINAL||LA374_1==INLINE||(LA374_1 >= LIBRARY && LA374_1 <= LOCAL)||LA374_1==MESSAGE||LA374_1==NEAR||(LA374_1 >= OVERLOAD && LA374_1 <= OVERRIDE)||(LA374_1 >= PASCAL && LA374_1 <= PLATFORM)||(LA374_1 >= REGISTER && LA374_1 <= REINTRODUCE)||LA374_1==SAFECALL||(LA374_1 >= STATIC && LA374_1 <= STDCALL)||LA374_1==UNSAFE||(LA374_1 >= VARARGS && LA374_1 <= VIRTUAL)||LA374_1==WINAPI) ) {
alt374=1;
}
}
else if ( (LA374_0==ABSTRACT||LA374_0==ASSEMBLER||LA374_0==CDECL||LA374_0==DEPRECATED||LA374_0==DISPID||LA374_0==DYNAMIC||(LA374_0 >= EXPERIMENTAL && LA374_0 <= EXPORT)||LA374_0==FAR||LA374_0==FINAL||LA374_0==INLINE||(LA374_0 >= LIBRARY && LA374_0 <= LOCAL)||LA374_0==MESSAGE||LA374_0==NEAR||(LA374_0 >= OVERLOAD && LA374_0 <= OVERRIDE)||(LA374_0 >= PASCAL && LA374_0 <= PLATFORM)||(LA374_0 >= REGISTER && LA374_0 <= REINTRODUCE)||LA374_0==SAFECALL||(LA374_0 >= STATIC && LA374_0 <= STDCALL)||LA374_0==UNSAFE||(LA374_0 >= VARARGS && LA374_0 <= VIRTUAL)||LA374_0==WINAPI) ) {
alt374=1;
}
switch (alt374) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1075:34: ( ';' )? implDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1075:34: ( ';' )?
int alt373=2;
int LA373_0 = input.LA(1);
if ( (LA373_0==SEMICOLON) ) {
alt373=1;
}
switch (alt373) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1075:34: ';'
{
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred394_Delphi21812); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_implDirective_in_synpred394_Delphi21815);
implDirective();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop374;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:1075:55: ( ';' )?
int alt375=2;
int LA375_0 = input.LA(1);
if ( (LA375_0==SEMICOLON) ) {
alt375=1;
}
switch (alt375) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1075:55: ';'
{
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred394_Delphi21819); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_externalDirective_in_synpred394_Delphi21822);
externalDirective();
state._fsp--;
if (state.failed) return;
// au/com/integradev/delphi/antlr/Delphi.g:1075:78: ( ( ';' )? implDirective )*
loop377:
while (true) {
int alt377=2;
int LA377_0 = input.LA(1);
if ( (LA377_0==SEMICOLON) ) {
int LA377_1 = input.LA(2);
if ( (LA377_1==ABSTRACT||LA377_1==ASSEMBLER||LA377_1==CDECL||LA377_1==DEPRECATED||LA377_1==DISPID||LA377_1==DYNAMIC||(LA377_1 >= EXPERIMENTAL && LA377_1 <= EXPORT)||LA377_1==FAR||LA377_1==FINAL||LA377_1==INLINE||(LA377_1 >= LIBRARY && LA377_1 <= LOCAL)||LA377_1==MESSAGE||LA377_1==NEAR||(LA377_1 >= OVERLOAD && LA377_1 <= OVERRIDE)||(LA377_1 >= PASCAL && LA377_1 <= PLATFORM)||(LA377_1 >= REGISTER && LA377_1 <= REINTRODUCE)||LA377_1==SAFECALL||(LA377_1 >= STATIC && LA377_1 <= STDCALL)||LA377_1==UNSAFE||(LA377_1 >= VARARGS && LA377_1 <= VIRTUAL)||LA377_1==WINAPI) ) {
alt377=1;
}
}
else if ( (LA377_0==ABSTRACT||LA377_0==ASSEMBLER||LA377_0==CDECL||LA377_0==DEPRECATED||LA377_0==DISPID||LA377_0==DYNAMIC||(LA377_0 >= EXPERIMENTAL && LA377_0 <= EXPORT)||LA377_0==FAR||LA377_0==FINAL||LA377_0==INLINE||(LA377_0 >= LIBRARY && LA377_0 <= LOCAL)||LA377_0==MESSAGE||LA377_0==NEAR||(LA377_0 >= OVERLOAD && LA377_0 <= OVERRIDE)||(LA377_0 >= PASCAL && LA377_0 <= PLATFORM)||(LA377_0 >= REGISTER && LA377_0 <= REINTRODUCE)||LA377_0==SAFECALL||(LA377_0 >= STATIC && LA377_0 <= STDCALL)||LA377_0==UNSAFE||(LA377_0 >= VARARGS && LA377_0 <= VIRTUAL)||LA377_0==WINAPI) ) {
alt377=1;
}
switch (alt377) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1075:79: ( ';' )? implDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1075:79: ( ';' )?
int alt376=2;
int LA376_0 = input.LA(1);
if ( (LA376_0==SEMICOLON) ) {
alt376=1;
}
switch (alt376) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1075:79: ';'
{
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred394_Delphi21825); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_implDirective_in_synpred394_Delphi21828);
implDirective();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop377;
}
}
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred394_Delphi21831); if (state.failed) return;
}
}
// $ANTLR end synpred394_Delphi
// $ANTLR start synpred402_Delphi
public final void synpred402_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1078:32: ( ( ( ';' )? implDirective )* ( ';' )? FORWARD ( ( ';' )? implDirective )* ';' )
// au/com/integradev/delphi/antlr/Delphi.g:1078:32: ( ( ';' )? implDirective )* ( ';' )? FORWARD ( ( ';' )? implDirective )* ';'
{
// au/com/integradev/delphi/antlr/Delphi.g:1078:32: ( ( ';' )? implDirective )*
loop381:
while (true) {
int alt381=2;
int LA381_0 = input.LA(1);
if ( (LA381_0==SEMICOLON) ) {
int LA381_1 = input.LA(2);
if ( (LA381_1==ABSTRACT||LA381_1==ASSEMBLER||LA381_1==CDECL||LA381_1==DEPRECATED||LA381_1==DISPID||LA381_1==DYNAMIC||(LA381_1 >= EXPERIMENTAL && LA381_1 <= EXPORT)||LA381_1==FAR||LA381_1==FINAL||LA381_1==INLINE||(LA381_1 >= LIBRARY && LA381_1 <= LOCAL)||LA381_1==MESSAGE||LA381_1==NEAR||(LA381_1 >= OVERLOAD && LA381_1 <= OVERRIDE)||(LA381_1 >= PASCAL && LA381_1 <= PLATFORM)||(LA381_1 >= REGISTER && LA381_1 <= REINTRODUCE)||LA381_1==SAFECALL||(LA381_1 >= STATIC && LA381_1 <= STDCALL)||LA381_1==UNSAFE||(LA381_1 >= VARARGS && LA381_1 <= VIRTUAL)||LA381_1==WINAPI) ) {
alt381=1;
}
}
else if ( (LA381_0==ABSTRACT||LA381_0==ASSEMBLER||LA381_0==CDECL||LA381_0==DEPRECATED||LA381_0==DISPID||LA381_0==DYNAMIC||(LA381_0 >= EXPERIMENTAL && LA381_0 <= EXPORT)||LA381_0==FAR||LA381_0==FINAL||LA381_0==INLINE||(LA381_0 >= LIBRARY && LA381_0 <= LOCAL)||LA381_0==MESSAGE||LA381_0==NEAR||(LA381_0 >= OVERLOAD && LA381_0 <= OVERRIDE)||(LA381_0 >= PASCAL && LA381_0 <= PLATFORM)||(LA381_0 >= REGISTER && LA381_0 <= REINTRODUCE)||LA381_0==SAFECALL||(LA381_0 >= STATIC && LA381_0 <= STDCALL)||LA381_0==UNSAFE||(LA381_0 >= VARARGS && LA381_0 <= VIRTUAL)||LA381_0==WINAPI) ) {
alt381=1;
}
switch (alt381) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1078:33: ( ';' )? implDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1078:33: ( ';' )?
int alt380=2;
int LA380_0 = input.LA(1);
if ( (LA380_0==SEMICOLON) ) {
alt380=1;
}
switch (alt380) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1078:33: ';'
{
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred402_Delphi21923); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_implDirective_in_synpred402_Delphi21926);
implDirective();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop381;
}
}
// au/com/integradev/delphi/antlr/Delphi.g:1078:54: ( ';' )?
int alt382=2;
int LA382_0 = input.LA(1);
if ( (LA382_0==SEMICOLON) ) {
alt382=1;
}
switch (alt382) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1078:54: ';'
{
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred402_Delphi21930); if (state.failed) return;
}
break;
}
match(input,FORWARD,FOLLOW_FORWARD_in_synpred402_Delphi21933); if (state.failed) return;
// au/com/integradev/delphi/antlr/Delphi.g:1078:67: ( ( ';' )? implDirective )*
loop384:
while (true) {
int alt384=2;
int LA384_0 = input.LA(1);
if ( (LA384_0==SEMICOLON) ) {
int LA384_1 = input.LA(2);
if ( (LA384_1==ABSTRACT||LA384_1==ASSEMBLER||LA384_1==CDECL||LA384_1==DEPRECATED||LA384_1==DISPID||LA384_1==DYNAMIC||(LA384_1 >= EXPERIMENTAL && LA384_1 <= EXPORT)||LA384_1==FAR||LA384_1==FINAL||LA384_1==INLINE||(LA384_1 >= LIBRARY && LA384_1 <= LOCAL)||LA384_1==MESSAGE||LA384_1==NEAR||(LA384_1 >= OVERLOAD && LA384_1 <= OVERRIDE)||(LA384_1 >= PASCAL && LA384_1 <= PLATFORM)||(LA384_1 >= REGISTER && LA384_1 <= REINTRODUCE)||LA384_1==SAFECALL||(LA384_1 >= STATIC && LA384_1 <= STDCALL)||LA384_1==UNSAFE||(LA384_1 >= VARARGS && LA384_1 <= VIRTUAL)||LA384_1==WINAPI) ) {
alt384=1;
}
}
else if ( (LA384_0==ABSTRACT||LA384_0==ASSEMBLER||LA384_0==CDECL||LA384_0==DEPRECATED||LA384_0==DISPID||LA384_0==DYNAMIC||(LA384_0 >= EXPERIMENTAL && LA384_0 <= EXPORT)||LA384_0==FAR||LA384_0==FINAL||LA384_0==INLINE||(LA384_0 >= LIBRARY && LA384_0 <= LOCAL)||LA384_0==MESSAGE||LA384_0==NEAR||(LA384_0 >= OVERLOAD && LA384_0 <= OVERRIDE)||(LA384_0 >= PASCAL && LA384_0 <= PLATFORM)||(LA384_0 >= REGISTER && LA384_0 <= REINTRODUCE)||LA384_0==SAFECALL||(LA384_0 >= STATIC && LA384_0 <= STDCALL)||LA384_0==UNSAFE||(LA384_0 >= VARARGS && LA384_0 <= VIRTUAL)||LA384_0==WINAPI) ) {
alt384=1;
}
switch (alt384) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1078:68: ( ';' )? implDirective
{
// au/com/integradev/delphi/antlr/Delphi.g:1078:68: ( ';' )?
int alt383=2;
int LA383_0 = input.LA(1);
if ( (LA383_0==SEMICOLON) ) {
alt383=1;
}
switch (alt383) {
case 1 :
// au/com/integradev/delphi/antlr/Delphi.g:1078:68: ';'
{
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred402_Delphi21936); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_implDirective_in_synpred402_Delphi21939);
implDirective();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop384;
}
}
match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred402_Delphi21942); if (state.failed) return;
}
}
// $ANTLR end synpred402_Delphi
// $ANTLR start synpred431_Delphi
public final void synpred431_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1121:44: ( textLiteral )
// au/com/integradev/delphi/antlr/Delphi.g:1121:44: textLiteral
{
pushFollow(FOLLOW_textLiteral_in_synpred431_Delphi23242);
textLiteral();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred431_Delphi
// $ANTLR start synpred435_Delphi
public final void synpred435_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1126:42: ( dllName )
// au/com/integradev/delphi/antlr/Delphi.g:1126:42: dllName
{
pushFollow(FOLLOW_dllName_in_synpred435_Delphi23393);
dllName();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred435_Delphi
// $ANTLR start synpred436_Delphi
public final void synpred436_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1126:51: ( externalSpecifier )
// au/com/integradev/delphi/antlr/Delphi.g:1126:51: externalSpecifier
{
pushFollow(FOLLOW_externalSpecifier_in_synpred436_Delphi23396);
externalSpecifier();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred436_Delphi
// $ANTLR start synpred625_Delphi
public final void synpred625_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1181:38: ( genericArguments )
// au/com/integradev/delphi/antlr/Delphi.g:1181:38: genericArguments
{
pushFollow(FOLLOW_genericArguments_in_synpred625_Delphi25663);
genericArguments();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred625_Delphi
// $ANTLR start synpred626_Delphi
public final void synpred626_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1181:57: ( '.' extendedNameReference )
// au/com/integradev/delphi/antlr/Delphi.g:1181:57: '.' extendedNameReference
{
match(input,DOT,FOLLOW_DOT_in_synpred626_Delphi25667); if (state.failed) return;
pushFollow(FOLLOW_extendedNameReference_in_synpred626_Delphi25669);
extendedNameReference();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred626_Delphi
// $ANTLR start synpred627_Delphi
public final void synpred627_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1187:46: ( genericArguments )
// au/com/integradev/delphi/antlr/Delphi.g:1187:46: genericArguments
{
pushFollow(FOLLOW_genericArguments_in_synpred627_Delphi25853);
genericArguments();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred627_Delphi
// $ANTLR start synpred628_Delphi
public final void synpred628_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1187:65: ( '.' extendedNameReference )
// au/com/integradev/delphi/antlr/Delphi.g:1187:65: '.' extendedNameReference
{
match(input,DOT,FOLLOW_DOT_in_synpred628_Delphi25857); if (state.failed) return;
pushFollow(FOLLOW_extendedNameReference_in_synpred628_Delphi25859);
extendedNameReference();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred628_Delphi
// $ANTLR start synpred633_Delphi
public final void synpred633_Delphi_fragment() throws RecognitionException {
// au/com/integradev/delphi/antlr/Delphi.g:1196:32: ( ident )
// au/com/integradev/delphi/antlr/Delphi.g:1196:32: ident
{
pushFollow(FOLLOW_ident_in_synpred633_Delphi26165);
ident();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred633_Delphi
// Delegated rules
public final boolean synpred355_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred355_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred357_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred357_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred358_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred358_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred169_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred169_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred394_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred394_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred164_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred164_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred299_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred299_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred633_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred633_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred297_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred297_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred296_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred296_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred298_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred298_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred293_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred293_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred160_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred160_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred256_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred256_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred258_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred258_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred254_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred254_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred77_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred77_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred79_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred79_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred402_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred402_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred387_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred387_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred37_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred37_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred361_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred361_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred346_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred346_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred43_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred43_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred383_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred383_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred210_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred210_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred80_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred80_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred251_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred251_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred345_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred345_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred342_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred342_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred83_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred83_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred84_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred84_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred324_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred324_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred628_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred628_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred625_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred625_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred124_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred124_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred150_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred150_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred98_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred98_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred436_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred436_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred87_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred87_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred255_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred255_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred259_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred259_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred58_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred58_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred102_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred102_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred65_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred65_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred54_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred54_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred360_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred360_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred91_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred91_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred92_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred92_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred90_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred90_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred95_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred95_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred145_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred145_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred143_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred143_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred144_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred144_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred146_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred146_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred142_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred142_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred99_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred99_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred276_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred276_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred435_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred435_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred88_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred88_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred86_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred86_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred431_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred431_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred114_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred114_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred118_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred118_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred101_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred101_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred378_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred378_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred209_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred209_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred245_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred245_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred46_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred46_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred53_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred53_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred365_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred365_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred369_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred369_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred347_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred347_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred362_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred362_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred60_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred60_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred343_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred343_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred250_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred250_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred344_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred344_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred325_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred325_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred626_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred626_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred627_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred627_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred140_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred140_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred268_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred268_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred89_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred89_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred294_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred294_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred122_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred122_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred126_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred126_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred152_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred152_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred96_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred96_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred78_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred78_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred85_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred85_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred115_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred115_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred119_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred119_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred257_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred257_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred49_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred49_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred100_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred100_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred242_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred242_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred63_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred63_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred359_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred359_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred377_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred377_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred373_Delphi() {
state.backtracking++;
int start = input.mark();
try {
synpred373_Delphi_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
protected DFA70 dfa70 = new DFA70(this);
protected DFA73 dfa73 = new DFA73(this);
protected DFA74 dfa74 = new DFA74(this);
protected DFA77 dfa77 = new DFA77(this);
protected DFA78 dfa78 = new DFA78(this);
protected DFA80 dfa80 = new DFA80(this);
protected DFA117 dfa117 = new DFA117(this);
protected DFA178 dfa178 = new DFA178(this);
protected DFA179 dfa179 = new DFA179(this);
protected DFA184 dfa184 = new DFA184(this);
protected DFA183 dfa183 = new DFA183(this);
protected DFA186 dfa186 = new DFA186(this);
protected DFA187 dfa187 = new DFA187(this);
protected DFA211 dfa211 = new DFA211(this);
protected DFA293 dfa293 = new DFA293(this);
protected DFA294 dfa294 = new DFA294(this);
protected DFA301 dfa301 = new DFA301(this);
protected DFA303 dfa303 = new DFA303(this);
static final String DFA70_eotS =
"\125\uffff";
static final String DFA70_eofS =
"\1\2\124\uffff";
static final String DFA70_minS =
"\1\5\1\0\123\uffff";
static final String DFA70_maxS =
"\1\u00fa\1\0\123\uffff";
static final String DFA70_acceptS =
"\2\uffff\1\2\121\uffff\1\1";
static final String DFA70_specialS =
"\1\uffff\1\0\123\uffff}>";
static final String[] DFA70_transitionS = {
"\4\2\2\uffff\1\2\1\uffff\6\2\2\uffff\1\2\3\uffff\3\2\1\uffff\1\2\1\uffff"+
"\3\2\1\uffff\6\2\7\uffff\1\2\3\uffff\6\2\1\uffff\1\2\1\uffff\10\2\2\uffff"+
"\1\2\3\uffff\1\2\3\uffff\1\2\1\uffff\4\2\7\uffff\1\2\2\uffff\2\2\1\uffff"+
"\2\2\3\uffff\5\2\4\uffff\2\2\1\uffff\3\2\1\uffff\2\2\1\1\10\2\1\uffff"+
"\4\2\2\uffff\13\2\1\uffff\4\2\2\uffff\1\1\6\2\3\uffff\1\2\1\uffff\2\2"+
"\15\uffff\1\2\1\uffff\1\2\16\uffff\3\2\3\uffff\1\2\6\uffff\2\2\27\uffff"+
"\2\2\2\uffff\3\2\1\uffff\1\2\1\uffff\4\2",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA70_eot = DFA.unpackEncodedString(DFA70_eotS);
static final short[] DFA70_eof = DFA.unpackEncodedString(DFA70_eofS);
static final char[] DFA70_min = DFA.unpackEncodedStringToUnsignedChars(DFA70_minS);
static final char[] DFA70_max = DFA.unpackEncodedStringToUnsignedChars(DFA70_maxS);
static final short[] DFA70_accept = DFA.unpackEncodedString(DFA70_acceptS);
static final short[] DFA70_special = DFA.unpackEncodedString(DFA70_specialS);
static final short[][] DFA70_transition;
static {
int numStates = DFA70_transitionS.length;
DFA70_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 70, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA73_eotS =
"\144\uffff";
static final String DFA73_eofS =
"\1\6\143\uffff";
static final String DFA73_minS =
"\1\5\5\0\65\uffff\1\0\26\uffff\1\0\1\uffff\13\0\1\uffff\3\0\1\uffff";
static final String DFA73_maxS =
"\1\u00fa\5\0\65\uffff\1\0\26\uffff\1\0\1\uffff\13\0\1\uffff\3\0\1\uffff";
static final String DFA73_acceptS =
"\6\uffff\1\2\130\uffff\1\1\4\uffff";
static final String DFA73_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\65\uffff\1\5\26\uffff\1\6\1\uffff\1\7\1\10"+
"\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\uffff\1\22\1\23\1\24\1"+
"\uffff}>";
static final String[] DFA73_transitionS = {
"\1\6\1\134\2\6\2\uffff\1\6\1\uffff\1\6\1\135\4\6\2\uffff\1\6\3\uffff"+
"\1\6\1\136\1\6\1\uffff\1\6\1\uffff\3\6\1\uffff\2\6\1\1\2\6\1\73\7\uffff"+
"\1\131\3\uffff\4\6\1\2\1\136\1\uffff\1\124\1\uffff\1\140\1\6\1\134\3"+
"\6\1\122\1\6\2\uffff\1\6\3\uffff\1\6\3\uffff\1\6\1\uffff\4\6\1\uffff"+
"\1\137\5\uffff\1\6\2\uffff\1\4\1\140\1\uffff\1\127\1\6\3\uffff\1\6\1"+
"\140\3\6\4\uffff\2\6\1\uffff\1\6\1\125\1\132\1\uffff\6\6\1\136\1\3\3"+
"\6\1\uffff\4\6\2\uffff\5\6\1\136\1\126\4\6\1\uffff\1\136\1\6\1\5\1\6"+
"\2\uffff\2\6\1\130\1\136\3\6\3\uffff\1\6\1\uffff\2\6\15\uffff\1\6\1\uffff"+
"\1\6\16\uffff\3\6\3\uffff\1\6\6\uffff\2\6\27\uffff\1\142\1\6\2\uffff"+
"\1\6\1\141\1\133\1\uffff\1\6\1\uffff\1\136\3\6",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
""
};
static final short[] DFA73_eot = DFA.unpackEncodedString(DFA73_eotS);
static final short[] DFA73_eof = DFA.unpackEncodedString(DFA73_eofS);
static final char[] DFA73_min = DFA.unpackEncodedStringToUnsignedChars(DFA73_minS);
static final char[] DFA73_max = DFA.unpackEncodedStringToUnsignedChars(DFA73_maxS);
static final short[] DFA73_accept = DFA.unpackEncodedString(DFA73_acceptS);
static final short[] DFA73_special = DFA.unpackEncodedString(DFA73_specialS);
static final short[][] DFA73_transition;
static {
int numStates = DFA73_transitionS.length;
DFA73_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA73_2 = input.LA(1);
int index73_2 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA73_3 = input.LA(1);
int index73_3 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA73_4 = input.LA(1);
int index73_4 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA73_5 = input.LA(1);
int index73_5 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA73_59 = input.LA(1);
int index73_59 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_59);
if ( s>=0 ) return s;
break;
case 6 :
int LA73_82 = input.LA(1);
int index73_82 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_82);
if ( s>=0 ) return s;
break;
case 7 :
int LA73_84 = input.LA(1);
int index73_84 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_84);
if ( s>=0 ) return s;
break;
case 8 :
int LA73_85 = input.LA(1);
int index73_85 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_85);
if ( s>=0 ) return s;
break;
case 9 :
int LA73_86 = input.LA(1);
int index73_86 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_86);
if ( s>=0 ) return s;
break;
case 10 :
int LA73_87 = input.LA(1);
int index73_87 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_87);
if ( s>=0 ) return s;
break;
case 11 :
int LA73_88 = input.LA(1);
int index73_88 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_88);
if ( s>=0 ) return s;
break;
case 12 :
int LA73_89 = input.LA(1);
int index73_89 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_89);
if ( s>=0 ) return s;
break;
case 13 :
int LA73_90 = input.LA(1);
int index73_90 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_90);
if ( s>=0 ) return s;
break;
case 14 :
int LA73_91 = input.LA(1);
int index73_91 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_91);
if ( s>=0 ) return s;
break;
case 15 :
int LA73_92 = input.LA(1);
int index73_92 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_92);
if ( s>=0 ) return s;
break;
case 16 :
int LA73_93 = input.LA(1);
int index73_93 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_93);
if ( s>=0 ) return s;
break;
case 17 :
int LA73_94 = input.LA(1);
int index73_94 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_94);
if ( s>=0 ) return s;
break;
case 18 :
int LA73_96 = input.LA(1);
int index73_96 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_96);
if ( s>=0 ) return s;
break;
case 19 :
int LA73_97 = input.LA(1);
int index73_97 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_97);
if ( s>=0 ) return s;
break;
case 20 :
int LA73_98 = input.LA(1);
int index73_98 = input.index();
input.rewind();
s = -1;
if ( (synpred118_Delphi()) ) {s = 95;}
else if ( (true) ) {s = 6;}
input.seek(index73_98);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 73, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA74_eotS =
"\147\uffff";
static final String DFA74_eofS =
"\1\2\146\uffff";
static final String DFA74_minS =
"\1\5\1\0\145\uffff";
static final String DFA74_maxS =
"\1\u00fa\1\0\145\uffff";
static final String DFA74_acceptS =
"\2\uffff\1\2\143\uffff\1\1";
static final String DFA74_specialS =
"\1\uffff\1\0\145\uffff}>";
static final String[] DFA74_transitionS = {
"\4\2\2\uffff\1\2\1\uffff\6\2\2\uffff\1\2\3\uffff\5\2\1\uffff\3\2\1\uffff"+
"\6\2\7\uffff\1\2\3\uffff\6\2\1\uffff\1\2\1\uffff\10\2\2\uffff\1\2\3\uffff"+
"\1\2\3\uffff\1\2\1\uffff\4\2\1\uffff\1\2\5\uffff\1\2\2\uffff\2\2\1\uffff"+
"\2\2\3\uffff\5\2\3\uffff\3\2\1\uffff\3\2\1\uffff\4\2\1\1\6\2\1\uffff"+
"\4\2\2\uffff\13\2\1\uffff\4\2\2\uffff\7\2\3\uffff\1\2\1\uffff\2\2\15"+
"\uffff\1\2\1\uffff\1\2\16\uffff\3\2\3\uffff\1\2\6\uffff\2\2\27\uffff"+
"\2\2\2\uffff\3\2\1\uffff\1\2\1\uffff\4\2",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA74_eot = DFA.unpackEncodedString(DFA74_eotS);
static final short[] DFA74_eof = DFA.unpackEncodedString(DFA74_eofS);
static final char[] DFA74_min = DFA.unpackEncodedStringToUnsignedChars(DFA74_minS);
static final char[] DFA74_max = DFA.unpackEncodedStringToUnsignedChars(DFA74_maxS);
static final short[] DFA74_accept = DFA.unpackEncodedString(DFA74_acceptS);
static final short[] DFA74_special = DFA.unpackEncodedString(DFA74_specialS);
static final short[][] DFA74_transition;
static {
int numStates = DFA74_transitionS.length;
DFA74_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 74, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA77_eotS =
"\145\uffff";
static final String DFA77_eofS =
"\1\1\144\uffff";
static final String DFA77_minS =
"\1\5\1\uffff\5\0\65\uffff\1\0\26\uffff\1\0\1\uffff\13\0\1\uffff\3\0\1"+
"\uffff";
static final String DFA77_maxS =
"\1\u00fa\1\uffff\5\0\65\uffff\1\0\26\uffff\1\0\1\uffff\13\0\1\uffff\3"+
"\0\1\uffff";
static final String DFA77_acceptS =
"\1\uffff\1\2\136\uffff\1\1\4\uffff";
static final String DFA77_specialS =
"\2\uffff\1\0\1\1\1\2\1\3\1\4\65\uffff\1\5\26\uffff\1\6\1\uffff\1\7\1\10"+
"\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\uffff\1\22\1\23\1\24\1"+
"\uffff}>";
static final String[] DFA77_transitionS = {
"\1\1\1\135\2\1\2\uffff\1\1\1\uffff\1\1\1\136\4\1\2\uffff\1\1\3\uffff"+
"\1\1\1\137\1\1\1\uffff\1\1\1\uffff\3\1\1\uffff\2\1\1\2\2\1\1\74\7\uffff"+
"\1\132\3\uffff\4\1\1\3\1\137\1\uffff\1\125\1\uffff\1\141\1\1\1\135\3"+
"\1\1\123\1\1\2\uffff\1\1\3\uffff\1\1\3\uffff\1\1\1\uffff\4\1\1\uffff"+
"\1\140\5\uffff\1\1\2\uffff\1\5\1\141\1\uffff\1\130\1\1\3\uffff\1\1\1"+
"\141\3\1\3\uffff\3\1\1\uffff\1\1\1\126\1\133\1\uffff\6\1\1\137\1\4\3"+
"\1\1\uffff\4\1\2\uffff\5\1\1\137\1\127\4\1\1\uffff\1\137\1\1\1\6\1\1"+
"\2\uffff\2\1\1\131\1\137\3\1\3\uffff\1\1\1\uffff\2\1\15\uffff\1\1\1\uffff"+
"\1\1\16\uffff\3\1\3\uffff\1\1\6\uffff\2\1\27\uffff\1\143\1\1\2\uffff"+
"\1\1\1\142\1\134\1\uffff\1\1\1\uffff\1\137\3\1",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
""
};
static final short[] DFA77_eot = DFA.unpackEncodedString(DFA77_eotS);
static final short[] DFA77_eof = DFA.unpackEncodedString(DFA77_eofS);
static final char[] DFA77_min = DFA.unpackEncodedStringToUnsignedChars(DFA77_minS);
static final char[] DFA77_max = DFA.unpackEncodedStringToUnsignedChars(DFA77_maxS);
static final short[] DFA77_accept = DFA.unpackEncodedString(DFA77_acceptS);
static final short[] DFA77_special = DFA.unpackEncodedString(DFA77_specialS);
static final short[][] DFA77_transition;
static {
int numStates = DFA77_transitionS.length;
DFA77_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA77_3 = input.LA(1);
int index77_3 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_3);
if ( s>=0 ) return s;
break;
case 2 :
int LA77_4 = input.LA(1);
int index77_4 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_4);
if ( s>=0 ) return s;
break;
case 3 :
int LA77_5 = input.LA(1);
int index77_5 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_5);
if ( s>=0 ) return s;
break;
case 4 :
int LA77_6 = input.LA(1);
int index77_6 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_6);
if ( s>=0 ) return s;
break;
case 5 :
int LA77_60 = input.LA(1);
int index77_60 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_60);
if ( s>=0 ) return s;
break;
case 6 :
int LA77_83 = input.LA(1);
int index77_83 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_83);
if ( s>=0 ) return s;
break;
case 7 :
int LA77_85 = input.LA(1);
int index77_85 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_85);
if ( s>=0 ) return s;
break;
case 8 :
int LA77_86 = input.LA(1);
int index77_86 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_86);
if ( s>=0 ) return s;
break;
case 9 :
int LA77_87 = input.LA(1);
int index77_87 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_87);
if ( s>=0 ) return s;
break;
case 10 :
int LA77_88 = input.LA(1);
int index77_88 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_88);
if ( s>=0 ) return s;
break;
case 11 :
int LA77_89 = input.LA(1);
int index77_89 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_89);
if ( s>=0 ) return s;
break;
case 12 :
int LA77_90 = input.LA(1);
int index77_90 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_90);
if ( s>=0 ) return s;
break;
case 13 :
int LA77_91 = input.LA(1);
int index77_91 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_91);
if ( s>=0 ) return s;
break;
case 14 :
int LA77_92 = input.LA(1);
int index77_92 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_92);
if ( s>=0 ) return s;
break;
case 15 :
int LA77_93 = input.LA(1);
int index77_93 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_93);
if ( s>=0 ) return s;
break;
case 16 :
int LA77_94 = input.LA(1);
int index77_94 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_94);
if ( s>=0 ) return s;
break;
case 17 :
int LA77_95 = input.LA(1);
int index77_95 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_95);
if ( s>=0 ) return s;
break;
case 18 :
int LA77_97 = input.LA(1);
int index77_97 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_97);
if ( s>=0 ) return s;
break;
case 19 :
int LA77_98 = input.LA(1);
int index77_98 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_98);
if ( s>=0 ) return s;
break;
case 20 :
int LA77_99 = input.LA(1);
int index77_99 = input.index();
input.rewind();
s = -1;
if ( (synpred122_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index77_99);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 77, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA78_eotS =
"\146\uffff";
static final String DFA78_eofS =
"\1\2\145\uffff";
static final String DFA78_minS =
"\1\5\1\0\144\uffff";
static final String DFA78_maxS =
"\1\u00fa\1\0\144\uffff";
static final String DFA78_acceptS =
"\2\uffff\1\2\142\uffff\1\1";
static final String DFA78_specialS =
"\1\uffff\1\0\144\uffff}>";
static final String[] DFA78_transitionS = {
"\4\2\2\uffff\1\2\1\uffff\6\2\2\uffff\1\2\3\uffff\3\2\1\uffff\1\2\1\uffff"+
"\3\2\1\uffff\6\2\7\uffff\1\2\3\uffff\6\2\1\uffff\1\2\1\uffff\10\2\2\uffff"+
"\1\2\3\uffff\1\2\3\uffff\1\2\1\uffff\4\2\1\uffff\1\2\5\uffff\1\2\2\uffff"+
"\2\2\1\uffff\2\2\3\uffff\5\2\3\uffff\3\2\1\uffff\3\2\1\uffff\4\2\1\1"+
"\6\2\1\uffff\4\2\2\uffff\13\2\1\uffff\4\2\2\uffff\7\2\3\uffff\1\2\1\uffff"+
"\2\2\15\uffff\1\2\1\uffff\1\2\16\uffff\3\2\3\uffff\1\2\6\uffff\2\2\27"+
"\uffff\2\2\2\uffff\3\2\1\uffff\1\2\1\uffff\4\2",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA78_eot = DFA.unpackEncodedString(DFA78_eotS);
static final short[] DFA78_eof = DFA.unpackEncodedString(DFA78_eofS);
static final char[] DFA78_min = DFA.unpackEncodedStringToUnsignedChars(DFA78_minS);
static final char[] DFA78_max = DFA.unpackEncodedStringToUnsignedChars(DFA78_maxS);
static final short[] DFA78_accept = DFA.unpackEncodedString(DFA78_acceptS);
static final short[] DFA78_special = DFA.unpackEncodedString(DFA78_specialS);
static final short[][] DFA78_transition;
static {
int numStates = DFA78_transitionS.length;
DFA78_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 78, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA80_eotS =
"\145\uffff";
static final String DFA80_eofS =
"\1\1\144\uffff";
static final String DFA80_minS =
"\1\5\1\uffff\5\0\65\uffff\1\0\26\uffff\1\0\1\uffff\13\0\1\uffff\3\0\1"+
"\uffff";
static final String DFA80_maxS =
"\1\u00fa\1\uffff\5\0\65\uffff\1\0\26\uffff\1\0\1\uffff\13\0\1\uffff\3"+
"\0\1\uffff";
static final String DFA80_acceptS =
"\1\uffff\1\2\136\uffff\1\1\4\uffff";
static final String DFA80_specialS =
"\2\uffff\1\0\1\1\1\2\1\3\1\4\65\uffff\1\5\26\uffff\1\6\1\uffff\1\7\1\10"+
"\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\uffff\1\22\1\23\1\24\1"+
"\uffff}>";
static final String[] DFA80_transitionS = {
"\1\1\1\135\2\1\2\uffff\1\1\1\uffff\1\1\1\136\4\1\2\uffff\1\1\3\uffff"+
"\1\1\1\137\1\1\1\uffff\1\1\1\uffff\3\1\1\uffff\2\1\1\2\2\1\1\74\7\uffff"+
"\1\132\3\uffff\4\1\1\3\1\137\1\uffff\1\125\1\uffff\1\141\1\1\1\135\3"+
"\1\1\123\1\1\2\uffff\1\1\3\uffff\1\1\3\uffff\1\1\1\uffff\4\1\1\uffff"+
"\1\140\5\uffff\1\1\2\uffff\1\5\1\141\1\uffff\1\130\1\1\3\uffff\1\1\1"+
"\141\3\1\3\uffff\3\1\1\uffff\1\1\1\126\1\133\1\uffff\6\1\1\137\1\4\3"+
"\1\1\uffff\4\1\2\uffff\5\1\1\137\1\127\4\1\1\uffff\1\137\1\1\1\6\1\1"+
"\2\uffff\2\1\1\131\1\137\3\1\3\uffff\1\1\1\uffff\2\1\15\uffff\1\1\1\uffff"+
"\1\1\16\uffff\3\1\3\uffff\1\1\6\uffff\2\1\27\uffff\1\143\1\1\2\uffff"+
"\1\1\1\142\1\134\1\uffff\1\1\1\uffff\1\137\3\1",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
""
};
static final short[] DFA80_eot = DFA.unpackEncodedString(DFA80_eotS);
static final short[] DFA80_eof = DFA.unpackEncodedString(DFA80_eofS);
static final char[] DFA80_min = DFA.unpackEncodedStringToUnsignedChars(DFA80_minS);
static final char[] DFA80_max = DFA.unpackEncodedStringToUnsignedChars(DFA80_maxS);
static final short[] DFA80_accept = DFA.unpackEncodedString(DFA80_acceptS);
static final short[] DFA80_special = DFA.unpackEncodedString(DFA80_specialS);
static final short[][] DFA80_transition;
static {
int numStates = DFA80_transitionS.length;
DFA80_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA80_3 = input.LA(1);
int index80_3 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_3);
if ( s>=0 ) return s;
break;
case 2 :
int LA80_4 = input.LA(1);
int index80_4 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_4);
if ( s>=0 ) return s;
break;
case 3 :
int LA80_5 = input.LA(1);
int index80_5 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_5);
if ( s>=0 ) return s;
break;
case 4 :
int LA80_6 = input.LA(1);
int index80_6 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_6);
if ( s>=0 ) return s;
break;
case 5 :
int LA80_60 = input.LA(1);
int index80_60 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_60);
if ( s>=0 ) return s;
break;
case 6 :
int LA80_83 = input.LA(1);
int index80_83 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_83);
if ( s>=0 ) return s;
break;
case 7 :
int LA80_85 = input.LA(1);
int index80_85 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_85);
if ( s>=0 ) return s;
break;
case 8 :
int LA80_86 = input.LA(1);
int index80_86 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_86);
if ( s>=0 ) return s;
break;
case 9 :
int LA80_87 = input.LA(1);
int index80_87 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_87);
if ( s>=0 ) return s;
break;
case 10 :
int LA80_88 = input.LA(1);
int index80_88 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_88);
if ( s>=0 ) return s;
break;
case 11 :
int LA80_89 = input.LA(1);
int index80_89 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_89);
if ( s>=0 ) return s;
break;
case 12 :
int LA80_90 = input.LA(1);
int index80_90 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_90);
if ( s>=0 ) return s;
break;
case 13 :
int LA80_91 = input.LA(1);
int index80_91 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_91);
if ( s>=0 ) return s;
break;
case 14 :
int LA80_92 = input.LA(1);
int index80_92 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_92);
if ( s>=0 ) return s;
break;
case 15 :
int LA80_93 = input.LA(1);
int index80_93 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_93);
if ( s>=0 ) return s;
break;
case 16 :
int LA80_94 = input.LA(1);
int index80_94 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_94);
if ( s>=0 ) return s;
break;
case 17 :
int LA80_95 = input.LA(1);
int index80_95 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_95);
if ( s>=0 ) return s;
break;
case 18 :
int LA80_97 = input.LA(1);
int index80_97 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_97);
if ( s>=0 ) return s;
break;
case 19 :
int LA80_98 = input.LA(1);
int index80_98 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_98);
if ( s>=0 ) return s;
break;
case 20 :
int LA80_99 = input.LA(1);
int index80_99 = input.index();
input.rewind();
s = -1;
if ( (synpred126_Delphi()) ) {s = 96;}
else if ( (true) ) {s = 1;}
input.seek(index80_99);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 80, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA117_eotS =
"\126\uffff";
static final String DFA117_eofS =
"\1\2\125\uffff";
static final String DFA117_minS =
"\1\5\1\0\124\uffff";
static final String DFA117_maxS =
"\1\u00fa\1\0\124\uffff";
static final String DFA117_acceptS =
"\2\uffff\1\2\122\uffff\1\1";
static final String DFA117_specialS =
"\1\uffff\1\0\124\uffff}>";
static final String[] DFA117_transitionS = {
"\3\2\1\1\2\uffff\1\2\1\uffff\6\2\2\uffff\1\2\3\uffff\3\2\1\uffff\1\2"+
"\1\uffff\3\2\1\uffff\6\2\7\uffff\1\2\3\uffff\6\2\1\uffff\1\2\1\uffff"+
"\10\2\2\uffff\1\2\3\uffff\1\2\3\uffff\1\2\1\uffff\4\2\7\uffff\1\2\2\uffff"+
"\2\2\1\uffff\2\2\3\uffff\5\2\4\uffff\2\2\1\uffff\3\2\1\uffff\13\2\1\uffff"+
"\4\2\2\uffff\13\2\1\uffff\4\2\2\uffff\7\2\3\uffff\1\2\1\uffff\2\2\15"+
"\uffff\1\2\1\uffff\1\2\16\uffff\3\2\3\uffff\1\2\6\uffff\2\2\27\uffff"+
"\2\2\2\uffff\3\2\1\uffff\1\2\1\uffff\4\2",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA117_eot = DFA.unpackEncodedString(DFA117_eotS);
static final short[] DFA117_eof = DFA.unpackEncodedString(DFA117_eofS);
static final char[] DFA117_min = DFA.unpackEncodedStringToUnsignedChars(DFA117_minS);
static final char[] DFA117_max = DFA.unpackEncodedStringToUnsignedChars(DFA117_maxS);
static final short[] DFA117_accept = DFA.unpackEncodedString(DFA117_acceptS);
static final short[] DFA117_special = DFA.unpackEncodedString(DFA117_specialS);
static final short[][] DFA117_transition;
static {
int numStates = DFA117_transitionS.length;
DFA117_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 117, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA178_eotS =
"\171\uffff";
static final String DFA178_eofS =
"\1\1\170\uffff";
static final String DFA178_minS =
"\1\5\14\uffff\1\0\110\uffff\1\0\42\uffff";
static final String DFA178_maxS =
"\1\u00fa\14\uffff\1\0\110\uffff\1\0\42\uffff";
static final String DFA178_acceptS =
"\1\uffff\1\2\161\uffff\1\1\5\uffff";
static final String DFA178_specialS =
"\15\uffff\1\0\110\uffff\1\1\42\uffff}>";
static final String[] DFA178_transitionS = {
"\4\1\2\uffff\1\1\1\uffff\6\1\2\uffff\1\1\3\uffff\5\1\1\uffff\3\1\1\uffff"+
"\6\1\3\uffff\1\1\1\uffff\3\1\3\uffff\2\1\1\15\5\1\1\uffff\10\1\2\uffff"+
"\1\1\2\163\1\uffff\1\1\3\uffff\3\1\1\126\4\1\1\uffff\1\163\3\uffff\1"+
"\1\2\163\2\1\1\uffff\2\1\3\uffff\5\1\1\163\2\uffff\3\1\1\uffff\3\1\1"+
"\uffff\13\1\1\uffff\4\1\2\uffff\13\1\1\uffff\4\1\2\uffff\7\1\2\uffff"+
"\5\1\15\uffff\1\1\1\uffff\1\1\16\uffff\3\1\3\uffff\1\1\6\uffff\2\1\27"+
"\uffff\2\1\2\uffff\3\1\1\uffff\1\1\1\uffff\4\1",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA178_eot = DFA.unpackEncodedString(DFA178_eotS);
static final short[] DFA178_eof = DFA.unpackEncodedString(DFA178_eofS);
static final char[] DFA178_min = DFA.unpackEncodedStringToUnsignedChars(DFA178_minS);
static final char[] DFA178_max = DFA.unpackEncodedStringToUnsignedChars(DFA178_maxS);
static final short[] DFA178_accept = DFA.unpackEncodedString(DFA178_acceptS);
static final short[] DFA178_special = DFA.unpackEncodedString(DFA178_specialS);
static final short[][] DFA178_transition;
static {
int numStates = DFA178_transitionS.length;
DFA178_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA178_86 = input.LA(1);
int index178_86 = input.index();
input.rewind();
s = -1;
if ( (synpred250_Delphi()) ) {s = 115;}
else if ( (true) ) {s = 1;}
input.seek(index178_86);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 178, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA179_eotS =
"\173\uffff";
static final String DFA179_eofS =
"\1\1\172\uffff";
static final String DFA179_minS =
"\1\5\37\uffff\2\0\131\uffff";
static final String DFA179_maxS =
"\1\u00fc\37\uffff\2\0\131\uffff";
static final String DFA179_acceptS =
"\1\uffff\1\2\167\uffff\1\1\1\uffff";
static final String DFA179_specialS =
"\40\uffff\1\0\1\1\131\uffff}>";
static final String[] DFA179_transitionS = {
"\4\1\2\uffff\1\1\1\uffff\6\1\2\uffff\1\1\3\uffff\5\1\1\uffff\3\1\1\uffff"+
"\6\1\3\uffff\1\1\1\uffff\3\1\3\uffff\10\1\1\uffff\10\1\2\uffff\3\1\1"+
"\uffff\1\1\3\uffff\10\1\1\uffff\1\1\3\uffff\5\1\1\uffff\1\1\1\41\3\uffff"+
"\6\1\2\uffff\3\1\1\171\3\1\1\uffff\10\1\1\40\2\1\1\uffff\4\1\2\uffff"+
"\13\1\1\uffff\4\1\2\uffff\7\1\2\uffff\5\1\15\uffff\1\1\1\uffff\1\1\16"+
"\uffff\3\1\3\uffff\1\1\6\uffff\2\1\27\uffff\2\1\2\uffff\3\1\1\uffff\1"+
"\1\1\uffff\4\1\1\uffff\1\171",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA179_eot = DFA.unpackEncodedString(DFA179_eotS);
static final short[] DFA179_eof = DFA.unpackEncodedString(DFA179_eofS);
static final char[] DFA179_min = DFA.unpackEncodedStringToUnsignedChars(DFA179_minS);
static final char[] DFA179_max = DFA.unpackEncodedStringToUnsignedChars(DFA179_maxS);
static final short[] DFA179_accept = DFA.unpackEncodedString(DFA179_acceptS);
static final short[] DFA179_special = DFA.unpackEncodedString(DFA179_specialS);
static final short[][] DFA179_transition;
static {
int numStates = DFA179_transitionS.length;
DFA179_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA179_33 = input.LA(1);
int index179_33 = input.index();
input.rewind();
s = -1;
if ( (synpred251_Delphi()) ) {s = 121;}
else if ( (true) ) {s = 1;}
input.seek(index179_33);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 179, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA184_eotS =
"\u0085\uffff";
static final String DFA184_eofS =
"\1\22\u0084\uffff";
static final String DFA184_minS =
"\1\5\2\0\1\uffff\u0080\0\1\uffff";
static final String DFA184_maxS =
"\1\u00fc\2\0\1\uffff\u0080\0\1\uffff";
static final String DFA184_acceptS =
"\3\uffff\1\1\u0080\uffff\1\2";
static final String DFA184_specialS =
"\1\uffff\1\0\1\1\1\uffff\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1"+
"\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+
"\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47\1"+
"\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63\1\64\1\65\1"+
"\66\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77\1\100\1\101\1\102\1\103"+
"\1\104\1\105\1\106\1\107\1\110\1\111\1\112\1\113\1\114\1\115\1\116\1\117"+
"\1\120\1\121\1\122\1\123\1\124\1\125\1\126\1\127\1\130\1\131\1\132\1\133"+
"\1\134\1\135\1\136\1\137\1\140\1\141\1\142\1\143\1\144\1\145\1\146\1\147"+
"\1\150\1\151\1\152\1\153\1\154\1\155\1\156\1\157\1\160\1\161\1\162\1\163"+
"\1\164\1\165\1\166\1\167\1\170\1\171\1\172\1\173\1\174\1\175\1\176\1\177"+
"\1\u0080\1\u0081\1\uffff}>";
static final String[] DFA184_transitionS = {
"\1\54\1\165\1\73\1\u0083\1\uffff\1\27\1\62\1\32\1\144\1\166\1\u0083\1"+
"\126\1\147\1\113\2\uffff\1\145\3\uffff\1\125\1\167\1\115\1\150\1\55\1"+
"\uffff\1\122\1\120\1\u0083\1\uffff\1\2\1\u0081\1\21\1\6\1\120\1\14\1"+
"\uffff\1\25\1\24\1\151\1\3\1\60\1\155\1\162\3\uffff\1\127\1\106\1\37"+
"\1\132\1\47\1\167\1\176\1\175\1\uffff\1\171\1\65\1\165\1\130\1\133\1"+
"\140\1\177\1\67\2\uffff\1\146\1\40\1\43\1\uffff\1\u0083\3\uffff\1\134"+
"\1\u0082\1\15\1\45\1\16\1\104\1\u0080\1\170\1\uffff\1\46\3\uffff\1\174"+
"\1\41\1\42\1\52\1\171\1\uffff\1\160\1\34\1\26\1\23\1\uffff\1\51\1\171"+
"\1\103\1\20\1\72\1\44\2\uffff\1\153\1\117\1\114\1\35\1\u0083\1\156\1"+
"\163\1\uffff\1\u0083\1\105\1\5\1\56\1\4\1\57\1\167\1\50\1\33\1\110\1"+
"\70\1\uffff\1\121\1\107\1\111\1\112\2\uffff\1\143\1\10\1\12\1\66\1\61"+
"\1\167\1\157\1\136\1\u0083\1\53\1\123\1\uffff\1\167\1\u0083\1\7\1\63"+
"\1\30\1\31\1\5\1\56\1\161\1\167\1\17\1\71\1\64\2\uffff\1\152\1\135\1"+
"\154\1\142\1\124\15\uffff\1\76\1\uffff\1\101\16\uffff\1\75\1\1\1\74\3"+
"\uffff\1\102\6\uffff\1\100\1\77\27\uffff\1\173\1\131\2\uffff\1\116\1"+
"\172\1\164\1\uffff\1\137\1\uffff\1\167\1\141\1\11\1\13\1\uffff\1\36",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
""
};
static final short[] DFA184_eot = DFA.unpackEncodedString(DFA184_eotS);
static final short[] DFA184_eof = DFA.unpackEncodedString(DFA184_eofS);
static final char[] DFA184_min = DFA.unpackEncodedStringToUnsignedChars(DFA184_minS);
static final char[] DFA184_max = DFA.unpackEncodedStringToUnsignedChars(DFA184_maxS);
static final short[] DFA184_accept = DFA.unpackEncodedString(DFA184_acceptS);
static final short[] DFA184_special = DFA.unpackEncodedString(DFA184_specialS);
static final short[][] DFA184_transition;
static {
int numStates = DFA184_transitionS.length;
DFA184_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA184_2 = input.LA(1);
int index184_2 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA184_4 = input.LA(1);
int index184_4 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_4);
if ( s>=0 ) return s;
break;
case 3 :
int LA184_5 = input.LA(1);
int index184_5 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_5);
if ( s>=0 ) return s;
break;
case 4 :
int LA184_6 = input.LA(1);
int index184_6 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_6);
if ( s>=0 ) return s;
break;
case 5 :
int LA184_7 = input.LA(1);
int index184_7 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_7);
if ( s>=0 ) return s;
break;
case 6 :
int LA184_8 = input.LA(1);
int index184_8 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_8);
if ( s>=0 ) return s;
break;
case 7 :
int LA184_9 = input.LA(1);
int index184_9 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_9);
if ( s>=0 ) return s;
break;
case 8 :
int LA184_10 = input.LA(1);
int index184_10 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_10);
if ( s>=0 ) return s;
break;
case 9 :
int LA184_11 = input.LA(1);
int index184_11 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_11);
if ( s>=0 ) return s;
break;
case 10 :
int LA184_12 = input.LA(1);
int index184_12 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_12);
if ( s>=0 ) return s;
break;
case 11 :
int LA184_13 = input.LA(1);
int index184_13 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_13);
if ( s>=0 ) return s;
break;
case 12 :
int LA184_14 = input.LA(1);
int index184_14 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_14);
if ( s>=0 ) return s;
break;
case 13 :
int LA184_15 = input.LA(1);
int index184_15 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_15);
if ( s>=0 ) return s;
break;
case 14 :
int LA184_16 = input.LA(1);
int index184_16 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_16);
if ( s>=0 ) return s;
break;
case 15 :
int LA184_17 = input.LA(1);
int index184_17 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_17);
if ( s>=0 ) return s;
break;
case 16 :
int LA184_18 = input.LA(1);
int index184_18 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_18);
if ( s>=0 ) return s;
break;
case 17 :
int LA184_19 = input.LA(1);
int index184_19 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_19);
if ( s>=0 ) return s;
break;
case 18 :
int LA184_20 = input.LA(1);
int index184_20 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_20);
if ( s>=0 ) return s;
break;
case 19 :
int LA184_21 = input.LA(1);
int index184_21 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_21);
if ( s>=0 ) return s;
break;
case 20 :
int LA184_22 = input.LA(1);
int index184_22 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_22);
if ( s>=0 ) return s;
break;
case 21 :
int LA184_23 = input.LA(1);
int index184_23 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_23);
if ( s>=0 ) return s;
break;
case 22 :
int LA184_24 = input.LA(1);
int index184_24 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_24);
if ( s>=0 ) return s;
break;
case 23 :
int LA184_25 = input.LA(1);
int index184_25 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_25);
if ( s>=0 ) return s;
break;
case 24 :
int LA184_26 = input.LA(1);
int index184_26 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_26);
if ( s>=0 ) return s;
break;
case 25 :
int LA184_27 = input.LA(1);
int index184_27 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_27);
if ( s>=0 ) return s;
break;
case 26 :
int LA184_28 = input.LA(1);
int index184_28 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_28);
if ( s>=0 ) return s;
break;
case 27 :
int LA184_29 = input.LA(1);
int index184_29 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_29);
if ( s>=0 ) return s;
break;
case 28 :
int LA184_30 = input.LA(1);
int index184_30 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_30);
if ( s>=0 ) return s;
break;
case 29 :
int LA184_31 = input.LA(1);
int index184_31 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_31);
if ( s>=0 ) return s;
break;
case 30 :
int LA184_32 = input.LA(1);
int index184_32 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_32);
if ( s>=0 ) return s;
break;
case 31 :
int LA184_33 = input.LA(1);
int index184_33 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_33);
if ( s>=0 ) return s;
break;
case 32 :
int LA184_34 = input.LA(1);
int index184_34 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_34);
if ( s>=0 ) return s;
break;
case 33 :
int LA184_35 = input.LA(1);
int index184_35 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_35);
if ( s>=0 ) return s;
break;
case 34 :
int LA184_36 = input.LA(1);
int index184_36 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_36);
if ( s>=0 ) return s;
break;
case 35 :
int LA184_37 = input.LA(1);
int index184_37 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_37);
if ( s>=0 ) return s;
break;
case 36 :
int LA184_38 = input.LA(1);
int index184_38 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_38);
if ( s>=0 ) return s;
break;
case 37 :
int LA184_39 = input.LA(1);
int index184_39 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_39);
if ( s>=0 ) return s;
break;
case 38 :
int LA184_40 = input.LA(1);
int index184_40 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_40);
if ( s>=0 ) return s;
break;
case 39 :
int LA184_41 = input.LA(1);
int index184_41 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_41);
if ( s>=0 ) return s;
break;
case 40 :
int LA184_42 = input.LA(1);
int index184_42 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_42);
if ( s>=0 ) return s;
break;
case 41 :
int LA184_43 = input.LA(1);
int index184_43 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_43);
if ( s>=0 ) return s;
break;
case 42 :
int LA184_44 = input.LA(1);
int index184_44 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_44);
if ( s>=0 ) return s;
break;
case 43 :
int LA184_45 = input.LA(1);
int index184_45 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_45);
if ( s>=0 ) return s;
break;
case 44 :
int LA184_46 = input.LA(1);
int index184_46 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_46);
if ( s>=0 ) return s;
break;
case 45 :
int LA184_47 = input.LA(1);
int index184_47 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_47);
if ( s>=0 ) return s;
break;
case 46 :
int LA184_48 = input.LA(1);
int index184_48 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_48);
if ( s>=0 ) return s;
break;
case 47 :
int LA184_49 = input.LA(1);
int index184_49 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_49);
if ( s>=0 ) return s;
break;
case 48 :
int LA184_50 = input.LA(1);
int index184_50 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_50);
if ( s>=0 ) return s;
break;
case 49 :
int LA184_51 = input.LA(1);
int index184_51 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_51);
if ( s>=0 ) return s;
break;
case 50 :
int LA184_52 = input.LA(1);
int index184_52 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_52);
if ( s>=0 ) return s;
break;
case 51 :
int LA184_53 = input.LA(1);
int index184_53 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_53);
if ( s>=0 ) return s;
break;
case 52 :
int LA184_54 = input.LA(1);
int index184_54 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_54);
if ( s>=0 ) return s;
break;
case 53 :
int LA184_55 = input.LA(1);
int index184_55 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_55);
if ( s>=0 ) return s;
break;
case 54 :
int LA184_56 = input.LA(1);
int index184_56 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_56);
if ( s>=0 ) return s;
break;
case 55 :
int LA184_57 = input.LA(1);
int index184_57 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_57);
if ( s>=0 ) return s;
break;
case 56 :
int LA184_58 = input.LA(1);
int index184_58 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_58);
if ( s>=0 ) return s;
break;
case 57 :
int LA184_59 = input.LA(1);
int index184_59 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_59);
if ( s>=0 ) return s;
break;
case 58 :
int LA184_60 = input.LA(1);
int index184_60 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_60);
if ( s>=0 ) return s;
break;
case 59 :
int LA184_61 = input.LA(1);
int index184_61 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_61);
if ( s>=0 ) return s;
break;
case 60 :
int LA184_62 = input.LA(1);
int index184_62 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_62);
if ( s>=0 ) return s;
break;
case 61 :
int LA184_63 = input.LA(1);
int index184_63 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_63);
if ( s>=0 ) return s;
break;
case 62 :
int LA184_64 = input.LA(1);
int index184_64 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_64);
if ( s>=0 ) return s;
break;
case 63 :
int LA184_65 = input.LA(1);
int index184_65 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_65);
if ( s>=0 ) return s;
break;
case 64 :
int LA184_66 = input.LA(1);
int index184_66 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_66);
if ( s>=0 ) return s;
break;
case 65 :
int LA184_67 = input.LA(1);
int index184_67 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_67);
if ( s>=0 ) return s;
break;
case 66 :
int LA184_68 = input.LA(1);
int index184_68 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_68);
if ( s>=0 ) return s;
break;
case 67 :
int LA184_69 = input.LA(1);
int index184_69 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_69);
if ( s>=0 ) return s;
break;
case 68 :
int LA184_70 = input.LA(1);
int index184_70 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_70);
if ( s>=0 ) return s;
break;
case 69 :
int LA184_71 = input.LA(1);
int index184_71 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_71);
if ( s>=0 ) return s;
break;
case 70 :
int LA184_72 = input.LA(1);
int index184_72 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_72);
if ( s>=0 ) return s;
break;
case 71 :
int LA184_73 = input.LA(1);
int index184_73 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_73);
if ( s>=0 ) return s;
break;
case 72 :
int LA184_74 = input.LA(1);
int index184_74 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_74);
if ( s>=0 ) return s;
break;
case 73 :
int LA184_75 = input.LA(1);
int index184_75 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_75);
if ( s>=0 ) return s;
break;
case 74 :
int LA184_76 = input.LA(1);
int index184_76 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_76);
if ( s>=0 ) return s;
break;
case 75 :
int LA184_77 = input.LA(1);
int index184_77 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_77);
if ( s>=0 ) return s;
break;
case 76 :
int LA184_78 = input.LA(1);
int index184_78 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_78);
if ( s>=0 ) return s;
break;
case 77 :
int LA184_79 = input.LA(1);
int index184_79 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_79);
if ( s>=0 ) return s;
break;
case 78 :
int LA184_80 = input.LA(1);
int index184_80 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_80);
if ( s>=0 ) return s;
break;
case 79 :
int LA184_81 = input.LA(1);
int index184_81 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_81);
if ( s>=0 ) return s;
break;
case 80 :
int LA184_82 = input.LA(1);
int index184_82 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_82);
if ( s>=0 ) return s;
break;
case 81 :
int LA184_83 = input.LA(1);
int index184_83 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_83);
if ( s>=0 ) return s;
break;
case 82 :
int LA184_84 = input.LA(1);
int index184_84 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_84);
if ( s>=0 ) return s;
break;
case 83 :
int LA184_85 = input.LA(1);
int index184_85 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_85);
if ( s>=0 ) return s;
break;
case 84 :
int LA184_86 = input.LA(1);
int index184_86 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_86);
if ( s>=0 ) return s;
break;
case 85 :
int LA184_87 = input.LA(1);
int index184_87 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_87);
if ( s>=0 ) return s;
break;
case 86 :
int LA184_88 = input.LA(1);
int index184_88 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_88);
if ( s>=0 ) return s;
break;
case 87 :
int LA184_89 = input.LA(1);
int index184_89 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_89);
if ( s>=0 ) return s;
break;
case 88 :
int LA184_90 = input.LA(1);
int index184_90 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_90);
if ( s>=0 ) return s;
break;
case 89 :
int LA184_91 = input.LA(1);
int index184_91 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_91);
if ( s>=0 ) return s;
break;
case 90 :
int LA184_92 = input.LA(1);
int index184_92 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_92);
if ( s>=0 ) return s;
break;
case 91 :
int LA184_93 = input.LA(1);
int index184_93 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_93);
if ( s>=0 ) return s;
break;
case 92 :
int LA184_94 = input.LA(1);
int index184_94 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_94);
if ( s>=0 ) return s;
break;
case 93 :
int LA184_95 = input.LA(1);
int index184_95 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_95);
if ( s>=0 ) return s;
break;
case 94 :
int LA184_96 = input.LA(1);
int index184_96 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_96);
if ( s>=0 ) return s;
break;
case 95 :
int LA184_97 = input.LA(1);
int index184_97 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_97);
if ( s>=0 ) return s;
break;
case 96 :
int LA184_98 = input.LA(1);
int index184_98 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_98);
if ( s>=0 ) return s;
break;
case 97 :
int LA184_99 = input.LA(1);
int index184_99 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_99);
if ( s>=0 ) return s;
break;
case 98 :
int LA184_100 = input.LA(1);
int index184_100 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_100);
if ( s>=0 ) return s;
break;
case 99 :
int LA184_101 = input.LA(1);
int index184_101 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_101);
if ( s>=0 ) return s;
break;
case 100 :
int LA184_102 = input.LA(1);
int index184_102 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_102);
if ( s>=0 ) return s;
break;
case 101 :
int LA184_103 = input.LA(1);
int index184_103 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_103);
if ( s>=0 ) return s;
break;
case 102 :
int LA184_104 = input.LA(1);
int index184_104 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_104);
if ( s>=0 ) return s;
break;
case 103 :
int LA184_105 = input.LA(1);
int index184_105 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_105);
if ( s>=0 ) return s;
break;
case 104 :
int LA184_106 = input.LA(1);
int index184_106 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_106);
if ( s>=0 ) return s;
break;
case 105 :
int LA184_107 = input.LA(1);
int index184_107 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_107);
if ( s>=0 ) return s;
break;
case 106 :
int LA184_108 = input.LA(1);
int index184_108 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_108);
if ( s>=0 ) return s;
break;
case 107 :
int LA184_109 = input.LA(1);
int index184_109 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_109);
if ( s>=0 ) return s;
break;
case 108 :
int LA184_110 = input.LA(1);
int index184_110 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_110);
if ( s>=0 ) return s;
break;
case 109 :
int LA184_111 = input.LA(1);
int index184_111 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_111);
if ( s>=0 ) return s;
break;
case 110 :
int LA184_112 = input.LA(1);
int index184_112 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_112);
if ( s>=0 ) return s;
break;
case 111 :
int LA184_113 = input.LA(1);
int index184_113 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_113);
if ( s>=0 ) return s;
break;
case 112 :
int LA184_114 = input.LA(1);
int index184_114 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_114);
if ( s>=0 ) return s;
break;
case 113 :
int LA184_115 = input.LA(1);
int index184_115 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_115);
if ( s>=0 ) return s;
break;
case 114 :
int LA184_116 = input.LA(1);
int index184_116 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_116);
if ( s>=0 ) return s;
break;
case 115 :
int LA184_117 = input.LA(1);
int index184_117 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_117);
if ( s>=0 ) return s;
break;
case 116 :
int LA184_118 = input.LA(1);
int index184_118 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_118);
if ( s>=0 ) return s;
break;
case 117 :
int LA184_119 = input.LA(1);
int index184_119 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_119);
if ( s>=0 ) return s;
break;
case 118 :
int LA184_120 = input.LA(1);
int index184_120 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_120);
if ( s>=0 ) return s;
break;
case 119 :
int LA184_121 = input.LA(1);
int index184_121 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_121);
if ( s>=0 ) return s;
break;
case 120 :
int LA184_122 = input.LA(1);
int index184_122 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_122);
if ( s>=0 ) return s;
break;
case 121 :
int LA184_123 = input.LA(1);
int index184_123 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_123);
if ( s>=0 ) return s;
break;
case 122 :
int LA184_124 = input.LA(1);
int index184_124 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_124);
if ( s>=0 ) return s;
break;
case 123 :
int LA184_125 = input.LA(1);
int index184_125 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_125);
if ( s>=0 ) return s;
break;
case 124 :
int LA184_126 = input.LA(1);
int index184_126 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_126);
if ( s>=0 ) return s;
break;
case 125 :
int LA184_127 = input.LA(1);
int index184_127 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_127);
if ( s>=0 ) return s;
break;
case 126 :
int LA184_128 = input.LA(1);
int index184_128 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_128);
if ( s>=0 ) return s;
break;
case 127 :
int LA184_129 = input.LA(1);
int index184_129 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_129);
if ( s>=0 ) return s;
break;
case 128 :
int LA184_130 = input.LA(1);
int index184_130 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_130);
if ( s>=0 ) return s;
break;
case 129 :
int LA184_131 = input.LA(1);
int index184_131 = input.index();
input.rewind();
s = -1;
if ( (synpred258_Delphi()) ) {s = 3;}
else if ( (true) ) {s = 132;}
input.seek(index184_131);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 184, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA183_eotS =
"\u0084\uffff";
static final String DFA183_eofS =
"\1\1\u0083\uffff";
static final String DFA183_minS =
"\1\5\60\uffff\1\0\17\uffff\2\0\101\uffff";
static final String DFA183_maxS =
"\1\u00fc\60\uffff\1\0\17\uffff\2\0\101\uffff";
static final String DFA183_acceptS =
"\1\uffff\1\2\u0081\uffff\1\1";
static final String DFA183_specialS =
"\61\uffff\1\0\17\uffff\1\1\1\2\101\uffff}>";
static final String[] DFA183_transitionS = {
"\4\1\1\uffff\11\1\2\uffff\1\1\3\uffff\5\1\1\uffff\3\1\1\uffff\3\1\1\61"+
"\2\1\1\uffff\3\1\1\u0083\3\1\3\uffff\10\1\1\uffff\10\1\2\uffff\3\1\1"+
"\uffff\1\1\3\uffff\10\1\1\uffff\1\1\3\uffff\5\1\1\uffff\4\1\1\uffff\6"+
"\1\2\uffff\7\1\1\uffff\2\1\1\101\1\1\1\102\6\1\1\uffff\4\1\2\uffff\13"+
"\1\1\uffff\6\1\1\101\6\1\2\uffff\5\1\15\uffff\1\1\1\uffff\1\1\16\uffff"+
"\3\1\3\uffff\1\1\6\uffff\2\1\27\uffff\2\1\2\uffff\3\1\1\uffff\1\1\1\uffff"+
"\4\1\1\uffff\1\1",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA183_eot = DFA.unpackEncodedString(DFA183_eotS);
static final short[] DFA183_eof = DFA.unpackEncodedString(DFA183_eofS);
static final char[] DFA183_min = DFA.unpackEncodedStringToUnsignedChars(DFA183_minS);
static final char[] DFA183_max = DFA.unpackEncodedStringToUnsignedChars(DFA183_maxS);
static final short[] DFA183_accept = DFA.unpackEncodedString(DFA183_acceptS);
static final short[] DFA183_special = DFA.unpackEncodedString(DFA183_specialS);
static final short[][] DFA183_transition;
static {
int numStates = DFA183_transitionS.length;
DFA183_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA183_65 = input.LA(1);
int index183_65 = input.index();
input.rewind();
s = -1;
if ( (synpred257_Delphi()) ) {s = 131;}
else if ( (true) ) {s = 1;}
input.seek(index183_65);
if ( s>=0 ) return s;
break;
case 2 :
int LA183_66 = input.LA(1);
int index183_66 = input.index();
input.rewind();
s = -1;
if ( (synpred257_Delphi()) ) {s = 131;}
else if ( (true) ) {s = 1;}
input.seek(index183_66);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 183, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA186_eotS =
"\u0084\uffff";
static final String DFA186_eofS =
"\1\1\u0083\uffff";
static final String DFA186_minS =
"\1\5\60\uffff\1\0\17\uffff\2\0\101\uffff";
static final String DFA186_maxS =
"\1\u00fc\60\uffff\1\0\17\uffff\2\0\101\uffff";
static final String DFA186_acceptS =
"\1\uffff\1\2\u0081\uffff\1\1";
static final String DFA186_specialS =
"\61\uffff\1\0\17\uffff\1\1\1\2\101\uffff}>";
static final String[] DFA186_transitionS = {
"\4\1\1\uffff\11\1\2\uffff\1\1\3\uffff\5\1\1\uffff\3\1\1\uffff\3\1\1\61"+
"\2\1\1\uffff\3\1\1\u0083\3\1\3\uffff\10\1\1\uffff\10\1\2\uffff\3\1\1"+
"\uffff\1\1\3\uffff\10\1\1\uffff\1\1\3\uffff\5\1\1\uffff\4\1\1\uffff\6"+
"\1\2\uffff\7\1\1\uffff\2\1\1\101\1\1\1\102\6\1\1\uffff\4\1\2\uffff\13"+
"\1\1\uffff\6\1\1\101\6\1\2\uffff\5\1\15\uffff\1\1\1\uffff\1\1\16\uffff"+
"\3\1\3\uffff\1\1\6\uffff\2\1\27\uffff\2\1\2\uffff\3\1\1\uffff\1\1\1\uffff"+
"\4\1\1\uffff\1\1",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA186_eot = DFA.unpackEncodedString(DFA186_eotS);
static final short[] DFA186_eof = DFA.unpackEncodedString(DFA186_eofS);
static final char[] DFA186_min = DFA.unpackEncodedStringToUnsignedChars(DFA186_minS);
static final char[] DFA186_max = DFA.unpackEncodedStringToUnsignedChars(DFA186_maxS);
static final short[] DFA186_accept = DFA.unpackEncodedString(DFA186_acceptS);
static final short[] DFA186_special = DFA.unpackEncodedString(DFA186_specialS);
static final short[][] DFA186_transition;
static {
int numStates = DFA186_transitionS.length;
DFA186_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA186_65 = input.LA(1);
int index186_65 = input.index();
input.rewind();
s = -1;
if ( (synpred259_Delphi()) ) {s = 131;}
else if ( (true) ) {s = 1;}
input.seek(index186_65);
if ( s>=0 ) return s;
break;
case 2 :
int LA186_66 = input.LA(1);
int index186_66 = input.index();
input.rewind();
s = -1;
if ( (synpred259_Delphi()) ) {s = 131;}
else if ( (true) ) {s = 1;}
input.seek(index186_66);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 186, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA187_eotS =
"\u0085\uffff";
static final String DFA187_eofS =
"\1\5\u0084\uffff";
static final String DFA187_minS =
"\1\5\4\0\u0080\uffff";
static final String DFA187_maxS =
"\1\u00fc\4\0\u0080\uffff";
static final String DFA187_acceptS =
"\5\uffff\1\2\176\uffff\1\1";
static final String DFA187_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\u0080\uffff}>";
static final String[] DFA187_transitionS = {
"\4\5\1\uffff\11\5\2\uffff\1\5\3\uffff\5\5\1\uffff\3\5\1\uffff\3\5\1\4"+
"\2\5\1\uffff\3\5\1\1\3\5\3\uffff\10\5\1\uffff\10\5\2\uffff\3\5\1\uffff"+
"\1\5\3\uffff\10\5\1\uffff\1\5\3\uffff\5\5\1\uffff\4\5\1\uffff\6\5\2\uffff"+
"\7\5\1\uffff\2\5\1\3\1\5\1\2\6\5\1\uffff\4\5\2\uffff\13\5\1\uffff\6\5"+
"\1\3\6\5\2\uffff\5\5\15\uffff\1\5\1\uffff\1\5\16\uffff\3\5\3\uffff\1"+
"\5\6\uffff\2\5\27\uffff\2\5\2\uffff\3\5\1\uffff\1\5\1\uffff\4\5\1\uffff"+
"\1\5",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA187_eot = DFA.unpackEncodedString(DFA187_eotS);
static final short[] DFA187_eof = DFA.unpackEncodedString(DFA187_eofS);
static final char[] DFA187_min = DFA.unpackEncodedStringToUnsignedChars(DFA187_minS);
static final char[] DFA187_max = DFA.unpackEncodedStringToUnsignedChars(DFA187_maxS);
static final short[] DFA187_accept = DFA.unpackEncodedString(DFA187_acceptS);
static final short[] DFA187_special = DFA.unpackEncodedString(DFA187_specialS);
static final short[][] DFA187_transition;
static {
int numStates = DFA187_transitionS.length;
DFA187_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA187_2 = input.LA(1);
int index187_2 = input.index();
input.rewind();
s = -1;
if ( (synpred268_Delphi()) ) {s = 132;}
else if ( (true) ) {s = 5;}
input.seek(index187_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA187_3 = input.LA(1);
int index187_3 = input.index();
input.rewind();
s = -1;
if ( (synpred268_Delphi()) ) {s = 132;}
else if ( (true) ) {s = 5;}
input.seek(index187_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA187_4 = input.LA(1);
int index187_4 = input.index();
input.rewind();
s = -1;
if ( (synpred268_Delphi()) ) {s = 132;}
else if ( (true) ) {s = 5;}
input.seek(index187_4);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 187, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA211_eotS =
"\16\uffff";
static final String DFA211_eofS =
"\3\3\1\uffff\1\3\1\uffff\3\3\1\uffff\1\3\3\uffff";
static final String DFA211_minS =
"\3\5\1\uffff\1\5\1\0\3\5\1\uffff\1\5\3\0";
static final String DFA211_maxS =
"\3\u00fc\1\uffff\1\u00fc\1\0\3\u00fc\1\uffff\1\u00fc\3\0";
static final String DFA211_acceptS =
"\3\uffff\1\2\5\uffff\1\1\4\uffff";
static final String DFA211_specialS =
"\5\uffff\1\0\5\uffff\1\1\1\2\1\3}>";
static final String[] DFA211_transitionS = {
"\4\3\1\uffff\11\3\2\uffff\1\3\3\uffff\5\3\1\uffff\3\3\1\uffff\3\3\1\2"+
"\2\3\1\uffff\7\3\3\uffff\10\3\1\uffff\10\3\2\uffff\3\3\1\uffff\1\3\3"+
"\uffff\10\3\1\uffff\1\3\3\uffff\5\3\1\uffff\4\3\1\uffff\6\3\2\uffff\7"+
"\3\1\uffff\13\3\1\uffff\4\3\2\uffff\13\3\1\uffff\15\3\2\uffff\5\3\15"+
"\uffff\1\3\1\uffff\1\1\16\uffff\3\3\3\uffff\1\3\6\uffff\2\3\27\uffff"+
"\2\3\2\uffff\3\3\1\uffff\1\3\1\uffff\4\3\1\uffff\1\3",
"\4\3\1\uffff\11\3\2\uffff\1\3\3\uffff\5\3\1\uffff\3\3\1\uffff\3\3\1"+
"\4\2\3\1\uffff\7\3\3\uffff\10\3\1\uffff\10\3\2\uffff\3\3\1\uffff\1\3"+
"\3\uffff\10\3\1\uffff\1\3\3\uffff\5\3\1\uffff\4\3\1\uffff\6\3\2\uffff"+
"\7\3\1\uffff\13\3\1\uffff\4\3\2\uffff\13\3\1\uffff\15\3\2\uffff\5\3\15"+
"\uffff\1\3\1\uffff\1\1\16\uffff\3\3\3\uffff\1\3\6\uffff\1\5\1\3\27\uffff"+
"\2\3\2\uffff\3\3\1\uffff\1\3\1\uffff\4\3\1\uffff\1\3",
"\4\3\1\uffff\11\3\2\uffff\1\3\3\uffff\5\3\1\uffff\3\3\1\uffff\6\3\1"+
"\uffff\7\3\3\uffff\10\3\1\uffff\10\3\2\uffff\3\3\1\uffff\1\3\3\uffff"+
"\10\3\1\uffff\1\3\3\uffff\5\3\1\uffff\4\3\1\uffff\6\3\2\uffff\7\3\1\uffff"+
"\13\3\1\uffff\4\3\2\uffff\13\3\1\uffff\15\3\2\uffff\5\3\2\uffff\1\10"+
"\12\uffff\1\3\1\uffff\1\3\16\uffff\1\3\1\6\1\7\3\uffff\1\3\6\uffff\2"+
"\3\27\uffff\2\3\2\uffff\3\3\1\uffff\1\3\1\uffff\4\3\1\uffff\1\3",
"",
"\4\3\1\uffff\11\3\2\uffff\1\3\3\uffff\5\3\1\uffff\3\3\1\uffff\6\3\1"+
"\uffff\7\3\3\uffff\10\3\1\uffff\10\3\2\uffff\3\3\1\uffff\1\3\3\uffff"+
"\10\3\1\uffff\1\3\3\uffff\5\3\1\uffff\4\3\1\uffff\6\3\2\uffff\7\3\1\uffff"+
"\13\3\1\uffff\4\3\2\uffff\13\3\1\uffff\15\3\2\uffff\5\3\2\uffff\1\10"+
"\12\uffff\1\3\1\uffff\1\3\16\uffff\1\3\1\6\1\7\3\uffff\1\3\6\uffff\2"+
"\3\27\uffff\2\3\2\uffff\3\3\1\uffff\1\3\1\uffff\4\3\1\uffff\1\3",
"\1\uffff",
"\4\3\1\uffff\11\3\2\uffff\1\3\3\uffff\5\3\1\uffff\3\3\1\uffff\3\3\1"+
"\12\2\3\1\uffff\7\3\3\uffff\10\3\1\uffff\10\3\2\uffff\3\3\1\uffff\1\3"+
"\3\uffff\10\3\1\uffff\1\3\3\uffff\5\3\1\uffff\4\3\1\uffff\6\3\2\uffff"+
"\7\3\1\uffff\13\3\1\uffff\4\3\2\uffff\13\3\1\uffff\15\3\2\uffff\5\3\15"+
"\uffff\1\3\1\uffff\1\1\16\uffff\3\3\3\uffff\1\3\6\uffff\1\13\1\3\27\uffff"+
"\2\3\2\uffff\3\3\1\uffff\1\3\1\uffff\4\3\1\uffff\1\3",
"\4\3\1\uffff\11\3\2\uffff\1\3\3\uffff\5\3\1\uffff\3\3\1\uffff\3\3\1"+
"\12\2\3\1\uffff\7\3\3\uffff\10\3\1\uffff\10\3\2\uffff\3\3\1\uffff\1\3"+
"\3\uffff\10\3\1\uffff\1\3\3\uffff\5\3\1\uffff\4\3\1\uffff\6\3\2\uffff"+
"\7\3\1\uffff\13\3\1\uffff\4\3\2\uffff\13\3\1\uffff\15\3\2\uffff\5\3\15"+
"\uffff\1\3\1\uffff\1\1\16\uffff\3\3\3\uffff\1\3\6\uffff\1\14\1\3\27\uffff"+
"\2\3\2\uffff\3\3\1\uffff\1\3\1\uffff\4\3\1\uffff\1\3",
"\4\3\1\uffff\11\3\2\uffff\1\3\3\uffff\5\3\1\uffff\3\3\1\uffff\3\3\1"+
"\4\2\3\1\uffff\7\3\3\uffff\10\3\1\uffff\10\3\2\uffff\3\3\1\uffff\1\3"+
"\3\uffff\10\3\1\uffff\1\3\3\uffff\5\3\1\uffff\4\3\1\uffff\6\3\2\uffff"+
"\7\3\1\uffff\13\3\1\uffff\4\3\2\uffff\13\3\1\uffff\15\3\2\uffff\5\3\15"+
"\uffff\1\3\1\uffff\1\1\16\uffff\3\3\3\uffff\1\3\6\uffff\1\15\1\3\27\uffff"+
"\2\3\2\uffff\3\3\1\uffff\1\3\1\uffff\4\3\1\uffff\1\3",
"",
"\4\3\1\uffff\11\3\2\uffff\1\3\3\uffff\5\3\1\uffff\3\3\1\uffff\6\3\1"+
"\uffff\7\3\3\uffff\10\3\1\uffff\10\3\2\uffff\3\3\1\uffff\1\3\3\uffff"+
"\10\3\1\uffff\1\3\3\uffff\5\3\1\uffff\4\3\1\uffff\6\3\2\uffff\7\3\1\uffff"+
"\13\3\1\uffff\4\3\2\uffff\13\3\1\uffff\15\3\2\uffff\5\3\2\uffff\1\10"+
"\12\uffff\1\3\1\uffff\1\3\16\uffff\1\3\1\6\1\7\3\uffff\1\3\6\uffff\2"+
"\3\27\uffff\2\3\2\uffff\3\3\1\uffff\1\3\1\uffff\4\3\1\uffff\1\3",
"\1\uffff",
"\1\uffff",
"\1\uffff"
};
static final short[] DFA211_eot = DFA.unpackEncodedString(DFA211_eotS);
static final short[] DFA211_eof = DFA.unpackEncodedString(DFA211_eofS);
static final char[] DFA211_min = DFA.unpackEncodedStringToUnsignedChars(DFA211_minS);
static final char[] DFA211_max = DFA.unpackEncodedStringToUnsignedChars(DFA211_maxS);
static final short[] DFA211_accept = DFA.unpackEncodedString(DFA211_acceptS);
static final short[] DFA211_special = DFA.unpackEncodedString(DFA211_specialS);
static final short[][] DFA211_transition;
static {
int numStates = DFA211_transitionS.length;
DFA211_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA211_11 = input.LA(1);
int index211_11 = input.index();
input.rewind();
s = -1;
if ( (synpred293_Delphi()) ) {s = 9;}
else if ( (true) ) {s = 3;}
input.seek(index211_11);
if ( s>=0 ) return s;
break;
case 2 :
int LA211_12 = input.LA(1);
int index211_12 = input.index();
input.rewind();
s = -1;
if ( (synpred293_Delphi()) ) {s = 9;}
else if ( (true) ) {s = 3;}
input.seek(index211_12);
if ( s>=0 ) return s;
break;
case 3 :
int LA211_13 = input.LA(1);
int index211_13 = input.index();
input.rewind();
s = -1;
if ( (synpred293_Delphi()) ) {s = 9;}
else if ( (true) ) {s = 3;}
input.seek(index211_13);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 211, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA293_eotS =
"\154\uffff";
static final String DFA293_eofS =
"\1\32\153\uffff";
static final String DFA293_minS =
"\1\5\31\0\1\uffff\11\0\1\uffff\4\0\1\uffff\4\0\3\uffff\1\0\6\uffff\1\0"+
"\5\uffff\1\0\5\uffff\1\0\2\uffff\6\0\2\uffff\10\0\16\uffff\1\0\1\uffff"+
"\2\0\3\uffff";
static final String DFA293_maxS =
"\1\u00fa\31\0\1\uffff\11\0\1\uffff\4\0\1\uffff\4\0\3\uffff\1\0\6\uffff"+
"\1\0\5\uffff\1\0\5\uffff\1\0\2\uffff\6\0\2\uffff\10\0\16\uffff\1\0\1\uffff"+
"\2\0\3\uffff";
static final String DFA293_acceptS =
"\32\uffff\1\2\120\uffff\1\1";
static final String DFA293_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15"+
"\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\uffff\1\31\1"+
"\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\uffff\1\42\1\43\1\44\1\45\1\uffff"+
"\1\46\1\47\1\50\1\51\3\uffff\1\52\6\uffff\1\53\5\uffff\1\54\5\uffff\1"+
"\55\2\uffff\1\56\1\57\1\60\1\61\1\62\1\63\2\uffff\1\64\1\65\1\66\1\67"+
"\1\70\1\71\1\72\1\73\16\uffff\1\74\1\uffff\1\75\1\76\3\uffff}>";
static final String[] DFA293_transitionS = {
"\1\70\1\41\1\4\1\150\2\uffff\1\32\1\uffff\1\32\1\42\1\150\1\32\1\150"+
"\1\113\2\uffff\1\32\3\uffff\1\32\1\43\1\32\1\uffff\1\32\1\uffff\2\32"+
"\1\150\1\uffff\1\114\1\30\1\45\1\13\1\32\1\52\7\uffff\1\36\3\uffff\4"+
"\32\1\46\1\43\1\32\1\147\1\uffff\1\50\1\22\1\41\3\32\1\145\1\26\2\uffff"+
"\1\32\3\uffff\1\150\3\uffff\2\32\1\123\1\32\1\27\1\24\2\32\5\uffff\1"+
"\55\2\uffff\1\32\1\50\1\uffff\1\34\1\3\3\uffff\1\17\1\50\1\15\1\125\1"+
"\1\3\uffff\1\32\1\126\1\61\1\uffff\1\150\1\31\1\37\1\uffff\1\150\1\32"+
"\1\20\1\32\1\23\1\32\1\43\1\47\1\2\1\110\1\25\1\uffff\1\32\1\107\1\111"+
"\1\112\2\uffff\1\32\1\117\1\121\1\32\1\76\1\43\1\33\1\32\2\150\1\32\1"+
"\uffff\1\43\1\150\2\32\2\uffff\1\20\1\32\1\35\1\43\1\124\1\104\1\21\3"+
"\uffff\1\32\1\uffff\2\32\15\uffff\1\7\1\uffff\1\12\16\uffff\1\6\1\16"+
"\1\5\3\uffff\1\14\6\uffff\1\11\1\10\27\uffff\1\54\1\32\2\uffff\1\32\1"+
"\53\1\40\1\uffff\1\32\1\uffff\1\43\1\32\1\120\1\122",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"",
"",
""
};
static final short[] DFA293_eot = DFA.unpackEncodedString(DFA293_eotS);
static final short[] DFA293_eof = DFA.unpackEncodedString(DFA293_eofS);
static final char[] DFA293_min = DFA.unpackEncodedStringToUnsignedChars(DFA293_minS);
static final char[] DFA293_max = DFA.unpackEncodedStringToUnsignedChars(DFA293_maxS);
static final short[] DFA293_accept = DFA.unpackEncodedString(DFA293_acceptS);
static final short[] DFA293_special = DFA.unpackEncodedString(DFA293_specialS);
static final short[][] DFA293_transition;
static {
int numStates = DFA293_transitionS.length;
DFA293_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA293_2 = input.LA(1);
int index293_2 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA293_3 = input.LA(1);
int index293_3 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA293_4 = input.LA(1);
int index293_4 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA293_5 = input.LA(1);
int index293_5 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA293_6 = input.LA(1);
int index293_6 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA293_7 = input.LA(1);
int index293_7 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA293_8 = input.LA(1);
int index293_8 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA293_9 = input.LA(1);
int index293_9 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA293_10 = input.LA(1);
int index293_10 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA293_11 = input.LA(1);
int index293_11 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA293_12 = input.LA(1);
int index293_12 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA293_13 = input.LA(1);
int index293_13 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA293_14 = input.LA(1);
int index293_14 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_14);
if ( s>=0 ) return s;
break;
case 14 :
int LA293_15 = input.LA(1);
int index293_15 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_15);
if ( s>=0 ) return s;
break;
case 15 :
int LA293_16 = input.LA(1);
int index293_16 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_16);
if ( s>=0 ) return s;
break;
case 16 :
int LA293_17 = input.LA(1);
int index293_17 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_17);
if ( s>=0 ) return s;
break;
case 17 :
int LA293_18 = input.LA(1);
int index293_18 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_18);
if ( s>=0 ) return s;
break;
case 18 :
int LA293_19 = input.LA(1);
int index293_19 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_19);
if ( s>=0 ) return s;
break;
case 19 :
int LA293_20 = input.LA(1);
int index293_20 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_20);
if ( s>=0 ) return s;
break;
case 20 :
int LA293_21 = input.LA(1);
int index293_21 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_21);
if ( s>=0 ) return s;
break;
case 21 :
int LA293_22 = input.LA(1);
int index293_22 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_22);
if ( s>=0 ) return s;
break;
case 22 :
int LA293_23 = input.LA(1);
int index293_23 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_23);
if ( s>=0 ) return s;
break;
case 23 :
int LA293_24 = input.LA(1);
int index293_24 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_24);
if ( s>=0 ) return s;
break;
case 24 :
int LA293_25 = input.LA(1);
int index293_25 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_25);
if ( s>=0 ) return s;
break;
case 25 :
int LA293_27 = input.LA(1);
int index293_27 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_27);
if ( s>=0 ) return s;
break;
case 26 :
int LA293_28 = input.LA(1);
int index293_28 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_28);
if ( s>=0 ) return s;
break;
case 27 :
int LA293_29 = input.LA(1);
int index293_29 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_29);
if ( s>=0 ) return s;
break;
case 28 :
int LA293_30 = input.LA(1);
int index293_30 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_30);
if ( s>=0 ) return s;
break;
case 29 :
int LA293_31 = input.LA(1);
int index293_31 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_31);
if ( s>=0 ) return s;
break;
case 30 :
int LA293_32 = input.LA(1);
int index293_32 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_32);
if ( s>=0 ) return s;
break;
case 31 :
int LA293_33 = input.LA(1);
int index293_33 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_33);
if ( s>=0 ) return s;
break;
case 32 :
int LA293_34 = input.LA(1);
int index293_34 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_34);
if ( s>=0 ) return s;
break;
case 33 :
int LA293_35 = input.LA(1);
int index293_35 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_35);
if ( s>=0 ) return s;
break;
case 34 :
int LA293_37 = input.LA(1);
int index293_37 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_37);
if ( s>=0 ) return s;
break;
case 35 :
int LA293_38 = input.LA(1);
int index293_38 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_38);
if ( s>=0 ) return s;
break;
case 36 :
int LA293_39 = input.LA(1);
int index293_39 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_39);
if ( s>=0 ) return s;
break;
case 37 :
int LA293_40 = input.LA(1);
int index293_40 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_40);
if ( s>=0 ) return s;
break;
case 38 :
int LA293_42 = input.LA(1);
int index293_42 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_42);
if ( s>=0 ) return s;
break;
case 39 :
int LA293_43 = input.LA(1);
int index293_43 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_43);
if ( s>=0 ) return s;
break;
case 40 :
int LA293_44 = input.LA(1);
int index293_44 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_44);
if ( s>=0 ) return s;
break;
case 41 :
int LA293_45 = input.LA(1);
int index293_45 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_45);
if ( s>=0 ) return s;
break;
case 42 :
int LA293_49 = input.LA(1);
int index293_49 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_49);
if ( s>=0 ) return s;
break;
case 43 :
int LA293_56 = input.LA(1);
int index293_56 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_56);
if ( s>=0 ) return s;
break;
case 44 :
int LA293_62 = input.LA(1);
int index293_62 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_62);
if ( s>=0 ) return s;
break;
case 45 :
int LA293_68 = input.LA(1);
int index293_68 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_68);
if ( s>=0 ) return s;
break;
case 46 :
int LA293_71 = input.LA(1);
int index293_71 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_71);
if ( s>=0 ) return s;
break;
case 47 :
int LA293_72 = input.LA(1);
int index293_72 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_72);
if ( s>=0 ) return s;
break;
case 48 :
int LA293_73 = input.LA(1);
int index293_73 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_73);
if ( s>=0 ) return s;
break;
case 49 :
int LA293_74 = input.LA(1);
int index293_74 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_74);
if ( s>=0 ) return s;
break;
case 50 :
int LA293_75 = input.LA(1);
int index293_75 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_75);
if ( s>=0 ) return s;
break;
case 51 :
int LA293_76 = input.LA(1);
int index293_76 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_76);
if ( s>=0 ) return s;
break;
case 52 :
int LA293_79 = input.LA(1);
int index293_79 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_79);
if ( s>=0 ) return s;
break;
case 53 :
int LA293_80 = input.LA(1);
int index293_80 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_80);
if ( s>=0 ) return s;
break;
case 54 :
int LA293_81 = input.LA(1);
int index293_81 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_81);
if ( s>=0 ) return s;
break;
case 55 :
int LA293_82 = input.LA(1);
int index293_82 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_82);
if ( s>=0 ) return s;
break;
case 56 :
int LA293_83 = input.LA(1);
int index293_83 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_83);
if ( s>=0 ) return s;
break;
case 57 :
int LA293_84 = input.LA(1);
int index293_84 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_84);
if ( s>=0 ) return s;
break;
case 58 :
int LA293_85 = input.LA(1);
int index293_85 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_85);
if ( s>=0 ) return s;
break;
case 59 :
int LA293_86 = input.LA(1);
int index293_86 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_86);
if ( s>=0 ) return s;
break;
case 60 :
int LA293_101 = input.LA(1);
int index293_101 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_101);
if ( s>=0 ) return s;
break;
case 61 :
int LA293_103 = input.LA(1);
int index293_103 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_103);
if ( s>=0 ) return s;
break;
case 62 :
int LA293_104 = input.LA(1);
int index293_104 = input.index();
input.rewind();
s = -1;
if ( (((!input.LT(1).getText().equals("name"))&&synpred435_Delphi())) ) {s = 107;}
else if ( (true) ) {s = 26;}
input.seek(index293_104);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 293, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA294_eotS =
"\154\uffff";
static final String DFA294_eofS =
"\1\1\153\uffff";
static final String DFA294_minS =
"\1\5\120\uffff\1\0\24\uffff\1\0\2\uffff\1\0\2\uffff";
static final String DFA294_maxS =
"\1\u00fa\120\uffff\1\0\24\uffff\1\0\2\uffff\1\0\2\uffff";
static final String DFA294_acceptS =
"\1\uffff\1\2\151\uffff\1\1";
static final String DFA294_specialS =
"\121\uffff\1\0\24\uffff\1\1\2\uffff\1\2\2\uffff}>";
static final String[] DFA294_transitionS = {
"\4\1\2\uffff\1\1\1\uffff\6\1\2\uffff\1\1\3\uffff\3\1\1\uffff\1\1\1\uffff"+
"\3\1\1\uffff\1\1\1\151\4\1\7\uffff\1\1\3\uffff\10\1\1\uffff\10\1\2\uffff"+
"\1\1\3\uffff\1\1\3\uffff\4\1\1\121\3\1\5\uffff\1\1\2\uffff\2\1\1\uffff"+
"\2\1\3\uffff\1\146\4\1\3\uffff\3\1\1\uffff\3\1\1\uffff\13\1\1\uffff\4"+
"\1\2\uffff\13\1\1\uffff\4\1\2\uffff\7\1\3\uffff\1\1\1\uffff\2\1\15\uffff"+
"\1\1\1\uffff\1\1\16\uffff\3\1\3\uffff\1\1\6\uffff\2\1\27\uffff\2\1\2"+
"\uffff\3\1\1\uffff\1\1\1\uffff\4\1",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"\1\uffff",
"",
""
};
static final short[] DFA294_eot = DFA.unpackEncodedString(DFA294_eotS);
static final short[] DFA294_eof = DFA.unpackEncodedString(DFA294_eofS);
static final char[] DFA294_min = DFA.unpackEncodedStringToUnsignedChars(DFA294_minS);
static final char[] DFA294_max = DFA.unpackEncodedStringToUnsignedChars(DFA294_maxS);
static final short[] DFA294_accept = DFA.unpackEncodedString(DFA294_acceptS);
static final short[] DFA294_special = DFA.unpackEncodedString(DFA294_specialS);
static final short[][] DFA294_transition;
static {
int numStates = DFA294_transitionS.length;
DFA294_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
case 1 :
int LA294_102 = input.LA(1);
int index294_102 = input.index();
input.rewind();
s = -1;
if ( (synpred436_Delphi()) ) {s = 107;}
else if ( (true) ) {s = 1;}
input.seek(index294_102);
if ( s>=0 ) return s;
break;
case 2 :
int LA294_105 = input.LA(1);
int index294_105 = input.index();
input.rewind();
s = -1;
if ( (synpred436_Delphi()) ) {s = 107;}
else if ( (true) ) {s = 1;}
input.seek(index294_105);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 294, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA301_eotS =
"\u0086\uffff";
static final String DFA301_eofS =
"\1\2\u0085\uffff";
static final String DFA301_minS =
"\1\5\1\0\u0084\uffff";
static final String DFA301_maxS =
"\1\u00fc\1\0\u0084\uffff";
static final String DFA301_acceptS =
"\2\uffff\1\2\u0082\uffff\1\1";
static final String DFA301_specialS =
"\1\uffff\1\0\u0084\uffff}>";
static final String[] DFA301_transitionS = {
"\4\2\1\uffff\11\2\2\uffff\1\2\3\uffff\5\2\1\uffff\3\2\1\uffff\6\2\1\uffff"+
"\7\2\3\uffff\10\2\1\uffff\10\2\2\uffff\3\2\1\uffff\1\2\3\uffff\10\2\1"+
"\uffff\1\2\3\uffff\1\2\1\1\3\2\1\uffff\4\2\1\uffff\6\2\2\uffff\7\2\1"+
"\uffff\13\2\1\uffff\4\2\2\uffff\13\2\1\uffff\15\2\2\uffff\5\2\15\uffff"+
"\1\2\1\uffff\1\2\16\uffff\3\2\3\uffff\1\2\6\uffff\2\2\27\uffff\2\2\2"+
"\uffff\3\2\1\uffff\1\2\1\uffff\4\2\1\uffff\1\2",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA301_eot = DFA.unpackEncodedString(DFA301_eotS);
static final short[] DFA301_eof = DFA.unpackEncodedString(DFA301_eofS);
static final char[] DFA301_min = DFA.unpackEncodedStringToUnsignedChars(DFA301_minS);
static final char[] DFA301_max = DFA.unpackEncodedStringToUnsignedChars(DFA301_maxS);
static final short[] DFA301_accept = DFA.unpackEncodedString(DFA301_acceptS);
static final short[] DFA301_special = DFA.unpackEncodedString(DFA301_specialS);
static final short[][] DFA301_transition;
static {
int numStates = DFA301_transitionS.length;
DFA301_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 301, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA303_eotS =
"\u0086\uffff";
static final String DFA303_eofS =
"\1\2\u0085\uffff";
static final String DFA303_minS =
"\1\5\1\0\u0084\uffff";
static final String DFA303_maxS =
"\1\u00fc\1\0\u0084\uffff";
static final String DFA303_acceptS =
"\2\uffff\1\2\u0082\uffff\1\1";
static final String DFA303_specialS =
"\1\uffff\1\0\u0084\uffff}>";
static final String[] DFA303_transitionS = {
"\4\2\1\uffff\11\2\2\uffff\1\2\3\uffff\5\2\1\uffff\3\2\1\uffff\6\2\1\uffff"+
"\7\2\3\uffff\10\2\1\uffff\10\2\2\uffff\3\2\1\uffff\1\2\3\uffff\10\2\1"+
"\uffff\1\2\3\uffff\1\2\1\1\3\2\1\uffff\4\2\1\uffff\6\2\2\uffff\7\2\1"+
"\uffff\13\2\1\uffff\4\2\2\uffff\13\2\1\uffff\15\2\2\uffff\5\2\15\uffff"+
"\1\2\1\uffff\1\2\16\uffff\3\2\3\uffff\1\2\6\uffff\2\2\27\uffff\2\2\2"+
"\uffff\3\2\1\uffff\1\2\1\uffff\4\2\1\uffff\1\2",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA303_eot = DFA.unpackEncodedString(DFA303_eotS);
static final short[] DFA303_eof = DFA.unpackEncodedString(DFA303_eofS);
static final char[] DFA303_min = DFA.unpackEncodedStringToUnsignedChars(DFA303_minS);
static final char[] DFA303_max = DFA.unpackEncodedStringToUnsignedChars(DFA303_maxS);
static final short[] DFA303_accept = DFA.unpackEncodedString(DFA303_acceptS);
static final short[] DFA303_special = DFA.unpackEncodedString(DFA303_specialS);
static final short[][] DFA303_transition;
static {
int numStates = DFA303_transitionS.length;
DFA303_transition = new short[numStates][];
for (int i=0; i=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 303, _s, input);
error(nvae);
throw nvae;
}
}
public static final BitSet FOLLOW_program_in_file405 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_library_in_file409 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unit_in_file413 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_package__in_file417 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_program_in_fileWithoutImplementation457 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_library_in_fileWithoutImplementation461 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unitWithoutImplementation_in_fileWithoutImplementation465 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_package__in_fileWithoutImplementation469 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_programHead_in_program532 = new BitSet(new long[]{0x0420008188200000L,0x0202000010000010L,0x0000012008080002L,0x0002800000000000L});
public static final BitSet FOLLOW_usesFileClause_in_program535 = new BitSet(new long[]{0x0420008188200000L,0x0202000010000010L,0x0000012008080002L,0x0002000000000000L});
public static final BitSet FOLLOW_programBody_in_program538 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_DOT_in_program540 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PROGRAM_in_programHead594 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_qualifiedNameDeclaration_in_programHead600 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_programParameters_in_programHead602 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_programHead605 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PAREN_LEFT_in_programParameters654 = new BitSet(new long[]{0xAB01013A0406C160L,0x70BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_ident_in_programParameters657 = new BitSet(new long[]{0x0000000020000000L,0x1000000000000000L});
public static final BitSet FOLLOW_COMMA_in_programParameters660 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_ident_in_programParameters662 = new BitSet(new long[]{0x0000000020000000L,0x1000000000000000L});
public static final BitSet FOLLOW_PAREN_RIGHT_in_programParameters669 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_localDeclSection_in_programBody724 = new BitSet(new long[]{0x0020000000200000L});
public static final BitSet FOLLOW_compoundStatement_in_programBody728 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_END_in_programBody732 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_libraryHead_in_library791 = new BitSet(new long[]{0x0420008188200000L,0x0202000010000010L,0x0000012008080002L,0x0002800000000000L});
public static final BitSet FOLLOW_usesFileClause_in_library793 = new BitSet(new long[]{0x0420008188200000L,0x0202000010000010L,0x0000012008080002L,0x0002000000000000L});
public static final BitSet FOLLOW_programBody_in_library796 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_DOT_in_library798 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LIBRARY_in_libraryHead852 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_qualifiedNameDeclaration_in_libraryHead858 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_libraryHead861 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_libraryHead866 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_packageHead_in_package_924 = new BitSet(new long[]{0x0020000200000000L,0x0200000000000000L,0x0000000008020000L});
public static final BitSet FOLLOW_requiresClause_in_package_926 = new BitSet(new long[]{0x0020000200000000L,0x0200000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_containsClause_in_package_929 = new BitSet(new long[]{0x0020000000000000L,0x0200000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_attributeList_in_package_932 = new BitSet(new long[]{0x0020000000000000L,0x0200000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_END_in_package_935 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_DOT_in_package_937 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PACKAGE_in_packageHead991 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_qualifiedNameDeclaration_in_packageHead997 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_packageHead999 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unitHead_in_unit1061 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_unitInterface_in_unit1063 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_unitImplementation_in_unit1065 = new BitSet(new long[]{0x0020000000200000L,0x0000000000200000L});
public static final BitSet FOLLOW_unitBlock_in_unit1067 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_DOT_in_unit1069 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unitHead_in_unitWithoutImplementation1109 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_unitInterface_in_unitWithoutImplementation1111 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_UNIT_in_unitHead1168 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_qualifiedNameDeclaration_in_unitHead1174 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_unitHead1176 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_unitHead1179 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTERFACE_in_unitInterface1232 = new BitSet(new long[]{0x0400008188000002L,0x0202000000000010L,0x0000012008080002L,0x0002800000000000L});
public static final BitSet FOLLOW_usesClause_in_unitInterface1238 = new BitSet(new long[]{0x0400008188000002L,0x0202000000000010L,0x0000012008080002L,0x0002000000000000L});
public static final BitSet FOLLOW_interfaceDecl_in_unitInterface1241 = new BitSet(new long[]{0x0400008188000002L,0x0202000000000010L,0x0000012008080002L,0x0002000000000000L});
public static final BitSet FOLLOW_IMPLEMENTATION_in_unitImplementation1289 = new BitSet(new long[]{0x0400008188000002L,0x0202000010000010L,0x0000012008080002L,0x0002800000000000L});
public static final BitSet FOLLOW_usesClause_in_unitImplementation1295 = new BitSet(new long[]{0x0400008188000002L,0x0202000010000010L,0x0000012008080002L,0x0002000000000000L});
public static final BitSet FOLLOW_declSection_in_unitImplementation1298 = new BitSet(new long[]{0x0400008188000002L,0x0202000010000010L,0x0000012008080002L,0x0002000000000000L});
public static final BitSet FOLLOW_initializationFinalization_in_unitBlock1355 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_END_in_unitBlock1358 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_compoundStatement_in_unitBlock1391 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_initializationSection_in_initializationFinalization1430 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
public static final BitSet FOLLOW_finalizationSection_in_initializationFinalization1432 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INITIALIZATION_in_initializationSection1477 = new BitSet(new long[]{0xEB01017A8626E1E0L,0xEABB0F8D101A889CL,0x01400083E8E7EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statementList_in_initializationSection1483 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FINALIZATION_in_finalizationSection1529 = new BitSet(new long[]{0xEB01017A8626E1E0L,0xEABB0F8D101A889CL,0x01400083E8E7EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statementList_in_finalizationSection1535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONTAINS_in_containsClause1590 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_unitInFileImportList_in_containsClause1596 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REQUIRES_in_requiresClause1647 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_unitImportList_in_requiresClause1653 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_USES_in_usesClause1708 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_unitImportList_in_usesClause1714 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_USES_in_usesFileClause1765 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_unitInFileImportList_in_usesFileClause1771 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unitInFileImport_in_unitInFileImportList1816 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_COMMA_in_unitInFileImportList1819 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_unitInFileImport_in_unitInFileImportList1821 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_unitInFileImportList1825 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unitImport_in_unitImportList1876 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_COMMA_in_unitImportList1879 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_unitImport_in_unitImportList1881 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_unitImportList1885 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_qualifiedNameDeclaration_in_unitImport1940 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_qualifiedNameDeclaration_in_unitInFileImport2029 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L});
public static final BitSet FOLLOW_IN_in_unitInFileImport2032 = new BitSet(new long[]{0x0000004000000000L,0x0000000000000000L,0x0100000000000000L,0x0000000000102000L});
public static final BitSet FOLLOW_textLiteral_in_unitInFileImport2034 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_localDeclSection_in_block2147 = new BitSet(new long[]{0x0000000000202000L});
public static final BitSet FOLLOW_blockBody_in_block2150 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declSection_in_localDeclSection2199 = new BitSet(new long[]{0x0400008188000002L,0x0202000010000010L,0x0000012008080002L,0x0002000000000000L});
public static final BitSet FOLLOW_compoundStatement_in_blockBody2268 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assemblerStatement_in_blockBody2301 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_labelDeclSection_in_declSection2355 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constSection_in_declSection2388 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeSection_in_declSection2421 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_varSection_in_declSection2454 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineImplementation_in_declSection2487 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_exportsSection_in_declSection2520 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeList_in_declSection2553 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constSection_in_interfaceDecl2605 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeSection_in_interfaceDecl2638 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_varSection_in_interfaceDecl2671 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_exportsSection_in_interfaceDecl2704 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineInterface_in_interfaceDecl2737 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeList_in_interfaceDecl2770 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LABEL_in_labelDeclSection2819 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00400001E066EC71L,0x068C200000000380L});
public static final BitSet FOLLOW_labelNameDeclaration_in_labelDeclSection2825 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_COMMA_in_labelDeclSection2828 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00400001E066EC71L,0x068C200000000380L});
public static final BitSet FOLLOW_labelNameDeclaration_in_labelDeclSection2830 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_labelDeclSection2834 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONST_in_constSection2888 = new BitSet(new long[]{0xAB01013A0406C162L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_RESOURCESTRING_in_constSection2896 = new BitSet(new long[]{0xAB01013A0406C162L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_constDeclaration_in_constSection2903 = new BitSet(new long[]{0xAB01013A0406C162L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_attributeList_in_constDeclaration3043 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclaration_in_constDeclaration3046 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_constDeclaration3048 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_fixedArrayType_in_constDeclaration3050 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_EQUAL_in_constDeclaration3052 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
public static final BitSet FOLLOW_arrayExpression_in_constDeclaration3054 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_constDeclaration3056 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_constDeclaration3059 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeList_in_constDeclaration3142 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclaration_in_constDeclaration3145 = new BitSet(new long[]{0x0040000010000000L});
public static final BitSet FOLLOW_COLON_in_constDeclaration3148 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_constDeclaration3150 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_EQUAL_in_constDeclaration3154 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_constExpression_in_constDeclaration3156 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_constDeclaration3158 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_constDeclaration3161 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPE_in_typeSection3266 = new BitSet(new long[]{0xAB01013A0406C160L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeDeclaration_in_typeSection3272 = new BitSet(new long[]{0xAB01013A0406C162L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_TYPE_in_innerTypeSection3322 = new BitSet(new long[]{0xAB01013A0406C162L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeDeclaration_in_innerTypeSection3328 = new BitSet(new long[]{0xAB01013A0406C162L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_attributeList_in_typeDeclaration3379 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_genericNameDeclaration_in_typeDeclaration3382 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_EQUAL_in_typeDeclaration3384 = new BitSet(new long[]{0xEB01037A0C06C9E0L,0xEBBB4F8D109A0818L,0x01400103E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_typeDecl_in_typeDeclaration3386 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_typeDeclaration3388 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_typeDeclaration3391 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_in_varSection3495 = new BitSet(new long[]{0xAB01013A0406C160L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_THREADVAR_in_varSection3503 = new BitSet(new long[]{0xAB01013A0406C160L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_varDeclaration_in_varSection3510 = new BitSet(new long[]{0xAB01013A0406C162L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_varDeclaration_in_varSection3512 = new BitSet(new long[]{0xAB01013A0406C162L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_attributeList_in_varDeclaration3564 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclarationList_in_varDeclaration3567 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_varDeclaration3569 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_fixedArrayType_in_varDeclaration3571 = new BitSet(new long[]{0x0140002000000020L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_varDeclaration3573 = new BitSet(new long[]{0x0140002000000020L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_arrayVarValueSpec_in_varDeclaration3576 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_varDeclaration3579 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_varDeclaration3582 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeList_in_varDeclaration3663 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclarationList_in_varDeclaration3666 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_varDeclaration3668 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_varDeclaration3670 = new BitSet(new long[]{0x0140002000000020L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_varDeclaration3672 = new BitSet(new long[]{0x0140002000000020L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_varValueSpec_in_varDeclaration3675 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_varDeclaration3678 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_varDeclaration3681 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ABSOLUTE_in_arrayVarValueSpec3777 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_arrayVarValueSpec3779 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQUAL_in_arrayVarValueSpec3812 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
public static final BitSet FOLLOW_arrayExpression_in_arrayVarValueSpec3814 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ABSOLUTE_in_varValueSpec3867 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_varValueSpec3869 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQUAL_in_varValueSpec3902 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_constExpression_in_varValueSpec3904 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXPORTS_in_exportsSection3955 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_ident_in_exportsSection3957 = new BitSet(new long[]{0x0000000020000000L,0x0800008000080000L,0x0000000000840000L});
public static final BitSet FOLLOW_exportItem_in_exportsSection3959 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_COMMA_in_exportsSection3962 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_ident_in_exportsSection3964 = new BitSet(new long[]{0x0000000020000000L,0x0800008000080000L,0x0000000000840000L});
public static final BitSet FOLLOW_exportItem_in_exportsSection3966 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_exportsSection3970 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PAREN_LEFT_in_exportItem4026 = new BitSet(new long[]{0xAB01013A8406C160L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068E200000000100L});
public static final BitSet FOLLOW_formalParameterList_in_exportItem4028 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_PAREN_RIGHT_in_exportItem4030 = new BitSet(new long[]{0x0000000000000002L,0x0000008000080000L,0x0000000000040000L});
public static final BitSet FOLLOW_INDEX_in_exportItem4035 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_exportItem4037 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_NAME_in_exportItem4042 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_exportItem4044 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_RESIDENT_in_exportItem4049 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arrayType_in_typeDecl4112 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_setType_in_typeDecl4145 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fullFileType_in_typeDecl4178 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classHelperType_in_typeDecl4211 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classReferenceType_in_typeDecl4244 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classType_in_typeDecl4277 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interfaceType_in_typeDecl4310 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_objectType_in_typeDecl4343 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_recordType_in_typeDecl4376 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_recordHelperType_in_typeDecl4409 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointerType_in_typeDecl4442 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fullStringType_in_typeDecl4475 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedureType_in_typeDecl4508 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subRangeType_in_typeDecl4541 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeOfType_in_typeDecl4574 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_strongAliasType_in_typeDecl4607 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_weakAliasType_in_typeDecl4640 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumType_in_typeDecl4673 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PACKED_in_typeDecl4706 = new BitSet(new long[]{0xEB01037A0C06C9E0L,0xEBBB4F8D109A0818L,0x01400103E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_typeDecl_in_typeDecl4708 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arrayType_in_varType4767 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_setType_in_varType4800 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fullStringType_in_varType4833 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fullFileType_in_varType4866 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_recordType_in_varType4899 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointerType_in_varType4932 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedureType_in_varType4965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subRangeType_in_varType4998 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeReference_in_varType5031 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumType_in_varType5064 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PACKED_in_varType5097 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_varType5099 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_stringType_in_parameterType5152 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fileType_in_parameterType5185 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arrayType_in_parameterType5218 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeReference_in_parameterType5251 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PACKED_in_parameterType5284 = new BitSet(new long[]{0xEB01013A0406C960L,0x61BB0585100A0808L,0x00000003E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_parameterType_in_parameterType5286 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ARRAY_in_fixedArrayType5338 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_arrayIndices_in_fixedArrayType5340 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_OF_in_fixedArrayType5342 = new BitSet(new long[]{0xEB01017A8406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_arrayElementType_in_fixedArrayType5344 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ARRAY_in_arrayType5446 = new BitSet(new long[]{0x0000000000000000L,0x0200800000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_arrayIndices_in_arrayType5448 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_OF_in_arrayType5451 = new BitSet(new long[]{0xEB01017A8406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_arrayElementType_in_arrayType5453 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lbrack_in_arrayIndices5736 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_arrayIndices5739 = new BitSet(new long[]{0xEB01017A2406C9E0L,0xEFBB0F8D101A0818L,0x01400003F966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_COMMA_in_arrayIndices5741 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEFBB0F8D101A0818L,0x01400003F966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_rbrack_in_arrayIndices5746 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONST_in_arrayElementType5845 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_varType_in_arrayElementType5881 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FILE_in_fileType5938 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FILE_in_fullFileType5995 = new BitSet(new long[]{0x0000000000000002L,0x0000800000000000L});
public static final BitSet FOLLOW_OF_in_fullFileType6002 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_fullFileType6004 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SET_in_setType6064 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_OF_in_setType6070 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_setType6072 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEREFERENCE_in_pointerType6126 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_pointerType6132 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_in_stringType6187 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_in_fullStringType6242 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_lbrack_in_fullStringType6249 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_fullStringType6251 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_rbrack_in_fullStringType6253 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedureOfObject_in_procedureType6307 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedureReference_in_procedureType6340 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simpleProcedureType_in_procedureType6373 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedureTypeHeading_in_procedureOfObject6421 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_OF_in_procedureOfObject6423 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_OBJECT_in_procedureOfObject6425 = new BitSet(new long[]{0xAB01012004004042L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_procedureOfObject6433 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirective_in_procedureOfObject6437 = new BitSet(new long[]{0xAB01012004004042L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_REFERENCE_in_procedureReference6486 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_TO_in_procedureReference6492 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L,0x0000000000000002L});
public static final BitSet FOLLOW_procedureTypeHeading_in_procedureReference6495 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedureTypeHeading_in_simpleProcedureType6541 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNCTION_in_procedureTypeHeading6597 = new BitSet(new long[]{0xAB01012014004042L,0x6830010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineParameters_in_procedureTypeHeading6603 = new BitSet(new long[]{0xAB01012014004042L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineReturnType_in_procedureTypeHeading6606 = new BitSet(new long[]{0xAB01012004004042L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_procedureTypeHeading6611 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirective_in_procedureTypeHeading6615 = new BitSet(new long[]{0xAB01012004004042L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_PROCEDURE_in_procedureTypeHeading6650 = new BitSet(new long[]{0xAB01012004004042L,0x6830010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineParameters_in_procedureTypeHeading6656 = new BitSet(new long[]{0xAB01012004004042L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_procedureTypeHeading6661 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirective_in_procedureTypeHeading6665 = new BitSet(new long[]{0xAB01012004004042L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_TYPE_in_typeOfType6722 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_OF_in_typeOfType6728 = new BitSet(new long[]{0xEB01037A0C06C9E0L,0xEBBB4F8D109A0818L,0x01400103E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_typeDecl_in_typeOfType6730 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPE_in_strongAliasType6780 = new BitSet(new long[]{0xEB01013A0406C160L,0x60BB0585100A0808L,0x00000003E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReferenceOrStringOrFile_in_strongAliasType6786 = new BitSet(new long[]{0x0000000000000002L,0x0800000000000000L});
public static final BitSet FOLLOW_codePageExpression_in_strongAliasType6788 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PAREN_LEFT_in_codePageExpression6836 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_codePageExpression6839 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_PAREN_RIGHT_in_codePageExpression6841 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeReference_in_weakAliasType6894 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_subRangeType6958 = new BitSet(new long[]{0x0000400000000000L});
public static final BitSet FOLLOW_DOT_DOT_in_subRangeType6960 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_subRangeType6966 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PAREN_LEFT_in_enumType7023 = new BitSet(new long[]{0xAB01013A0406C160L,0x70BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_enumTypeElement_in_enumType7030 = new BitSet(new long[]{0xAB01013A2406C160L,0x70BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_COMMA_in_enumType7033 = new BitSet(new long[]{0xAB01013A0406C160L,0x70BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_PAREN_RIGHT_in_enumType7039 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nameDeclaration_in_enumTypeElement7090 = new BitSet(new long[]{0x0040000000000002L});
public static final BitSet FOLLOW_EQUAL_in_enumTypeElement7093 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_enumTypeElement7095 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nameReference_in_typeReference7163 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_stringType_in_typeReferenceOrString7218 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeReference_in_typeReferenceOrString7251 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_stringType_in_typeReferenceOrStringOrFile7289 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fileType_in_typeReferenceOrStringOrFile7322 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeReference_in_typeReferenceOrStringOrFile7355 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_classReferenceType7406 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_OF_in_classReferenceType7412 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReference_in_classReferenceType7414 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_classType7470 = new BitSet(new long[]{0xAB2101BB8C06C162L,0x6ABB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_classState_in_classType7472 = new BitSet(new long[]{0xAB2101BB8C06C162L,0x6ABB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_classParent_in_classType7475 = new BitSet(new long[]{0xAB2101BB8C06C162L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_visibilitySection_in_classType7479 = new BitSet(new long[]{0xAB2101BB8C06C160L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_END_in_classType7482 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PAREN_LEFT_in_classParent7678 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReference_in_classParent7680 = new BitSet(new long[]{0x0000000020000000L,0x1000000000000000L});
public static final BitSet FOLLOW_COMMA_in_classParent7683 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReference_in_classParent7685 = new BitSet(new long[]{0x0000000020000000L,0x1000000000000000L});
public static final BitSet FOLLOW_PAREN_RIGHT_in_classParent7689 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_visibilitySection__in_visibilitySection7780 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_visibility_in_visibilitySection_7838 = new BitSet(new long[]{0xAB0101BB8C06C162L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_visibilitySectionItem_in_visibilitySection_7840 = new BitSet(new long[]{0xAB0101BB8C06C162L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_visibilitySectionItem_in_visibilitySection_7874 = new BitSet(new long[]{0xAB0101BB8C06C162L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_fieldSection_in_visibilitySectionItem7919 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineInterface_in_visibilitySectionItem7952 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_methodResolutionClause_in_visibilitySectionItem7985 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_property_in_visibilitySectionItem8018 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constSection_in_visibilitySectionItem8051 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_innerTypeSection_in_visibilitySectionItem8084 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_fieldSection8220 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000002000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_fieldSectionKey_in_fieldSection8223 = new BitSet(new long[]{0xAB01013A0406C162L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_fieldDecl_in_fieldSection8225 = new BitSet(new long[]{0xAB01013A0406C162L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_fieldDecl_in_fieldSection8276 = new BitSet(new long[]{0xAB01013A0406C162L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_attributeList_in_fieldDecl8345 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclarationList_in_fieldDecl8348 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_fieldDecl8350 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_fieldDecl8352 = new BitSet(new long[]{0x0100002000000002L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_fieldDecl8354 = new BitSet(new long[]{0x0100002000000002L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_fieldDecl8357 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_classHelperType8459 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_HELPER_in_classHelperType8465 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000004L});
public static final BitSet FOLLOW_classParent_in_classHelperType8467 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_FOR_in_classHelperType8470 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReference_in_classHelperType8472 = new BitSet(new long[]{0xAB2101BB8C06C160L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_visibilitySection_in_classHelperType8474 = new BitSet(new long[]{0xAB2101BB8C06C160L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_END_in_classHelperType8477 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTERFACE_in_interfaceType8530 = new BitSet(new long[]{0x0020008108000002L,0x0A02000000000010L,0x000000000800000AL});
public static final BitSet FOLLOW_DISPINTERFACE_in_interfaceType8538 = new BitSet(new long[]{0x0020008108000002L,0x0A02000000000010L,0x000000000800000AL});
public static final BitSet FOLLOW_classParent_in_interfaceType8545 = new BitSet(new long[]{0x0020008108000002L,0x0202000000000010L,0x000000000800000AL});
public static final BitSet FOLLOW_interfaceGuid_in_interfaceType8549 = new BitSet(new long[]{0x0020008108000000L,0x0202000000000010L,0x000000000800000AL});
public static final BitSet FOLLOW_interfaceItems_in_interfaceType8552 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_END_in_interfaceType8555 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lbrack_in_interfaceGuid8609 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_interfaceGuid8611 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_rbrack_in_interfaceGuid8613 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interfaceItem_in_interfaceItems8675 = new BitSet(new long[]{0x0000008108000002L,0x0202000000000010L,0x000000000800000AL});
public static final BitSet FOLLOW_routineInterface_in_interfaceItem8740 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_property_in_interfaceItem8773 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OBJECT_in_objectType8828 = new BitSet(new long[]{0xAB2101BB8C06C160L,0x6ABB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_classParent_in_objectType8834 = new BitSet(new long[]{0xAB2101BB8C06C160L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_visibilitySection_in_objectType8837 = new BitSet(new long[]{0xAB2101BB8C06C160L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_END_in_objectType8840 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECORD_in_recordType8961 = new BitSet(new long[]{0xAB2101BB8E06C160L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_visibilitySection_in_recordType8967 = new BitSet(new long[]{0xAB2101BB8E06C160L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_recordVariantSection_in_recordType8970 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_END_in_recordType8973 = new BitSet(new long[]{0x0000000000000102L});
public static final BitSet FOLLOW_ALIGN_in_recordType8976 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_recordType8978 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CASE_in_recordVariantSection9025 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_recordVariantTag_in_recordVariantSection9031 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_OF_in_recordVariantSection9033 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_recordVariant_in_recordVariantSection9035 = new BitSet(new long[]{0xEB01017A0406C1E2L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_nameDeclaration_in_recordVariantTag9086 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_recordVariantTag9088 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReference_in_recordVariantTag9092 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionList_in_recordVariant9187 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_recordVariant9189 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
public static final BitSet FOLLOW_PAREN_LEFT_in_recordVariant9191 = new BitSet(new long[]{0xAB01013A0606C160L,0x72BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_fieldDecl_in_recordVariant9193 = new BitSet(new long[]{0xAB01013A0606C160L,0x72BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_recordVariantSection_in_recordVariant9196 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_PAREN_RIGHT_in_recordVariant9199 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_recordVariant9201 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECORD_in_recordHelperType9300 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_HELPER_in_recordHelperType9306 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_FOR_in_recordHelperType9308 = new BitSet(new long[]{0xEB01013A0406C160L,0x60BB0585100A0808L,0x00000003E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReferenceOrStringOrFile_in_recordHelperType9310 = new BitSet(new long[]{0xAB2101BB8C06C160L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_visibilitySection_in_recordHelperType9312 = new BitSet(new long[]{0xAB2101BB8C06C160L,0x62BB0585100A0818L,0x00000121E86EEC7BL,0x068E200000000100L});
public static final BitSet FOLLOW_END_in_recordHelperType9315 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeList_in_property9372 = new BitSet(new long[]{0x0000000008000000L,0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_CLASS_in_property9375 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_PROPERTY_in_property9378 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclaration_in_property9380 = new BitSet(new long[]{0x0000010810000000L,0x02000400000A0000L,0x0000000088800C00L,0x0600000000000000L});
public static final BitSet FOLLOW_propertyArray_in_property9382 = new BitSet(new long[]{0x0000010810000000L,0x00000400000A0000L,0x0000000080800C00L,0x0600000000000000L});
public static final BitSet FOLLOW_COLON_in_property9386 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_property9388 = new BitSet(new long[]{0x0000010800000000L,0x00000400000A0000L,0x0000000080800C00L,0x0600000000000000L});
public static final BitSet FOLLOW_propertyDirective_in_property9393 = new BitSet(new long[]{0x0000010800000000L,0x00000400000A0000L,0x0000000080800C00L,0x0600000000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_property9397 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lbrack_in_propertyArray9504 = new BitSet(new long[]{0xAB01013A8406C160L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068E200000000100L});
public static final BitSet FOLLOW_formalParameterList_in_propertyArray9507 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_rbrack_in_propertyArray9509 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_propertyDirective9558 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_propertyDefaultNoExpression_in_propertyDirective9560 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_propertyDefault_in_propertyDirective9593 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_propertyReadWrite_in_propertyDirective9626 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_propertyDispInterface_in_propertyDirective9659 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_propertyImplements_in_propertyDirective9692 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_propertyIndex_in_propertyDirective9725 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_propertyStored_in_propertyDirective9758 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NODEFAULT_in_propertyDirective9791 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFAULT_in_propertyDefaultNoExpression9829 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFAULT_in_propertyDefault9883 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_propertyDefault9889 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_READ_in_propertyReadWrite9938 = new BitSet(new long[]{0xEB01017A0406C160L,0x6ABB0785101A0808L,0x01400003E866EC71L,0x068C200000302380L});
public static final BitSet FOLLOW_WRITE_in_propertyReadWrite9946 = new BitSet(new long[]{0xEB01017A0406C160L,0x6ABB0785101A0808L,0x01400003E866EC71L,0x068C200000302380L});
public static final BitSet FOLLOW_primaryExpression_in_propertyReadWrite9953 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IMPLEMENTS_in_propertyImplements10000 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReference_in_propertyImplements10006 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_COMMA_in_propertyImplements10009 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReference_in_propertyImplements10011 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_INDEX_in_propertyIndex10065 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_propertyIndex10071 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STORED_in_propertyStored10122 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_propertyStored10128 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_READONLY_in_propertyDispInterface10172 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WRITEONLY_in_propertyDispInterface10205 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dispIDDirective_in_propertyDispInterface10238 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRICT_in_visibility10293 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_PROTECTED_in_visibility10296 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRICT_in_visibility10333 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_PRIVATE_in_visibility10336 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PUBLIC_in_visibility10373 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PUBLISHED_in_visibility10409 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AUTOMATED_in_visibility10445 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LESS_THAN_in_genericDefinition10532 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeParameterList_in_genericDefinition10534 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
public static final BitSet FOLLOW_GREATER_THAN_in_genericDefinition10536 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeParameter_in_typeParameterList10624 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_typeParameterList10627 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeParameter_in_typeParameterList10630 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_nameDeclaration_in_typeParameter10685 = new BitSet(new long[]{0x0000000030000002L});
public static final BitSet FOLLOW_COMMA_in_typeParameter10688 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclaration_in_typeParameter10690 = new BitSet(new long[]{0x0000000030000002L});
public static final BitSet FOLLOW_COLON_in_typeParameter10695 = new BitSet(new long[]{0xAB01013B0C06C160L,0x60BB0585100A0808L,0x00000001E066FC71L,0x068C200000000100L});
public static final BitSet FOLLOW_genericConstraint_in_typeParameter10697 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_COMMA_in_typeParameter10700 = new BitSet(new long[]{0xAB01013B0C06C160L,0x60BB0585100A0808L,0x00000001E066FC71L,0x068C200000000100L});
public static final BitSet FOLLOW_genericConstraint_in_typeParameter10702 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_typeReference_in_genericConstraint10877 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECORD_in_genericConstraint10910 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_genericConstraint10943 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONSTRUCTOR_in_genericConstraint10976 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LESS_THAN_in_genericArguments11025 = new BitSet(new long[]{0xEB01013A0406C160L,0x60BB0585100A0808L,0x00000003E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReferenceOrStringOrFile_in_genericArguments11027 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000100L});
public static final BitSet FOLLOW_COMMA_in_genericArguments11030 = new BitSet(new long[]{0xEB01013A0406C160L,0x60BB0585100A0808L,0x00000003E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReferenceOrStringOrFile_in_genericArguments11032 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000100L});
public static final BitSet FOLLOW_GREATER_THAN_in_genericArguments11036 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LESS_THAN_in_routineNameGenericArguments11125 = new BitSet(new long[]{0xEB01013A0406C160L,0x60BB0585100A0808L,0x00000003E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReferenceOrStringOrFile_in_routineNameGenericArguments11127 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000100L,0x0000000000800000L});
public static final BitSet FOLLOW_commaOrSemicolon_in_routineNameGenericArguments11130 = new BitSet(new long[]{0xEB01013A0406C160L,0x60BB0585100A0808L,0x00000003E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReferenceOrStringOrFile_in_routineNameGenericArguments11132 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000100L,0x0000000000800000L});
public static final BitSet FOLLOW_GREATER_THAN_in_routineNameGenericArguments11136 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNCTION_in_methodResolutionClause11290 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_PROCEDURE_in_methodResolutionClause11294 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameReference_in_methodResolutionClause11299 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_EQUAL_in_methodResolutionClause11301 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameReference_in_methodResolutionClause11305 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_methodResolutionClause11307 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineInterfaceHeading_in_routineInterface11473 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fullRoutineImplementation_in_routineImplementation11627 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_externalRoutine_in_routineImplementation11660 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forwardRoutine_in_routineImplementation11693 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineImplementationHeading_in_fullRoutineImplementation11733 = new BitSet(new long[]{0x0400008188202000L,0x0202000010000010L,0x0000012008080002L,0x0002000000000000L});
public static final BitSet FOLLOW_routineBody_in_fullRoutineImplementation11735 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_externalRoutineHeading_in_externalRoutine11933 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forwardRoutineHeading_in_forwardRoutine12094 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeList_in_routineInterfaceHeading12246 = new BitSet(new long[]{0x0000008108000000L,0x0002000000000010L,0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_routineInterfaceHeading12249 = new BitSet(new long[]{0x0000008100000000L,0x0002000000000010L,0x0000000000000002L});
public static final BitSet FOLLOW_routineKey_in_routineInterfaceHeading12252 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100E0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_routineDeclarationName_in_routineInterfaceHeading12254 = new BitSet(new long[]{0xAB01012014004040L,0x6830010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineParameters_in_routineInterfaceHeading12256 = new BitSet(new long[]{0xAB01012014004040L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineReturnType_in_routineInterfaceHeading12259 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirectiveSection_in_routineInterfaceHeading12262 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeList_in_routineImplementationHeading12641 = new BitSet(new long[]{0x0000008108000000L,0x0002000000000010L,0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_routineImplementationHeading12644 = new BitSet(new long[]{0x0000008100000000L,0x0002000000000010L,0x0000000000000002L});
public static final BitSet FOLLOW_routineKey_in_routineImplementationHeading12647 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_routineImplementationName_in_routineImplementationHeading12649 = new BitSet(new long[]{0xA301012014004040L,0x6830010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineParameters_in_routineImplementationHeading12651 = new BitSet(new long[]{0xA301012014004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineReturnType_in_routineImplementationHeading12654 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirectiveSection_in_routineImplementationHeading12657 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeList_in_externalRoutineHeading13042 = new BitSet(new long[]{0x0000008108000000L,0x0002000000000010L,0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_externalRoutineHeading13045 = new BitSet(new long[]{0x0000008100000000L,0x0002000000000010L,0x0000000000000002L});
public static final BitSet FOLLOW_routineKey_in_externalRoutineHeading13048 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_routineImplementationName_in_externalRoutineHeading13050 = new BitSet(new long[]{0xAB01012014004040L,0x6830010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineParameters_in_externalRoutineHeading13052 = new BitSet(new long[]{0xAB01012014004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineReturnType_in_externalRoutineHeading13055 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_externalDirectiveSection_in_externalRoutineHeading13058 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeList_in_forwardRoutineHeading13444 = new BitSet(new long[]{0x0000008108000000L,0x0002000000000010L,0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_in_forwardRoutineHeading13447 = new BitSet(new long[]{0x0000008100000000L,0x0002000000000010L,0x0000000000000002L});
public static final BitSet FOLLOW_routineKey_in_forwardRoutineHeading13450 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100E0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_routineDeclarationName_in_forwardRoutineHeading13452 = new BitSet(new long[]{0xA301012014004040L,0x6830010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineParameters_in_forwardRoutineHeading13454 = new BitSet(new long[]{0xA301012014004040L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineReturnType_in_forwardRoutineHeading13457 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_forwardDirectiveSection_in_forwardRoutineHeading13460 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_genericNameDeclaration_in_routineDeclarationName13882 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_specialOpNameDeclaration_in_routineDeclarationName13919 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineNameReference_in_routineImplementationName14031 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_routineReturnType14277 = new BitSet(new long[]{0xAB01013A0406C160L,0x62BB0585100A0808L,0x00000003E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_attributeList_in_routineReturnType14279 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000003E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_returnType_in_routineReturnType14282 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeReferenceOrString_in_returnType14351 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PAREN_LEFT_in_routineParameters14399 = new BitSet(new long[]{0xAB01013A8406C160L,0x72BB0585100A0808L,0x00000001E866EC71L,0x068E200000000100L});
public static final BitSet FOLLOW_formalParameterList_in_routineParameters14401 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_PAREN_RIGHT_in_routineParameters14404 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_formalParameter_in_formalParameterList14466 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_formalParameterList14469 = new BitSet(new long[]{0xAB01013A8406C160L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068E200000000100L});
public static final BitSet FOLLOW_formalParameter_in_formalParameterList14471 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_attributeList_in_formalParameter14539 = new BitSet(new long[]{0xAB01013A8406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068E200000000100L});
public static final BitSet FOLLOW_paramSpecifier_in_formalParameter14543 = new BitSet(new long[]{0xAB01013A0406C160L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_attributeList_in_formalParameter14547 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclarationList_in_formalParameter14552 = new BitSet(new long[]{0x0040000010000002L});
public static final BitSet FOLLOW_COLON_in_formalParameter14555 = new BitSet(new long[]{0xEB01013A0406C960L,0x61BB0585100A0808L,0x00000003E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_parameterType_in_formalParameter14557 = new BitSet(new long[]{0x0040000000000002L});
public static final BitSet FOLLOW_EQUAL_in_formalParameter14562 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_formalParameter14564 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_block_in_routineBody14794 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_routineBody14796 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeGroup_in_attributeList14863 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_lbrack_in_attributeGroup14956 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_attribute_in_attributeGroup14959 = new BitSet(new long[]{0xAB01013A2406C160L,0x64BB0585100A0808L,0x00000001F066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_COMMA_in_attributeGroup14961 = new BitSet(new long[]{0xAB01013A0406C160L,0x64BB0585100A0808L,0x00000001F066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_rbrack_in_attributeGroup14966 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSEMBLY_in_attribute15064 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_attribute15066 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameReference_in_attribute15070 = new BitSet(new long[]{0x0000000010000002L,0x0800000000000000L});
public static final BitSet FOLLOW_argumentList_in_attribute15072 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_COLON_in_attribute15076 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameReference_in_attribute15078 = new BitSet(new long[]{0x0000000010000002L,0x0800000000000000L});
public static final BitSet FOLLOW_argumentList_in_attribute15080 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_relationalExpression_in_expression15198 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_anonymousMethod_in_expression15231 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_additiveExpression_in_relationalExpression15281 = new BitSet(new long[]{0x0040000000000002L,0x0000100061040300L});
public static final BitSet FOLLOW_relationalOperator_in_relationalExpression15284 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0808L,0x01400003E866EC71L,0x068C200000302380L});
public static final BitSet FOLLOW_additiveExpression_in_relationalExpression15287 = new BitSet(new long[]{0x0040000000000002L,0x0000100061040300L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression15338 = new BitSet(new long[]{0x0000000000000002L,0x8004000800000000L,0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_addOperator_in_additiveExpression15341 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0808L,0x01400003E866EC71L,0x068C200000302380L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression15344 = new BitSet(new long[]{0x0000000000000002L,0x8004000800000000L,0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression15389 = new BitSet(new long[]{0x00000C0000001402L,0x0000003000000000L,0x0000000006000000L});
public static final BitSet FOLLOW_multOperator_in_multiplicativeExpression15392 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0808L,0x01400003E866EC71L,0x068C200000302380L});
public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression15395 = new BitSet(new long[]{0x00000C0000001402L,0x0000003000000000L,0x0000000006000000L});
public static final BitSet FOLLOW_unaryOperator_in_unaryExpression15449 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0808L,0x01400003E866EC71L,0x068C200000302380L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression15452 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primaryExpression_in_unaryExpression15485 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_atom_in_primaryExpression15533 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parenthesizedExpression_in_primaryExpression15577 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INHERITED_in_primaryExpression15610 = new BitSet(new long[]{0xAB01217A0406C162L,0x6ABB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameReference_in_primaryExpression15613 = new BitSet(new long[]{0x0000204000000002L,0x0A00000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_particleItem_in_primaryExpression15616 = new BitSet(new long[]{0x0000204000000002L,0x0A00000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_PAREN_LEFT_in_parenthesizedExpression15681 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_parenthesizedExpression15683 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_PAREN_RIGHT_in_parenthesizedExpression15685 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_particle_in_atom15761 = new BitSet(new long[]{0x0000204000000002L,0x0A00000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_particleItem_in_atom15763 = new BitSet(new long[]{0x0000204000000002L,0x0A00000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_intNum_in_particle15821 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_realNum_in_particle15854 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_textLiteral_in_particle15887 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nilLiteral_in_particle15920 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nameReference_in_particle15953 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arrayConstructor_in_particle15986 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_in_particle16019 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FILE_in_particle16052 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parenthesizedExpression_in_particle16085 = new BitSet(new long[]{0x0000204000000000L,0x0A00000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_particleItem_in_particle16087 = new BitSet(new long[]{0x0000204000000002L,0x0A00000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_DOT_in_particleItem16206 = new BitSet(new long[]{0xEFB197BB8E26FD60L,0x61BFCF9591FF889FL,0x000001F3E76FFE7FL,0x17AEF00000000100L});
public static final BitSet FOLLOW_extendedNameReference_in_particleItem16208 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_argumentList_in_particleItem16241 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arrayAccessor_in_particleItem16274 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEREFERENCE_in_particleItem16307 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lbrack_in_arrayAccessor16359 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expressionList_in_arrayAccessor16361 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_rbrack_in_arrayAccessor16363 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PAREN_LEFT_in_argumentList16456 = new BitSet(new long[]{0xEFB197FB8E26FDE0L,0xFBBFCF9D91FF889FL,0x014001F3EF6FFE7FL,0x17AEF00000302380L});
public static final BitSet FOLLOW_argument_in_argumentList16463 = new BitSet(new long[]{0x0000000020000000L,0x1000000000000000L});
public static final BitSet FOLLOW_COMMA_in_argumentList16466 = new BitSet(new long[]{0xEFB197FB8E26FDE0L,0xEBBFCF9D91FF889FL,0x014001F3EF6FFE7FL,0x17AEF00000302380L});
public static final BitSet FOLLOW_argument_in_argumentList16468 = new BitSet(new long[]{0x0000000020000000L,0x1000000000000000L});
public static final BitSet FOLLOW_COMMA_in_argumentList16472 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
public static final BitSet FOLLOW_PAREN_RIGHT_in_argumentList16477 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_argumentName_in_argument16534 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_argumentExpression_in_argument16537 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ident_in_argumentName16633 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSIGN_in_argumentName16635 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_keywords_in_argumentName16669 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSIGN_in_argumentName16671 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_argumentExpression16724 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_writeArguments_in_argumentExpression16726 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_writeArguments16778 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_writeArguments16781 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_COLON_in_writeArguments16784 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_writeArguments16787 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_anonymousMethodHeading_in_anonymousMethod16840 = new BitSet(new long[]{0x0400008188202000L,0x0202000010000010L,0x0000012008080002L,0x0002000000000000L});
public static final BitSet FOLLOW_block_in_anonymousMethod16842 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PROCEDURE_in_anonymousMethodHeading16898 = new BitSet(new long[]{0xAB01012004004042L,0x6830010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_routineParameters_in_anonymousMethodHeading16900 = new BitSet(new long[]{0xAB01012004004042L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_anonymousMethodHeading16905 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirective_in_anonymousMethodHeading16909 = new BitSet(new long[]{0xAB01012004004042L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_FUNCTION_in_anonymousMethodHeading16997 = new BitSet(new long[]{0x0000000010000000L,0x0800000000000000L});
public static final BitSet FOLLOW_routineParameters_in_anonymousMethodHeading16999 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_routineReturnType_in_anonymousMethodHeading17002 = new BitSet(new long[]{0xAB01012004004042L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_anonymousMethodHeading17006 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirective_in_anonymousMethodHeading17010 = new BitSet(new long[]{0xAB01012004004042L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_expression_in_expressionOrRange17115 = new BitSet(new long[]{0x0000400000000002L});
public static final BitSet FOLLOW_DOT_DOT_in_expressionOrRange17118 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_expressionOrRange17124 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_expressionList17178 = new BitSet(new long[]{0xEB01017A2406C1E2L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_COMMA_in_expressionList17181 = new BitSet(new long[]{0xEB01017A0406C1E2L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expressionOrRange_in_expressionOrRangeList17231 = new BitSet(new long[]{0xEB01017A2406C1E2L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_COMMA_in_expressionOrRangeList17234 = new BitSet(new long[]{0xEB01017A0406C1E2L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_singleLineTextLiteral_in_textLiteral17293 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_multilineTextLiteral_in_textLiteral17337 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkQuotedString_in_singleLineTextLiteral17392 = new BitSet(new long[]{0x0000004000000002L,0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_escapedCharacter_in_singleLineTextLiteral17395 = new BitSet(new long[]{0x0000004000000000L,0x0000000000000000L,0x0100000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_TkQuotedString_in_singleLineTextLiteral17398 = new BitSet(new long[]{0x0000004000000002L,0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_escapedCharacter_in_singleLineTextLiteral17402 = new BitSet(new long[]{0x0000004000000002L,0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_escapedCharacter_in_singleLineTextLiteral17436 = new BitSet(new long[]{0x0000004000000002L,0x0000000000000000L,0x0100000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_TkQuotedString_in_singleLineTextLiteral17440 = new BitSet(new long[]{0x0000004000000000L,0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_escapedCharacter_in_singleLineTextLiteral17442 = new BitSet(new long[]{0x0000004000000002L,0x0000000000000000L,0x0100000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_TkQuotedString_in_singleLineTextLiteral17447 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkMultilineString_in_multilineTextLiteral17493 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkCharacterEscapeCode_in_escapedCharacter17542 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEREFERENCE_in_escapedCharacter17575 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000080000000000L,0x0000000000000300L});
public static final BitSet FOLLOW_TkIdentifier_in_escapedCharacter17578 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkIntNumber_in_escapedCharacter17582 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkAnyChar_in_escapedCharacter17586 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NIL_in_nilLiteral17648 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lbrack_in_arrayConstructor17700 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEEBB0F8D101A0818L,0x01400003F866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expressionOrRangeList_in_arrayConstructor17702 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_rbrack_in_arrayConstructor17705 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_addOperator17804 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_addOperator17840 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OR_in_addOperator17876 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_XOR_in_addOperator17912 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MULTIPLY_in_multOperator17968 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIVIDE_in_multOperator18004 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIV_in_multOperator18040 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MOD_in_multOperator18076 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AND_in_multOperator18112 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHL_in_multOperator18148 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHR_in_multOperator18184 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AS_in_multOperator18220 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOT_in_unaryOperator18275 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_unaryOperator18311 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_unaryOperator18347 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ADDRESS_in_unaryOperator18383 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQUAL_in_relationalOperator18433 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GREATER_THAN_in_relationalOperator18469 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LESS_THAN_in_relationalOperator18505 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LESS_THAN_EQUAL_in_relationalOperator18541 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GREATER_THAN_EQUAL_in_relationalOperator18577 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOT_EQUAL_in_relationalOperator18613 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IN_in_relationalOperator18649 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IS_in_relationalOperator18685 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_constExpression18738 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_recordExpression_in_constExpression18771 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arrayExpression_in_constExpression18804 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PAREN_LEFT_in_recordExpression18853 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_recordExpressionItem_in_recordExpression18860 = new BitSet(new long[]{0xAB01013A0406C160L,0x70BB0585100A0808L,0x00000001E0E6EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_SEMICOLON_in_recordExpression18863 = new BitSet(new long[]{0xAB01013A0406C160L,0x70BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_PAREN_RIGHT_in_recordExpression18869 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ident_in_recordExpressionItem18914 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_recordExpressionItem18916 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_constExpression_in_recordExpressionItem18918 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PAREN_LEFT_in_arrayExpression19010 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xFABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_constExpression_in_arrayExpression19017 = new BitSet(new long[]{0xEB01017A2406C1E0L,0xFABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_COMMA_in_arrayExpression19020 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xFABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_PAREN_RIGHT_in_arrayExpression19027 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ifStatement_in_statement19087 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_varStatement_in_statement19120 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constStatement_in_statement19153 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_caseStatement_in_statement19186 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_repeatStatement_in_statement19219 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_whileStatement_in_statement19252 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forStatement_in_statement19285 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_withStatement_in_statement19318 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_tryStatement_in_statement19351 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_raiseStatement_in_statement19384 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assemblerStatement_in_statement19417 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_compoundStatement_in_statement19450 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_labelStatement_in_statement19483 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentStatement_in_statement19516 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionStatement_in_statement19549 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_gotoStatement_in_statement19582 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_ifStatement19636 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_ifStatement19642 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_THEN_in_ifStatement19644 = new BitSet(new long[]{0xEB11017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E867EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_ifStatement19646 = new BitSet(new long[]{0x0010000000000002L});
public static final BitSet FOLLOW_ELSE_in_ifStatement19650 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E867EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_ifStatement19652 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_in_varStatement19708 = new BitSet(new long[]{0xAB01013A0406C160L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_attributeList_in_varStatement19710 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclarationList_in_varStatement19713 = new BitSet(new long[]{0x0000000010010002L});
public static final BitSet FOLLOW_COLON_in_varStatement19716 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_varStatement19718 = new BitSet(new long[]{0x0000000000010002L});
public static final BitSet FOLLOW_ASSIGN_in_varStatement19723 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_varStatement19725 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONST_in_constStatement19835 = new BitSet(new long[]{0xAB01013A0406C160L,0x62BB0585100A0808L,0x00000001E866EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_attributeList_in_constStatement19837 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclaration_in_constStatement19840 = new BitSet(new long[]{0x0040000010000000L});
public static final BitSet FOLLOW_COLON_in_constStatement19843 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_constStatement19845 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_EQUAL_in_constStatement19849 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_constStatement19851 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CASE_in_caseStatement19957 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_caseStatement19963 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_OF_in_caseStatement19965 = new BitSet(new long[]{0xEB31017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_caseItem_in_caseStatement19967 = new BitSet(new long[]{0xEB31017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_elseBlock_in_caseStatement19970 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_END_in_caseStatement19973 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELSE_in_elseBlock20029 = new BitSet(new long[]{0xEB01017A8626E1E0L,0xEABB0F8D101A889CL,0x01400083E8E7EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statementList_in_elseBlock20035 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionOrRangeList_in_caseItem20092 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_caseItem20094 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E8E7EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_caseItem20097 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_caseItem20102 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REPEAT_in_repeatStatement20176 = new BitSet(new long[]{0xEB01017A8626E1E0L,0xEABB0F8D101A889CL,0x01400083E8E7EE73L,0x07AE600000302380L});
public static final BitSet FOLLOW_statementList_in_repeatStatement20182 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_UNTIL_in_repeatStatement20184 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_repeatStatement20186 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHILE_in_whileStatement20237 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_whileStatement20243 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_DO_in_whileStatement20245 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E867EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_whileStatement20247 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_forStatement20301 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068E200000000100L});
public static final BitSet FOLLOW_forVar_in_forStatement20307 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSIGN_in_forStatement20309 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_forStatement20311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_TO_in_forStatement20313 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_forStatement20315 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_DO_in_forStatement20317 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E867EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_forStatement20319 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_forStatement20353 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068E200000000100L});
public static final BitSet FOLLOW_forVar_in_forStatement20359 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSIGN_in_forStatement20361 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_forStatement20363 = new BitSet(new long[]{0x0000800000000000L});
public static final BitSet FOLLOW_DOWNTO_in_forStatement20365 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_forStatement20367 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_DO_in_forStatement20369 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E867EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_forStatement20371 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_forStatement20405 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068E200000000100L});
public static final BitSet FOLLOW_forVar_in_forStatement20411 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_IN_in_forStatement20413 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_forStatement20415 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_DO_in_forStatement20417 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E867EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_forStatement20419 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_in_forVar20479 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclaration_in_forVar20481 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_COLON_in_forVar20484 = new BitSet(new long[]{0xEB01017A0406C9E0L,0xEBBB0F8D101A0818L,0x01400003E966FC73L,0x068C200000302380L});
public static final BitSet FOLLOW_varType_in_forVar20486 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simpleNameReference_in_forVar20535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WITH_in_withStatement20598 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expressionList_in_withStatement20604 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_DO_in_withStatement20606 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E867EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_withStatement20608 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BEGIN_in_compoundStatement20657 = new BitSet(new long[]{0xEB21017A8626E1E0L,0xEABB0F8D101A889CL,0x01400083E8E7EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statementList_in_compoundStatement20663 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_END_in_compoundStatement20665 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_delimitedStatements_in_statementList20717 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_delimitedStatements20777 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E8E7EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_SEMICOLON_in_delimitedStatements20781 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E8E7EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_labelNameReference_in_labelStatement20838 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_labelStatement20840 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E867EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_labelStatement20842 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_assignmentStatement20934 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSIGN_in_assignmentStatement20936 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_assignmentStatement20942 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_expressionStatement20988 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GOTO_in_gotoStatement21051 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00400001E066EC71L,0x068C200000000380L});
public static final BitSet FOLLOW_labelNameReference_in_gotoStatement21057 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRY_in_tryStatement21110 = new BitSet(new long[]{0xEB81017A8626E1E0L,0xEABB0F8D101A889EL,0x01400083E8E7EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statementList_in_tryStatement21116 = new BitSet(new long[]{0x0080000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_exceptBlock_in_tryStatement21119 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_finallyBlock_in_tryStatement21123 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_END_in_tryStatement21126 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXCEPT_in_exceptBlock21180 = new BitSet(new long[]{0xEB01017A8626E1E0L,0xEABB0F8D101A889CL,0x01400083E8E7EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_handlerList_in_exceptBlock21186 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FINALLY_in_finallyBlock21239 = new BitSet(new long[]{0xEB01017A8626E1E0L,0xEABB0F8D101A889CL,0x01400083E8E7EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statementList_in_finallyBlock21245 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_handler_in_handlerList21299 = new BitSet(new long[]{0x0010000000000002L,0x0001000000000000L});
public static final BitSet FOLLOW_elseBlock_in_handlerList21302 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statementList_in_handlerList21336 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ON_in_handler21394 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclaration_in_handler21401 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_handler21403 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_typeReference_in_handler21408 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_DO_in_handler21410 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E8E7EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_handler21412 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_handler21416 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RAISE_in_raiseStatement21469 = new BitSet(new long[]{0xEB01017A0406C1E2L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_raiseStatement21475 = new BitSet(new long[]{0x0000000000020002L});
public static final BitSet FOLLOW_AT_in_raiseStatement21479 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_raiseStatement21482 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASM_in_assemblerStatement21531 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x7FFFFFFFFFFFFFFFL});
public static final BitSet FOLLOW_assemblerInstructions_in_assemblerStatement21537 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_END_in_assemblerStatement21539 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_implDirectiveSection21638 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_implDirectiveSection21641 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_implDirectiveSection21645 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_implDirectiveSection21679 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_implDirectiveSection21681 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_interfaceDirectiveSection21724 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirective_in_interfaceDirectiveSection21727 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_interfaceDirectiveSection21731 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_interfaceDirectiveSection21765 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirective_in_interfaceDirectiveSection21767 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_externalDirectiveSection21812 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_externalDirectiveSection21815 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_externalDirectiveSection21819 = new BitSet(new long[]{0x0800000000000000L});
public static final BitSet FOLLOW_externalDirective_in_externalDirectiveSection21822 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_externalDirectiveSection21825 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_externalDirectiveSection21828 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_externalDirectiveSection21831 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_externalDirectiveSection21865 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_externalDirectiveSection21867 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_externalDirectiveSection21871 = new BitSet(new long[]{0x0800000000000000L});
public static final BitSet FOLLOW_externalDirective_in_externalDirectiveSection21873 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_externalDirectiveSection21876 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_externalDirectiveSection21878 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_forwardDirectiveSection21923 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_forwardDirectiveSection21926 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_forwardDirectiveSection21930 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_FORWARD_in_forwardDirectiveSection21933 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_forwardDirectiveSection21936 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_forwardDirectiveSection21939 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_forwardDirectiveSection21942 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_forwardDirectiveSection21976 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_forwardDirectiveSection21978 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_forwardDirectiveSection21982 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_FORWARD_in_forwardDirectiveSection21984 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_forwardDirectiveSection21987 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_forwardDirectiveSection21989 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_OVERLOAD_in_implDirective22043 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REINTRODUCE_in_implDirective22076 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bindingDirective_in_implDirective22109 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_abstractDirective_in_implDirective22142 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_inlineDirective_in_implDirective22175 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_callConvention_in_implDirective22208 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_portabilityDirective_in_implDirective22241 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_oldCallConventionDirective_in_implDirective22274 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dispIDDirective_in_implDirective22307 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VARARGS_in_implDirective22340 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_UNSAFE_in_implDirective22374 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FORWARD_in_interfaceDirective22422 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_externalDirective_in_interfaceDirective22455 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_implDirective_in_interfaceDirective22488 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MESSAGE_in_bindingDirective22537 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_bindingDirective22539 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STATIC_in_bindingDirective22572 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DYNAMIC_in_bindingDirective22605 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OVERRIDE_in_bindingDirective22638 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VIRTUAL_in_bindingDirective22671 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEPRECATED_in_portabilityDirective23239 = new BitSet(new long[]{0x0000004000000002L,0x0000000000000000L,0x0100000000000000L,0x0000000000102000L});
public static final BitSet FOLLOW_textLiteral_in_portabilityDirective23242 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXPERIMENTAL_in_portabilityDirective23276 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLATFORM_in_portabilityDirective23309 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LIBRARY_in_portabilityDirective23342 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTERNAL_in_externalDirective23390 = new BitSet(new long[]{0xEB01017A0406C1E2L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_dllName_in_externalDirective23393 = new BitSet(new long[]{0x0000001000000002L,0x0000008000080000L});
public static final BitSet FOLLOW_externalSpecifier_in_externalDirective23396 = new BitSet(new long[]{0x0000001000000002L,0x0000008000080000L});
public static final BitSet FOLLOW_expression_in_dllName23457 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NAME_in_externalSpecifier23505 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_externalSpecifier23508 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INDEX_in_externalSpecifier23541 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_externalSpecifier23544 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DELAYED_in_externalSpecifier23578 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DISPID_in_dispIDDirective23629 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_dispIDDirective23631 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkIdentifier_in_ident23695 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_keywordsUsedAsNames_in_ident23728 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nameDeclaration_in_nameDeclarationList25200 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_COMMA_in_nameDeclarationList25203 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclaration_in_nameDeclarationList25205 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_ident_in_nameDeclaration25275 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ident_in_genericNameDeclaration25329 = new BitSet(new long[]{0x0000200000000002L,0x0000000020000000L});
public static final BitSet FOLLOW_DOT_in_genericNameDeclaration25332 = new BitSet(new long[]{0xEFB197BB8E26FD60L,0x61BFCF9591FF889FL,0x000001F3E76FFE7FL,0x17AEF00000000100L});
public static final BitSet FOLLOW_extendedIdent_in_genericNameDeclaration25334 = new BitSet(new long[]{0x0000200000000002L,0x0000000020000000L});
public static final BitSet FOLLOW_genericDefinition_in_genericNameDeclaration25338 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ident_in_qualifiedNameDeclaration25426 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_DOT_in_qualifiedNameDeclaration25429 = new BitSet(new long[]{0xEFB197BB8E26FD60L,0x61BFCF9591FF889FL,0x000001F3E76FFE7FL,0x17AEF00000000100L});
public static final BitSet FOLLOW_extendedIdent_in_qualifiedNameDeclaration25431 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_specialOperatorName_in_specialOpNameDeclaration25517 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IN_in_specialOperatorName25603 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ident_in_nameReference25661 = new BitSet(new long[]{0x0000200000000002L,0x0000000020000000L});
public static final BitSet FOLLOW_genericArguments_in_nameReference25663 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_DOT_in_nameReference25667 = new BitSet(new long[]{0xEFB197BB8E26FD60L,0x61BFCF9591FF889FL,0x000001F3E76FFE7FL,0x17AEF00000000100L});
public static final BitSet FOLLOW_extendedNameReference_in_nameReference25669 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ident_in_simpleNameReference25767 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_extendedIdent_in_extendedNameReference25851 = new BitSet(new long[]{0x0000200000000002L,0x0000000020000000L});
public static final BitSet FOLLOW_genericArguments_in_extendedNameReference25853 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_DOT_in_extendedNameReference25857 = new BitSet(new long[]{0xEFB197BB8E26FD60L,0x61BFCF9591FF889FL,0x000001F3E76FFE7FL,0x17AEF00000000100L});
public static final BitSet FOLLOW_extendedNameReference_in_extendedNameReference25859 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ident_in_routineNameReference25956 = new BitSet(new long[]{0x0000200000000002L,0x0000000020000000L});
public static final BitSet FOLLOW_routineNameGenericArguments_in_routineNameReference25958 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_DOT_in_routineNameReference25962 = new BitSet(new long[]{0xEFB197BB8E26FD60L,0x61BFCF9591FF889FL,0x000001F3E76FFE7FL,0x17AEF00000000100L});
public static final BitSet FOLLOW_extendedRoutineNameReference_in_routineNameReference25964 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_extendedIdent_in_extendedRoutineNameReference26053 = new BitSet(new long[]{0x0000200000000002L,0x0000000020000000L});
public static final BitSet FOLLOW_routineNameGenericArguments_in_extendedRoutineNameReference26055 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_DOT_in_extendedRoutineNameReference26059 = new BitSet(new long[]{0xEFB197BB8E26FD60L,0x61BFCF9591FF889FL,0x000001F3E76FFE7FL,0x17AEF00000000100L});
public static final BitSet FOLLOW_extendedRoutineNameReference_in_extendedRoutineNameReference26061 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ident_in_extendedIdent26165 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_keywords_in_extendedIdent26198 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ident_in_labelIdent26259 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkIntNumber_in_labelIdent26292 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkHexNumber_in_labelIdent26331 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkBinaryNumber_in_labelIdent26370 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_labelIdent_in_labelNameDeclaration26421 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_labelIdent_in_labelNameReference26479 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkIntNumber_in_intNum26552 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkHexNumber_in_intNum26588 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkBinaryNumber_in_intNum26624 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkRealNumber_in_realNum26685 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineImplementation_in_synpred37_Delphi2487 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineInterface_in_synpred43_Delphi2737 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constDeclaration_in_synpred46_Delphi2903 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeList_in_synpred49_Delphi3043 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclaration_in_synpred49_Delphi3046 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_synpred49_Delphi3048 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_fixedArrayType_in_synpred49_Delphi3050 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_EQUAL_in_synpred49_Delphi3052 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
public static final BitSet FOLLOW_arrayExpression_in_synpred49_Delphi3054 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_synpred49_Delphi3056 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred49_Delphi3059 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeDeclaration_in_synpred53_Delphi3272 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeDeclaration_in_synpred54_Delphi3328 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_varDeclaration_in_synpred58_Delphi3512 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_portabilityDirective_in_synpred60_Delphi3573 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeList_in_synpred63_Delphi3564 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068C200000000100L});
public static final BitSet FOLLOW_nameDeclarationList_in_synpred63_Delphi3567 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_synpred63_Delphi3569 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_fixedArrayType_in_synpred63_Delphi3571 = new BitSet(new long[]{0x0140002000000020L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_synpred63_Delphi3573 = new BitSet(new long[]{0x0140002000000020L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_arrayVarValueSpec_in_synpred63_Delphi3576 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_portabilityDirective_in_synpred63_Delphi3579 = new BitSet(new long[]{0x0100002000000000L,0x4000000080000000L,0x0000000000800000L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred63_Delphi3582 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_portabilityDirective_in_synpred65_Delphi3672 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fullFileType_in_synpred77_Delphi4178 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classHelperType_in_synpred78_Delphi4211 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classReferenceType_in_synpred79_Delphi4244 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classType_in_synpred80_Delphi4277 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_recordType_in_synpred83_Delphi4376 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_recordHelperType_in_synpred84_Delphi4409 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointerType_in_synpred85_Delphi4442 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fullStringType_in_synpred86_Delphi4475 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedureType_in_synpred87_Delphi4508 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subRangeType_in_synpred88_Delphi4541 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeOfType_in_synpred89_Delphi4574 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_strongAliasType_in_synpred90_Delphi4607 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_weakAliasType_in_synpred91_Delphi4640 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumType_in_synpred92_Delphi4673 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fullStringType_in_synpred95_Delphi4833 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fullFileType_in_synpred96_Delphi4866 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointerType_in_synpred98_Delphi4932 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedureType_in_synpred99_Delphi4965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subRangeType_in_synpred100_Delphi4998 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeReference_in_synpred101_Delphi5031 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumType_in_synpred102_Delphi5064 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lbrack_in_synpred114_Delphi6249 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_synpred114_Delphi6251 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_rbrack_in_synpred114_Delphi6253 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_procedureOfObject_in_synpred115_Delphi6307 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred118_Delphi6433 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirective_in_synpred118_Delphi6437 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineParameters_in_synpred119_Delphi6603 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred122_Delphi6611 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirective_in_synpred122_Delphi6615 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineParameters_in_synpred124_Delphi6656 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred126_Delphi6661 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirective_in_synpred126_Delphi6665 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_visibilitySectionItem_in_synpred140_Delphi7840 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_visibilitySectionItem_in_synpred142_Delphi7874 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fieldSection_in_synpred143_Delphi7919 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineInterface_in_synpred144_Delphi7952 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_methodResolutionClause_in_synpred145_Delphi7985 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_property_in_synpred146_Delphi8018 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fieldDecl_in_synpred150_Delphi8225 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fieldDecl_in_synpred152_Delphi8276 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interfaceGuid_in_synpred160_Delphi8549 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_routineInterface_in_synpred164_Delphi8740 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALIGN_in_synpred169_Delphi8976 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_synpred169_Delphi8978 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fullRoutineImplementation_in_synpred209_Delphi11627 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_externalRoutine_in_synpred210_Delphi11660 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_attributeGroup_in_synpred242_Delphi14863 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSEMBLY_in_synpred245_Delphi15064 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_COLON_in_synpred245_Delphi15066 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_relationalOperator_in_synpred250_Delphi15284 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0808L,0x01400003E866EC71L,0x068C200000302380L});
public static final BitSet FOLLOW_additiveExpression_in_synpred250_Delphi15287 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_addOperator_in_synpred251_Delphi15341 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0808L,0x01400003E866EC71L,0x068C200000302380L});
public static final BitSet FOLLOW_multiplicativeExpression_in_synpred251_Delphi15344 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_atom_in_synpred254_Delphi15533 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parenthesizedExpression_in_synpred255_Delphi15577 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nameReference_in_synpred256_Delphi15613 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_particleItem_in_synpred257_Delphi15616 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nameReference_in_synpred258_Delphi15613 = new BitSet(new long[]{0x0000204000000002L,0x0A00000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_particleItem_in_synpred258_Delphi15616 = new BitSet(new long[]{0x0000204000000002L,0x0A00000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_particleItem_in_synpred259_Delphi15763 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_particleItem_in_synpred268_Delphi16087 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ident_in_synpred276_Delphi16633 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSIGN_in_synpred276_Delphi16635 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_escapedCharacter_in_synpred293_Delphi17395 = new BitSet(new long[]{0x0000004000000000L,0x0000000000000000L,0x0100000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_TkQuotedString_in_synpred293_Delphi17398 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_escapedCharacter_in_synpred294_Delphi17402 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_escapedCharacter_in_synpred296_Delphi17436 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_escapedCharacter_in_synpred297_Delphi17442 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TkQuotedString_in_synpred298_Delphi17440 = new BitSet(new long[]{0x0000004000000000L,0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_escapedCharacter_in_synpred298_Delphi17442 = new BitSet(new long[]{0x0000004000000002L,0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_TkQuotedString_in_synpred299_Delphi17447 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_synpred324_Delphi18738 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_recordExpression_in_synpred325_Delphi18771 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_labelStatement_in_synpred342_Delphi19483 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentStatement_in_synpred343_Delphi19516 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionStatement_in_synpred344_Delphi19549 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_synpred345_Delphi19646 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_synpred346_Delphi19652 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELSE_in_synpred347_Delphi19650 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E867EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_synpred347_Delphi19652 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_synpred355_Delphi20097 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_synpred357_Delphi20247 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_synpred358_Delphi20319 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_synpred359_Delphi20301 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068E200000000100L});
public static final BitSet FOLLOW_forVar_in_synpred359_Delphi20307 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSIGN_in_synpred359_Delphi20309 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_synpred359_Delphi20311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
public static final BitSet FOLLOW_TO_in_synpred359_Delphi20313 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_synpred359_Delphi20315 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_DO_in_synpred359_Delphi20317 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E867EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_synpred359_Delphi20319 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_synpred360_Delphi20371 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_synpred361_Delphi20353 = new BitSet(new long[]{0xAB01013A0406C160L,0x60BB0585100A0808L,0x00000001E066EC71L,0x068E200000000100L});
public static final BitSet FOLLOW_forVar_in_synpred361_Delphi20359 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSIGN_in_synpred361_Delphi20361 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_synpred361_Delphi20363 = new BitSet(new long[]{0x0000800000000000L});
public static final BitSet FOLLOW_DOWNTO_in_synpred361_Delphi20365 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_synpred361_Delphi20367 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_DO_in_synpred361_Delphi20369 = new BitSet(new long[]{0xEB01017A8626E1E2L,0xEABB0F8D101A889CL,0x01400083E867EE73L,0x07AE200000302380L});
public static final BitSet FOLLOW_statement_in_synpred361_Delphi20371 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_synpred362_Delphi20419 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_synpred365_Delphi20608 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_synpred369_Delphi20842 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_handler_in_synpred373_Delphi21299 = new BitSet(new long[]{0x0010000000000002L,0x0001000000000000L});
public static final BitSet FOLLOW_elseBlock_in_synpred373_Delphi21302 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_synpred377_Delphi21475 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_in_synpred378_Delphi21479 = new BitSet(new long[]{0xEB01017A0406C1E0L,0xEABB0F8D101A0818L,0x01400003E866EC73L,0x068C200000302380L});
public static final BitSet FOLLOW_expression_in_synpred378_Delphi21482 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred383_Delphi21638 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_synpred383_Delphi21641 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred383_Delphi21645 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred387_Delphi21724 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_interfaceDirective_in_synpred387_Delphi21727 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred387_Delphi21731 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred394_Delphi21812 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_synpred394_Delphi21815 = new BitSet(new long[]{0xAB01012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred394_Delphi21819 = new BitSet(new long[]{0x0800000000000000L});
public static final BitSet FOLLOW_externalDirective_in_synpred394_Delphi21822 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred394_Delphi21825 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_synpred394_Delphi21828 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred394_Delphi21831 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred402_Delphi21923 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_synpred402_Delphi21926 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400008L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred402_Delphi21930 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_FORWARD_in_synpred402_Delphi21933 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred402_Delphi21936 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x000000006020C000L,0x008C200000000000L});
public static final BitSet FOLLOW_implDirective_in_synpred402_Delphi21939 = new BitSet(new long[]{0xA301012004004040L,0x6030010580400000L,0x0000000060A0C000L,0x008C200000000000L});
public static final BitSet FOLLOW_SEMICOLON_in_synpred402_Delphi21942 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_textLiteral_in_synpred431_Delphi23242 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dllName_in_synpred435_Delphi23393 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_externalSpecifier_in_synpred436_Delphi23396 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_genericArguments_in_synpred625_Delphi25663 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_synpred626_Delphi25667 = new BitSet(new long[]{0xEFB197BB8E26FD60L,0x61BFCF9591FF889FL,0x000001F3E76FFE7FL,0x17AEF00000000100L});
public static final BitSet FOLLOW_extendedNameReference_in_synpred626_Delphi25669 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_genericArguments_in_synpred627_Delphi25853 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_synpred628_Delphi25857 = new BitSet(new long[]{0xEFB197BB8E26FD60L,0x61BFCF9591FF889FL,0x000001F3E76FFE7FL,0x17AEF00000000100L});
public static final BitSet FOLLOW_extendedNameReference_in_synpred628_Delphi25859 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ident_in_synpred633_Delphi26165 = new BitSet(new long[]{0x0000000000000002L});
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy