AcslParser.java
// $ANTLR 3.5.2 AcslParser.g 2026-08-23 21:45:09
package dev.civl.abc.front.c.parse;
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("all")
public class AcslParser extends Parser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "AMPERSAND", "AND", "ANNOTATION_END",
"ANNOTATION_START", "ARROW", "ASSIGN", "AT", "BITANDEQ", "BITOR", "BITOREQ",
"BITXOR", "BITXOREQ", "BLOCK_COMMENT", "BLOCK_COMMENT_TAIL", "BinaryExponentPart",
"CChar", "CHARACTER_CONSTANT", "COLON", "COMMA", "COMMENT", "DEFINE",
"DEFINED", "DIV", "DIVEQ", "DOT", "DOTDOT", "DecimalConstant", "DecimalFloatingConstant",
"Digit", "ELIF", "ELLIPSIS", "ELSE", "ENDIF", "EQUALS", "EQUIV_ACSL",
"ERROR", "EXTENDED_IDENTIFIER", "EscapeSequence", "ExponentPart", "FLOATING_CONSTANT",
"FloatingSuffix", "FractionalConstant", "GT", "GTE", "HASH", "HASHHASH",
"HexEscape", "HexFractionalConstant", "HexPrefix", "HexQuad", "HexadecimalConstant",
"HexadecimalDigit", "HexadecimalFloatingConstant", "IDENTIFIER", "IF",
"IFDEF", "IFNDEF", "IMPLIES", "IMPLIES_ACSL", "INCLUDE", "INLINE_ANNOTATION_START",
"INLINE_COMMENT", "INLINE_COMMENT_TAIL", "INTEGER_CONSTANT", "IdentifierNonDigit",
"IntegerSuffix", "LCURLY", "LEXCON", "LINE", "LPAREN", "LSLIST", "LSQUARE",
"LT", "LTE", "LongLongSuffix", "LongSuffix", "MINUSMINUS", "MOD", "MODEQ",
"NEQ", "NEWLINE", "NOT", "NonDigit", "NonZeroDigit", "OR", "OTHER", "OctalConstant",
"OctalDigit", "OctalEscape", "PLUS", "PLUSEQ", "PLUSPLUS", "PP_NUMBER",
"PRAGMA", "QMARK", "RCURLY", "REXCON", "RPAREN", "RSLIST", "RSQUARE",
"SChar", "SEMI", "SHIFTLEFT", "SHIFTLEFTEQ", "SHIFTRIGHT", "SHIFTRIGHTEQ",
"STAR", "STAREQ", "STRING_LITERAL", "SUB", "SUBEQ", "TILDE", "UNDEF",
"UniversalCharacterName", "UnsignedSuffix", "WS", "XOR_ACSL", "Zero",
"ABSTRACT", "ALIGNAS", "ALIGNOF", "ASM", "ASSIGNS", "ATOMIC", "AUTO",
"BIG_O", "BODY", "BOOL", "BREAK", "CALLS", "CASE", "CATCH", "CHAR", "CHOOSE",
"CIVLATOMIC", "CIVLFOR", "COLLECTIVE", "COMPLEX", "CONST", "CONTIN", "CONTINUE",
"DEFAULT", "DEPENDS", "DERIV", "DEVICE", "DIFFERENTIABLE", "DO", "DOMAIN",
"DOUBLE", "ENSURES", "ENUM", "EXISTS", "EXPR", "EXTERN", "FATOMIC", "FILE",
"FLOAT", "FOR", "FORALL", "GENERIC", "GLOBAL", "GOTO", "GUARD", "HERE",
"IMAGINARY", "INLINE", "INPUT", "INT", "INVARIANT", "LAMBDA", "LONG",
"MEM_TYPE", "NORETURN", "ORIGINAL", "OUTPUT", "PARAMLIST", "PARFOR", "PELSE",
"PIF", "PPRAGMA", "PROCNULL", "PURE", "RANGE", "READS", "REAL", "REGISTER",
"REQUIRES", "RESTRICT", "RESULT", "RETURN", "RUN", "SCOPEOF", "SELF",
"SEQUENCE", "SHARED", "SHORT", "SIGNED", "SIZEOF", "SPAWN", "STATE_F",
"STATIC", "STATICASSERT", "STRUCT", "SWITCH", "SYSTEM", "TEXT_BLOCK",
"THREADLOCAL", "TYPEDEF", "TYPEOF", "UNIFORM", "UNION", "UNSIGNED", "VOID",
"VOLATILE", "WHEN", "WHILE", "ABSENT", "ABSENT_EVENT_ENTER", "ABSENT_EVENT_EXIT",
"ABSENT_EVENT_SENDFROM", "ABSENT_EVENT_SENDTO", "ABSTRACT_DECLARATOR",
"ACCESS_ACSL", "ALLOC", "ANYACT", "ARGUMENT_LIST", "ARRAY_SUFFIX", "ASSERT_ACSL",
"ASSIGNS_ACSL", "ASSUMES_ACSL", "BEHAVIOR", "BEHAVIOR_BODY", "BEHAVIOR_COMPLETE",
"BEHAVIOR_DISJOINT", "BEQUIV_ACSL", "BIMPLIES_ACSL", "BINDER", "BINDER_LIST",
"BOOLEAN", "CALL_ACSL", "CAST", "CLAUSE_BEHAVIOR", "CLAUSE_COMPLETE",
"CLAUSE_NORMAL", "CONTRACT", "C_TYPE", "DEPENDSON", "DIRECT_ABSTRACT_DECLARATOR",
"ENSURES_ACSL", "EVENT_BASE", "EVENT_INTS", "EVENT_LIST", "EVENT_PARENTHESIZED",
"EVENT_PLUS", "EVENT_SUB", "EXECUTES_WHEN", "EXISTS_ACSL", "FALSE_ACSL",
"FOCUS_ASSERT", "FOCUS_LOOP", "FOCUS_ORDERED_STATEMENT", "FORALL_ACSL",
"FREES", "FUNC_CALL", "FUNC_CONTRACT", "FUNC_CONTRACT_BLOCK", "ID_LIST",
"INDEX", "INTEGER", "INTER", "LAMBDA_ACSL", "LOGIC_FUNCTIONS", "LOGIC_FUNCTION_BODY",
"LOGIC_FUNCTION_CLAUSE", "LOGIC_TYPE", "LOOP_ALLOC", "LOOP_ASSIGNS", "LOOP_BEHAVIOR",
"LOOP_CLAUSE", "LOOP_CONTRACT", "LOOP_CONTRACT_BLOCK", "LOOP_FOCUS_HEAD",
"LOOP_FOCUS_NEG_SINGLETON", "LOOP_FOCUS_POS_SINGLETON", "LOOP_FOCUS_RANGE",
"LOOP_FREE", "LOOP_INVARIANT", "LOOP_VARIANT", "MAX", "MIN", "NOTHING",
"NULL_ACSL", "NUMOF", "OBJECT_OF", "OLD", "OPERATOR", "POINTER", "PREDICATE_CLAUSE",
"PROD", "QUANTIFIED", "QUANTIFIED_EXT", "READS_ACSL", "READ_ACSL", "REAL_ACSL",
"RELCHAIN", "REQUIRES_ACSL", "RESULT_ACSL", "SET_BINDERS", "SET_SIMPLE",
"SIZEOF_EXPR", "SIZEOF_TYPE", "SPECIFIER_QUALIFIER_LIST", "SUM", "TERMINATES",
"TERM_PARENTHESIZED", "TRANSFORM", "TRANSFORM_CONTRACT", "TRANSFORM_CONTRACT_BLOCK",
"TRUE_ACSL", "TYPE_BUILTIN", "TYPE_ID", "UNION_ACSL", "VALID", "VAR_ID",
"VAR_ID_BASE", "VAR_ID_SQUARE", "VAR_ID_STAR", "WRITE_ACSL"
};
public static final int EOF=-1;
public static final int AMPERSAND=4;
public static final int AND=5;
public static final int ANNOTATION_END=6;
public static final int ANNOTATION_START=7;
public static final int ARROW=8;
public static final int ASSIGN=9;
public static final int AT=10;
public static final int BITANDEQ=11;
public static final int BITOR=12;
public static final int BITOREQ=13;
public static final int BITXOR=14;
public static final int BITXOREQ=15;
public static final int BLOCK_COMMENT=16;
public static final int BLOCK_COMMENT_TAIL=17;
public static final int BinaryExponentPart=18;
public static final int CChar=19;
public static final int CHARACTER_CONSTANT=20;
public static final int COLON=21;
public static final int COMMA=22;
public static final int COMMENT=23;
public static final int DEFINE=24;
public static final int DEFINED=25;
public static final int DIV=26;
public static final int DIVEQ=27;
public static final int DOT=28;
public static final int DOTDOT=29;
public static final int DecimalConstant=30;
public static final int DecimalFloatingConstant=31;
public static final int Digit=32;
public static final int ELIF=33;
public static final int ELLIPSIS=34;
public static final int ELSE=35;
public static final int ENDIF=36;
public static final int EQUALS=37;
public static final int EQUIV_ACSL=38;
public static final int ERROR=39;
public static final int EXTENDED_IDENTIFIER=40;
public static final int EscapeSequence=41;
public static final int ExponentPart=42;
public static final int FLOATING_CONSTANT=43;
public static final int FloatingSuffix=44;
public static final int FractionalConstant=45;
public static final int GT=46;
public static final int GTE=47;
public static final int HASH=48;
public static final int HASHHASH=49;
public static final int HexEscape=50;
public static final int HexFractionalConstant=51;
public static final int HexPrefix=52;
public static final int HexQuad=53;
public static final int HexadecimalConstant=54;
public static final int HexadecimalDigit=55;
public static final int HexadecimalFloatingConstant=56;
public static final int IDENTIFIER=57;
public static final int IF=58;
public static final int IFDEF=59;
public static final int IFNDEF=60;
public static final int IMPLIES=61;
public static final int IMPLIES_ACSL=62;
public static final int INCLUDE=63;
public static final int INLINE_ANNOTATION_START=64;
public static final int INLINE_COMMENT=65;
public static final int INLINE_COMMENT_TAIL=66;
public static final int INTEGER_CONSTANT=67;
public static final int IdentifierNonDigit=68;
public static final int IntegerSuffix=69;
public static final int LCURLY=70;
public static final int LEXCON=71;
public static final int LINE=72;
public static final int LPAREN=73;
public static final int LSLIST=74;
public static final int LSQUARE=75;
public static final int LT=76;
public static final int LTE=77;
public static final int LongLongSuffix=78;
public static final int LongSuffix=79;
public static final int MINUSMINUS=80;
public static final int MOD=81;
public static final int MODEQ=82;
public static final int NEQ=83;
public static final int NEWLINE=84;
public static final int NOT=85;
public static final int NonDigit=86;
public static final int NonZeroDigit=87;
public static final int OR=88;
public static final int OTHER=89;
public static final int OctalConstant=90;
public static final int OctalDigit=91;
public static final int OctalEscape=92;
public static final int PLUS=93;
public static final int PLUSEQ=94;
public static final int PLUSPLUS=95;
public static final int PP_NUMBER=96;
public static final int PRAGMA=97;
public static final int QMARK=98;
public static final int RCURLY=99;
public static final int REXCON=100;
public static final int RPAREN=101;
public static final int RSLIST=102;
public static final int RSQUARE=103;
public static final int SChar=104;
public static final int SEMI=105;
public static final int SHIFTLEFT=106;
public static final int SHIFTLEFTEQ=107;
public static final int SHIFTRIGHT=108;
public static final int SHIFTRIGHTEQ=109;
public static final int STAR=110;
public static final int STAREQ=111;
public static final int STRING_LITERAL=112;
public static final int SUB=113;
public static final int SUBEQ=114;
public static final int TILDE=115;
public static final int UNDEF=116;
public static final int UniversalCharacterName=117;
public static final int UnsignedSuffix=118;
public static final int WS=119;
public static final int XOR_ACSL=120;
public static final int Zero=121;
public static final int ABSTRACT=122;
public static final int ALIGNAS=123;
public static final int ALIGNOF=124;
public static final int ASM=125;
public static final int ASSIGNS=126;
public static final int ATOMIC=127;
public static final int AUTO=128;
public static final int BIG_O=129;
public static final int BODY=130;
public static final int BOOL=131;
public static final int BREAK=132;
public static final int CALLS=133;
public static final int CASE=134;
public static final int CATCH=135;
public static final int CHAR=136;
public static final int CHOOSE=137;
public static final int CIVLATOMIC=138;
public static final int CIVLFOR=139;
public static final int COLLECTIVE=140;
public static final int COMPLEX=141;
public static final int CONST=142;
public static final int CONTIN=143;
public static final int CONTINUE=144;
public static final int DEFAULT=145;
public static final int DEPENDS=146;
public static final int DERIV=147;
public static final int DEVICE=148;
public static final int DIFFERENTIABLE=149;
public static final int DO=150;
public static final int DOMAIN=151;
public static final int DOUBLE=152;
public static final int ENSURES=153;
public static final int ENUM=154;
public static final int EXISTS=155;
public static final int EXPR=156;
public static final int EXTERN=157;
public static final int FATOMIC=158;
public static final int FILE=159;
public static final int FLOAT=160;
public static final int FOR=161;
public static final int FORALL=162;
public static final int GENERIC=163;
public static final int GLOBAL=164;
public static final int GOTO=165;
public static final int GUARD=166;
public static final int HERE=167;
public static final int IMAGINARY=168;
public static final int INLINE=169;
public static final int INPUT=170;
public static final int INT=171;
public static final int INVARIANT=172;
public static final int LAMBDA=173;
public static final int LONG=174;
public static final int MEM_TYPE=175;
public static final int NORETURN=176;
public static final int ORIGINAL=177;
public static final int OUTPUT=178;
public static final int PARAMLIST=179;
public static final int PARFOR=180;
public static final int PELSE=181;
public static final int PIF=182;
public static final int PPRAGMA=183;
public static final int PROCNULL=184;
public static final int PURE=185;
public static final int RANGE=186;
public static final int READS=187;
public static final int REAL=188;
public static final int REGISTER=189;
public static final int REQUIRES=190;
public static final int RESTRICT=191;
public static final int RESULT=192;
public static final int RETURN=193;
public static final int RUN=194;
public static final int SCOPEOF=195;
public static final int SELF=196;
public static final int SEQUENCE=197;
public static final int SHARED=198;
public static final int SHORT=199;
public static final int SIGNED=200;
public static final int SIZEOF=201;
public static final int SPAWN=202;
public static final int STATE_F=203;
public static final int STATIC=204;
public static final int STATICASSERT=205;
public static final int STRUCT=206;
public static final int SWITCH=207;
public static final int SYSTEM=208;
public static final int TEXT_BLOCK=209;
public static final int THREADLOCAL=210;
public static final int TYPEDEF=211;
public static final int TYPEOF=212;
public static final int UNIFORM=213;
public static final int UNION=214;
public static final int UNSIGNED=215;
public static final int VOID=216;
public static final int VOLATILE=217;
public static final int WHEN=218;
public static final int WHILE=219;
public static final int ABSENT=220;
public static final int ABSENT_EVENT_ENTER=221;
public static final int ABSENT_EVENT_EXIT=222;
public static final int ABSENT_EVENT_SENDFROM=223;
public static final int ABSENT_EVENT_SENDTO=224;
public static final int ABSTRACT_DECLARATOR=225;
public static final int ACCESS_ACSL=226;
public static final int ALLOC=227;
public static final int ANYACT=228;
public static final int ARGUMENT_LIST=229;
public static final int ARRAY_SUFFIX=230;
public static final int ASSERT_ACSL=231;
public static final int ASSIGNS_ACSL=232;
public static final int ASSUMES_ACSL=233;
public static final int BEHAVIOR=234;
public static final int BEHAVIOR_BODY=235;
public static final int BEHAVIOR_COMPLETE=236;
public static final int BEHAVIOR_DISJOINT=237;
public static final int BEQUIV_ACSL=238;
public static final int BIMPLIES_ACSL=239;
public static final int BINDER=240;
public static final int BINDER_LIST=241;
public static final int BOOLEAN=242;
public static final int CALL_ACSL=243;
public static final int CAST=244;
public static final int CLAUSE_BEHAVIOR=245;
public static final int CLAUSE_COMPLETE=246;
public static final int CLAUSE_NORMAL=247;
public static final int CONTRACT=248;
public static final int C_TYPE=249;
public static final int DEPENDSON=250;
public static final int DIRECT_ABSTRACT_DECLARATOR=251;
public static final int ENSURES_ACSL=252;
public static final int EVENT_BASE=253;
public static final int EVENT_INTS=254;
public static final int EVENT_LIST=255;
public static final int EVENT_PARENTHESIZED=256;
public static final int EVENT_PLUS=257;
public static final int EVENT_SUB=258;
public static final int EXECUTES_WHEN=259;
public static final int EXISTS_ACSL=260;
public static final int FALSE_ACSL=261;
public static final int FOCUS_ASSERT=262;
public static final int FOCUS_LOOP=263;
public static final int FOCUS_ORDERED_STATEMENT=264;
public static final int FORALL_ACSL=265;
public static final int FREES=266;
public static final int FUNC_CALL=267;
public static final int FUNC_CONTRACT=268;
public static final int FUNC_CONTRACT_BLOCK=269;
public static final int ID_LIST=270;
public static final int INDEX=271;
public static final int INTEGER=272;
public static final int INTER=273;
public static final int LAMBDA_ACSL=274;
public static final int LOGIC_FUNCTIONS=275;
public static final int LOGIC_FUNCTION_BODY=276;
public static final int LOGIC_FUNCTION_CLAUSE=277;
public static final int LOGIC_TYPE=278;
public static final int LOOP_ALLOC=279;
public static final int LOOP_ASSIGNS=280;
public static final int LOOP_BEHAVIOR=281;
public static final int LOOP_CLAUSE=282;
public static final int LOOP_CONTRACT=283;
public static final int LOOP_CONTRACT_BLOCK=284;
public static final int LOOP_FOCUS_HEAD=285;
public static final int LOOP_FOCUS_NEG_SINGLETON=286;
public static final int LOOP_FOCUS_POS_SINGLETON=287;
public static final int LOOP_FOCUS_RANGE=288;
public static final int LOOP_FREE=289;
public static final int LOOP_INVARIANT=290;
public static final int LOOP_VARIANT=291;
public static final int MAX=292;
public static final int MIN=293;
public static final int NOTHING=294;
public static final int NULL_ACSL=295;
public static final int NUMOF=296;
public static final int OBJECT_OF=297;
public static final int OLD=298;
public static final int OPERATOR=299;
public static final int POINTER=300;
public static final int PREDICATE_CLAUSE=301;
public static final int PROD=302;
public static final int QUANTIFIED=303;
public static final int QUANTIFIED_EXT=304;
public static final int READS_ACSL=305;
public static final int READ_ACSL=306;
public static final int REAL_ACSL=307;
public static final int RELCHAIN=308;
public static final int REQUIRES_ACSL=309;
public static final int RESULT_ACSL=310;
public static final int SET_BINDERS=311;
public static final int SET_SIMPLE=312;
public static final int SIZEOF_EXPR=313;
public static final int SIZEOF_TYPE=314;
public static final int SPECIFIER_QUALIFIER_LIST=315;
public static final int SUM=316;
public static final int TERMINATES=317;
public static final int TERM_PARENTHESIZED=318;
public static final int TRANSFORM=319;
public static final int TRANSFORM_CONTRACT=320;
public static final int TRANSFORM_CONTRACT_BLOCK=321;
public static final int TRUE_ACSL=322;
public static final int TYPE_BUILTIN=323;
public static final int TYPE_ID=324;
public static final int UNION_ACSL=325;
public static final int VALID=326;
public static final int VAR_ID=327;
public static final int VAR_ID_BASE=328;
public static final int VAR_ID_SQUARE=329;
public static final int VAR_ID_STAR=330;
public static final int WRITE_ACSL=331;
// delegates
public Parser[] getDelegates() {
return new Parser[] {};
}
// delegators
public AcslParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public AcslParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
@Override public String[] getTokenNames() { return AcslParser.tokenNames; }
@Override public String getGrammarFileName() { return "AcslParser.g"; }
public static class contract_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "contract"
// AcslParser.g:143:1: contract : ( loop_contract | function_contract | logic_function_contract | assert_contract | ordered_contract | transform_contract );
public final AcslParser.contract_return contract() throws RecognitionException {
AcslParser.contract_return retval = new AcslParser.contract_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope loop_contract1 =null;
ParserRuleReturnScope function_contract2 =null;
ParserRuleReturnScope logic_function_contract3 =null;
ParserRuleReturnScope assert_contract4 =null;
ParserRuleReturnScope ordered_contract5 =null;
ParserRuleReturnScope transform_contract6 =null;
try {
// AcslParser.g:144:5: ( loop_contract | function_contract | logic_function_contract | assert_contract | ordered_contract | transform_contract )
int alt1=6;
switch ( input.LA(1) ) {
case IDENTIFIER:
{
int LA1_1 = input.LA(2);
if ( ((((input.LT(1).getText().equals("focus"))||(input.LT(1).getText().equals("loop")))&&synpred1_AcslParser())) ) {
alt1=1;
}
else if ( ((synpred2_AcslParser()&&((input.LT(1).getText().equals("frees"))||(input.LT(1).getText().equals("behavior"))||(input.LT(1).getText().equals("ensures"))||(input.LT(1).getText().equals("pure"))||(input.LT(1).getText().equals("disjoint"))||(input.LT(1).getText().equals("requires"))||(input.LT(1).getText().equals("depends_on"))||(input.LT(1).getText().equals("reads"))||(input.LT(1).getText().equals("assigns"))||(input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("executes_when"))||(input.LT(1).getText().equals("allocates"))||(input.LT(1).getText().equals("terminates"))))) ) {
alt1=2;
}
else if ( ((synpred3_AcslParser()&&((input.LT(1).getText().equals("logic"))||(input.LT(1).getText().equals("predicate"))))) ) {
alt1=3;
}
else if ( ((synpred4_AcslParser()&&(input.LT(1).getText().equals("assert")))) ) {
alt1=4;
}
else if ( (((input.LT(1).getText().equals("focus"))&&synpred5_AcslParser())) ) {
alt1=5;
}
else if ( ((input.LT(1).getText().equals("focus"))) ) {
alt1=6;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 1, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FOR:
{
alt1=1;
}
break;
case EOF:
{
int LA1_3 = input.LA(2);
if ( (synpred1_AcslParser()) ) {
alt1=1;
}
else if ( (synpred2_AcslParser()) ) {
alt1=2;
}
else if ( (synpred3_AcslParser()) ) {
alt1=3;
}
else if ( (true) ) {
alt1=6;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 1, 0, input);
throw nvae;
}
switch (alt1) {
case 1 :
// AcslParser.g:144:7: loop_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_loop_contract_in_contract856);
loop_contract1=loop_contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, loop_contract1.getTree());
}
break;
case 2 :
// AcslParser.g:145:7: function_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_function_contract_in_contract865);
function_contract2=function_contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, function_contract2.getTree());
}
break;
case 3 :
// AcslParser.g:146:7: logic_function_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logic_function_contract_in_contract874);
logic_function_contract3=logic_function_contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, logic_function_contract3.getTree());
}
break;
case 4 :
// AcslParser.g:147:7: assert_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assert_contract_in_contract882);
assert_contract4=assert_contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assert_contract4.getTree());
}
break;
case 5 :
// AcslParser.g:148:7: ordered_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_ordered_contract_in_contract890);
ordered_contract5=ordered_contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ordered_contract5.getTree());
}
break;
case 6 :
// AcslParser.g:149:7: transform_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_transform_contract_in_contract898);
transform_contract6=transform_contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, transform_contract6.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
}
return retval;
}
// $ANTLR end "contract"
public static class loop_contract_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_contract"
// AcslParser.g:153:1: loop_contract : loop_contract_block -> ^( LOOP_CONTRACT loop_contract_block ) ;
public final AcslParser.loop_contract_return loop_contract() throws RecognitionException {
AcslParser.loop_contract_return retval = new AcslParser.loop_contract_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope loop_contract_block7 =null;
RewriteRuleSubtreeStream stream_loop_contract_block=new RewriteRuleSubtreeStream(adaptor,"rule loop_contract_block");
try {
// AcslParser.g:154:5: ( loop_contract_block -> ^( LOOP_CONTRACT loop_contract_block ) )
// AcslParser.g:154:7: loop_contract_block
{
pushFollow(FOLLOW_loop_contract_block_in_loop_contract917);
loop_contract_block7=loop_contract_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_contract_block.add(loop_contract_block7.getTree());
// AST REWRITE
// elements: loop_contract_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();
// 155:9: -> ^( LOOP_CONTRACT loop_contract_block )
{
// AcslParser.g:155:11: ^( LOOP_CONTRACT loop_contract_block )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_CONTRACT, "LOOP_CONTRACT"), root_1);
adaptor.addChild(root_1, stream_loop_contract_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
}
return retval;
}
// $ANTLR end "loop_contract"
public static class loop_contract_block_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_contract_block"
// AcslParser.g:158:1: loop_contract_block : (lc+= loop_clause )* (lb+= loop_behavior )* (lv= loop_variant )? (lf= loop_focus )? -> ^( LOOP_CONTRACT_BLOCK ( $lc)* ( $lb)* ( $lv)? ( $lf)? ) ;
public final AcslParser.loop_contract_block_return loop_contract_block() throws RecognitionException {
AcslParser.loop_contract_block_return retval = new AcslParser.loop_contract_block_return();
retval.start = input.LT(1);
Object root_0 = null;
List<Object> list_lc=null;
List<Object> list_lb=null;
ParserRuleReturnScope lv =null;
ParserRuleReturnScope lf =null;
RuleReturnScope lc = null;
RuleReturnScope lb = null;
RewriteRuleSubtreeStream stream_loop_behavior=new RewriteRuleSubtreeStream(adaptor,"rule loop_behavior");
RewriteRuleSubtreeStream stream_loop_clause=new RewriteRuleSubtreeStream(adaptor,"rule loop_clause");
RewriteRuleSubtreeStream stream_loop_variant=new RewriteRuleSubtreeStream(adaptor,"rule loop_variant");
RewriteRuleSubtreeStream stream_loop_focus=new RewriteRuleSubtreeStream(adaptor,"rule loop_focus");
try {
// AcslParser.g:159:5: ( (lc+= loop_clause )* (lb+= loop_behavior )* (lv= loop_variant )? (lf= loop_focus )? -> ^( LOOP_CONTRACT_BLOCK ( $lc)* ( $lb)* ( $lv)? ( $lf)? ) )
// AcslParser.g:159:7: (lc+= loop_clause )* (lb+= loop_behavior )* (lv= loop_variant )? (lf= loop_focus )?
{
// AcslParser.g:159:9: (lc+= loop_clause )*
loop2:
while (true) {
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==IDENTIFIER) ) {
int LA2_2 = input.LA(2);
if ( ((synpred6_AcslParser()&&(input.LT(1).getText().equals("loop")))) ) {
alt2=1;
}
}
switch (alt2) {
case 1 :
// AcslParser.g:159:9: lc+= loop_clause
{
pushFollow(FOLLOW_loop_clause_in_loop_contract_block951);
lc=loop_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_clause.add(lc.getTree());
if (list_lc==null) list_lc=new ArrayList<Object>();
list_lc.add(lc.getTree());
}
break;
default :
break loop2;
}
}
// AcslParser.g:159:26: (lb+= loop_behavior )*
loop3:
while (true) {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==FOR) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// AcslParser.g:159:26: lb+= loop_behavior
{
pushFollow(FOLLOW_loop_behavior_in_loop_contract_block956);
lb=loop_behavior();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_behavior.add(lb.getTree());
if (list_lb==null) list_lb=new ArrayList<Object>();
list_lb.add(lb.getTree());
}
break;
default :
break loop3;
}
}
// AcslParser.g:159:45: (lv= loop_variant )?
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==IDENTIFIER) ) {
int LA4_1 = input.LA(2);
if ( (((input.LT(1).getText().equals("loop"))&&synpred8_AcslParser())) ) {
alt4=1;
}
}
switch (alt4) {
case 1 :
// AcslParser.g:159:45: lv= loop_variant
{
pushFollow(FOLLOW_loop_variant_in_loop_contract_block961);
lv=loop_variant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_variant.add(lv.getTree());
}
break;
}
// AcslParser.g:159:62: (lf= loop_focus )?
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==IDENTIFIER) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// AcslParser.g:159:62: lf= loop_focus
{
pushFollow(FOLLOW_loop_focus_in_loop_contract_block966);
lf=loop_focus();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_focus.add(lf.getTree());
}
break;
}
// AST REWRITE
// elements: lb, lf, lc, lv
// token labels:
// rule labels: lf, lv, retval
// token list labels:
// rule list labels: lb, lc
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_lf=new RewriteRuleSubtreeStream(adaptor,"rule lf",lf!=null?lf.getTree():null);
RewriteRuleSubtreeStream stream_lv=new RewriteRuleSubtreeStream(adaptor,"rule lv",lv!=null?lv.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
RewriteRuleSubtreeStream stream_lb=new RewriteRuleSubtreeStream(adaptor,"token lb",list_lb);
RewriteRuleSubtreeStream stream_lc=new RewriteRuleSubtreeStream(adaptor,"token lc",list_lc);
root_0 = (Object)adaptor.nil();
// 160:9: -> ^( LOOP_CONTRACT_BLOCK ( $lc)* ( $lb)* ( $lv)? ( $lf)? )
{
// AcslParser.g:160:11: ^( LOOP_CONTRACT_BLOCK ( $lc)* ( $lb)* ( $lv)? ( $lf)? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_CONTRACT_BLOCK, "LOOP_CONTRACT_BLOCK"), root_1);
// AcslParser.g:160:34: ( $lc)*
while ( stream_lc.hasNext() ) {
adaptor.addChild(root_1, stream_lc.nextTree());
}
stream_lc.reset();
// AcslParser.g:160:39: ( $lb)*
while ( stream_lb.hasNext() ) {
adaptor.addChild(root_1, stream_lb.nextTree());
}
stream_lb.reset();
// AcslParser.g:160:44: ( $lv)?
if ( stream_lv.hasNext() ) {
adaptor.addChild(root_1, stream_lv.nextTree());
}
stream_lv.reset();
// AcslParser.g:160:49: ( $lf)?
if ( stream_lf.hasNext() ) {
adaptor.addChild(root_1, stream_lf.nextTree());
}
stream_lf.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
}
return retval;
}
// $ANTLR end "loop_contract_block"
public static class loop_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_clause"
// AcslParser.g:163:1: loop_clause : ( loop_invariant SEMI -> ^( LOOP_CLAUSE loop_invariant ) | loop_assigns SEMI -> ^( LOOP_CLAUSE loop_assigns ) | loop_allocation SEMI -> ^( LOOP_CLAUSE loop_allocation ) );
public final AcslParser.loop_clause_return loop_clause() throws RecognitionException {
AcslParser.loop_clause_return retval = new AcslParser.loop_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI9=null;
Token SEMI11=null;
Token SEMI13=null;
ParserRuleReturnScope loop_invariant8 =null;
ParserRuleReturnScope loop_assigns10 =null;
ParserRuleReturnScope loop_allocation12 =null;
Object SEMI9_tree=null;
Object SEMI11_tree=null;
Object SEMI13_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_loop_invariant=new RewriteRuleSubtreeStream(adaptor,"rule loop_invariant");
RewriteRuleSubtreeStream stream_loop_assigns=new RewriteRuleSubtreeStream(adaptor,"rule loop_assigns");
RewriteRuleSubtreeStream stream_loop_allocation=new RewriteRuleSubtreeStream(adaptor,"rule loop_allocation");
try {
// AcslParser.g:164:5: ( loop_invariant SEMI -> ^( LOOP_CLAUSE loop_invariant ) | loop_assigns SEMI -> ^( LOOP_CLAUSE loop_assigns ) | loop_allocation SEMI -> ^( LOOP_CLAUSE loop_allocation ) )
int alt6=3;
int LA6_0 = input.LA(1);
if ( (LA6_0==IDENTIFIER) ) {
int LA6_1 = input.LA(2);
if ( (((input.LT(1).getText().equals("loop"))&&synpred10_AcslParser())) ) {
alt6=1;
}
else if ( (((input.LT(1).getText().equals("loop"))&&synpred11_AcslParser())) ) {
alt6=2;
}
else if ( ((input.LT(1).getText().equals("loop"))) ) {
alt6=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 6, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 6, 0, input);
throw nvae;
}
switch (alt6) {
case 1 :
// AcslParser.g:164:7: loop_invariant SEMI
{
pushFollow(FOLLOW_loop_invariant_in_loop_clause1013);
loop_invariant8=loop_invariant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_invariant.add(loop_invariant8.getTree());
SEMI9=(Token)match(input,SEMI,FOLLOW_SEMI_in_loop_clause1015); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI9);
// AST REWRITE
// elements: loop_invariant
// 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();
// 165:9: -> ^( LOOP_CLAUSE loop_invariant )
{
// AcslParser.g:165:11: ^( LOOP_CLAUSE loop_invariant )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_CLAUSE, "LOOP_CLAUSE"), root_1);
adaptor.addChild(root_1, stream_loop_invariant.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:166:7: loop_assigns SEMI
{
pushFollow(FOLLOW_loop_assigns_in_loop_clause1038);
loop_assigns10=loop_assigns();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_assigns.add(loop_assigns10.getTree());
SEMI11=(Token)match(input,SEMI,FOLLOW_SEMI_in_loop_clause1040); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI11);
// AST REWRITE
// elements: loop_assigns
// 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();
// 167:9: -> ^( LOOP_CLAUSE loop_assigns )
{
// AcslParser.g:167:11: ^( LOOP_CLAUSE loop_assigns )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_CLAUSE, "LOOP_CLAUSE"), root_1);
adaptor.addChild(root_1, stream_loop_assigns.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:168:7: loop_allocation SEMI
{
pushFollow(FOLLOW_loop_allocation_in_loop_clause1063);
loop_allocation12=loop_allocation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_allocation.add(loop_allocation12.getTree());
SEMI13=(Token)match(input,SEMI,FOLLOW_SEMI_in_loop_clause1065); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI13);
// AST REWRITE
// elements: loop_allocation
// 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();
// 169:9: -> ^( LOOP_CLAUSE loop_allocation )
{
// AcslParser.g:169:11: ^( LOOP_CLAUSE loop_allocation )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_CLAUSE, "LOOP_CLAUSE"), root_1);
adaptor.addChild(root_1, stream_loop_allocation.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
}
return retval;
}
// $ANTLR end "loop_clause"
public static class loop_invariant_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_invariant"
// AcslParser.g:172:1: loop_invariant : loop_key invariant_key term -> ^( LOOP_INVARIANT term ) ;
public final AcslParser.loop_invariant_return loop_invariant() throws RecognitionException {
AcslParser.loop_invariant_return retval = new AcslParser.loop_invariant_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope loop_key14 =null;
ParserRuleReturnScope invariant_key15 =null;
ParserRuleReturnScope term16 =null;
RewriteRuleSubtreeStream stream_invariant_key=new RewriteRuleSubtreeStream(adaptor,"rule invariant_key");
RewriteRuleSubtreeStream stream_loop_key=new RewriteRuleSubtreeStream(adaptor,"rule loop_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:173:5: ( loop_key invariant_key term -> ^( LOOP_INVARIANT term ) )
// AcslParser.g:173:7: loop_key invariant_key term
{
pushFollow(FOLLOW_loop_key_in_loop_invariant1097);
loop_key14=loop_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_key.add(loop_key14.getTree());
pushFollow(FOLLOW_invariant_key_in_loop_invariant1099);
invariant_key15=invariant_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_key.add(invariant_key15.getTree());
pushFollow(FOLLOW_term_in_loop_invariant1101);
term16=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term16.getTree());
// AST REWRITE
// elements: term
// 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();
// 174:9: -> ^( LOOP_INVARIANT term )
{
// AcslParser.g:174:11: ^( LOOP_INVARIANT term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_INVARIANT, "LOOP_INVARIANT"), root_1);
adaptor.addChild(root_1, stream_term.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
}
return retval;
}
// $ANTLR end "loop_invariant"
public static class loop_assigns_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_assigns"
// AcslParser.g:177:1: loop_assigns : loop_key assigns_key argumentExpressionList -> ^( LOOP_ASSIGNS assigns_key argumentExpressionList ) ;
public final AcslParser.loop_assigns_return loop_assigns() throws RecognitionException {
AcslParser.loop_assigns_return retval = new AcslParser.loop_assigns_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope loop_key17 =null;
ParserRuleReturnScope assigns_key18 =null;
ParserRuleReturnScope argumentExpressionList19 =null;
RewriteRuleSubtreeStream stream_assigns_key=new RewriteRuleSubtreeStream(adaptor,"rule assigns_key");
RewriteRuleSubtreeStream stream_loop_key=new RewriteRuleSubtreeStream(adaptor,"rule loop_key");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
try {
// AcslParser.g:178:5: ( loop_key assigns_key argumentExpressionList -> ^( LOOP_ASSIGNS assigns_key argumentExpressionList ) )
// AcslParser.g:178:7: loop_key assigns_key argumentExpressionList
{
pushFollow(FOLLOW_loop_key_in_loop_assigns1133);
loop_key17=loop_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_key.add(loop_key17.getTree());
pushFollow(FOLLOW_assigns_key_in_loop_assigns1135);
assigns_key18=assigns_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assigns_key.add(assigns_key18.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_loop_assigns1137);
argumentExpressionList19=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList19.getTree());
// AST REWRITE
// elements: assigns_key, argumentExpressionList
// 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();
// 179:9: -> ^( LOOP_ASSIGNS assigns_key argumentExpressionList )
{
// AcslParser.g:179:11: ^( LOOP_ASSIGNS assigns_key argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_ASSIGNS, "LOOP_ASSIGNS"), root_1);
adaptor.addChild(root_1, stream_assigns_key.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.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
}
return retval;
}
// $ANTLR end "loop_assigns"
public static class loop_allocation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_allocation"
// AcslParser.g:182:1: loop_allocation : ( loop_key alloc_key argumentExpressionList ( COMMA term )? -> ^( LOOP_ALLOC argumentExpressionList ( term )? ) | loop_key frees_key argumentExpressionList -> ^( LOOP_FREE argumentExpressionList ) );
public final AcslParser.loop_allocation_return loop_allocation() throws RecognitionException {
AcslParser.loop_allocation_return retval = new AcslParser.loop_allocation_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA23=null;
ParserRuleReturnScope loop_key20 =null;
ParserRuleReturnScope alloc_key21 =null;
ParserRuleReturnScope argumentExpressionList22 =null;
ParserRuleReturnScope term24 =null;
ParserRuleReturnScope loop_key25 =null;
ParserRuleReturnScope frees_key26 =null;
ParserRuleReturnScope argumentExpressionList27 =null;
Object COMMA23_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_alloc_key=new RewriteRuleSubtreeStream(adaptor,"rule alloc_key");
RewriteRuleSubtreeStream stream_loop_key=new RewriteRuleSubtreeStream(adaptor,"rule loop_key");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
RewriteRuleSubtreeStream stream_frees_key=new RewriteRuleSubtreeStream(adaptor,"rule frees_key");
try {
// AcslParser.g:183:5: ( loop_key alloc_key argumentExpressionList ( COMMA term )? -> ^( LOOP_ALLOC argumentExpressionList ( term )? ) | loop_key frees_key argumentExpressionList -> ^( LOOP_FREE argumentExpressionList ) )
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==IDENTIFIER) ) {
int LA8_1 = input.LA(2);
if ( (LA8_1==IDENTIFIER) ) {
int LA8_2 = input.LA(3);
if ( ((synpred13_AcslParser()&&(input.LT(1).getText().equals("loop")))) ) {
alt8=1;
}
else if ( ((input.LT(1).getText().equals("loop"))) ) {
alt8=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 8, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 8, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 8, 0, input);
throw nvae;
}
switch (alt8) {
case 1 :
// AcslParser.g:183:7: loop_key alloc_key argumentExpressionList ( COMMA term )?
{
pushFollow(FOLLOW_loop_key_in_loop_allocation1171);
loop_key20=loop_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_key.add(loop_key20.getTree());
pushFollow(FOLLOW_alloc_key_in_loop_allocation1173);
alloc_key21=alloc_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_alloc_key.add(alloc_key21.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_loop_allocation1175);
argumentExpressionList22=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList22.getTree());
// AcslParser.g:183:49: ( COMMA term )?
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==COMMA) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// AcslParser.g:183:50: COMMA term
{
COMMA23=(Token)match(input,COMMA,FOLLOW_COMMA_in_loop_allocation1178); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA23);
pushFollow(FOLLOW_term_in_loop_allocation1180);
term24=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term24.getTree());
}
break;
}
// AST REWRITE
// elements: term, argumentExpressionList
// 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();
// 184:9: -> ^( LOOP_ALLOC argumentExpressionList ( term )? )
{
// AcslParser.g:184:11: ^( LOOP_ALLOC argumentExpressionList ( term )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_ALLOC, "LOOP_ALLOC"), root_1);
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
// AcslParser.g:184:47: ( term )?
if ( stream_term.hasNext() ) {
adaptor.addChild(root_1, stream_term.nextTree());
}
stream_term.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:185:7: loop_key frees_key argumentExpressionList
{
pushFollow(FOLLOW_loop_key_in_loop_allocation1208);
loop_key25=loop_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_key.add(loop_key25.getTree());
pushFollow(FOLLOW_frees_key_in_loop_allocation1210);
frees_key26=frees_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_frees_key.add(frees_key26.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_loop_allocation1212);
argumentExpressionList27=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList27.getTree());
// AST REWRITE
// elements: argumentExpressionList
// 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();
// 186:9: -> ^( LOOP_FREE argumentExpressionList )
{
// AcslParser.g:186:11: ^( LOOP_FREE argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_FREE, "LOOP_FREE"), root_1);
adaptor.addChild(root_1, stream_argumentExpressionList.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
}
return retval;
}
// $ANTLR end "loop_allocation"
public static class loop_behavior_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_behavior"
// AcslParser.g:189:1: loop_behavior : FOR ilist= id_list COLON (lc+= loop_clause )* -> ^( LOOP_BEHAVIOR $ilist ( $lc)* ) ;
public final AcslParser.loop_behavior_return loop_behavior() throws RecognitionException {
AcslParser.loop_behavior_return retval = new AcslParser.loop_behavior_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FOR28=null;
Token COLON29=null;
List<Object> list_lc=null;
ParserRuleReturnScope ilist =null;
RuleReturnScope lc = null;
Object FOR28_tree=null;
Object COLON29_tree=null;
RewriteRuleTokenStream stream_FOR=new RewriteRuleTokenStream(adaptor,"token FOR");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_id_list=new RewriteRuleSubtreeStream(adaptor,"rule id_list");
RewriteRuleSubtreeStream stream_loop_clause=new RewriteRuleSubtreeStream(adaptor,"rule loop_clause");
try {
// AcslParser.g:190:5: ( FOR ilist= id_list COLON (lc+= loop_clause )* -> ^( LOOP_BEHAVIOR $ilist ( $lc)* ) )
// AcslParser.g:190:7: FOR ilist= id_list COLON (lc+= loop_clause )*
{
FOR28=(Token)match(input,FOR,FOLLOW_FOR_in_loop_behavior1244); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FOR.add(FOR28);
pushFollow(FOLLOW_id_list_in_loop_behavior1248);
ilist=id_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_id_list.add(ilist.getTree());
COLON29=(Token)match(input,COLON,FOLLOW_COLON_in_loop_behavior1250); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON29);
// AcslParser.g:190:33: (lc+= loop_clause )*
loop9:
while (true) {
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==IDENTIFIER) ) {
int LA9_1 = input.LA(2);
if ( (((input.LT(1).getText().equals("loop"))&&synpred14_AcslParser())) ) {
alt9=1;
}
}
switch (alt9) {
case 1 :
// AcslParser.g:190:33: lc+= loop_clause
{
pushFollow(FOLLOW_loop_clause_in_loop_behavior1254);
lc=loop_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_clause.add(lc.getTree());
if (list_lc==null) list_lc=new ArrayList<Object>();
list_lc.add(lc.getTree());
}
break;
default :
break loop9;
}
}
// AST REWRITE
// elements: lc, ilist
// token labels:
// rule labels: ilist, retval
// token list labels:
// rule list labels: lc
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_ilist=new RewriteRuleSubtreeStream(adaptor,"rule ilist",ilist!=null?ilist.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
RewriteRuleSubtreeStream stream_lc=new RewriteRuleSubtreeStream(adaptor,"token lc",list_lc);
root_0 = (Object)adaptor.nil();
// 191:9: -> ^( LOOP_BEHAVIOR $ilist ( $lc)* )
{
// AcslParser.g:191:11: ^( LOOP_BEHAVIOR $ilist ( $lc)* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_BEHAVIOR, "LOOP_BEHAVIOR"), root_1);
adaptor.addChild(root_1, stream_ilist.nextTree());
// AcslParser.g:191:35: ( $lc)*
while ( stream_lc.hasNext() ) {
adaptor.addChild(root_1, stream_lc.nextTree());
}
stream_lc.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
}
return retval;
}
// $ANTLR end "loop_behavior"
public static class loop_variant_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_variant"
// AcslParser.g:194:1: loop_variant : ( loop_key variant_key term -> ^( LOOP_VARIANT term ) | loop_key variant_key term FOR IDENTIFIER -> ^( LOOP_VARIANT term IDENTIFIER ) );
public final AcslParser.loop_variant_return loop_variant() throws RecognitionException {
AcslParser.loop_variant_return retval = new AcslParser.loop_variant_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FOR36=null;
Token IDENTIFIER37=null;
ParserRuleReturnScope loop_key30 =null;
ParserRuleReturnScope variant_key31 =null;
ParserRuleReturnScope term32 =null;
ParserRuleReturnScope loop_key33 =null;
ParserRuleReturnScope variant_key34 =null;
ParserRuleReturnScope term35 =null;
Object FOR36_tree=null;
Object IDENTIFIER37_tree=null;
RewriteRuleTokenStream stream_FOR=new RewriteRuleTokenStream(adaptor,"token FOR");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_variant_key=new RewriteRuleSubtreeStream(adaptor,"rule variant_key");
RewriteRuleSubtreeStream stream_loop_key=new RewriteRuleSubtreeStream(adaptor,"rule loop_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:195:5: ( loop_key variant_key term -> ^( LOOP_VARIANT term ) | loop_key variant_key term FOR IDENTIFIER -> ^( LOOP_VARIANT term IDENTIFIER ) )
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==IDENTIFIER) ) {
int LA10_1 = input.LA(2);
if ( (((input.LT(1).getText().equals("loop"))&&synpred15_AcslParser())) ) {
alt10=1;
}
else if ( ((input.LT(1).getText().equals("loop"))) ) {
alt10=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 10, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 10, 0, input);
throw nvae;
}
switch (alt10) {
case 1 :
// AcslParser.g:195:7: loop_key variant_key term
{
pushFollow(FOLLOW_loop_key_in_loop_variant1292);
loop_key30=loop_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_key.add(loop_key30.getTree());
pushFollow(FOLLOW_variant_key_in_loop_variant1294);
variant_key31=variant_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variant_key.add(variant_key31.getTree());
pushFollow(FOLLOW_term_in_loop_variant1296);
term32=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term32.getTree());
// AST REWRITE
// elements: term
// 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();
// 196:9: -> ^( LOOP_VARIANT term )
{
// AcslParser.g:196:11: ^( LOOP_VARIANT term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_VARIANT, "LOOP_VARIANT"), root_1);
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:197:7: loop_key variant_key term FOR IDENTIFIER
{
pushFollow(FOLLOW_loop_key_in_loop_variant1319);
loop_key33=loop_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_key.add(loop_key33.getTree());
pushFollow(FOLLOW_variant_key_in_loop_variant1321);
variant_key34=variant_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variant_key.add(variant_key34.getTree());
pushFollow(FOLLOW_term_in_loop_variant1323);
term35=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term35.getTree());
FOR36=(Token)match(input,FOR,FOLLOW_FOR_in_loop_variant1325); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FOR.add(FOR36);
IDENTIFIER37=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_loop_variant1327); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER37);
// AST REWRITE
// elements: term, IDENTIFIER
// 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();
// 198:9: -> ^( LOOP_VARIANT term IDENTIFIER )
{
// AcslParser.g:198:11: ^( LOOP_VARIANT term IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_VARIANT, "LOOP_VARIANT"), root_1);
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
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
}
return retval;
}
// $ANTLR end "loop_variant"
public static class loop_focus_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_focus"
// AcslParser.g:201:1: loop_focus : focus_key loop_focus_head BITOR argumentExpressionList SEMI -> ^( FOCUS_LOOP loop_focus_head argumentExpressionList ) ;
public final AcslParser.loop_focus_return loop_focus() throws RecognitionException {
AcslParser.loop_focus_return retval = new AcslParser.loop_focus_return();
retval.start = input.LT(1);
Object root_0 = null;
Token BITOR40=null;
Token SEMI42=null;
ParserRuleReturnScope focus_key38 =null;
ParserRuleReturnScope loop_focus_head39 =null;
ParserRuleReturnScope argumentExpressionList41 =null;
Object BITOR40_tree=null;
Object SEMI42_tree=null;
RewriteRuleTokenStream stream_BITOR=new RewriteRuleTokenStream(adaptor,"token BITOR");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_loop_focus_head=new RewriteRuleSubtreeStream(adaptor,"rule loop_focus_head");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_focus_key=new RewriteRuleSubtreeStream(adaptor,"rule focus_key");
try {
// AcslParser.g:202:5: ( focus_key loop_focus_head BITOR argumentExpressionList SEMI -> ^( FOCUS_LOOP loop_focus_head argumentExpressionList ) )
// AcslParser.g:202:7: focus_key loop_focus_head BITOR argumentExpressionList SEMI
{
pushFollow(FOLLOW_focus_key_in_loop_focus1365);
focus_key38=focus_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_focus_key.add(focus_key38.getTree());
pushFollow(FOLLOW_loop_focus_head_in_loop_focus1367);
loop_focus_head39=loop_focus_head();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_focus_head.add(loop_focus_head39.getTree());
BITOR40=(Token)match(input,BITOR,FOLLOW_BITOR_in_loop_focus1369); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR40);
pushFollow(FOLLOW_argumentExpressionList_in_loop_focus1371);
argumentExpressionList41=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList41.getTree());
SEMI42=(Token)match(input,SEMI,FOLLOW_SEMI_in_loop_focus1373); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI42);
// AST REWRITE
// elements: loop_focus_head, argumentExpressionList
// 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();
// 202:67: -> ^( FOCUS_LOOP loop_focus_head argumentExpressionList )
{
// AcslParser.g:202:69: ^( FOCUS_LOOP loop_focus_head argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FOCUS_LOOP, "FOCUS_LOOP"), root_1);
adaptor.addChild(root_1, stream_loop_focus_head.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.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
}
return retval;
}
// $ANTLR end "loop_focus"
public static class loop_focus_head_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_focus_head"
// AcslParser.g:205:1: loop_focus_head : IDENTIFIER ( loop_focus_window )? -> ^( LOOP_FOCUS_HEAD IDENTIFIER ( loop_focus_window )? ) ;
public final AcslParser.loop_focus_head_return loop_focus_head() throws RecognitionException {
AcslParser.loop_focus_head_return retval = new AcslParser.loop_focus_head_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER43=null;
ParserRuleReturnScope loop_focus_window44 =null;
Object IDENTIFIER43_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_loop_focus_window=new RewriteRuleSubtreeStream(adaptor,"rule loop_focus_window");
try {
// AcslParser.g:206:5: ( IDENTIFIER ( loop_focus_window )? -> ^( LOOP_FOCUS_HEAD IDENTIFIER ( loop_focus_window )? ) )
// AcslParser.g:206:7: IDENTIFIER ( loop_focus_window )?
{
IDENTIFIER43=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_loop_focus_head1399); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER43);
// AcslParser.g:206:18: ( loop_focus_window )?
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==PLUS||LA11_0==SUB) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// AcslParser.g:206:18: loop_focus_window
{
pushFollow(FOLLOW_loop_focus_window_in_loop_focus_head1401);
loop_focus_window44=loop_focus_window();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_focus_window.add(loop_focus_window44.getTree());
}
break;
}
// AST REWRITE
// elements: loop_focus_window, IDENTIFIER
// 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();
// 206:37: -> ^( LOOP_FOCUS_HEAD IDENTIFIER ( loop_focus_window )? )
{
// AcslParser.g:206:39: ^( LOOP_FOCUS_HEAD IDENTIFIER ( loop_focus_window )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_FOCUS_HEAD, "LOOP_FOCUS_HEAD"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// AcslParser.g:206:68: ( loop_focus_window )?
if ( stream_loop_focus_window.hasNext() ) {
adaptor.addChild(root_1, stream_loop_focus_window.nextTree());
}
stream_loop_focus_window.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
}
return retval;
}
// $ANTLR end "loop_focus_head"
public static class loop_focus_window_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_focus_window"
// AcslParser.g:209:1: loop_focus_window : ( PLUS LCURLY rangeExpression RCURLY -> ^( LOOP_FOCUS_RANGE rangeExpression ) | PLUS unaryExpression -> ^( LOOP_FOCUS_POS_SINGLETON unaryExpression ) | SUB unaryExpression -> ^( LOOP_FOCUS_NEG_SINGLETON unaryExpression ) );
public final AcslParser.loop_focus_window_return loop_focus_window() throws RecognitionException {
AcslParser.loop_focus_window_return retval = new AcslParser.loop_focus_window_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PLUS45=null;
Token LCURLY46=null;
Token RCURLY48=null;
Token PLUS49=null;
Token SUB51=null;
ParserRuleReturnScope rangeExpression47 =null;
ParserRuleReturnScope unaryExpression50 =null;
ParserRuleReturnScope unaryExpression52 =null;
Object PLUS45_tree=null;
Object LCURLY46_tree=null;
Object RCURLY48_tree=null;
Object PLUS49_tree=null;
Object SUB51_tree=null;
RewriteRuleTokenStream stream_SUB=new RewriteRuleTokenStream(adaptor,"token SUB");
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleTokenStream stream_PLUS=new RewriteRuleTokenStream(adaptor,"token PLUS");
RewriteRuleSubtreeStream stream_rangeExpression=new RewriteRuleSubtreeStream(adaptor,"rule rangeExpression");
RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression");
try {
// AcslParser.g:210:5: ( PLUS LCURLY rangeExpression RCURLY -> ^( LOOP_FOCUS_RANGE rangeExpression ) | PLUS unaryExpression -> ^( LOOP_FOCUS_POS_SINGLETON unaryExpression ) | SUB unaryExpression -> ^( LOOP_FOCUS_NEG_SINGLETON unaryExpression ) )
int alt12=3;
int LA12_0 = input.LA(1);
if ( (LA12_0==PLUS) ) {
int LA12_1 = input.LA(2);
if ( (synpred17_AcslParser()) ) {
alt12=1;
}
else if ( (synpred18_AcslParser()) ) {
alt12=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 12, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA12_0==SUB) ) {
alt12=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
// AcslParser.g:210:7: PLUS LCURLY rangeExpression RCURLY
{
PLUS45=(Token)match(input,PLUS,FOLLOW_PLUS_in_loop_focus_window1433); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS45);
LCURLY46=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_loop_focus_window1435); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY46);
pushFollow(FOLLOW_rangeExpression_in_loop_focus_window1437);
rangeExpression47=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(rangeExpression47.getTree());
RCURLY48=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_loop_focus_window1439); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY48);
// AST REWRITE
// elements: rangeExpression
// 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();
// 211:9: -> ^( LOOP_FOCUS_RANGE rangeExpression )
{
// AcslParser.g:211:11: ^( LOOP_FOCUS_RANGE rangeExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_FOCUS_RANGE, "LOOP_FOCUS_RANGE"), root_1);
adaptor.addChild(root_1, stream_rangeExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:212:7: PLUS unaryExpression
{
PLUS49=(Token)match(input,PLUS,FOLLOW_PLUS_in_loop_focus_window1462); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS49);
pushFollow(FOLLOW_unaryExpression_in_loop_focus_window1464);
unaryExpression50=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression50.getTree());
// AST REWRITE
// elements: unaryExpression
// 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();
// 212:28: -> ^( LOOP_FOCUS_POS_SINGLETON unaryExpression )
{
// AcslParser.g:212:30: ^( LOOP_FOCUS_POS_SINGLETON unaryExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_FOCUS_POS_SINGLETON, "LOOP_FOCUS_POS_SINGLETON"), root_1);
adaptor.addChild(root_1, stream_unaryExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:213:7: SUB unaryExpression
{
SUB51=(Token)match(input,SUB,FOLLOW_SUB_in_loop_focus_window1479); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUB.add(SUB51);
pushFollow(FOLLOW_unaryExpression_in_loop_focus_window1481);
unaryExpression52=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression52.getTree());
// AST REWRITE
// elements: unaryExpression
// 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();
// 213:27: -> ^( LOOP_FOCUS_NEG_SINGLETON unaryExpression )
{
// AcslParser.g:213:29: ^( LOOP_FOCUS_NEG_SINGLETON unaryExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOOP_FOCUS_NEG_SINGLETON, "LOOP_FOCUS_NEG_SINGLETON"), root_1);
adaptor.addChild(root_1, stream_unaryExpression.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
}
return retval;
}
// $ANTLR end "loop_focus_window"
public static class transform_contract_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "transform_contract"
// AcslParser.g:216:1: transform_contract : transform_contract_block -> ^( TRANSFORM_CONTRACT transform_contract_block ) ;
public final AcslParser.transform_contract_return transform_contract() throws RecognitionException {
AcslParser.transform_contract_return retval = new AcslParser.transform_contract_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope transform_contract_block53 =null;
RewriteRuleSubtreeStream stream_transform_contract_block=new RewriteRuleSubtreeStream(adaptor,"rule transform_contract_block");
try {
// AcslParser.g:217:5: ( transform_contract_block -> ^( TRANSFORM_CONTRACT transform_contract_block ) )
// AcslParser.g:217:7: transform_contract_block
{
pushFollow(FOLLOW_transform_contract_block_in_transform_contract1505);
transform_contract_block53=transform_contract_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_transform_contract_block.add(transform_contract_block53.getTree());
// AST REWRITE
// elements: transform_contract_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();
// 218:9: -> ^( TRANSFORM_CONTRACT transform_contract_block )
{
// AcslParser.g:218:11: ^( TRANSFORM_CONTRACT transform_contract_block )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TRANSFORM_CONTRACT, "TRANSFORM_CONTRACT"), root_1);
adaptor.addChild(root_1, stream_transform_contract_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
}
return retval;
}
// $ANTLR end "transform_contract"
public static class transform_contract_block_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "transform_contract_block"
// AcslParser.g:221:1: transform_contract_block : (trs+= transform )* -> ^( TRANSFORM_CONTRACT_BLOCK ( $trs)* ) ;
public final AcslParser.transform_contract_block_return transform_contract_block() throws RecognitionException {
AcslParser.transform_contract_block_return retval = new AcslParser.transform_contract_block_return();
retval.start = input.LT(1);
Object root_0 = null;
List<Object> list_trs=null;
RuleReturnScope trs = null;
RewriteRuleSubtreeStream stream_transform=new RewriteRuleSubtreeStream(adaptor,"rule transform");
try {
// AcslParser.g:222:5: ( (trs+= transform )* -> ^( TRANSFORM_CONTRACT_BLOCK ( $trs)* ) )
// AcslParser.g:222:7: (trs+= transform )*
{
// AcslParser.g:222:10: (trs+= transform )*
loop13:
while (true) {
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==IDENTIFIER) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// AcslParser.g:222:10: trs+= transform
{
pushFollow(FOLLOW_transform_in_transform_contract_block1539);
trs=transform();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_transform.add(trs.getTree());
if (list_trs==null) list_trs=new ArrayList<Object>();
list_trs.add(trs.getTree());
}
break;
default :
break loop13;
}
}
// AST REWRITE
// elements: trs
// token labels:
// rule labels: retval
// token list labels:
// rule list labels: trs
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
RewriteRuleSubtreeStream stream_trs=new RewriteRuleSubtreeStream(adaptor,"token trs",list_trs);
root_0 = (Object)adaptor.nil();
// 222:23: -> ^( TRANSFORM_CONTRACT_BLOCK ( $trs)* )
{
// AcslParser.g:222:25: ^( TRANSFORM_CONTRACT_BLOCK ( $trs)* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TRANSFORM_CONTRACT_BLOCK, "TRANSFORM_CONTRACT_BLOCK"), root_1);
// AcslParser.g:222:53: ( $trs)*
while ( stream_trs.hasNext() ) {
adaptor.addChild(root_1, stream_trs.nextTree());
}
stream_trs.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
}
return retval;
}
// $ANTLR end "transform_contract_block"
public static class transform_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "transform"
// AcslParser.g:225:1: transform : transform_spec SEMI -> ^( TRANSFORM transform_spec ) ;
public final AcslParser.transform_return transform() throws RecognitionException {
AcslParser.transform_return retval = new AcslParser.transform_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI55=null;
ParserRuleReturnScope transform_spec54 =null;
Object SEMI55_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_transform_spec=new RewriteRuleSubtreeStream(adaptor,"rule transform_spec");
try {
// AcslParser.g:226:5: ( transform_spec SEMI -> ^( TRANSFORM transform_spec ) )
// AcslParser.g:226:7: transform_spec SEMI
{
pushFollow(FOLLOW_transform_spec_in_transform1566);
transform_spec54=transform_spec();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_transform_spec.add(transform_spec54.getTree());
SEMI55=(Token)match(input,SEMI,FOLLOW_SEMI_in_transform1568); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI55);
// AST REWRITE
// elements: transform_spec
// 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();
// 226:27: -> ^( TRANSFORM transform_spec )
{
// AcslParser.g:226:29: ^( TRANSFORM transform_spec )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TRANSFORM, "TRANSFORM"), root_1);
adaptor.addChild(root_1, stream_transform_spec.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
}
return retval;
}
// $ANTLR end "transform"
public static class transform_spec_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "transform_spec"
// AcslParser.g:229:1: transform_spec : focus_assert_spec ;
public final AcslParser.transform_spec_return transform_spec() throws RecognitionException {
AcslParser.transform_spec_return retval = new AcslParser.transform_spec_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope focus_assert_spec56 =null;
try {
// AcslParser.g:230:5: ( focus_assert_spec )
// AcslParser.g:230:7: focus_assert_spec
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_focus_assert_spec_in_transform_spec1592);
focus_assert_spec56=focus_assert_spec();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, focus_assert_spec56.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
}
return retval;
}
// $ANTLR end "transform_spec"
public static class focus_assert_spec_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "focus_assert_spec"
// AcslParser.g:233:1: focus_assert_spec : focus_key ( IDENTIFIER )+ -> ^( FOCUS_ASSERT ( IDENTIFIER )+ ) ;
public final AcslParser.focus_assert_spec_return focus_assert_spec() throws RecognitionException {
AcslParser.focus_assert_spec_return retval = new AcslParser.focus_assert_spec_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER58=null;
ParserRuleReturnScope focus_key57 =null;
Object IDENTIFIER58_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_focus_key=new RewriteRuleSubtreeStream(adaptor,"rule focus_key");
try {
// AcslParser.g:234:5: ( focus_key ( IDENTIFIER )+ -> ^( FOCUS_ASSERT ( IDENTIFIER )+ ) )
// AcslParser.g:234:7: focus_key ( IDENTIFIER )+
{
pushFollow(FOLLOW_focus_key_in_focus_assert_spec1613);
focus_key57=focus_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_focus_key.add(focus_key57.getTree());
// AcslParser.g:234:17: ( IDENTIFIER )+
int cnt14=0;
loop14:
while (true) {
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==IDENTIFIER) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// AcslParser.g:234:17: IDENTIFIER
{
IDENTIFIER58=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_focus_assert_spec1615); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER58);
}
break;
default :
if ( cnt14 >= 1 ) break loop14;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(14, input);
throw eee;
}
cnt14++;
}
// AST REWRITE
// elements: IDENTIFIER
// 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();
// 234:29: -> ^( FOCUS_ASSERT ( IDENTIFIER )+ )
{
// AcslParser.g:234:31: ^( FOCUS_ASSERT ( IDENTIFIER )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FOCUS_ASSERT, "FOCUS_ASSERT"), root_1);
if ( !(stream_IDENTIFIER.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_IDENTIFIER.hasNext() ) {
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
}
stream_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "focus_assert_spec"
public static class ordered_contract_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "ordered_contract"
// AcslParser.g:237:1: ordered_contract : focus_key ordered_key LPAREN relOp COMMA IDENTIFIER COLON rangeExpression BITOR assignmentExpression RPAREN SEMI -> ^( FOCUS_ORDERED_STATEMENT relOp IDENTIFIER rangeExpression assignmentExpression ) ;
public final AcslParser.ordered_contract_return ordered_contract() throws RecognitionException {
AcslParser.ordered_contract_return retval = new AcslParser.ordered_contract_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN61=null;
Token COMMA63=null;
Token IDENTIFIER64=null;
Token COLON65=null;
Token BITOR67=null;
Token RPAREN69=null;
Token SEMI70=null;
ParserRuleReturnScope focus_key59 =null;
ParserRuleReturnScope ordered_key60 =null;
ParserRuleReturnScope relOp62 =null;
ParserRuleReturnScope rangeExpression66 =null;
ParserRuleReturnScope assignmentExpression68 =null;
Object LPAREN61_tree=null;
Object COMMA63_tree=null;
Object IDENTIFIER64_tree=null;
Object COLON65_tree=null;
Object BITOR67_tree=null;
Object RPAREN69_tree=null;
Object SEMI70_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_BITOR=new RewriteRuleTokenStream(adaptor,"token BITOR");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_ordered_key=new RewriteRuleSubtreeStream(adaptor,"rule ordered_key");
RewriteRuleSubtreeStream stream_rangeExpression=new RewriteRuleSubtreeStream(adaptor,"rule rangeExpression");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_relOp=new RewriteRuleSubtreeStream(adaptor,"rule relOp");
RewriteRuleSubtreeStream stream_focus_key=new RewriteRuleSubtreeStream(adaptor,"rule focus_key");
try {
// AcslParser.g:238:5: ( focus_key ordered_key LPAREN relOp COMMA IDENTIFIER COLON rangeExpression BITOR assignmentExpression RPAREN SEMI -> ^( FOCUS_ORDERED_STATEMENT relOp IDENTIFIER rangeExpression assignmentExpression ) )
// AcslParser.g:238:7: focus_key ordered_key LPAREN relOp COMMA IDENTIFIER COLON rangeExpression BITOR assignmentExpression RPAREN SEMI
{
pushFollow(FOLLOW_focus_key_in_ordered_contract1641);
focus_key59=focus_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_focus_key.add(focus_key59.getTree());
pushFollow(FOLLOW_ordered_key_in_ordered_contract1643);
ordered_key60=ordered_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ordered_key.add(ordered_key60.getTree());
LPAREN61=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_ordered_contract1653); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN61);
pushFollow(FOLLOW_relOp_in_ordered_contract1655);
relOp62=relOp();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relOp.add(relOp62.getTree());
COMMA63=(Token)match(input,COMMA,FOLLOW_COMMA_in_ordered_contract1657); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA63);
IDENTIFIER64=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_ordered_contract1667); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER64);
COLON65=(Token)match(input,COLON,FOLLOW_COLON_in_ordered_contract1669); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON65);
pushFollow(FOLLOW_rangeExpression_in_ordered_contract1671);
rangeExpression66=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(rangeExpression66.getTree());
BITOR67=(Token)match(input,BITOR,FOLLOW_BITOR_in_ordered_contract1685); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR67);
pushFollow(FOLLOW_assignmentExpression_in_ordered_contract1687);
assignmentExpression68=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression68.getTree());
RPAREN69=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_ordered_contract1689); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN69);
SEMI70=(Token)match(input,SEMI,FOLLOW_SEMI_in_ordered_contract1691); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI70);
// AST REWRITE
// elements: IDENTIFIER, assignmentExpression, rangeExpression, relOp
// 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();
// 242:7: -> ^( FOCUS_ORDERED_STATEMENT relOp IDENTIFIER rangeExpression assignmentExpression )
{
// AcslParser.g:242:10: ^( FOCUS_ORDERED_STATEMENT relOp IDENTIFIER rangeExpression assignmentExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FOCUS_ORDERED_STATEMENT, "FOCUS_ORDERED_STATEMENT"), root_1);
adaptor.addChild(root_1, stream_relOp.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_rangeExpression.nextTree());
adaptor.addChild(root_1, stream_assignmentExpression.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
}
return retval;
}
// $ANTLR end "ordered_contract"
public static class function_contract_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "function_contract"
// AcslParser.g:246:1: function_contract : ( pure_function )? full_contract_block -> ^( FUNC_CONTRACT full_contract_block ( pure_function )? ) ;
public final AcslParser.function_contract_return function_contract() throws RecognitionException {
AcslParser.function_contract_return retval = new AcslParser.function_contract_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope pure_function71 =null;
ParserRuleReturnScope full_contract_block72 =null;
RewriteRuleSubtreeStream stream_pure_function=new RewriteRuleSubtreeStream(adaptor,"rule pure_function");
RewriteRuleSubtreeStream stream_full_contract_block=new RewriteRuleSubtreeStream(adaptor,"rule full_contract_block");
try {
// AcslParser.g:247:5: ( ( pure_function )? full_contract_block -> ^( FUNC_CONTRACT full_contract_block ( pure_function )? ) )
// AcslParser.g:247:7: ( pure_function )? full_contract_block
{
// AcslParser.g:247:7: ( pure_function )?
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==IDENTIFIER) ) {
int LA15_1 = input.LA(2);
if ( (LA15_1==SEMI) ) {
int LA15_3 = input.LA(3);
if ( (((input.LT(1).getText().equals("pure"))&&synpred21_AcslParser())) ) {
alt15=1;
}
}
}
switch (alt15) {
case 1 :
// AcslParser.g:247:7: pure_function
{
pushFollow(FOLLOW_pure_function_in_function_contract1730);
pure_function71=pure_function();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pure_function.add(pure_function71.getTree());
}
break;
}
pushFollow(FOLLOW_full_contract_block_in_function_contract1733);
full_contract_block72=full_contract_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_full_contract_block.add(full_contract_block72.getTree());
// AST REWRITE
// elements: pure_function, full_contract_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();
// 248:7: -> ^( FUNC_CONTRACT full_contract_block ( pure_function )? )
{
// AcslParser.g:248:10: ^( FUNC_CONTRACT full_contract_block ( pure_function )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNC_CONTRACT, "FUNC_CONTRACT"), root_1);
adaptor.addChild(root_1, stream_full_contract_block.nextTree());
// AcslParser.g:248:46: ( pure_function )?
if ( stream_pure_function.hasNext() ) {
adaptor.addChild(root_1, stream_pure_function.nextTree());
}
stream_pure_function.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
}
return retval;
}
// $ANTLR end "function_contract"
public static class logic_function_contract_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logic_function_contract"
// AcslParser.g:254:1: logic_function_contract : ( (a+= logic_function_clause )* ) -> ^( LOGIC_FUNCTIONS ( $a)* ) ;
public final AcslParser.logic_function_contract_return logic_function_contract() throws RecognitionException {
AcslParser.logic_function_contract_return retval = new AcslParser.logic_function_contract_return();
retval.start = input.LT(1);
Object root_0 = null;
List<Object> list_a=null;
RuleReturnScope a = null;
RewriteRuleSubtreeStream stream_logic_function_clause=new RewriteRuleSubtreeStream(adaptor,"rule logic_function_clause");
try {
// AcslParser.g:255:5: ( ( (a+= logic_function_clause )* ) -> ^( LOGIC_FUNCTIONS ( $a)* ) )
// AcslParser.g:255:7: ( (a+= logic_function_clause )* )
{
// AcslParser.g:255:7: ( (a+= logic_function_clause )* )
// AcslParser.g:255:8: (a+= logic_function_clause )*
{
// AcslParser.g:255:9: (a+= logic_function_clause )*
loop16:
while (true) {
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==IDENTIFIER) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// AcslParser.g:255:9: a+= logic_function_clause
{
pushFollow(FOLLOW_logic_function_clause_in_logic_function_contract1772);
a=logic_function_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logic_function_clause.add(a.getTree());
if (list_a==null) list_a=new ArrayList<Object>();
list_a.add(a.getTree());
}
break;
default :
break loop16;
}
}
}
// AST REWRITE
// elements: a
// token labels:
// rule labels: retval
// token list labels:
// rule list labels: a
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"token a",list_a);
root_0 = (Object)adaptor.nil();
// 255:35: -> ^( LOGIC_FUNCTIONS ( $a)* )
{
// AcslParser.g:255:38: ^( LOGIC_FUNCTIONS ( $a)* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOGIC_FUNCTIONS, "LOGIC_FUNCTIONS"), root_1);
// AcslParser.g:255:57: ( $a)*
while ( stream_a.hasNext() ) {
adaptor.addChild(root_1, stream_a.nextTree());
}
stream_a.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
}
return retval;
}
// $ANTLR end "logic_function_contract"
public static class logic_function_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logic_function_clause"
// AcslParser.g:258:1: logic_function_clause : ( logic_specifier_key type_expr a= IDENTIFIER b= logic_function_body SEMI -> ^( LOGIC_FUNCTION_CLAUSE type_expr $a $b) | predicate_key a= IDENTIFIER b= logic_function_body SEMI -> ^( PREDICATE_CLAUSE $a $b) );
public final AcslParser.logic_function_clause_return logic_function_clause() throws RecognitionException {
AcslParser.logic_function_clause_return retval = new AcslParser.logic_function_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
Token a=null;
Token SEMI75=null;
Token SEMI77=null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope logic_specifier_key73 =null;
ParserRuleReturnScope type_expr74 =null;
ParserRuleReturnScope predicate_key76 =null;
Object a_tree=null;
Object SEMI75_tree=null;
Object SEMI77_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_type_expr=new RewriteRuleSubtreeStream(adaptor,"rule type_expr");
RewriteRuleSubtreeStream stream_logic_specifier_key=new RewriteRuleSubtreeStream(adaptor,"rule logic_specifier_key");
RewriteRuleSubtreeStream stream_logic_function_body=new RewriteRuleSubtreeStream(adaptor,"rule logic_function_body");
RewriteRuleSubtreeStream stream_predicate_key=new RewriteRuleSubtreeStream(adaptor,"rule predicate_key");
try {
// AcslParser.g:259:5: ( logic_specifier_key type_expr a= IDENTIFIER b= logic_function_body SEMI -> ^( LOGIC_FUNCTION_CLAUSE type_expr $a $b) | predicate_key a= IDENTIFIER b= logic_function_body SEMI -> ^( PREDICATE_CLAUSE $a $b) )
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==IDENTIFIER) ) {
int LA17_1 = input.LA(2);
if ( (LA17_1==IDENTIFIER) ) {
int LA17_2 = input.LA(3);
if ( (LA17_2==IDENTIFIER) ) {
alt17=1;
}
else if ( (LA17_2==ASSIGN||LA17_2==LPAREN) ) {
alt17=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 17, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA17_1==CHAR||LA17_1==DOUBLE||LA17_1==FLOAT||LA17_1==INT||LA17_1==LONG||LA17_1==SHORT||LA17_1==VOID) ) {
alt17=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 17, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 17, 0, input);
throw nvae;
}
switch (alt17) {
case 1 :
// AcslParser.g:259:7: logic_specifier_key type_expr a= IDENTIFIER b= logic_function_body SEMI
{
pushFollow(FOLLOW_logic_specifier_key_in_logic_function_clause1801);
logic_specifier_key73=logic_specifier_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logic_specifier_key.add(logic_specifier_key73.getTree());
pushFollow(FOLLOW_type_expr_in_logic_function_clause1803);
type_expr74=type_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_expr.add(type_expr74.getTree());
a=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_logic_function_clause1807); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(a);
pushFollow(FOLLOW_logic_function_body_in_logic_function_clause1811);
b=logic_function_body();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logic_function_body.add(b.getTree());
SEMI75=(Token)match(input,SEMI,FOLLOW_SEMI_in_logic_function_clause1813); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI75);
// AST REWRITE
// elements: type_expr, b, a
// token labels: a
// rule labels: b, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a);
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 260:9: -> ^( LOGIC_FUNCTION_CLAUSE type_expr $a $b)
{
// AcslParser.g:260:12: ^( LOGIC_FUNCTION_CLAUSE type_expr $a $b)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOGIC_FUNCTION_CLAUSE, "LOGIC_FUNCTION_CLAUSE"), root_1);
adaptor.addChild(root_1, stream_type_expr.nextTree());
adaptor.addChild(root_1, stream_a.nextNode());
adaptor.addChild(root_1, stream_b.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:261:7: predicate_key a= IDENTIFIER b= logic_function_body SEMI
{
pushFollow(FOLLOW_predicate_key_in_logic_function_clause1843);
predicate_key76=predicate_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_predicate_key.add(predicate_key76.getTree());
a=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_logic_function_clause1847); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(a);
pushFollow(FOLLOW_logic_function_body_in_logic_function_clause1851);
b=logic_function_body();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logic_function_body.add(b.getTree());
SEMI77=(Token)match(input,SEMI,FOLLOW_SEMI_in_logic_function_clause1853); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI77);
// AST REWRITE
// elements: a, b
// token labels: a
// rule labels: b, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a);
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 262:9: -> ^( PREDICATE_CLAUSE $a $b)
{
// AcslParser.g:262:12: ^( PREDICATE_CLAUSE $a $b)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PREDICATE_CLAUSE, "PREDICATE_CLAUSE"), root_1);
adaptor.addChild(root_1, stream_a.nextNode());
adaptor.addChild(root_1, stream_b.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
}
return retval;
}
// $ANTLR end "logic_function_clause"
public static class assert_contract_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assert_contract"
// AcslParser.g:266:1: assert_contract : assert_key term SEMI -> ^( ASSERT_ACSL term ) ;
public final AcslParser.assert_contract_return assert_contract() throws RecognitionException {
AcslParser.assert_contract_return retval = new AcslParser.assert_contract_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI80=null;
ParserRuleReturnScope assert_key78 =null;
ParserRuleReturnScope term79 =null;
Object SEMI80_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_assert_key=new RewriteRuleSubtreeStream(adaptor,"rule assert_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:267:5: ( assert_key term SEMI -> ^( ASSERT_ACSL term ) )
// AcslParser.g:267:7: assert_key term SEMI
{
pushFollow(FOLLOW_assert_key_in_assert_contract1893);
assert_key78=assert_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assert_key.add(assert_key78.getTree());
pushFollow(FOLLOW_term_in_assert_contract1895);
term79=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term79.getTree());
SEMI80=(Token)match(input,SEMI,FOLLOW_SEMI_in_assert_contract1897); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI80);
// AST REWRITE
// elements: term
// 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();
// 267:28: -> ^( ASSERT_ACSL term )
{
// AcslParser.g:267:31: ^( ASSERT_ACSL term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ASSERT_ACSL, "ASSERT_ACSL"), root_1);
adaptor.addChild(root_1, stream_term.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
}
return retval;
}
// $ANTLR end "assert_contract"
public static class logic_function_body_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logic_function_body"
// AcslParser.g:273:1: logic_function_body : ( LPAREN binders RPAREN ASSIGN term -> ^( LOGIC_FUNCTION_BODY binders term ) | LPAREN binders RPAREN -> ^( LOGIC_FUNCTION_BODY binders ABSENT ) | ASSIGN term -> ^( LOGIC_FUNCTION_BODY ABSENT term ) );
public final AcslParser.logic_function_body_return logic_function_body() throws RecognitionException {
AcslParser.logic_function_body_return retval = new AcslParser.logic_function_body_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN81=null;
Token RPAREN83=null;
Token ASSIGN84=null;
Token LPAREN86=null;
Token RPAREN88=null;
Token ASSIGN89=null;
ParserRuleReturnScope binders82 =null;
ParserRuleReturnScope term85 =null;
ParserRuleReturnScope binders87 =null;
ParserRuleReturnScope term90 =null;
Object LPAREN81_tree=null;
Object RPAREN83_tree=null;
Object ASSIGN84_tree=null;
Object LPAREN86_tree=null;
Object RPAREN88_tree=null;
Object ASSIGN89_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_binders=new RewriteRuleSubtreeStream(adaptor,"rule binders");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:274:5: ( LPAREN binders RPAREN ASSIGN term -> ^( LOGIC_FUNCTION_BODY binders term ) | LPAREN binders RPAREN -> ^( LOGIC_FUNCTION_BODY binders ABSENT ) | ASSIGN term -> ^( LOGIC_FUNCTION_BODY ABSENT term ) )
int alt18=3;
int LA18_0 = input.LA(1);
if ( (LA18_0==LPAREN) ) {
int LA18_1 = input.LA(2);
if ( (synpred24_AcslParser()) ) {
alt18=1;
}
else if ( (synpred25_AcslParser()) ) {
alt18=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 18, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA18_0==ASSIGN) ) {
alt18=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 18, 0, input);
throw nvae;
}
switch (alt18) {
case 1 :
// AcslParser.g:274:7: LPAREN binders RPAREN ASSIGN term
{
LPAREN81=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_logic_function_body1926); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN81);
pushFollow(FOLLOW_binders_in_logic_function_body1928);
binders82=binders();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binders.add(binders82.getTree());
RPAREN83=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_logic_function_body1930); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN83);
ASSIGN84=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_logic_function_body1932); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN84);
pushFollow(FOLLOW_term_in_logic_function_body1934);
term85=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term85.getTree());
// AST REWRITE
// elements: binders, term
// 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();
// 275:7: -> ^( LOGIC_FUNCTION_BODY binders term )
{
// AcslParser.g:275:10: ^( LOGIC_FUNCTION_BODY binders term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOGIC_FUNCTION_BODY, "LOGIC_FUNCTION_BODY"), root_1);
adaptor.addChild(root_1, stream_binders.nextTree());
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:276:7: LPAREN binders RPAREN
{
LPAREN86=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_logic_function_body1960); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN86);
pushFollow(FOLLOW_binders_in_logic_function_body1962);
binders87=binders();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binders.add(binders87.getTree());
RPAREN88=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_logic_function_body1964); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN88);
// AST REWRITE
// elements: binders
// 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();
// 277:7: -> ^( LOGIC_FUNCTION_BODY binders ABSENT )
{
// AcslParser.g:277:10: ^( LOGIC_FUNCTION_BODY binders ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOGIC_FUNCTION_BODY, "LOGIC_FUNCTION_BODY"), root_1);
adaptor.addChild(root_1, stream_binders.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:278:7: ASSIGN term
{
ASSIGN89=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_logic_function_body1989); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN89);
pushFollow(FOLLOW_term_in_logic_function_body1991);
term90=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term90.getTree());
// AST REWRITE
// elements: term
// 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();
// 279:7: -> ^( LOGIC_FUNCTION_BODY ABSENT term )
{
// AcslParser.g:279:10: ^( LOGIC_FUNCTION_BODY ABSENT term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOGIC_FUNCTION_BODY, "LOGIC_FUNCTION_BODY"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_term.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
}
return retval;
}
// $ANTLR end "logic_function_body"
public static class pure_function_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "pure_function"
// AcslParser.g:282:1: pure_function : pure_key SEMI -> pure_key ;
public final AcslParser.pure_function_return pure_function() throws RecognitionException {
AcslParser.pure_function_return retval = new AcslParser.pure_function_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI92=null;
ParserRuleReturnScope pure_key91 =null;
Object SEMI92_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_pure_key=new RewriteRuleSubtreeStream(adaptor,"rule pure_key");
try {
// AcslParser.g:283:5: ( pure_key SEMI -> pure_key )
// AcslParser.g:283:7: pure_key SEMI
{
pushFollow(FOLLOW_pure_key_in_pure_function2026);
pure_key91=pure_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pure_key.add(pure_key91.getTree());
SEMI92=(Token)match(input,SEMI,FOLLOW_SEMI_in_pure_function2028); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI92);
// AST REWRITE
// elements: pure_key
// 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();
// 283:21: -> pure_key
{
adaptor.addChild(root_0, stream_pure_key.nextTree());
}
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
}
return retval;
}
// $ANTLR end "pure_function"
public static class full_contract_block_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "full_contract_block"
// AcslParser.g:288:1: full_contract_block : (f+= function_clause )* (m+= contract_block )* (c+= completeness_clause_block )* -> ^( FUNC_CONTRACT_BLOCK ( $f)* ( $m)* ( $c)* ) ;
public final AcslParser.full_contract_block_return full_contract_block() throws RecognitionException {
AcslParser.full_contract_block_return retval = new AcslParser.full_contract_block_return();
retval.start = input.LT(1);
Object root_0 = null;
List<Object> list_f=null;
List<Object> list_m=null;
List<Object> list_c=null;
RuleReturnScope f = null;
RuleReturnScope m = null;
RuleReturnScope c = null;
RewriteRuleSubtreeStream stream_function_clause=new RewriteRuleSubtreeStream(adaptor,"rule function_clause");
RewriteRuleSubtreeStream stream_contract_block=new RewriteRuleSubtreeStream(adaptor,"rule contract_block");
RewriteRuleSubtreeStream stream_completeness_clause_block=new RewriteRuleSubtreeStream(adaptor,"rule completeness_clause_block");
try {
// AcslParser.g:289:5: ( (f+= function_clause )* (m+= contract_block )* (c+= completeness_clause_block )* -> ^( FUNC_CONTRACT_BLOCK ( $f)* ( $m)* ( $c)* ) )
// AcslParser.g:289:7: (f+= function_clause )* (m+= contract_block )* (c+= completeness_clause_block )*
{
// AcslParser.g:289:7: (f+= function_clause )*
loop19:
while (true) {
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==IDENTIFIER) ) {
int LA19_1 = input.LA(2);
if ( (LA19_1==IDENTIFIER) ) {
int LA19_3 = input.LA(3);
if ( (LA19_3==SEMI) ) {
int LA19_5 = input.LA(4);
if ( ((((input.LT(1).getText().equals("reads"))||(input.LT(1).getText().equals("assigns"))||(input.LT(1).getText().equals("frees"))||(input.LT(1).getText().equals("ensures"))||(input.LT(1).getText().equals("executes_when"))||(input.LT(1).getText().equals("allocates"))||(input.LT(1).getText().equals("requires"))||(input.LT(1).getText().equals("terminates")))&&synpred26_AcslParser())) ) {
alt19=1;
}
}
else if ( ((LA19_3 >= AMPERSAND && LA19_3 <= AND)||(LA19_3 >= ARROW && LA19_3 <= ASSIGN)||LA19_3==BITOR||LA19_3==BITXOR||LA19_3==COMMA||LA19_3==DIV||(LA19_3 >= DOT && LA19_3 <= DOTDOT)||(LA19_3 >= EQUALS && LA19_3 <= EQUIV_ACSL)||(LA19_3 >= GT && LA19_3 <= GTE)||(LA19_3 >= IMPLIES && LA19_3 <= IMPLIES_ACSL)||LA19_3==LPAREN||(LA19_3 >= LSQUARE && LA19_3 <= LTE)||(LA19_3 >= MINUSMINUS && LA19_3 <= MOD)||LA19_3==NEQ||LA19_3==OR||LA19_3==PLUS||LA19_3==QMARK||LA19_3==SHIFTLEFT||LA19_3==SHIFTRIGHT||LA19_3==STAR||LA19_3==SUB||LA19_3==XOR_ACSL) ) {
alt19=1;
}
}
else if ( (LA19_1==AMPERSAND||LA19_1==CHARACTER_CONSTANT||LA19_1==ELLIPSIS||LA19_1==EXTENDED_IDENTIFIER||LA19_1==FLOATING_CONSTANT||LA19_1==INTEGER_CONSTANT||LA19_1==LCURLY||LA19_1==LPAREN||LA19_1==NOT||LA19_1==PLUS||LA19_1==SEMI||LA19_1==STAR||(LA19_1 >= STRING_LITERAL && LA19_1 <= SUB)||LA19_1==TILDE||LA19_1==SELF||LA19_1==SIZEOF) ) {
alt19=1;
}
}
switch (alt19) {
case 1 :
// AcslParser.g:289:8: f+= function_clause
{
pushFollow(FOLLOW_function_clause_in_full_contract_block2054);
f=function_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_function_clause.add(f.getTree());
if (list_f==null) list_f=new ArrayList<Object>();
list_f.add(f.getTree());
}
break;
default :
break loop19;
}
}
// AcslParser.g:289:29: (m+= contract_block )*
loop20:
while (true) {
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==IDENTIFIER) ) {
int LA20_1 = input.LA(2);
if ( (LA20_1==IDENTIFIER) ) {
int LA20_3 = input.LA(3);
if ( (LA20_3==COLON) ) {
alt20=1;
}
}
}
switch (alt20) {
case 1 :
// AcslParser.g:289:30: m+= contract_block
{
pushFollow(FOLLOW_contract_block_in_full_contract_block2061);
m=contract_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_contract_block.add(m.getTree());
if (list_m==null) list_m=new ArrayList<Object>();
list_m.add(m.getTree());
}
break;
default :
break loop20;
}
}
// AcslParser.g:290:9: (c+= completeness_clause_block )*
loop21:
while (true) {
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==IDENTIFIER) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// AcslParser.g:290:10: c+= completeness_clause_block
{
pushFollow(FOLLOW_completeness_clause_block_in_full_contract_block2076);
c=completeness_clause_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_completeness_clause_block.add(c.getTree());
if (list_c==null) list_c=new ArrayList<Object>();
list_c.add(c.getTree());
}
break;
default :
break loop21;
}
}
// AST REWRITE
// elements: f, m, c
// token labels:
// rule labels: retval
// token list labels:
// rule list labels: c, f, m
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"token c",list_c);
RewriteRuleSubtreeStream stream_f=new RewriteRuleSubtreeStream(adaptor,"token f",list_f);
RewriteRuleSubtreeStream stream_m=new RewriteRuleSubtreeStream(adaptor,"token m",list_m);
root_0 = (Object)adaptor.nil();
// 291:9: -> ^( FUNC_CONTRACT_BLOCK ( $f)* ( $m)* ( $c)* )
{
// AcslParser.g:291:12: ^( FUNC_CONTRACT_BLOCK ( $f)* ( $m)* ( $c)* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNC_CONTRACT_BLOCK, "FUNC_CONTRACT_BLOCK"), root_1);
// AcslParser.g:291:35: ( $f)*
while ( stream_f.hasNext() ) {
adaptor.addChild(root_1, stream_f.nextTree());
}
stream_f.reset();
// AcslParser.g:291:39: ( $m)*
while ( stream_m.hasNext() ) {
adaptor.addChild(root_1, stream_m.nextTree());
}
stream_m.reset();
// AcslParser.g:291:43: ( $c)*
while ( stream_c.hasNext() ) {
adaptor.addChild(root_1, stream_c.nextTree());
}
stream_c.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
}
return retval;
}
// $ANTLR end "full_contract_block"
public static class contract_block_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "contract_block"
// AcslParser.g:295:1: contract_block : named_behavior_block ( completeness_clause_block )? ;
public final AcslParser.contract_block_return contract_block() throws RecognitionException {
AcslParser.contract_block_return retval = new AcslParser.contract_block_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope named_behavior_block93 =null;
ParserRuleReturnScope completeness_clause_block94 =null;
try {
// AcslParser.g:296:5: ( named_behavior_block ( completeness_clause_block )? )
// AcslParser.g:296:7: named_behavior_block ( completeness_clause_block )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_named_behavior_block_in_contract_block2125);
named_behavior_block93=named_behavior_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, named_behavior_block93.getTree());
// AcslParser.g:296:28: ( completeness_clause_block )?
int alt22=2;
alt22 = dfa22.predict(input);
switch (alt22) {
case 1 :
// AcslParser.g:296:28: completeness_clause_block
{
pushFollow(FOLLOW_completeness_clause_block_in_contract_block2127);
completeness_clause_block94=completeness_clause_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, completeness_clause_block94.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
}
return retval;
}
// $ANTLR end "contract_block"
public static class function_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "function_clause"
// AcslParser.g:299:1: function_clause : ( requires_clause SEMI -> ^( CLAUSE_NORMAL requires_clause ) | terminates_clause SEMI -> ^( CLAUSE_NORMAL terminates_clause ) | simple_clause SEMI -> ^( CLAUSE_NORMAL simple_clause ) );
public final AcslParser.function_clause_return function_clause() throws RecognitionException {
AcslParser.function_clause_return retval = new AcslParser.function_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI96=null;
Token SEMI98=null;
Token SEMI100=null;
ParserRuleReturnScope requires_clause95 =null;
ParserRuleReturnScope terminates_clause97 =null;
ParserRuleReturnScope simple_clause99 =null;
Object SEMI96_tree=null;
Object SEMI98_tree=null;
Object SEMI100_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_simple_clause=new RewriteRuleSubtreeStream(adaptor,"rule simple_clause");
RewriteRuleSubtreeStream stream_requires_clause=new RewriteRuleSubtreeStream(adaptor,"rule requires_clause");
RewriteRuleSubtreeStream stream_terminates_clause=new RewriteRuleSubtreeStream(adaptor,"rule terminates_clause");
try {
// AcslParser.g:300:5: ( requires_clause SEMI -> ^( CLAUSE_NORMAL requires_clause ) | terminates_clause SEMI -> ^( CLAUSE_NORMAL terminates_clause ) | simple_clause SEMI -> ^( CLAUSE_NORMAL simple_clause ) )
int alt23=3;
int LA23_0 = input.LA(1);
if ( (LA23_0==IDENTIFIER) ) {
int LA23_1 = input.LA(2);
if ( ((synpred30_AcslParser()&&(input.LT(1).getText().equals("requires")))) ) {
alt23=1;
}
else if ( ((synpred31_AcslParser()&&(input.LT(1).getText().equals("terminates")))) ) {
alt23=2;
}
else if ( (((input.LT(1).getText().equals("reads"))||(input.LT(1).getText().equals("assigns"))||(input.LT(1).getText().equals("frees"))||(input.LT(1).getText().equals("ensures"))||(input.LT(1).getText().equals("executes_when"))||(input.LT(1).getText().equals("allocates"))||(input.LT(1).getText().equals("depends_on")))) ) {
alt23=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 23, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 23, 0, input);
throw nvae;
}
switch (alt23) {
case 1 :
// AcslParser.g:300:7: requires_clause SEMI
{
pushFollow(FOLLOW_requires_clause_in_function_clause2145);
requires_clause95=requires_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_requires_clause.add(requires_clause95.getTree());
SEMI96=(Token)match(input,SEMI,FOLLOW_SEMI_in_function_clause2147); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI96);
// AST REWRITE
// elements: requires_clause
// 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();
// 300:27: -> ^( CLAUSE_NORMAL requires_clause )
{
// AcslParser.g:300:30: ^( CLAUSE_NORMAL requires_clause )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CLAUSE_NORMAL, "CLAUSE_NORMAL"), root_1);
adaptor.addChild(root_1, stream_requires_clause.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:301:7: terminates_clause SEMI
{
pushFollow(FOLLOW_terminates_clause_in_function_clause2162);
terminates_clause97=terminates_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_terminates_clause.add(terminates_clause97.getTree());
SEMI98=(Token)match(input,SEMI,FOLLOW_SEMI_in_function_clause2164); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI98);
// AST REWRITE
// elements: terminates_clause
// 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();
// 301:29: -> ^( CLAUSE_NORMAL terminates_clause )
{
// AcslParser.g:301:32: ^( CLAUSE_NORMAL terminates_clause )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CLAUSE_NORMAL, "CLAUSE_NORMAL"), root_1);
adaptor.addChild(root_1, stream_terminates_clause.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:302:7: simple_clause SEMI
{
pushFollow(FOLLOW_simple_clause_in_function_clause2179);
simple_clause99=simple_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_simple_clause.add(simple_clause99.getTree());
SEMI100=(Token)match(input,SEMI,FOLLOW_SEMI_in_function_clause2181); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI100);
// AST REWRITE
// elements: simple_clause
// 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();
// 302:26: -> ^( CLAUSE_NORMAL simple_clause )
{
// AcslParser.g:302:29: ^( CLAUSE_NORMAL simple_clause )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CLAUSE_NORMAL, "CLAUSE_NORMAL"), root_1);
adaptor.addChild(root_1, stream_simple_clause.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
}
return retval;
}
// $ANTLR end "function_clause"
public static class named_behavior_block_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "named_behavior_block"
// AcslParser.g:305:1: named_behavior_block : named_behavior -> ^( CLAUSE_BEHAVIOR named_behavior ) ;
public final AcslParser.named_behavior_block_return named_behavior_block() throws RecognitionException {
AcslParser.named_behavior_block_return retval = new AcslParser.named_behavior_block_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope named_behavior101 =null;
RewriteRuleSubtreeStream stream_named_behavior=new RewriteRuleSubtreeStream(adaptor,"rule named_behavior");
try {
// AcslParser.g:306:5: ( named_behavior -> ^( CLAUSE_BEHAVIOR named_behavior ) )
// AcslParser.g:306:7: named_behavior
{
pushFollow(FOLLOW_named_behavior_in_named_behavior_block2206);
named_behavior101=named_behavior();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_named_behavior.add(named_behavior101.getTree());
// AST REWRITE
// elements: named_behavior
// 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();
// 306:22: -> ^( CLAUSE_BEHAVIOR named_behavior )
{
// AcslParser.g:306:25: ^( CLAUSE_BEHAVIOR named_behavior )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CLAUSE_BEHAVIOR, "CLAUSE_BEHAVIOR"), root_1);
adaptor.addChild(root_1, stream_named_behavior.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
}
return retval;
}
// $ANTLR end "named_behavior_block"
public static class completeness_clause_block_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "completeness_clause_block"
// AcslParser.g:309:1: completeness_clause_block : completeness_clause SEMI -> ^( CLAUSE_COMPLETE completeness_clause ) ;
public final AcslParser.completeness_clause_block_return completeness_clause_block() throws RecognitionException {
AcslParser.completeness_clause_block_return retval = new AcslParser.completeness_clause_block_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI103=null;
ParserRuleReturnScope completeness_clause102 =null;
Object SEMI103_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_completeness_clause=new RewriteRuleSubtreeStream(adaptor,"rule completeness_clause");
try {
// AcslParser.g:310:5: ( completeness_clause SEMI -> ^( CLAUSE_COMPLETE completeness_clause ) )
// AcslParser.g:310:7: completeness_clause SEMI
{
pushFollow(FOLLOW_completeness_clause_in_completeness_clause_block2231);
completeness_clause102=completeness_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_completeness_clause.add(completeness_clause102.getTree());
SEMI103=(Token)match(input,SEMI,FOLLOW_SEMI_in_completeness_clause_block2233); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI103);
// AST REWRITE
// elements: completeness_clause
// 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();
// 310:32: -> ^( CLAUSE_COMPLETE completeness_clause )
{
// AcslParser.g:310:35: ^( CLAUSE_COMPLETE completeness_clause )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CLAUSE_COMPLETE, "CLAUSE_COMPLETE"), root_1);
adaptor.addChild(root_1, stream_completeness_clause.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
}
return retval;
}
// $ANTLR end "completeness_clause_block"
public static class requires_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "requires_clause"
// AcslParser.g:313:1: requires_clause : requires_key term -> ^( REQUIRES_ACSL requires_key term ) ;
public final AcslParser.requires_clause_return requires_clause() throws RecognitionException {
AcslParser.requires_clause_return retval = new AcslParser.requires_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope requires_key104 =null;
ParserRuleReturnScope term105 =null;
RewriteRuleSubtreeStream stream_requires_key=new RewriteRuleSubtreeStream(adaptor,"rule requires_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:314:5: ( requires_key term -> ^( REQUIRES_ACSL requires_key term ) )
// AcslParser.g:314:7: requires_key term
{
pushFollow(FOLLOW_requires_key_in_requires_clause2258);
requires_key104=requires_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_requires_key.add(requires_key104.getTree());
pushFollow(FOLLOW_term_in_requires_clause2260);
term105=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term105.getTree());
// AST REWRITE
// elements: requires_key, term
// 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();
// 314:25: -> ^( REQUIRES_ACSL requires_key term )
{
// AcslParser.g:314:28: ^( REQUIRES_ACSL requires_key term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REQUIRES_ACSL, "REQUIRES_ACSL"), root_1);
adaptor.addChild(root_1, stream_requires_key.nextTree());
adaptor.addChild(root_1, stream_term.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
}
return retval;
}
// $ANTLR end "requires_clause"
public static class terminates_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "terminates_clause"
// AcslParser.g:317:1: terminates_clause : terminates_key term -> ^( TERMINATES terminates_key term ) ;
public final AcslParser.terminates_clause_return terminates_clause() throws RecognitionException {
AcslParser.terminates_clause_return retval = new AcslParser.terminates_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope terminates_key106 =null;
ParserRuleReturnScope term107 =null;
RewriteRuleSubtreeStream stream_terminates_key=new RewriteRuleSubtreeStream(adaptor,"rule terminates_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:318:5: ( terminates_key term -> ^( TERMINATES terminates_key term ) )
// AcslParser.g:318:7: terminates_key term
{
pushFollow(FOLLOW_terminates_key_in_terminates_clause2287);
terminates_key106=terminates_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_terminates_key.add(terminates_key106.getTree());
pushFollow(FOLLOW_term_in_terminates_clause2289);
term107=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term107.getTree());
// AST REWRITE
// elements: terminates_key, term
// 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();
// 318:27: -> ^( TERMINATES terminates_key term )
{
// AcslParser.g:318:30: ^( TERMINATES terminates_key term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERMINATES, "TERMINATES"), root_1);
adaptor.addChild(root_1, stream_terminates_key.nextTree());
adaptor.addChild(root_1, stream_term.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
}
return retval;
}
// $ANTLR end "terminates_clause"
public static class binders_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "binders"
// AcslParser.g:321:1: binders : binder ( COMMA binder )* -> ^( BINDER_LIST ( binder )+ ) ;
public final AcslParser.binders_return binders() throws RecognitionException {
AcslParser.binders_return retval = new AcslParser.binders_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA109=null;
ParserRuleReturnScope binder108 =null;
ParserRuleReturnScope binder110 =null;
Object COMMA109_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_binder=new RewriteRuleSubtreeStream(adaptor,"rule binder");
try {
// AcslParser.g:322:5: ( binder ( COMMA binder )* -> ^( BINDER_LIST ( binder )+ ) )
// AcslParser.g:322:7: binder ( COMMA binder )*
{
pushFollow(FOLLOW_binder_in_binders2316);
binder108=binder();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binder.add(binder108.getTree());
// AcslParser.g:322:14: ( COMMA binder )*
loop24:
while (true) {
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==COMMA) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// AcslParser.g:322:15: COMMA binder
{
COMMA109=(Token)match(input,COMMA,FOLLOW_COMMA_in_binders2319); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA109);
pushFollow(FOLLOW_binder_in_binders2321);
binder110=binder();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binder.add(binder110.getTree());
}
break;
default :
break loop24;
}
}
// AST REWRITE
// elements: binder
// 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();
// 323:9: -> ^( BINDER_LIST ( binder )+ )
{
// AcslParser.g:323:11: ^( BINDER_LIST ( binder )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BINDER_LIST, "BINDER_LIST"), root_1);
if ( !(stream_binder.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_binder.hasNext() ) {
adaptor.addChild(root_1, stream_binder.nextTree());
}
stream_binder.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
}
return retval;
}
// $ANTLR end "binders"
public static class binder_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "binder"
// AcslParser.g:326:1: binder : type_expr variable_ident ( COMMA variable_ident )* -> ^( BINDER type_expr ( variable_ident )+ ) ;
public final AcslParser.binder_return binder() throws RecognitionException {
AcslParser.binder_return retval = new AcslParser.binder_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA113=null;
ParserRuleReturnScope type_expr111 =null;
ParserRuleReturnScope variable_ident112 =null;
ParserRuleReturnScope variable_ident114 =null;
Object COMMA113_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_type_expr=new RewriteRuleSubtreeStream(adaptor,"rule type_expr");
RewriteRuleSubtreeStream stream_variable_ident=new RewriteRuleSubtreeStream(adaptor,"rule variable_ident");
try {
// AcslParser.g:327:5: ( type_expr variable_ident ( COMMA variable_ident )* -> ^( BINDER type_expr ( variable_ident )+ ) )
// AcslParser.g:327:7: type_expr variable_ident ( COMMA variable_ident )*
{
pushFollow(FOLLOW_type_expr_in_binder2356);
type_expr111=type_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_expr.add(type_expr111.getTree());
pushFollow(FOLLOW_variable_ident_in_binder2358);
variable_ident112=variable_ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variable_ident.add(variable_ident112.getTree());
// AcslParser.g:327:32: ( COMMA variable_ident )*
loop25:
while (true) {
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==COMMA) ) {
int LA25_1 = input.LA(2);
if ( (LA25_1==IDENTIFIER) ) {
int LA25_3 = input.LA(3);
if ( (LA25_3==EOF||LA25_3==COMMA||LA25_3==LSQUARE||LA25_3==RCURLY||LA25_3==RPAREN||LA25_3==SEMI) ) {
alt25=1;
}
}
else if ( (LA25_1==LPAREN||LA25_1==STAR) ) {
alt25=1;
}
}
switch (alt25) {
case 1 :
// AcslParser.g:327:33: COMMA variable_ident
{
COMMA113=(Token)match(input,COMMA,FOLLOW_COMMA_in_binder2361); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA113);
pushFollow(FOLLOW_variable_ident_in_binder2363);
variable_ident114=variable_ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variable_ident.add(variable_ident114.getTree());
}
break;
default :
break loop25;
}
}
// AST REWRITE
// elements: type_expr, variable_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();
// 328:9: -> ^( BINDER type_expr ( variable_ident )+ )
{
// AcslParser.g:328:11: ^( BINDER type_expr ( variable_ident )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BINDER, "BINDER"), root_1);
adaptor.addChild(root_1, stream_type_expr.nextTree());
if ( !(stream_variable_ident.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_variable_ident.hasNext() ) {
adaptor.addChild(root_1, stream_variable_ident.nextTree());
}
stream_variable_ident.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
}
return retval;
}
// $ANTLR end "binder"
public static class type_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "type_expr"
// AcslParser.g:331:1: type_expr : ( logic_type_expr -> ^( LOGIC_TYPE logic_type_expr ) | specifierQualifierList abstractDeclarator -> ^( C_TYPE specifierQualifierList abstractDeclarator ) );
public final AcslParser.type_expr_return type_expr() throws RecognitionException {
AcslParser.type_expr_return retval = new AcslParser.type_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope logic_type_expr115 =null;
ParserRuleReturnScope specifierQualifierList116 =null;
ParserRuleReturnScope abstractDeclarator117 =null;
RewriteRuleSubtreeStream stream_specifierQualifierList=new RewriteRuleSubtreeStream(adaptor,"rule specifierQualifierList");
RewriteRuleSubtreeStream stream_logic_type_expr=new RewriteRuleSubtreeStream(adaptor,"rule logic_type_expr");
RewriteRuleSubtreeStream stream_abstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule abstractDeclarator");
try {
// AcslParser.g:332:5: ( logic_type_expr -> ^( LOGIC_TYPE logic_type_expr ) | specifierQualifierList abstractDeclarator -> ^( C_TYPE specifierQualifierList abstractDeclarator ) )
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==IDENTIFIER) ) {
alt26=1;
}
else if ( (LA26_0==CHAR||LA26_0==DOUBLE||LA26_0==FLOAT||LA26_0==INT||LA26_0==LONG||LA26_0==SHORT||LA26_0==VOID) ) {
alt26=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 26, 0, input);
throw nvae;
}
switch (alt26) {
case 1 :
// AcslParser.g:332:7: logic_type_expr
{
pushFollow(FOLLOW_logic_type_expr_in_type_expr2400);
logic_type_expr115=logic_type_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logic_type_expr.add(logic_type_expr115.getTree());
// AST REWRITE
// elements: logic_type_expr
// 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();
// 332:23: -> ^( LOGIC_TYPE logic_type_expr )
{
// AcslParser.g:332:25: ^( LOGIC_TYPE logic_type_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOGIC_TYPE, "LOGIC_TYPE"), root_1);
adaptor.addChild(root_1, stream_logic_type_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:333:7: specifierQualifierList abstractDeclarator
{
pushFollow(FOLLOW_specifierQualifierList_in_type_expr2415);
specifierQualifierList116=specifierQualifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_specifierQualifierList.add(specifierQualifierList116.getTree());
pushFollow(FOLLOW_abstractDeclarator_in_type_expr2417);
abstractDeclarator117=abstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator117.getTree());
// AST REWRITE
// elements: specifierQualifierList, abstractDeclarator
// 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();
// 334:7: -> ^( C_TYPE specifierQualifierList abstractDeclarator )
{
// AcslParser.g:334:10: ^( C_TYPE specifierQualifierList abstractDeclarator )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(C_TYPE, "C_TYPE"), root_1);
adaptor.addChild(root_1, stream_specifierQualifierList.nextTree());
adaptor.addChild(root_1, stream_abstractDeclarator.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
}
return retval;
}
// $ANTLR end "type_expr"
public static class specifierQualifierList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "specifierQualifierList"
// AcslParser.g:338:1: specifierQualifierList : ( c_basic_type )+ -> ^( SPECIFIER_QUALIFIER_LIST ( c_basic_type )+ ) ;
public final AcslParser.specifierQualifierList_return specifierQualifierList() throws RecognitionException {
AcslParser.specifierQualifierList_return retval = new AcslParser.specifierQualifierList_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope c_basic_type118 =null;
RewriteRuleSubtreeStream stream_c_basic_type=new RewriteRuleSubtreeStream(adaptor,"rule c_basic_type");
try {
// AcslParser.g:339:5: ( ( c_basic_type )+ -> ^( SPECIFIER_QUALIFIER_LIST ( c_basic_type )+ ) )
// AcslParser.g:339:7: ( c_basic_type )+
{
// AcslParser.g:339:7: ( c_basic_type )+
int cnt27=0;
loop27:
while (true) {
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==CHAR||LA27_0==DOUBLE||LA27_0==FLOAT||LA27_0==INT||LA27_0==LONG||LA27_0==SHORT||LA27_0==VOID) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// AcslParser.g:339:7: c_basic_type
{
pushFollow(FOLLOW_c_basic_type_in_specifierQualifierList2452);
c_basic_type118=c_basic_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_c_basic_type.add(c_basic_type118.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: c_basic_type
// 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();
// 340:7: -> ^( SPECIFIER_QUALIFIER_LIST ( c_basic_type )+ )
{
// AcslParser.g:340:10: ^( SPECIFIER_QUALIFIER_LIST ( c_basic_type )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SPECIFIER_QUALIFIER_LIST, "SPECIFIER_QUALIFIER_LIST"), root_1);
if ( !(stream_c_basic_type.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_c_basic_type.hasNext() ) {
adaptor.addChild(root_1, stream_c_basic_type.nextTree());
}
stream_c_basic_type.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
}
return retval;
}
// $ANTLR end "specifierQualifierList"
public static class abstractDeclarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "abstractDeclarator"
// AcslParser.g:343:1: abstractDeclarator : ( pointer -> ^( ABSTRACT_DECLARATOR pointer ABSENT ) | directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator ) | pointer directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator ) | -> ABSENT );
public final AcslParser.abstractDeclarator_return abstractDeclarator() throws RecognitionException {
AcslParser.abstractDeclarator_return retval = new AcslParser.abstractDeclarator_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope pointer119 =null;
ParserRuleReturnScope directAbstractDeclarator120 =null;
ParserRuleReturnScope pointer121 =null;
ParserRuleReturnScope directAbstractDeclarator122 =null;
RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer");
RewriteRuleSubtreeStream stream_directAbstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule directAbstractDeclarator");
try {
// AcslParser.g:344:5: ( pointer -> ^( ABSTRACT_DECLARATOR pointer ABSENT ) | directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator ) | pointer directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator ) | -> ABSENT )
int alt28=4;
switch ( input.LA(1) ) {
case STAR:
{
int LA28_1 = input.LA(2);
if ( (synpred36_AcslParser()) ) {
alt28=1;
}
else if ( (synpred38_AcslParser()) ) {
alt28=3;
}
else if ( (true) ) {
alt28=4;
}
}
break;
case LPAREN:
{
int LA28_2 = input.LA(2);
if ( (synpred37_AcslParser()) ) {
alt28=2;
}
else if ( (true) ) {
alt28=4;
}
}
break;
case LSQUARE:
{
alt28=2;
}
break;
case EOF:
case IDENTIFIER:
case RPAREN:
{
alt28=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 28, 0, input);
throw nvae;
}
switch (alt28) {
case 1 :
// AcslParser.g:344:7: pointer
{
pushFollow(FOLLOW_pointer_in_abstractDeclarator2485);
pointer119=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer119.getTree());
// AST REWRITE
// elements: pointer
// 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();
// 345:7: -> ^( ABSTRACT_DECLARATOR pointer ABSENT )
{
// AcslParser.g:345:10: ^( ABSTRACT_DECLARATOR pointer ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ABSTRACT_DECLARATOR, "ABSTRACT_DECLARATOR"), root_1);
adaptor.addChild(root_1, stream_pointer.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:346:7: directAbstractDeclarator
{
pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2509);
directAbstractDeclarator120=directAbstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator120.getTree());
// AST REWRITE
// elements: directAbstractDeclarator
// 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();
// 347:7: -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator )
{
// AcslParser.g:347:10: ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ABSTRACT_DECLARATOR, "ABSTRACT_DECLARATOR"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_directAbstractDeclarator.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:348:7: pointer directAbstractDeclarator
{
pushFollow(FOLLOW_pointer_in_abstractDeclarator2533);
pointer121=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer121.getTree());
pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2535);
directAbstractDeclarator122=directAbstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator122.getTree());
// AST REWRITE
// elements: pointer, directAbstractDeclarator
// 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();
// 349:7: -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator )
{
// AcslParser.g:349:10: ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ABSTRACT_DECLARATOR, "ABSTRACT_DECLARATOR"), root_1);
adaptor.addChild(root_1, stream_pointer.nextTree());
adaptor.addChild(root_1, stream_directAbstractDeclarator.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// AcslParser.g:350:7:
{
// 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();
// 350:7: -> ABSENT
{
adaptor.addChild(root_0, (Object)adaptor.create(ABSENT, "ABSENT"));
}
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
}
return retval;
}
// $ANTLR end "abstractDeclarator"
public static class directAbstractDeclarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "directAbstractDeclarator"
// AcslParser.g:353:1: directAbstractDeclarator : ( LPAREN abstractDeclarator RPAREN ( directAbstractDeclaratorSuffix )* -> ^( DIRECT_ABSTRACT_DECLARATOR abstractDeclarator ( directAbstractDeclaratorSuffix )* ) | ( directAbstractDeclaratorSuffix )+ -> ^( DIRECT_ABSTRACT_DECLARATOR ABSENT ( directAbstractDeclaratorSuffix )+ ) );
public final AcslParser.directAbstractDeclarator_return directAbstractDeclarator() throws RecognitionException {
AcslParser.directAbstractDeclarator_return retval = new AcslParser.directAbstractDeclarator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN123=null;
Token RPAREN125=null;
ParserRuleReturnScope abstractDeclarator124 =null;
ParserRuleReturnScope directAbstractDeclaratorSuffix126 =null;
ParserRuleReturnScope directAbstractDeclaratorSuffix127 =null;
Object LPAREN123_tree=null;
Object RPAREN125_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_abstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule abstractDeclarator");
RewriteRuleSubtreeStream stream_directAbstractDeclaratorSuffix=new RewriteRuleSubtreeStream(adaptor,"rule directAbstractDeclaratorSuffix");
try {
// AcslParser.g:354:5: ( LPAREN abstractDeclarator RPAREN ( directAbstractDeclaratorSuffix )* -> ^( DIRECT_ABSTRACT_DECLARATOR abstractDeclarator ( directAbstractDeclaratorSuffix )* ) | ( directAbstractDeclaratorSuffix )+ -> ^( DIRECT_ABSTRACT_DECLARATOR ABSENT ( directAbstractDeclaratorSuffix )+ ) )
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==LPAREN) ) {
alt31=1;
}
else if ( (LA31_0==LSQUARE) ) {
alt31=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 31, 0, input);
throw nvae;
}
switch (alt31) {
case 1 :
// AcslParser.g:354:7: LPAREN abstractDeclarator RPAREN ( directAbstractDeclaratorSuffix )*
{
LPAREN123=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directAbstractDeclarator2578); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN123);
pushFollow(FOLLOW_abstractDeclarator_in_directAbstractDeclarator2580);
abstractDeclarator124=abstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator124.getTree());
RPAREN125=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directAbstractDeclarator2582); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN125);
// AcslParser.g:354:40: ( directAbstractDeclaratorSuffix )*
loop29:
while (true) {
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==LSQUARE) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// AcslParser.g:354:40: directAbstractDeclaratorSuffix
{
pushFollow(FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator2584);
directAbstractDeclaratorSuffix126=directAbstractDeclaratorSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclaratorSuffix.add(directAbstractDeclaratorSuffix126.getTree());
}
break;
default :
break loop29;
}
}
// AST REWRITE
// elements: abstractDeclarator, directAbstractDeclaratorSuffix
// 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();
// 355:7: -> ^( DIRECT_ABSTRACT_DECLARATOR abstractDeclarator ( directAbstractDeclaratorSuffix )* )
{
// AcslParser.g:355:10: ^( DIRECT_ABSTRACT_DECLARATOR abstractDeclarator ( directAbstractDeclaratorSuffix )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DIRECT_ABSTRACT_DECLARATOR, "DIRECT_ABSTRACT_DECLARATOR"), root_1);
adaptor.addChild(root_1, stream_abstractDeclarator.nextTree());
// AcslParser.g:356:12: ( directAbstractDeclaratorSuffix )*
while ( stream_directAbstractDeclaratorSuffix.hasNext() ) {
adaptor.addChild(root_1, stream_directAbstractDeclaratorSuffix.nextTree());
}
stream_directAbstractDeclaratorSuffix.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:357:7: ( directAbstractDeclaratorSuffix )+
{
// AcslParser.g:357:7: ( directAbstractDeclaratorSuffix )+
int cnt30=0;
loop30:
while (true) {
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==LSQUARE) ) {
alt30=1;
}
switch (alt30) {
case 1 :
// AcslParser.g:357:7: directAbstractDeclaratorSuffix
{
pushFollow(FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator2621);
directAbstractDeclaratorSuffix127=directAbstractDeclaratorSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclaratorSuffix.add(directAbstractDeclaratorSuffix127.getTree());
}
break;
default :
if ( cnt30 >= 1 ) break loop30;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(30, input);
throw eee;
}
cnt30++;
}
// AST REWRITE
// elements: directAbstractDeclaratorSuffix
// 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();
// 358:7: -> ^( DIRECT_ABSTRACT_DECLARATOR ABSENT ( directAbstractDeclaratorSuffix )+ )
{
// AcslParser.g:358:10: ^( DIRECT_ABSTRACT_DECLARATOR ABSENT ( directAbstractDeclaratorSuffix )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DIRECT_ABSTRACT_DECLARATOR, "DIRECT_ABSTRACT_DECLARATOR"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
if ( !(stream_directAbstractDeclaratorSuffix.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_directAbstractDeclaratorSuffix.hasNext() ) {
adaptor.addChild(root_1, stream_directAbstractDeclaratorSuffix.nextTree());
}
stream_directAbstractDeclaratorSuffix.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
}
return retval;
}
// $ANTLR end "directAbstractDeclarator"
public static class pointer_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "pointer"
// AcslParser.g:361:1: pointer : ( STAR )+ -> ^( POINTER ( STAR )+ ) ;
public final AcslParser.pointer_return pointer() throws RecognitionException {
AcslParser.pointer_return retval = new AcslParser.pointer_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STAR128=null;
Object STAR128_tree=null;
RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR");
try {
// AcslParser.g:362:5: ( ( STAR )+ -> ^( POINTER ( STAR )+ ) )
// AcslParser.g:362:7: ( STAR )+
{
// AcslParser.g:362:7: ( STAR )+
int cnt32=0;
loop32:
while (true) {
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==STAR) ) {
int LA32_2 = input.LA(2);
if ( (synpred42_AcslParser()) ) {
alt32=1;
}
}
switch (alt32) {
case 1 :
// AcslParser.g:362:7: STAR
{
STAR128=(Token)match(input,STAR,FOLLOW_STAR_in_pointer2656); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR128);
}
break;
default :
if ( cnt32 >= 1 ) break loop32;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(32, input);
throw eee;
}
cnt32++;
}
// AST REWRITE
// elements: STAR
// 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();
// 362:13: -> ^( POINTER ( STAR )+ )
{
// AcslParser.g:362:16: ^( POINTER ( STAR )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(POINTER, "POINTER"), root_1);
if ( !(stream_STAR.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_STAR.hasNext() ) {
adaptor.addChild(root_1, stream_STAR.nextNode());
}
stream_STAR.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
}
return retval;
}
// $ANTLR end "pointer"
public static class directAbstractDeclaratorSuffix_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "directAbstractDeclaratorSuffix"
// AcslParser.g:365:1: directAbstractDeclaratorSuffix : LSQUARE assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE assignmentExpression_opt RSQUARE ) ;
public final AcslParser.directAbstractDeclaratorSuffix_return directAbstractDeclaratorSuffix() throws RecognitionException {
AcslParser.directAbstractDeclaratorSuffix_return retval = new AcslParser.directAbstractDeclaratorSuffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LSQUARE129=null;
Token RSQUARE131=null;
ParserRuleReturnScope assignmentExpression_opt130 =null;
Object LSQUARE129_tree=null;
Object RSQUARE131_tree=null;
RewriteRuleTokenStream stream_LSQUARE=new RewriteRuleTokenStream(adaptor,"token LSQUARE");
RewriteRuleTokenStream stream_RSQUARE=new RewriteRuleTokenStream(adaptor,"token RSQUARE");
RewriteRuleSubtreeStream stream_assignmentExpression_opt=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression_opt");
try {
// AcslParser.g:366:5: ( LSQUARE assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE assignmentExpression_opt RSQUARE ) )
// AcslParser.g:366:7: LSQUARE assignmentExpression_opt RSQUARE
{
LSQUARE129=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_directAbstractDeclaratorSuffix2683); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE129);
pushFollow(FOLLOW_assignmentExpression_opt_in_directAbstractDeclaratorSuffix2685);
assignmentExpression_opt130=assignmentExpression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression_opt.add(assignmentExpression_opt130.getTree());
RSQUARE131=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix2687); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE131);
// AST REWRITE
// elements: RSQUARE, assignmentExpression_opt, LSQUARE
// 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();
// 367:9: -> ^( ARRAY_SUFFIX LSQUARE assignmentExpression_opt RSQUARE )
{
// AcslParser.g:367:12: ^( ARRAY_SUFFIX LSQUARE assignmentExpression_opt RSQUARE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARRAY_SUFFIX, "ARRAY_SUFFIX"), root_1);
adaptor.addChild(root_1, stream_LSQUARE.nextNode());
adaptor.addChild(root_1, stream_assignmentExpression_opt.nextTree());
adaptor.addChild(root_1, stream_RSQUARE.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
}
return retval;
}
// $ANTLR end "directAbstractDeclaratorSuffix"
public static class logic_type_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logic_type_expr"
// AcslParser.g:373:1: logic_type_expr : built_in_logic_type -> ^( TYPE_BUILTIN built_in_logic_type ) ;
public final AcslParser.logic_type_expr_return logic_type_expr() throws RecognitionException {
AcslParser.logic_type_expr_return retval = new AcslParser.logic_type_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope built_in_logic_type132 =null;
RewriteRuleSubtreeStream stream_built_in_logic_type=new RewriteRuleSubtreeStream(adaptor,"rule built_in_logic_type");
try {
// AcslParser.g:374:5: ( built_in_logic_type -> ^( TYPE_BUILTIN built_in_logic_type ) )
// AcslParser.g:374:7: built_in_logic_type
{
pushFollow(FOLLOW_built_in_logic_type_in_logic_type_expr2740);
built_in_logic_type132=built_in_logic_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_built_in_logic_type.add(built_in_logic_type132.getTree());
// AST REWRITE
// elements: built_in_logic_type
// 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();
// 374:27: -> ^( TYPE_BUILTIN built_in_logic_type )
{
// AcslParser.g:374:29: ^( TYPE_BUILTIN built_in_logic_type )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPE_BUILTIN, "TYPE_BUILTIN"), root_1);
adaptor.addChild(root_1, stream_built_in_logic_type.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
}
return retval;
}
// $ANTLR end "logic_type_expr"
public static class c_basic_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "c_basic_type"
// AcslParser.g:377:1: c_basic_type : ( CHAR | DOUBLE | FLOAT | INT | LONG | SHORT | VOID );
public final AcslParser.c_basic_type_return c_basic_type() throws RecognitionException {
AcslParser.c_basic_type_return retval = new AcslParser.c_basic_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set133=null;
Object set133_tree=null;
try {
// AcslParser.g:378:5: ( CHAR | DOUBLE | FLOAT | INT | LONG | SHORT | VOID )
// AcslParser.g:
{
root_0 = (Object)adaptor.nil();
set133=input.LT(1);
if ( input.LA(1)==CHAR||input.LA(1)==DOUBLE||input.LA(1)==FLOAT||input.LA(1)==INT||input.LA(1)==LONG||input.LA(1)==SHORT||input.LA(1)==VOID ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set133));
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
}
return retval;
}
// $ANTLR end "c_basic_type"
public static class built_in_logic_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "built_in_logic_type"
// AcslParser.g:381:1: built_in_logic_type : ( boolean_type | integer_type | real_type );
public final AcslParser.built_in_logic_type_return built_in_logic_type() throws RecognitionException {
AcslParser.built_in_logic_type_return retval = new AcslParser.built_in_logic_type_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope boolean_type134 =null;
ParserRuleReturnScope integer_type135 =null;
ParserRuleReturnScope real_type136 =null;
try {
// AcslParser.g:382:5: ( boolean_type | integer_type | real_type )
int alt33=3;
int LA33_0 = input.LA(1);
if ( (LA33_0==IDENTIFIER) ) {
int LA33_1 = input.LA(2);
if ( ((synpred49_AcslParser()&&(input.LT(1).getText().equals("boolean")))) ) {
alt33=1;
}
else if ( (((input.LT(1).getText().equals("integer"))&&synpred50_AcslParser())) ) {
alt33=2;
}
else if ( ((input.LT(1).getText().equals("real"))) ) {
alt33=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 33, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 33, 0, input);
throw nvae;
}
switch (alt33) {
case 1 :
// AcslParser.g:382:7: boolean_type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_boolean_type_in_built_in_logic_type2805);
boolean_type134=boolean_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, boolean_type134.getTree());
}
break;
case 2 :
// AcslParser.g:382:22: integer_type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_integer_type_in_built_in_logic_type2809);
integer_type135=integer_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, integer_type135.getTree());
}
break;
case 3 :
// AcslParser.g:382:37: real_type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_real_type_in_built_in_logic_type2813);
real_type136=real_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, real_type136.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
}
return retval;
}
// $ANTLR end "built_in_logic_type"
public static class variable_ident_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "variable_ident"
// AcslParser.g:385:1: variable_ident : ( STAR variable_ident_base -> ^( VAR_ID_STAR variable_ident_base ) | variable_ident_base LSQUARE RSQUARE -> ^( VAR_ID_SQUARE variable_ident_base ) | variable_ident_base -> ^( VAR_ID variable_ident_base ) );
public final AcslParser.variable_ident_return variable_ident() throws RecognitionException {
AcslParser.variable_ident_return retval = new AcslParser.variable_ident_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STAR137=null;
Token LSQUARE140=null;
Token RSQUARE141=null;
ParserRuleReturnScope variable_ident_base138 =null;
ParserRuleReturnScope variable_ident_base139 =null;
ParserRuleReturnScope variable_ident_base142 =null;
Object STAR137_tree=null;
Object LSQUARE140_tree=null;
Object RSQUARE141_tree=null;
RewriteRuleTokenStream stream_LSQUARE=new RewriteRuleTokenStream(adaptor,"token LSQUARE");
RewriteRuleTokenStream stream_RSQUARE=new RewriteRuleTokenStream(adaptor,"token RSQUARE");
RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR");
RewriteRuleSubtreeStream stream_variable_ident_base=new RewriteRuleSubtreeStream(adaptor,"rule variable_ident_base");
try {
// AcslParser.g:386:5: ( STAR variable_ident_base -> ^( VAR_ID_STAR variable_ident_base ) | variable_ident_base LSQUARE RSQUARE -> ^( VAR_ID_SQUARE variable_ident_base ) | variable_ident_base -> ^( VAR_ID variable_ident_base ) )
int alt34=3;
switch ( input.LA(1) ) {
case STAR:
{
alt34=1;
}
break;
case IDENTIFIER:
{
int LA34_2 = input.LA(2);
if ( (synpred52_AcslParser()) ) {
alt34=2;
}
else if ( (true) ) {
alt34=3;
}
}
break;
case LPAREN:
{
int LA34_3 = input.LA(2);
if ( (synpred52_AcslParser()) ) {
alt34=2;
}
else if ( (true) ) {
alt34=3;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 34, 0, input);
throw nvae;
}
switch (alt34) {
case 1 :
// AcslParser.g:386:7: STAR variable_ident_base
{
STAR137=(Token)match(input,STAR,FOLLOW_STAR_in_variable_ident2830); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR137);
pushFollow(FOLLOW_variable_ident_base_in_variable_ident2832);
variable_ident_base138=variable_ident_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variable_ident_base.add(variable_ident_base138.getTree());
// AST REWRITE
// elements: variable_ident_base
// 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();
// 387:9: -> ^( VAR_ID_STAR variable_ident_base )
{
// AcslParser.g:387:11: ^( VAR_ID_STAR variable_ident_base )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VAR_ID_STAR, "VAR_ID_STAR"), root_1);
adaptor.addChild(root_1, stream_variable_ident_base.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:388:7: variable_ident_base LSQUARE RSQUARE
{
pushFollow(FOLLOW_variable_ident_base_in_variable_ident2855);
variable_ident_base139=variable_ident_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variable_ident_base.add(variable_ident_base139.getTree());
LSQUARE140=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_variable_ident2857); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE140);
RSQUARE141=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_variable_ident2859); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE141);
// AST REWRITE
// elements: variable_ident_base
// 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();
// 389:9: -> ^( VAR_ID_SQUARE variable_ident_base )
{
// AcslParser.g:389:11: ^( VAR_ID_SQUARE variable_ident_base )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VAR_ID_SQUARE, "VAR_ID_SQUARE"), root_1);
adaptor.addChild(root_1, stream_variable_ident_base.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:390:7: variable_ident_base
{
pushFollow(FOLLOW_variable_ident_base_in_variable_ident2882);
variable_ident_base142=variable_ident_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variable_ident_base.add(variable_ident_base142.getTree());
// AST REWRITE
// elements: variable_ident_base
// 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();
// 391:9: -> ^( VAR_ID variable_ident_base )
{
// AcslParser.g:391:11: ^( VAR_ID variable_ident_base )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VAR_ID, "VAR_ID"), root_1);
adaptor.addChild(root_1, stream_variable_ident_base.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
}
return retval;
}
// $ANTLR end "variable_ident"
public static class variable_ident_base_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "variable_ident_base"
// AcslParser.g:394:1: variable_ident_base : ( IDENTIFIER -> ^( IDENTIFIER ) | LPAREN variable_ident RPAREN -> ^( VAR_ID_BASE variable_ident ) );
public final AcslParser.variable_ident_base_return variable_ident_base() throws RecognitionException {
AcslParser.variable_ident_base_return retval = new AcslParser.variable_ident_base_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER143=null;
Token LPAREN144=null;
Token RPAREN146=null;
ParserRuleReturnScope variable_ident145 =null;
Object IDENTIFIER143_tree=null;
Object LPAREN144_tree=null;
Object RPAREN146_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_variable_ident=new RewriteRuleSubtreeStream(adaptor,"rule variable_ident");
try {
// AcslParser.g:395:5: ( IDENTIFIER -> ^( IDENTIFIER ) | LPAREN variable_ident RPAREN -> ^( VAR_ID_BASE variable_ident ) )
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==IDENTIFIER) ) {
alt35=1;
}
else if ( (LA35_0==LPAREN) ) {
alt35=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 35, 0, input);
throw nvae;
}
switch (alt35) {
case 1 :
// AcslParser.g:395:7: IDENTIFIER
{
IDENTIFIER143=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_variable_ident_base2914); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER143);
// AST REWRITE
// elements: IDENTIFIER
// 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();
// 396:7: -> ^( IDENTIFIER )
{
// AcslParser.g:396:9: ^( IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_IDENTIFIER.nextNode(), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:397:7: LPAREN variable_ident RPAREN
{
LPAREN144=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_variable_ident_base2933); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN144);
pushFollow(FOLLOW_variable_ident_in_variable_ident_base2935);
variable_ident145=variable_ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variable_ident.add(variable_ident145.getTree());
RPAREN146=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_variable_ident_base2937); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN146);
// AST REWRITE
// elements: variable_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();
// 398:7: -> ^( VAR_ID_BASE variable_ident )
{
// AcslParser.g:398:9: ^( VAR_ID_BASE variable_ident )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VAR_ID_BASE, "VAR_ID_BASE"), root_1);
adaptor.addChild(root_1, stream_variable_ident.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
}
return retval;
}
// $ANTLR end "variable_ident_base"
public static class guards_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "guards_clause"
// AcslParser.g:401:1: guards_clause : executeswhen_key term -> ^( EXECUTES_WHEN executeswhen_key term ) ;
public final AcslParser.guards_clause_return guards_clause() throws RecognitionException {
AcslParser.guards_clause_return retval = new AcslParser.guards_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope executeswhen_key147 =null;
ParserRuleReturnScope term148 =null;
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
RewriteRuleSubtreeStream stream_executeswhen_key=new RewriteRuleSubtreeStream(adaptor,"rule executeswhen_key");
try {
// AcslParser.g:402:5: ( executeswhen_key term -> ^( EXECUTES_WHEN executeswhen_key term ) )
// AcslParser.g:402:7: executeswhen_key term
{
pushFollow(FOLLOW_executeswhen_key_in_guards_clause2967);
executeswhen_key147=executeswhen_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_executeswhen_key.add(executeswhen_key147.getTree());
pushFollow(FOLLOW_term_in_guards_clause2969);
term148=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term148.getTree());
// AST REWRITE
// elements: executeswhen_key, term
// 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();
// 402:29: -> ^( EXECUTES_WHEN executeswhen_key term )
{
// AcslParser.g:402:31: ^( EXECUTES_WHEN executeswhen_key term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXECUTES_WHEN, "EXECUTES_WHEN"), root_1);
adaptor.addChild(root_1, stream_executeswhen_key.nextTree());
adaptor.addChild(root_1, stream_term.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
}
return retval;
}
// $ANTLR end "guards_clause"
public static class simple_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "simple_clause"
// AcslParser.g:405:1: simple_clause : ( assigns_clause | ensures_clause | allocation_clause | reads_clause | depends_clause | guards_clause );
public final AcslParser.simple_clause_return simple_clause() throws RecognitionException {
AcslParser.simple_clause_return retval = new AcslParser.simple_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope assigns_clause149 =null;
ParserRuleReturnScope ensures_clause150 =null;
ParserRuleReturnScope allocation_clause151 =null;
ParserRuleReturnScope reads_clause152 =null;
ParserRuleReturnScope depends_clause153 =null;
ParserRuleReturnScope guards_clause154 =null;
try {
// AcslParser.g:406:5: ( assigns_clause | ensures_clause | allocation_clause | reads_clause | depends_clause | guards_clause )
int alt36=6;
int LA36_0 = input.LA(1);
if ( (LA36_0==IDENTIFIER) ) {
int LA36_1 = input.LA(2);
if ( (((input.LT(1).getText().equals("assigns"))&&synpred54_AcslParser())) ) {
alt36=1;
}
else if ( (((input.LT(1).getText().equals("ensures"))&&synpred55_AcslParser())) ) {
alt36=2;
}
else if ( ((((input.LT(1).getText().equals("frees"))||(input.LT(1).getText().equals("allocates")))&&synpred56_AcslParser())) ) {
alt36=3;
}
else if ( (((input.LT(1).getText().equals("reads"))&&synpred57_AcslParser())) ) {
alt36=4;
}
else if ( ((synpred58_AcslParser()&&(input.LT(1).getText().equals("depends_on")))) ) {
alt36=5;
}
else if ( ((input.LT(1).getText().equals("executes_when"))) ) {
alt36=6;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 36, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 36, 0, input);
throw nvae;
}
switch (alt36) {
case 1 :
// AcslParser.g:406:7: assigns_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assigns_clause_in_simple_clause2995);
assigns_clause149=assigns_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assigns_clause149.getTree());
}
break;
case 2 :
// AcslParser.g:407:7: ensures_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_ensures_clause_in_simple_clause3003);
ensures_clause150=ensures_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ensures_clause150.getTree());
}
break;
case 3 :
// AcslParser.g:408:7: allocation_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_allocation_clause_in_simple_clause3012);
allocation_clause151=allocation_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, allocation_clause151.getTree());
}
break;
case 4 :
// AcslParser.g:409:7: reads_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reads_clause_in_simple_clause3020);
reads_clause152=reads_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, reads_clause152.getTree());
}
break;
case 5 :
// AcslParser.g:410:7: depends_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_depends_clause_in_simple_clause3028);
depends_clause153=depends_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, depends_clause153.getTree());
}
break;
case 6 :
// AcslParser.g:411:7: guards_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_guards_clause_in_simple_clause3036);
guards_clause154=guards_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, guards_clause154.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
}
return retval;
}
// $ANTLR end "simple_clause"
public static class assigns_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assigns_clause"
// AcslParser.g:414:1: assigns_clause : assigns_key argumentExpressionList -> ^( ASSIGNS_ACSL assigns_key argumentExpressionList ) ;
public final AcslParser.assigns_clause_return assigns_clause() throws RecognitionException {
AcslParser.assigns_clause_return retval = new AcslParser.assigns_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope assigns_key155 =null;
ParserRuleReturnScope argumentExpressionList156 =null;
RewriteRuleSubtreeStream stream_assigns_key=new RewriteRuleSubtreeStream(adaptor,"rule assigns_key");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
try {
// AcslParser.g:415:5: ( assigns_key argumentExpressionList -> ^( ASSIGNS_ACSL assigns_key argumentExpressionList ) )
// AcslParser.g:415:7: assigns_key argumentExpressionList
{
pushFollow(FOLLOW_assigns_key_in_assigns_clause3053);
assigns_key155=assigns_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assigns_key.add(assigns_key155.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_assigns_clause3055);
argumentExpressionList156=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList156.getTree());
// AST REWRITE
// elements: argumentExpressionList, assigns_key
// 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();
// 415:42: -> ^( ASSIGNS_ACSL assigns_key argumentExpressionList )
{
// AcslParser.g:415:44: ^( ASSIGNS_ACSL assigns_key argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ASSIGNS_ACSL, "ASSIGNS_ACSL"), root_1);
adaptor.addChild(root_1, stream_assigns_key.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.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
}
return retval;
}
// $ANTLR end "assigns_clause"
public static class ensures_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "ensures_clause"
// AcslParser.g:418:1: ensures_clause : ensures_key term -> ^( ENSURES_ACSL ensures_key term ) ;
public final AcslParser.ensures_clause_return ensures_clause() throws RecognitionException {
AcslParser.ensures_clause_return retval = new AcslParser.ensures_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope ensures_key157 =null;
ParserRuleReturnScope term158 =null;
RewriteRuleSubtreeStream stream_ensures_key=new RewriteRuleSubtreeStream(adaptor,"rule ensures_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:419:5: ( ensures_key term -> ^( ENSURES_ACSL ensures_key term ) )
// AcslParser.g:419:7: ensures_key term
{
pushFollow(FOLLOW_ensures_key_in_ensures_clause3081);
ensures_key157=ensures_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ensures_key.add(ensures_key157.getTree());
pushFollow(FOLLOW_term_in_ensures_clause3083);
term158=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term158.getTree());
// AST REWRITE
// elements: term, ensures_key
// 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();
// 419:24: -> ^( ENSURES_ACSL ensures_key term )
{
// AcslParser.g:419:26: ^( ENSURES_ACSL ensures_key term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ENSURES_ACSL, "ENSURES_ACSL"), root_1);
adaptor.addChild(root_1, stream_ensures_key.nextTree());
adaptor.addChild(root_1, stream_term.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
}
return retval;
}
// $ANTLR end "ensures_clause"
public static class allocation_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "allocation_clause"
// AcslParser.g:422:1: allocation_clause : ( alloc_key argumentExpressionList -> ^( ALLOC alloc_key argumentExpressionList ) | frees_key argumentExpressionList -> ^( FREES frees_key argumentExpressionList ) );
public final AcslParser.allocation_clause_return allocation_clause() throws RecognitionException {
AcslParser.allocation_clause_return retval = new AcslParser.allocation_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope alloc_key159 =null;
ParserRuleReturnScope argumentExpressionList160 =null;
ParserRuleReturnScope frees_key161 =null;
ParserRuleReturnScope argumentExpressionList162 =null;
RewriteRuleSubtreeStream stream_alloc_key=new RewriteRuleSubtreeStream(adaptor,"rule alloc_key");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_frees_key=new RewriteRuleSubtreeStream(adaptor,"rule frees_key");
try {
// AcslParser.g:423:5: ( alloc_key argumentExpressionList -> ^( ALLOC alloc_key argumentExpressionList ) | frees_key argumentExpressionList -> ^( FREES frees_key argumentExpressionList ) )
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==IDENTIFIER) ) {
int LA37_1 = input.LA(2);
if ( ((synpred59_AcslParser()&&(input.LT(1).getText().equals("allocates")))) ) {
alt37=1;
}
else if ( ((input.LT(1).getText().equals("frees"))) ) {
alt37=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 37, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 37, 0, input);
throw nvae;
}
switch (alt37) {
case 1 :
// AcslParser.g:423:7: alloc_key argumentExpressionList
{
pushFollow(FOLLOW_alloc_key_in_allocation_clause3109);
alloc_key159=alloc_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_alloc_key.add(alloc_key159.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_allocation_clause3111);
argumentExpressionList160=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList160.getTree());
// AST REWRITE
// elements: alloc_key, argumentExpressionList
// 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();
// 423:40: -> ^( ALLOC alloc_key argumentExpressionList )
{
// AcslParser.g:423:42: ^( ALLOC alloc_key argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ALLOC, "ALLOC"), root_1);
adaptor.addChild(root_1, stream_alloc_key.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:424:7: frees_key argumentExpressionList
{
pushFollow(FOLLOW_frees_key_in_allocation_clause3128);
frees_key161=frees_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_frees_key.add(frees_key161.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_allocation_clause3130);
argumentExpressionList162=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList162.getTree());
// AST REWRITE
// elements: frees_key, argumentExpressionList
// 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();
// 424:40: -> ^( FREES frees_key argumentExpressionList )
{
// AcslParser.g:424:42: ^( FREES frees_key argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FREES, "FREES"), root_1);
adaptor.addChild(root_1, stream_frees_key.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.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
}
return retval;
}
// $ANTLR end "allocation_clause"
public static class reads_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "reads_clause"
// AcslParser.g:427:1: reads_clause : reads_key argumentExpressionList -> ^( READS_ACSL reads_key argumentExpressionList ) ;
public final AcslParser.reads_clause_return reads_clause() throws RecognitionException {
AcslParser.reads_clause_return retval = new AcslParser.reads_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope reads_key163 =null;
ParserRuleReturnScope argumentExpressionList164 =null;
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_reads_key=new RewriteRuleSubtreeStream(adaptor,"rule reads_key");
try {
// AcslParser.g:428:5: ( reads_key argumentExpressionList -> ^( READS_ACSL reads_key argumentExpressionList ) )
// AcslParser.g:428:7: reads_key argumentExpressionList
{
pushFollow(FOLLOW_reads_key_in_reads_clause3156);
reads_key163=reads_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_reads_key.add(reads_key163.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_reads_clause3158);
argumentExpressionList164=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList164.getTree());
// AST REWRITE
// elements: argumentExpressionList, reads_key
// 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();
// 428:40: -> ^( READS_ACSL reads_key argumentExpressionList )
{
// AcslParser.g:428:42: ^( READS_ACSL reads_key argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(READS_ACSL, "READS_ACSL"), root_1);
adaptor.addChild(root_1, stream_reads_key.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.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
}
return retval;
}
// $ANTLR end "reads_clause"
public static class depends_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "depends_clause"
// AcslParser.g:431:1: depends_clause : dependson_key event_list -> ^( DEPENDSON dependson_key event_list ) ;
public final AcslParser.depends_clause_return depends_clause() throws RecognitionException {
AcslParser.depends_clause_return retval = new AcslParser.depends_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope dependson_key165 =null;
ParserRuleReturnScope event_list166 =null;
RewriteRuleSubtreeStream stream_event_list=new RewriteRuleSubtreeStream(adaptor,"rule event_list");
RewriteRuleSubtreeStream stream_dependson_key=new RewriteRuleSubtreeStream(adaptor,"rule dependson_key");
try {
// AcslParser.g:432:5: ( dependson_key event_list -> ^( DEPENDSON dependson_key event_list ) )
// AcslParser.g:432:7: dependson_key event_list
{
pushFollow(FOLLOW_dependson_key_in_depends_clause3184);
dependson_key165=dependson_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_dependson_key.add(dependson_key165.getTree());
pushFollow(FOLLOW_event_list_in_depends_clause3186);
event_list166=event_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_list.add(event_list166.getTree());
// AST REWRITE
// elements: dependson_key, event_list
// 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();
// 432:32: -> ^( DEPENDSON dependson_key event_list )
{
// AcslParser.g:432:34: ^( DEPENDSON dependson_key event_list )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DEPENDSON, "DEPENDSON"), root_1);
adaptor.addChild(root_1, stream_dependson_key.nextTree());
adaptor.addChild(root_1, stream_event_list.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
}
return retval;
}
// $ANTLR end "depends_clause"
public static class event_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "event_list"
// AcslParser.g:435:1: event_list : event ( COMMA event )* -> ^( EVENT_LIST ( event )+ ) ;
public final AcslParser.event_list_return event_list() throws RecognitionException {
AcslParser.event_list_return retval = new AcslParser.event_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA168=null;
ParserRuleReturnScope event167 =null;
ParserRuleReturnScope event169 =null;
Object COMMA168_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_event=new RewriteRuleSubtreeStream(adaptor,"rule event");
try {
// AcslParser.g:436:5: ( event ( COMMA event )* -> ^( EVENT_LIST ( event )+ ) )
// AcslParser.g:436:7: event ( COMMA event )*
{
pushFollow(FOLLOW_event_in_event_list3212);
event167=event();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event.add(event167.getTree());
// AcslParser.g:436:13: ( COMMA event )*
loop38:
while (true) {
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==COMMA) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// AcslParser.g:436:14: COMMA event
{
COMMA168=(Token)match(input,COMMA,FOLLOW_COMMA_in_event_list3215); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA168);
pushFollow(FOLLOW_event_in_event_list3217);
event169=event();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event.add(event169.getTree());
}
break;
default :
break loop38;
}
}
// AST REWRITE
// elements: event
// 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();
// 436:28: -> ^( EVENT_LIST ( event )+ )
{
// AcslParser.g:436:31: ^( EVENT_LIST ( event )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EVENT_LIST, "EVENT_LIST"), root_1);
if ( !(stream_event.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_event.hasNext() ) {
adaptor.addChild(root_1, stream_event.nextTree());
}
stream_event.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
}
return retval;
}
// $ANTLR end "event_list"
public static class event_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "event"
// AcslParser.g:439:1: event : ( event_base PLUS event_base -> ^( EVENT_PLUS event_base event_base ) | event_base SUB event_base -> ^( EVENT_SUB event_base event_base ) | event_base AMPERSAND event_base -> ^( EVENT_INTS event_base event_base ) | event_base -> ^( EVENT_BASE event_base ) );
public final AcslParser.event_return event() throws RecognitionException {
AcslParser.event_return retval = new AcslParser.event_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PLUS171=null;
Token SUB174=null;
Token AMPERSAND177=null;
ParserRuleReturnScope event_base170 =null;
ParserRuleReturnScope event_base172 =null;
ParserRuleReturnScope event_base173 =null;
ParserRuleReturnScope event_base175 =null;
ParserRuleReturnScope event_base176 =null;
ParserRuleReturnScope event_base178 =null;
ParserRuleReturnScope event_base179 =null;
Object PLUS171_tree=null;
Object SUB174_tree=null;
Object AMPERSAND177_tree=null;
RewriteRuleTokenStream stream_AMPERSAND=new RewriteRuleTokenStream(adaptor,"token AMPERSAND");
RewriteRuleTokenStream stream_SUB=new RewriteRuleTokenStream(adaptor,"token SUB");
RewriteRuleTokenStream stream_PLUS=new RewriteRuleTokenStream(adaptor,"token PLUS");
RewriteRuleSubtreeStream stream_event_base=new RewriteRuleSubtreeStream(adaptor,"rule event_base");
try {
// AcslParser.g:440:5: ( event_base PLUS event_base -> ^( EVENT_PLUS event_base event_base ) | event_base SUB event_base -> ^( EVENT_SUB event_base event_base ) | event_base AMPERSAND event_base -> ^( EVENT_INTS event_base event_base ) | event_base -> ^( EVENT_BASE event_base ) )
int alt39=4;
int LA39_0 = input.LA(1);
if ( (LA39_0==EXTENDED_IDENTIFIER) ) {
int LA39_1 = input.LA(2);
if ( ((((input.LT(1).getText().equals("\\call"))||(input.LT(1).getText().equals("\\write"))||(input.LT(1).getText().equals("\\read"))||(input.LT(1).getText().equals("\\anyact"))||(input.LT(1).getText().equals("\\access"))||(input.LT(1).getText().equals("\\nothing")))&&synpred61_AcslParser())) ) {
alt39=1;
}
else if ( ((((input.LT(1).getText().equals("\\call"))||(input.LT(1).getText().equals("\\write"))||(input.LT(1).getText().equals("\\read"))||(input.LT(1).getText().equals("\\anyact"))||(input.LT(1).getText().equals("\\access"))||(input.LT(1).getText().equals("\\nothing")))&&synpred62_AcslParser())) ) {
alt39=2;
}
else if ( ((((input.LT(1).getText().equals("\\call"))||(input.LT(1).getText().equals("\\write"))||(input.LT(1).getText().equals("\\read"))||(input.LT(1).getText().equals("\\anyact"))||(input.LT(1).getText().equals("\\access"))||(input.LT(1).getText().equals("\\nothing")))&&synpred63_AcslParser())) ) {
alt39=3;
}
else if ( (((input.LT(1).getText().equals("\\call"))||(input.LT(1).getText().equals("\\write"))||(input.LT(1).getText().equals("\\read"))||(input.LT(1).getText().equals("\\anyact"))||(input.LT(1).getText().equals("\\access"))||(input.LT(1).getText().equals("\\nothing")))) ) {
alt39=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 39, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA39_0==LPAREN) ) {
int LA39_2 = input.LA(2);
if ( (synpred61_AcslParser()) ) {
alt39=1;
}
else if ( (synpred62_AcslParser()) ) {
alt39=2;
}
else if ( (synpred63_AcslParser()) ) {
alt39=3;
}
else if ( (true) ) {
alt39=4;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 39, 0, input);
throw nvae;
}
switch (alt39) {
case 1 :
// AcslParser.g:440:7: event_base PLUS event_base
{
pushFollow(FOLLOW_event_base_in_event3245);
event_base170=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base170.getTree());
PLUS171=(Token)match(input,PLUS,FOLLOW_PLUS_in_event3247); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS171);
pushFollow(FOLLOW_event_base_in_event3249);
event_base172=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base172.getTree());
// AST REWRITE
// elements: event_base, event_base
// 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();
// 441:9: -> ^( EVENT_PLUS event_base event_base )
{
// AcslParser.g:441:12: ^( EVENT_PLUS event_base event_base )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EVENT_PLUS, "EVENT_PLUS"), root_1);
adaptor.addChild(root_1, stream_event_base.nextTree());
adaptor.addChild(root_1, stream_event_base.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:442:7: event_base SUB event_base
{
pushFollow(FOLLOW_event_base_in_event3275);
event_base173=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base173.getTree());
SUB174=(Token)match(input,SUB,FOLLOW_SUB_in_event3277); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUB.add(SUB174);
pushFollow(FOLLOW_event_base_in_event3279);
event_base175=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base175.getTree());
// AST REWRITE
// elements: event_base, event_base
// 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();
// 443:9: -> ^( EVENT_SUB event_base event_base )
{
// AcslParser.g:443:12: ^( EVENT_SUB event_base event_base )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EVENT_SUB, "EVENT_SUB"), root_1);
adaptor.addChild(root_1, stream_event_base.nextTree());
adaptor.addChild(root_1, stream_event_base.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:444:7: event_base AMPERSAND event_base
{
pushFollow(FOLLOW_event_base_in_event3305);
event_base176=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base176.getTree());
AMPERSAND177=(Token)match(input,AMPERSAND,FOLLOW_AMPERSAND_in_event3307); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AMPERSAND.add(AMPERSAND177);
pushFollow(FOLLOW_event_base_in_event3309);
event_base178=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base178.getTree());
// AST REWRITE
// elements: event_base, event_base
// 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();
// 445:9: -> ^( EVENT_INTS event_base event_base )
{
// AcslParser.g:445:12: ^( EVENT_INTS event_base event_base )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EVENT_INTS, "EVENT_INTS"), root_1);
adaptor.addChild(root_1, stream_event_base.nextTree());
adaptor.addChild(root_1, stream_event_base.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// AcslParser.g:446:7: event_base
{
pushFollow(FOLLOW_event_base_in_event3335);
event_base179=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base179.getTree());
// AST REWRITE
// elements: event_base
// 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();
// 447:9: -> ^( EVENT_BASE event_base )
{
// AcslParser.g:447:12: ^( EVENT_BASE event_base )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EVENT_BASE, "EVENT_BASE"), root_1);
adaptor.addChild(root_1, stream_event_base.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
}
return retval;
}
// $ANTLR end "event"
public static class event_base_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "event_base"
// AcslParser.g:450:1: event_base : ( read_key LPAREN argumentExpressionList RPAREN -> ^( READ_ACSL read_key argumentExpressionList ) | write_key LPAREN argumentExpressionList RPAREN -> ^( WRITE_ACSL write_key argumentExpressionList ) | access_key LPAREN argumentExpressionList RPAREN -> ^( ACCESS_ACSL access_key argumentExpressionList ) | call_key LPAREN IDENTIFIER ( COMMA argumentExpressionList )? RPAREN -> ^( CALL_ACSL call_key IDENTIFIER ( argumentExpressionList )? ) | nothing_key | anyact_key | LPAREN event RPAREN -> ^( EVENT_PARENTHESIZED event ) );
public final AcslParser.event_base_return event_base() throws RecognitionException {
AcslParser.event_base_return retval = new AcslParser.event_base_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN181=null;
Token RPAREN183=null;
Token LPAREN185=null;
Token RPAREN187=null;
Token LPAREN189=null;
Token RPAREN191=null;
Token LPAREN193=null;
Token IDENTIFIER194=null;
Token COMMA195=null;
Token RPAREN197=null;
Token LPAREN200=null;
Token RPAREN202=null;
ParserRuleReturnScope read_key180 =null;
ParserRuleReturnScope argumentExpressionList182 =null;
ParserRuleReturnScope write_key184 =null;
ParserRuleReturnScope argumentExpressionList186 =null;
ParserRuleReturnScope access_key188 =null;
ParserRuleReturnScope argumentExpressionList190 =null;
ParserRuleReturnScope call_key192 =null;
ParserRuleReturnScope argumentExpressionList196 =null;
ParserRuleReturnScope nothing_key198 =null;
ParserRuleReturnScope anyact_key199 =null;
ParserRuleReturnScope event201 =null;
Object LPAREN181_tree=null;
Object RPAREN183_tree=null;
Object LPAREN185_tree=null;
Object RPAREN187_tree=null;
Object LPAREN189_tree=null;
Object RPAREN191_tree=null;
Object LPAREN193_tree=null;
Object IDENTIFIER194_tree=null;
Object COMMA195_tree=null;
Object RPAREN197_tree=null;
Object LPAREN200_tree=null;
Object RPAREN202_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_call_key=new RewriteRuleSubtreeStream(adaptor,"rule call_key");
RewriteRuleSubtreeStream stream_access_key=new RewriteRuleSubtreeStream(adaptor,"rule access_key");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_read_key=new RewriteRuleSubtreeStream(adaptor,"rule read_key");
RewriteRuleSubtreeStream stream_event=new RewriteRuleSubtreeStream(adaptor,"rule event");
RewriteRuleSubtreeStream stream_write_key=new RewriteRuleSubtreeStream(adaptor,"rule write_key");
try {
// AcslParser.g:451:5: ( read_key LPAREN argumentExpressionList RPAREN -> ^( READ_ACSL read_key argumentExpressionList ) | write_key LPAREN argumentExpressionList RPAREN -> ^( WRITE_ACSL write_key argumentExpressionList ) | access_key LPAREN argumentExpressionList RPAREN -> ^( ACCESS_ACSL access_key argumentExpressionList ) | call_key LPAREN IDENTIFIER ( COMMA argumentExpressionList )? RPAREN -> ^( CALL_ACSL call_key IDENTIFIER ( argumentExpressionList )? ) | nothing_key | anyact_key | LPAREN event RPAREN -> ^( EVENT_PARENTHESIZED event ) )
int alt41=7;
int LA41_0 = input.LA(1);
if ( (LA41_0==EXTENDED_IDENTIFIER) ) {
int LA41_1 = input.LA(2);
if ( ((synpred64_AcslParser()&&(input.LT(1).getText().equals("\\read")))) ) {
alt41=1;
}
else if ( ((synpred65_AcslParser()&&(input.LT(1).getText().equals("\\write")))) ) {
alt41=2;
}
else if ( ((synpred66_AcslParser()&&(input.LT(1).getText().equals("\\access")))) ) {
alt41=3;
}
else if ( (((input.LT(1).getText().equals("\\call"))&&synpred68_AcslParser())) ) {
alt41=4;
}
else if ( ((synpred69_AcslParser()&&(input.LT(1).getText().equals("\\nothing")))) ) {
alt41=5;
}
else if ( (((input.LT(1).getText().equals("\\anyact"))&&synpred70_AcslParser())) ) {
alt41=6;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 41, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA41_0==LPAREN) ) {
alt41=7;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 41, 0, input);
throw nvae;
}
switch (alt41) {
case 1 :
// AcslParser.g:451:7: read_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_read_key_in_event_base3368);
read_key180=read_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_read_key.add(read_key180.getTree());
LPAREN181=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_event_base3370); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN181);
pushFollow(FOLLOW_argumentExpressionList_in_event_base3372);
argumentExpressionList182=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList182.getTree());
RPAREN183=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_event_base3374); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN183);
// AST REWRITE
// elements: argumentExpressionList, read_key
// 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();
// 452:9: -> ^( READ_ACSL read_key argumentExpressionList )
{
// AcslParser.g:452:12: ^( READ_ACSL read_key argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(READ_ACSL, "READ_ACSL"), root_1);
adaptor.addChild(root_1, stream_read_key.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:453:7: write_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_write_key_in_event_base3400);
write_key184=write_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_write_key.add(write_key184.getTree());
LPAREN185=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_event_base3402); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN185);
pushFollow(FOLLOW_argumentExpressionList_in_event_base3404);
argumentExpressionList186=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList186.getTree());
RPAREN187=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_event_base3406); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN187);
// AST REWRITE
// elements: argumentExpressionList, write_key
// 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();
// 454:9: -> ^( WRITE_ACSL write_key argumentExpressionList )
{
// AcslParser.g:454:12: ^( WRITE_ACSL write_key argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(WRITE_ACSL, "WRITE_ACSL"), root_1);
adaptor.addChild(root_1, stream_write_key.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:455:7: access_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_access_key_in_event_base3432);
access_key188=access_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_access_key.add(access_key188.getTree());
LPAREN189=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_event_base3434); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN189);
pushFollow(FOLLOW_argumentExpressionList_in_event_base3436);
argumentExpressionList190=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList190.getTree());
RPAREN191=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_event_base3438); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN191);
// AST REWRITE
// elements: access_key, argumentExpressionList
// 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();
// 456:9: -> ^( ACCESS_ACSL access_key argumentExpressionList )
{
// AcslParser.g:456:12: ^( ACCESS_ACSL access_key argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ACCESS_ACSL, "ACCESS_ACSL"), root_1);
adaptor.addChild(root_1, stream_access_key.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// AcslParser.g:457:7: call_key LPAREN IDENTIFIER ( COMMA argumentExpressionList )? RPAREN
{
pushFollow(FOLLOW_call_key_in_event_base3464);
call_key192=call_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_call_key.add(call_key192.getTree());
LPAREN193=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_event_base3466); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN193);
IDENTIFIER194=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_event_base3468); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER194);
// AcslParser.g:457:34: ( COMMA argumentExpressionList )?
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==COMMA) ) {
alt40=1;
}
switch (alt40) {
case 1 :
// AcslParser.g:457:35: COMMA argumentExpressionList
{
COMMA195=(Token)match(input,COMMA,FOLLOW_COMMA_in_event_base3471); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA195);
pushFollow(FOLLOW_argumentExpressionList_in_event_base3473);
argumentExpressionList196=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList196.getTree());
}
break;
}
RPAREN197=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_event_base3477); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN197);
// AST REWRITE
// elements: IDENTIFIER, argumentExpressionList, call_key
// 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();
// 458:9: -> ^( CALL_ACSL call_key IDENTIFIER ( argumentExpressionList )? )
{
// AcslParser.g:458:12: ^( CALL_ACSL call_key IDENTIFIER ( argumentExpressionList )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CALL_ACSL, "CALL_ACSL"), root_1);
adaptor.addChild(root_1, stream_call_key.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// AcslParser.g:458:44: ( argumentExpressionList )?
if ( stream_argumentExpressionList.hasNext() ) {
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
}
stream_argumentExpressionList.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// AcslParser.g:459:7: nothing_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_nothing_key_in_event_base3506);
nothing_key198=nothing_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, nothing_key198.getTree());
}
break;
case 6 :
// AcslParser.g:460:7: anyact_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_anyact_key_in_event_base3514);
anyact_key199=anyact_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, anyact_key199.getTree());
}
break;
case 7 :
// AcslParser.g:461:7: LPAREN event RPAREN
{
LPAREN200=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_event_base3522); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN200);
pushFollow(FOLLOW_event_in_event_base3524);
event201=event();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event.add(event201.getTree());
RPAREN202=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_event_base3526); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN202);
// AST REWRITE
// elements: event
// 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();
// 462:9: -> ^( EVENT_PARENTHESIZED event )
{
// AcslParser.g:462:12: ^( EVENT_PARENTHESIZED event )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EVENT_PARENTHESIZED, "EVENT_PARENTHESIZED"), root_1);
adaptor.addChild(root_1, stream_event.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
}
return retval;
}
// $ANTLR end "event_base"
public static class named_behavior_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "named_behavior"
// AcslParser.g:466:1: named_behavior : behavior_key IDENTIFIER COLON behavior_body -> ^( BEHAVIOR behavior_key IDENTIFIER behavior_body ) ;
public final AcslParser.named_behavior_return named_behavior() throws RecognitionException {
AcslParser.named_behavior_return retval = new AcslParser.named_behavior_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER204=null;
Token COLON205=null;
ParserRuleReturnScope behavior_key203 =null;
ParserRuleReturnScope behavior_body206 =null;
Object IDENTIFIER204_tree=null;
Object COLON205_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_behavior_key=new RewriteRuleSubtreeStream(adaptor,"rule behavior_key");
RewriteRuleSubtreeStream stream_behavior_body=new RewriteRuleSubtreeStream(adaptor,"rule behavior_body");
try {
// AcslParser.g:467:5: ( behavior_key IDENTIFIER COLON behavior_body -> ^( BEHAVIOR behavior_key IDENTIFIER behavior_body ) )
// AcslParser.g:467:7: behavior_key IDENTIFIER COLON behavior_body
{
pushFollow(FOLLOW_behavior_key_in_named_behavior3561);
behavior_key203=behavior_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_behavior_key.add(behavior_key203.getTree());
IDENTIFIER204=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_named_behavior3563); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER204);
COLON205=(Token)match(input,COLON,FOLLOW_COLON_in_named_behavior3565); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON205);
pushFollow(FOLLOW_behavior_body_in_named_behavior3567);
behavior_body206=behavior_body();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_behavior_body.add(behavior_body206.getTree());
// AST REWRITE
// elements: behavior_body, IDENTIFIER, behavior_key
// 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();
// 468:9: -> ^( BEHAVIOR behavior_key IDENTIFIER behavior_body )
{
// AcslParser.g:468:12: ^( BEHAVIOR behavior_key IDENTIFIER behavior_body )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BEHAVIOR, "BEHAVIOR"), root_1);
adaptor.addChild(root_1, stream_behavior_key.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_behavior_body.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
}
return retval;
}
// $ANTLR end "named_behavior"
public static class behavior_body_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "behavior_body"
// AcslParser.g:471:1: behavior_body : (b+= behavior_clause SEMI )+ -> ^( BEHAVIOR_BODY ( $b)+ ) ;
public final AcslParser.behavior_body_return behavior_body() throws RecognitionException {
AcslParser.behavior_body_return retval = new AcslParser.behavior_body_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI207=null;
List<Object> list_b=null;
RuleReturnScope b = null;
Object SEMI207_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_behavior_clause=new RewriteRuleSubtreeStream(adaptor,"rule behavior_clause");
try {
// AcslParser.g:472:5: ( (b+= behavior_clause SEMI )+ -> ^( BEHAVIOR_BODY ( $b)+ ) )
// AcslParser.g:472:7: (b+= behavior_clause SEMI )+
{
// AcslParser.g:472:7: (b+= behavior_clause SEMI )+
int cnt42=0;
loop42:
while (true) {
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==IDENTIFIER) ) {
int LA42_1 = input.LA(2);
if ( (LA42_1==IDENTIFIER) ) {
int LA42_3 = input.LA(3);
if ( (LA42_3==SEMI) ) {
int LA42_5 = input.LA(4);
if ( ((synpred71_AcslParser()&&((input.LT(1).getText().equals("reads"))||(input.LT(1).getText().equals("assigns"))||(input.LT(1).getText().equals("frees"))||(input.LT(1).getText().equals("assumes"))||(input.LT(1).getText().equals("ensures"))||(input.LT(1).getText().equals("executes_when"))||(input.LT(1).getText().equals("allocates"))||(input.LT(1).getText().equals("requires"))))) ) {
alt42=1;
}
}
else if ( ((LA42_3 >= AMPERSAND && LA42_3 <= AND)||(LA42_3 >= ARROW && LA42_3 <= ASSIGN)||LA42_3==BITOR||LA42_3==BITXOR||LA42_3==COMMA||LA42_3==DIV||(LA42_3 >= DOT && LA42_3 <= DOTDOT)||(LA42_3 >= EQUALS && LA42_3 <= EQUIV_ACSL)||(LA42_3 >= GT && LA42_3 <= GTE)||(LA42_3 >= IMPLIES && LA42_3 <= IMPLIES_ACSL)||LA42_3==LPAREN||(LA42_3 >= LSQUARE && LA42_3 <= LTE)||(LA42_3 >= MINUSMINUS && LA42_3 <= MOD)||LA42_3==NEQ||LA42_3==OR||LA42_3==PLUS||LA42_3==QMARK||LA42_3==SHIFTLEFT||LA42_3==SHIFTRIGHT||LA42_3==STAR||LA42_3==SUB||LA42_3==XOR_ACSL) ) {
alt42=1;
}
}
else if ( (LA42_1==AMPERSAND||LA42_1==CHARACTER_CONSTANT||LA42_1==ELLIPSIS||LA42_1==EXTENDED_IDENTIFIER||LA42_1==FLOATING_CONSTANT||LA42_1==INTEGER_CONSTANT||LA42_1==LCURLY||LA42_1==LPAREN||LA42_1==NOT||LA42_1==PLUS||LA42_1==SEMI||LA42_1==STAR||(LA42_1 >= STRING_LITERAL && LA42_1 <= SUB)||LA42_1==TILDE||LA42_1==SELF||LA42_1==SIZEOF) ) {
alt42=1;
}
}
switch (alt42) {
case 1 :
// AcslParser.g:472:8: b+= behavior_clause SEMI
{
pushFollow(FOLLOW_behavior_clause_in_behavior_body3607);
b=behavior_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_behavior_clause.add(b.getTree());
if (list_b==null) list_b=new ArrayList<Object>();
list_b.add(b.getTree());
SEMI207=(Token)match(input,SEMI,FOLLOW_SEMI_in_behavior_body3609); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI207);
}
break;
default :
if ( cnt42 >= 1 ) break loop42;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(42, input);
throw eee;
}
cnt42++;
}
// AST REWRITE
// elements: b
// token labels:
// rule labels: retval
// token list labels:
// rule list labels: b
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"token b",list_b);
root_0 = (Object)adaptor.nil();
// 472:34: -> ^( BEHAVIOR_BODY ( $b)+ )
{
// AcslParser.g:472:37: ^( BEHAVIOR_BODY ( $b)+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BEHAVIOR_BODY, "BEHAVIOR_BODY"), root_1);
if ( !(stream_b.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_b.hasNext() ) {
adaptor.addChild(root_1, stream_b.nextTree());
}
stream_b.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
}
return retval;
}
// $ANTLR end "behavior_body"
public static class behavior_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "behavior_clause"
// AcslParser.g:475:1: behavior_clause : ( assumes_clause | requires_clause | simple_clause );
public final AcslParser.behavior_clause_return behavior_clause() throws RecognitionException {
AcslParser.behavior_clause_return retval = new AcslParser.behavior_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope assumes_clause208 =null;
ParserRuleReturnScope requires_clause209 =null;
ParserRuleReturnScope simple_clause210 =null;
try {
// AcslParser.g:476:5: ( assumes_clause | requires_clause | simple_clause )
int alt43=3;
int LA43_0 = input.LA(1);
if ( (LA43_0==IDENTIFIER) ) {
int LA43_1 = input.LA(2);
if ( ((synpred72_AcslParser()&&(input.LT(1).getText().equals("assumes")))) ) {
alt43=1;
}
else if ( ((synpred73_AcslParser()&&(input.LT(1).getText().equals("requires")))) ) {
alt43=2;
}
else if ( (((input.LT(1).getText().equals("reads"))||(input.LT(1).getText().equals("assigns"))||(input.LT(1).getText().equals("frees"))||(input.LT(1).getText().equals("ensures"))||(input.LT(1).getText().equals("executes_when"))||(input.LT(1).getText().equals("allocates"))||(input.LT(1).getText().equals("depends_on")))) ) {
alt43=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 43, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 43, 0, input);
throw nvae;
}
switch (alt43) {
case 1 :
// AcslParser.g:476:7: assumes_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assumes_clause_in_behavior_clause3638);
assumes_clause208=assumes_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assumes_clause208.getTree());
}
break;
case 2 :
// AcslParser.g:477:7: requires_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_requires_clause_in_behavior_clause3647);
requires_clause209=requires_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, requires_clause209.getTree());
}
break;
case 3 :
// AcslParser.g:478:7: simple_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_simple_clause_in_behavior_clause3655);
simple_clause210=simple_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, simple_clause210.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
}
return retval;
}
// $ANTLR end "behavior_clause"
public static class assumes_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assumes_clause"
// AcslParser.g:481:1: assumes_clause : assumes_key term -> ^( ASSUMES_ACSL assumes_key term ) ;
public final AcslParser.assumes_clause_return assumes_clause() throws RecognitionException {
AcslParser.assumes_clause_return retval = new AcslParser.assumes_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope assumes_key211 =null;
ParserRuleReturnScope term212 =null;
RewriteRuleSubtreeStream stream_assumes_key=new RewriteRuleSubtreeStream(adaptor,"rule assumes_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:482:5: ( assumes_key term -> ^( ASSUMES_ACSL assumes_key term ) )
// AcslParser.g:482:7: assumes_key term
{
pushFollow(FOLLOW_assumes_key_in_assumes_clause3672);
assumes_key211=assumes_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assumes_key.add(assumes_key211.getTree());
pushFollow(FOLLOW_term_in_assumes_clause3674);
term212=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term212.getTree());
// AST REWRITE
// elements: assumes_key, term
// 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();
// 482:24: -> ^( ASSUMES_ACSL assumes_key term )
{
// AcslParser.g:482:26: ^( ASSUMES_ACSL assumes_key term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ASSUMES_ACSL, "ASSUMES_ACSL"), root_1);
adaptor.addChild(root_1, stream_assumes_key.nextTree());
adaptor.addChild(root_1, stream_term.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
}
return retval;
}
// $ANTLR end "assumes_clause"
public static class completeness_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "completeness_clause"
// AcslParser.g:485:1: completeness_clause : ( completes_key behaviors_key id_list -> ^( BEHAVIOR_COMPLETE completes_key behaviors_key id_list ) | disjoint_key behaviors_key id_list -> ^( BEHAVIOR_DISJOINT disjoint_key behaviors_key id_list ) );
public final AcslParser.completeness_clause_return completeness_clause() throws RecognitionException {
AcslParser.completeness_clause_return retval = new AcslParser.completeness_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope completes_key213 =null;
ParserRuleReturnScope behaviors_key214 =null;
ParserRuleReturnScope id_list215 =null;
ParserRuleReturnScope disjoint_key216 =null;
ParserRuleReturnScope behaviors_key217 =null;
ParserRuleReturnScope id_list218 =null;
RewriteRuleSubtreeStream stream_id_list=new RewriteRuleSubtreeStream(adaptor,"rule id_list");
RewriteRuleSubtreeStream stream_disjoint_key=new RewriteRuleSubtreeStream(adaptor,"rule disjoint_key");
RewriteRuleSubtreeStream stream_completes_key=new RewriteRuleSubtreeStream(adaptor,"rule completes_key");
RewriteRuleSubtreeStream stream_behaviors_key=new RewriteRuleSubtreeStream(adaptor,"rule behaviors_key");
try {
// AcslParser.g:486:5: ( completes_key behaviors_key id_list -> ^( BEHAVIOR_COMPLETE completes_key behaviors_key id_list ) | disjoint_key behaviors_key id_list -> ^( BEHAVIOR_DISJOINT disjoint_key behaviors_key id_list ) )
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==IDENTIFIER) ) {
int LA44_1 = input.LA(2);
if ( (LA44_1==IDENTIFIER) ) {
int LA44_2 = input.LA(3);
if ( ((synpred74_AcslParser()&&(input.LT(1).getText().equals("complete")))) ) {
alt44=1;
}
else if ( ((input.LT(1).getText().equals("disjoint"))) ) {
alt44=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 44, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 44, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 44, 0, input);
throw nvae;
}
switch (alt44) {
case 1 :
// AcslParser.g:486:7: completes_key behaviors_key id_list
{
pushFollow(FOLLOW_completes_key_in_completeness_clause3700);
completes_key213=completes_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_completes_key.add(completes_key213.getTree());
pushFollow(FOLLOW_behaviors_key_in_completeness_clause3702);
behaviors_key214=behaviors_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_behaviors_key.add(behaviors_key214.getTree());
pushFollow(FOLLOW_id_list_in_completeness_clause3704);
id_list215=id_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_id_list.add(id_list215.getTree());
// AST REWRITE
// elements: behaviors_key, id_list, completes_key
// 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();
// 487:9: -> ^( BEHAVIOR_COMPLETE completes_key behaviors_key id_list )
{
// AcslParser.g:487:12: ^( BEHAVIOR_COMPLETE completes_key behaviors_key id_list )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BEHAVIOR_COMPLETE, "BEHAVIOR_COMPLETE"), root_1);
adaptor.addChild(root_1, stream_completes_key.nextTree());
adaptor.addChild(root_1, stream_behaviors_key.nextTree());
adaptor.addChild(root_1, stream_id_list.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:488:7: disjoint_key behaviors_key id_list
{
pushFollow(FOLLOW_disjoint_key_in_completeness_clause3732);
disjoint_key216=disjoint_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_disjoint_key.add(disjoint_key216.getTree());
pushFollow(FOLLOW_behaviors_key_in_completeness_clause3734);
behaviors_key217=behaviors_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_behaviors_key.add(behaviors_key217.getTree());
pushFollow(FOLLOW_id_list_in_completeness_clause3736);
id_list218=id_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_id_list.add(id_list218.getTree());
// AST REWRITE
// elements: disjoint_key, behaviors_key, id_list
// 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();
// 489:9: -> ^( BEHAVIOR_DISJOINT disjoint_key behaviors_key id_list )
{
// AcslParser.g:489:12: ^( BEHAVIOR_DISJOINT disjoint_key behaviors_key id_list )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BEHAVIOR_DISJOINT, "BEHAVIOR_DISJOINT"), root_1);
adaptor.addChild(root_1, stream_disjoint_key.nextTree());
adaptor.addChild(root_1, stream_behaviors_key.nextTree());
adaptor.addChild(root_1, stream_id_list.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
}
return retval;
}
// $ANTLR end "completeness_clause"
public static class id_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "id_list"
// AcslParser.g:492:1: id_list : (| IDENTIFIER ( COMMA IDENTIFIER )* -> ^( ID_LIST ( IDENTIFIER )+ ) );
public final AcslParser.id_list_return id_list() throws RecognitionException {
AcslParser.id_list_return retval = new AcslParser.id_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER219=null;
Token COMMA220=null;
Token IDENTIFIER221=null;
Object IDENTIFIER219_tree=null;
Object COMMA220_tree=null;
Object IDENTIFIER221_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:493:5: (| IDENTIFIER ( COMMA IDENTIFIER )* -> ^( ID_LIST ( IDENTIFIER )+ ) )
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==EOF||LA46_0==COLON||LA46_0==SEMI) ) {
alt46=1;
}
else if ( (LA46_0==IDENTIFIER) ) {
alt46=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 46, 0, input);
throw nvae;
}
switch (alt46) {
case 1 :
// AcslParser.g:494:5:
{
root_0 = (Object)adaptor.nil();
}
break;
case 2 :
// AcslParser.g:494:7: IDENTIFIER ( COMMA IDENTIFIER )*
{
IDENTIFIER219=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_id_list3779); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER219);
// AcslParser.g:494:18: ( COMMA IDENTIFIER )*
loop45:
while (true) {
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==COMMA) ) {
alt45=1;
}
switch (alt45) {
case 1 :
// AcslParser.g:494:19: COMMA IDENTIFIER
{
COMMA220=(Token)match(input,COMMA,FOLLOW_COMMA_in_id_list3782); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA220);
IDENTIFIER221=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_id_list3784); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER221);
}
break;
default :
break loop45;
}
}
// AST REWRITE
// elements: IDENTIFIER
// 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();
// 494:38: -> ^( ID_LIST ( IDENTIFIER )+ )
{
// AcslParser.g:494:41: ^( ID_LIST ( IDENTIFIER )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ID_LIST, "ID_LIST"), root_1);
if ( !(stream_IDENTIFIER.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_IDENTIFIER.hasNext() ) {
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
}
stream_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "id_list"
public static class term_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "term"
// AcslParser.g:506:1: term : ( quantifierExpression | assignmentExpression );
public final AcslParser.term_return term() throws RecognitionException {
AcslParser.term_return retval = new AcslParser.term_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope quantifierExpression222 =null;
ParserRuleReturnScope assignmentExpression223 =null;
try {
// AcslParser.g:507:5: ( quantifierExpression | assignmentExpression )
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case IDENTIFIER:
{
int LA47_3 = input.LA(3);
if ( (LA47_3==LPAREN||LA47_3==STAR) ) {
alt47=1;
}
else if ( (LA47_3==IDENTIFIER) ) {
int LA47_5 = input.LA(4);
if ( (LA47_5==COMMA||LA47_5==LSQUARE||LA47_5==SEMI) ) {
alt47=1;
}
else if ( (LA47_5==BITOR||LA47_5==PLUS||LA47_5==SUB) ) {
alt47=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 47, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 47, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt47=1;
}
break;
case EOF:
case AMPERSAND:
case AND:
case ARROW:
case ASSIGN:
case BITOR:
case BITXOR:
case COLON:
case COMMA:
case DIV:
case DOT:
case DOTDOT:
case EQUALS:
case EQUIV_ACSL:
case GT:
case GTE:
case HASH:
case IMPLIES:
case IMPLIES_ACSL:
case LPAREN:
case LSQUARE:
case LT:
case LTE:
case MINUSMINUS:
case MOD:
case NEQ:
case OR:
case PLUS:
case QMARK:
case RCURLY:
case RPAREN:
case RSQUARE:
case SEMI:
case SHIFTLEFT:
case SHIFTRIGHT:
case STAR:
case SUB:
case XOR_ACSL:
case FOR:
{
alt47=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 47, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA47_0==AMPERSAND||LA47_0==CHARACTER_CONSTANT||LA47_0==ELLIPSIS||LA47_0==FLOATING_CONSTANT||LA47_0==IDENTIFIER||LA47_0==INTEGER_CONSTANT||LA47_0==LCURLY||LA47_0==LPAREN||LA47_0==NOT||LA47_0==PLUS||LA47_0==STAR||(LA47_0 >= STRING_LITERAL && LA47_0 <= SUB)||LA47_0==TILDE||LA47_0==SELF||LA47_0==SIZEOF) ) {
alt47=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 47, 0, input);
throw nvae;
}
switch (alt47) {
case 1 :
// AcslParser.g:507:7: quantifierExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_quantifierExpression_in_term3821);
quantifierExpression222=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, quantifierExpression222.getTree());
}
break;
case 2 :
// AcslParser.g:507:30: assignmentExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assignmentExpression_in_term3825);
assignmentExpression223=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assignmentExpression223.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
}
return retval;
}
// $ANTLR end "term"
public static class quantifierExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "quantifierExpression"
// AcslParser.g:510:1: quantifierExpression : ( forall_key binders SEMI term -> ^( QUANTIFIED forall_key binders term ) | exists_key binders SEMI term -> ^( QUANTIFIED exists_key binders term ) | lambda_key binders SEMI term -> ^( LAMBDA_ACSL lambda_key binders term ) );
public final AcslParser.quantifierExpression_return quantifierExpression() throws RecognitionException {
AcslParser.quantifierExpression_return retval = new AcslParser.quantifierExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI226=null;
Token SEMI230=null;
Token SEMI234=null;
ParserRuleReturnScope forall_key224 =null;
ParserRuleReturnScope binders225 =null;
ParserRuleReturnScope term227 =null;
ParserRuleReturnScope exists_key228 =null;
ParserRuleReturnScope binders229 =null;
ParserRuleReturnScope term231 =null;
ParserRuleReturnScope lambda_key232 =null;
ParserRuleReturnScope binders233 =null;
ParserRuleReturnScope term235 =null;
Object SEMI226_tree=null;
Object SEMI230_tree=null;
Object SEMI234_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_forall_key=new RewriteRuleSubtreeStream(adaptor,"rule forall_key");
RewriteRuleSubtreeStream stream_lambda_key=new RewriteRuleSubtreeStream(adaptor,"rule lambda_key");
RewriteRuleSubtreeStream stream_binders=new RewriteRuleSubtreeStream(adaptor,"rule binders");
RewriteRuleSubtreeStream stream_exists_key=new RewriteRuleSubtreeStream(adaptor,"rule exists_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:511:2: ( forall_key binders SEMI term -> ^( QUANTIFIED forall_key binders term ) | exists_key binders SEMI term -> ^( QUANTIFIED exists_key binders term ) | lambda_key binders SEMI term -> ^( LAMBDA_ACSL lambda_key binders term ) )
int alt48=3;
int LA48_0 = input.LA(1);
if ( (LA48_0==EXTENDED_IDENTIFIER) ) {
int LA48_1 = input.LA(2);
if ( ((synpred78_AcslParser()&&(input.LT(1).getText().equals("\\forall")))) ) {
alt48=1;
}
else if ( ((synpred79_AcslParser()&&(input.LT(1).getText().equals("\\exists")))) ) {
alt48=2;
}
else if ( ((input.LT(1).getText().equals("\\lambda"))) ) {
alt48=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 48, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 48, 0, input);
throw nvae;
}
switch (alt48) {
case 1 :
// AcslParser.g:511:4: forall_key binders SEMI term
{
pushFollow(FOLLOW_forall_key_in_quantifierExpression3844);
forall_key224=forall_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_forall_key.add(forall_key224.getTree());
pushFollow(FOLLOW_binders_in_quantifierExpression3846);
binders225=binders();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binders.add(binders225.getTree());
SEMI226=(Token)match(input,SEMI,FOLLOW_SEMI_in_quantifierExpression3848); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI226);
pushFollow(FOLLOW_term_in_quantifierExpression3850);
term227=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term227.getTree());
// AST REWRITE
// elements: term, forall_key, binders
// 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();
// 512:5: -> ^( QUANTIFIED forall_key binders term )
{
// AcslParser.g:512:8: ^( QUANTIFIED forall_key binders term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QUANTIFIED, "QUANTIFIED"), root_1);
adaptor.addChild(root_1, stream_forall_key.nextTree());
adaptor.addChild(root_1, stream_binders.nextTree());
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:513:7: exists_key binders SEMI term
{
pushFollow(FOLLOW_exists_key_in_quantifierExpression3875);
exists_key228=exists_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_exists_key.add(exists_key228.getTree());
pushFollow(FOLLOW_binders_in_quantifierExpression3877);
binders229=binders();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binders.add(binders229.getTree());
SEMI230=(Token)match(input,SEMI,FOLLOW_SEMI_in_quantifierExpression3879); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI230);
pushFollow(FOLLOW_term_in_quantifierExpression3881);
term231=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term231.getTree());
// AST REWRITE
// elements: exists_key, binders, term
// 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();
// 514:8: -> ^( QUANTIFIED exists_key binders term )
{
// AcslParser.g:514:11: ^( QUANTIFIED exists_key binders term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QUANTIFIED, "QUANTIFIED"), root_1);
adaptor.addChild(root_1, stream_exists_key.nextTree());
adaptor.addChild(root_1, stream_binders.nextTree());
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:515:4: lambda_key binders SEMI term
{
pushFollow(FOLLOW_lambda_key_in_quantifierExpression3906);
lambda_key232=lambda_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lambda_key.add(lambda_key232.getTree());
pushFollow(FOLLOW_binders_in_quantifierExpression3908);
binders233=binders();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binders.add(binders233.getTree());
SEMI234=(Token)match(input,SEMI,FOLLOW_SEMI_in_quantifierExpression3910); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI234);
pushFollow(FOLLOW_term_in_quantifierExpression3912);
term235=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term235.getTree());
// AST REWRITE
// elements: term, lambda_key, binders
// 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();
// 516:5: -> ^( LAMBDA_ACSL lambda_key binders term )
{
// AcslParser.g:516:8: ^( LAMBDA_ACSL lambda_key binders term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LAMBDA_ACSL, "LAMBDA_ACSL"), root_1);
adaptor.addChild(root_1, stream_lambda_key.nextTree());
adaptor.addChild(root_1, stream_binders.nextTree());
adaptor.addChild(root_1, stream_term.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
}
return retval;
}
// $ANTLR end "quantifierExpression"
public static class assignmentExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assignmentExpression"
// AcslParser.g:532:1: assignmentExpression : ( ( unaryExpression ASSIGN )=> unaryExpression ASSIGN assignmentExpression -> ^( OPERATOR ASSIGN ^( ARGUMENT_LIST unaryExpression assignmentExpression ) ) | conditionalExpression );
public final AcslParser.assignmentExpression_return assignmentExpression() throws RecognitionException {
AcslParser.assignmentExpression_return retval = new AcslParser.assignmentExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN237=null;
ParserRuleReturnScope unaryExpression236 =null;
ParserRuleReturnScope assignmentExpression238 =null;
ParserRuleReturnScope conditionalExpression239 =null;
Object ASSIGN237_tree=null;
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression");
try {
// AcslParser.g:533:2: ( ( unaryExpression ASSIGN )=> unaryExpression ASSIGN assignmentExpression -> ^( OPERATOR ASSIGN ^( ARGUMENT_LIST unaryExpression assignmentExpression ) ) | conditionalExpression )
int alt49=2;
switch ( input.LA(1) ) {
case INTEGER_CONSTANT:
{
int LA49_1 = input.LA(2);
if ( (synpred80_AcslParser()) ) {
alt49=1;
}
else if ( (true) ) {
alt49=2;
}
}
break;
case FLOATING_CONSTANT:
{
int LA49_2 = input.LA(2);
if ( (synpred80_AcslParser()) ) {
alt49=1;
}
else if ( (true) ) {
alt49=2;
}
}
break;
case CHARACTER_CONSTANT:
{
int LA49_3 = input.LA(2);
if ( (synpred80_AcslParser()) ) {
alt49=1;
}
else if ( (true) ) {
alt49=2;
}
}
break;
case EXTENDED_IDENTIFIER:
{
int LA49_4 = input.LA(2);
if ( ((synpred80_AcslParser()&&((input.LT(1).getText().equals("\\product"))||(input.LT(1).getText().equals("\\result"))||(input.LT(1).getText().equals("\\min"))||(input.LT(1).getText().equals("\\sum"))||(input.LT(1).getText().equals("\\union"))||(input.LT(1).getText().equals("\\object_of"))||(input.LT(1).getText().equals("\\old"))||(input.LT(1).getText().equals("\\nothing"))||(input.LT(1).getText().equals("\\inter"))||(input.LT(1).getText().equals("\\false"))||(input.LT(1).getText().equals("\\max"))||(input.LT(1).getText().equals("\\numof"))||(input.LT(1).getText().equals("\\null"))||(input.LT(1).getText().equals("\\valid"))||(input.LT(1).getText().equals("\\true"))))) ) {
alt49=1;
}
else if ( (((input.LT(1).getText().equals("\\product"))||(input.LT(1).getText().equals("\\result"))||(input.LT(1).getText().equals("\\min"))||(input.LT(1).getText().equals("\\sum"))||(input.LT(1).getText().equals("\\union"))||(input.LT(1).getText().equals("\\object_of"))||(input.LT(1).getText().equals("\\old"))||(input.LT(1).getText().equals("\\nothing"))||(input.LT(1).getText().equals("\\inter"))||(input.LT(1).getText().equals("\\false"))||(input.LT(1).getText().equals("\\max"))||(input.LT(1).getText().equals("\\numof"))||(input.LT(1).getText().equals("\\null"))||(input.LT(1).getText().equals("\\valid"))||(input.LT(1).getText().equals("\\true")))) ) {
alt49=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 49, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ELLIPSIS:
{
int LA49_5 = input.LA(2);
if ( (synpred80_AcslParser()) ) {
alt49=1;
}
else if ( (true) ) {
alt49=2;
}
}
break;
case SELF:
{
int LA49_6 = input.LA(2);
if ( (synpred80_AcslParser()) ) {
alt49=1;
}
else if ( (true) ) {
alt49=2;
}
}
break;
case IDENTIFIER:
{
int LA49_7 = input.LA(2);
if ( (synpred80_AcslParser()) ) {
alt49=1;
}
else if ( (true) ) {
alt49=2;
}
}
break;
case STRING_LITERAL:
{
int LA49_8 = input.LA(2);
if ( (synpred80_AcslParser()) ) {
alt49=1;
}
else if ( (true) ) {
alt49=2;
}
}
break;
case LCURLY:
{
int LA49_9 = input.LA(2);
if ( (synpred80_AcslParser()) ) {
alt49=1;
}
else if ( (true) ) {
alt49=2;
}
}
break;
case LPAREN:
{
int LA49_10 = input.LA(2);
if ( (synpred80_AcslParser()) ) {
alt49=1;
}
else if ( (true) ) {
alt49=2;
}
}
break;
case AMPERSAND:
case NOT:
case PLUS:
case STAR:
case SUB:
case TILDE:
{
int LA49_11 = input.LA(2);
if ( (synpred80_AcslParser()) ) {
alt49=1;
}
else if ( (true) ) {
alt49=2;
}
}
break;
case SIZEOF:
{
int LA49_12 = input.LA(2);
if ( (synpred80_AcslParser()) ) {
alt49=1;
}
else if ( (true) ) {
alt49=2;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 49, 0, input);
throw nvae;
}
switch (alt49) {
case 1 :
// AcslParser.g:533:4: ( unaryExpression ASSIGN )=> unaryExpression ASSIGN assignmentExpression
{
pushFollow(FOLLOW_unaryExpression_in_assignmentExpression3948);
unaryExpression236=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression236.getTree());
ASSIGN237=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_assignmentExpression3950); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN237);
pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression3952);
assignmentExpression238=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression238.getTree());
// AST REWRITE
// elements: unaryExpression, assignmentExpression, ASSIGN
// 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();
// 534:4: -> ^( OPERATOR ASSIGN ^( ARGUMENT_LIST unaryExpression assignmentExpression ) )
{
// AcslParser.g:534:7: ^( OPERATOR ASSIGN ^( ARGUMENT_LIST unaryExpression assignmentExpression ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_ASSIGN.nextNode());
// AcslParser.g:535:13: ^( ARGUMENT_LIST unaryExpression assignmentExpression )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_unaryExpression.nextTree());
adaptor.addChild(root_2, stream_assignmentExpression.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:536:4: conditionalExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpression_in_assignmentExpression3988);
conditionalExpression239=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, conditionalExpression239.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
}
return retval;
}
// $ANTLR end "assignmentExpression"
public static class assignmentExpression_opt_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assignmentExpression_opt"
// AcslParser.g:539:1: assignmentExpression_opt : ( -> ABSENT | assignmentExpression );
public final AcslParser.assignmentExpression_opt_return assignmentExpression_opt() throws RecognitionException {
AcslParser.assignmentExpression_opt_return retval = new AcslParser.assignmentExpression_opt_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope assignmentExpression240 =null;
try {
// AcslParser.g:540:5: ( -> ABSENT | assignmentExpression )
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==RSQUARE) ) {
alt50=1;
}
else if ( (LA50_0==AMPERSAND||LA50_0==CHARACTER_CONSTANT||LA50_0==ELLIPSIS||LA50_0==EXTENDED_IDENTIFIER||LA50_0==FLOATING_CONSTANT||LA50_0==IDENTIFIER||LA50_0==INTEGER_CONSTANT||LA50_0==LCURLY||LA50_0==LPAREN||LA50_0==NOT||LA50_0==PLUS||LA50_0==STAR||(LA50_0 >= STRING_LITERAL && LA50_0 <= SUB)||LA50_0==TILDE||LA50_0==SELF||LA50_0==SIZEOF) ) {
alt50=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 50, 0, input);
throw nvae;
}
switch (alt50) {
case 1 :
// AcslParser.g:540:7:
{
// 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();
// 540:7: -> ABSENT
{
adaptor.addChild(root_0, (Object)adaptor.create(ABSENT, "ABSENT"));
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:541:7: assignmentExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression_opt4012);
assignmentExpression240=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assignmentExpression240.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
}
return retval;
}
// $ANTLR end "assignmentExpression_opt"
public static class conditionalExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "conditionalExpression"
// AcslParser.g:558:1: conditionalExpression : a= logicalEquivExpression ( QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST $a $b $c) ) | -> $a) ;
public final AcslParser.conditionalExpression_return conditionalExpression() throws RecognitionException {
AcslParser.conditionalExpression_return retval = new AcslParser.conditionalExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token QMARK241=null;
Token COLON242=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope c =null;
Object QMARK241_tree=null;
Object COLON242_tree=null;
RewriteRuleTokenStream stream_QMARK=new RewriteRuleTokenStream(adaptor,"token QMARK");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_conditionalExpression=new RewriteRuleSubtreeStream(adaptor,"rule conditionalExpression");
RewriteRuleSubtreeStream stream_logicalEquivExpression=new RewriteRuleSubtreeStream(adaptor,"rule logicalEquivExpression");
RewriteRuleSubtreeStream stream_quantifierExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifierExpression");
try {
// AcslParser.g:559:2: (a= logicalEquivExpression ( QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST $a $b $c) ) | -> $a) )
// AcslParser.g:559:4: a= logicalEquivExpression ( QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST $a $b $c) ) | -> $a)
{
pushFollow(FOLLOW_logicalEquivExpression_in_conditionalExpression4030);
a=logicalEquivExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalEquivExpression.add(a.getTree());
// AcslParser.g:560:9: ( QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST $a $b $c) ) | -> $a)
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==QMARK) ) {
int LA52_1 = input.LA(2);
if ( (synpred83_AcslParser()) ) {
alt52=1;
}
else if ( (true) ) {
alt52=2;
}
}
else if ( (LA52_0==EOF||(LA52_0 >= AMPERSAND && LA52_0 <= AND)||LA52_0==ASSIGN||LA52_0==BITOR||LA52_0==BITXOR||(LA52_0 >= COLON && LA52_0 <= COMMA)||LA52_0==DIV||LA52_0==DOTDOT||(LA52_0 >= EQUALS && LA52_0 <= EQUIV_ACSL)||(LA52_0 >= GT && LA52_0 <= HASH)||LA52_0==IDENTIFIER||(LA52_0 >= IMPLIES && LA52_0 <= IMPLIES_ACSL)||(LA52_0 >= LT && LA52_0 <= LTE)||(LA52_0 >= MINUSMINUS && LA52_0 <= MOD)||LA52_0==NEQ||LA52_0==OR||LA52_0==PLUS||LA52_0==RCURLY||LA52_0==RPAREN||LA52_0==RSQUARE||(LA52_0 >= SEMI && LA52_0 <= SHIFTLEFT)||LA52_0==SHIFTRIGHT||LA52_0==STAR||LA52_0==SUB||LA52_0==XOR_ACSL||LA52_0==FOR) ) {
alt52=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 52, 0, input);
throw nvae;
}
switch (alt52) {
case 1 :
// AcslParser.g:560:11: QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression )
{
QMARK241=(Token)match(input,QMARK,FOLLOW_QMARK_in_conditionalExpression4042); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_QMARK.add(QMARK241);
pushFollow(FOLLOW_conditionalExpression_in_conditionalExpression4046);
b=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(b.getTree());
COLON242=(Token)match(input,COLON,FOLLOW_COLON_in_conditionalExpression4048); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON242);
// AcslParser.g:561:13: (c= quantifierExpression |c= conditionalExpression )
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case IDENTIFIER:
{
int LA51_3 = input.LA(3);
if ( (LA51_3==LPAREN||LA51_3==STAR) ) {
alt51=1;
}
else if ( (LA51_3==IDENTIFIER) ) {
int LA51_5 = input.LA(4);
if ( (LA51_5==COMMA||LA51_5==LSQUARE||LA51_5==SEMI) ) {
alt51=1;
}
else if ( (LA51_5==BITOR||LA51_5==PLUS||LA51_5==SUB) ) {
alt51=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 51, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 51, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt51=1;
}
break;
case EOF:
case AMPERSAND:
case AND:
case ARROW:
case ASSIGN:
case BITOR:
case BITXOR:
case COLON:
case COMMA:
case DIV:
case DOT:
case DOTDOT:
case EQUALS:
case EQUIV_ACSL:
case GT:
case GTE:
case HASH:
case IMPLIES:
case IMPLIES_ACSL:
case LPAREN:
case LSQUARE:
case LT:
case LTE:
case MINUSMINUS:
case MOD:
case NEQ:
case OR:
case PLUS:
case QMARK:
case RCURLY:
case RPAREN:
case RSQUARE:
case SEMI:
case SHIFTLEFT:
case SHIFTRIGHT:
case STAR:
case SUB:
case XOR_ACSL:
case FOR:
{
alt51=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 51, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA51_0==AMPERSAND||LA51_0==CHARACTER_CONSTANT||LA51_0==ELLIPSIS||LA51_0==FLOATING_CONSTANT||LA51_0==IDENTIFIER||LA51_0==INTEGER_CONSTANT||LA51_0==LCURLY||LA51_0==LPAREN||LA51_0==NOT||LA51_0==PLUS||LA51_0==STAR||(LA51_0 >= STRING_LITERAL && LA51_0 <= SUB)||LA51_0==TILDE||LA51_0==SELF||LA51_0==SIZEOF) ) {
alt51=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 51, 0, input);
throw nvae;
}
switch (alt51) {
case 1 :
// AcslParser.g:561:14: c= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_conditionalExpression4066);
c=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(c.getTree());
}
break;
case 2 :
// AcslParser.g:561:39: c= conditionalExpression
{
pushFollow(FOLLOW_conditionalExpression_in_conditionalExpression4072);
c=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(c.getTree());
}
break;
}
// AST REWRITE
// elements: c, QMARK, b, a
// token labels:
// rule labels: a, b, c, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 562:13: -> ^( OPERATOR QMARK ^( ARGUMENT_LIST $a $b $c) )
{
// AcslParser.g:562:16: ^( OPERATOR QMARK ^( ARGUMENT_LIST $a $b $c) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_QMARK.nextNode());
// AcslParser.g:562:33: ^( ARGUMENT_LIST $a $b $c)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_a.nextTree());
adaptor.addChild(root_2, stream_b.nextTree());
adaptor.addChild(root_2, stream_c.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:563:11:
{
// AST REWRITE
// elements: a
// token labels:
// rule labels: a, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 563:11: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
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
}
return retval;
}
// $ANTLR end "conditionalExpression"
public static class logicalEquivExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logicalEquivExpression"
// AcslParser.g:570:1: logicalEquivExpression : (a= logicalImpliesExpression -> $a) ( EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR EQUIV_ACSL ^( ARGUMENT_LIST $logicalEquivExpression $b) ) )* ;
public final AcslParser.logicalEquivExpression_return logicalEquivExpression() throws RecognitionException {
AcslParser.logicalEquivExpression_return retval = new AcslParser.logicalEquivExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EQUIV_ACSL243=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
Object EQUIV_ACSL243_tree=null;
RewriteRuleTokenStream stream_EQUIV_ACSL=new RewriteRuleTokenStream(adaptor,"token EQUIV_ACSL");
RewriteRuleSubtreeStream stream_logicalImpliesExpression=new RewriteRuleSubtreeStream(adaptor,"rule logicalImpliesExpression");
RewriteRuleSubtreeStream stream_quantifierExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifierExpression");
try {
// AcslParser.g:571:2: ( (a= logicalImpliesExpression -> $a) ( EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR EQUIV_ACSL ^( ARGUMENT_LIST $logicalEquivExpression $b) ) )* )
// AcslParser.g:571:4: (a= logicalImpliesExpression -> $a) ( EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR EQUIV_ACSL ^( ARGUMENT_LIST $logicalEquivExpression $b) ) )*
{
// AcslParser.g:571:4: (a= logicalImpliesExpression -> $a)
// AcslParser.g:571:5: a= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_logicalEquivExpression4144);
a=logicalImpliesExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalImpliesExpression.add(a.getTree());
// AST REWRITE
// elements: a
// token labels:
// rule labels: a, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 571:32: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:572:9: ( EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR EQUIV_ACSL ^( ARGUMENT_LIST $logicalEquivExpression $b) ) )*
loop54:
while (true) {
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==EQUIV_ACSL) ) {
int LA54_2 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt54=1;
}
}
switch (alt54) {
case 1 :
// AcslParser.g:572:11: EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression )
{
EQUIV_ACSL243=(Token)match(input,EQUIV_ACSL,FOLLOW_EQUIV_ACSL_in_logicalEquivExpression4162); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EQUIV_ACSL.add(EQUIV_ACSL243);
// AcslParser.g:572:22: (b= quantifierExpression |b= logicalImpliesExpression )
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case IDENTIFIER:
{
int LA53_3 = input.LA(3);
if ( (LA53_3==LPAREN||LA53_3==STAR) ) {
alt53=1;
}
else if ( (LA53_3==IDENTIFIER) ) {
int LA53_5 = input.LA(4);
if ( (LA53_5==COMMA||LA53_5==LSQUARE||LA53_5==SEMI) ) {
alt53=1;
}
else if ( (LA53_5==BITOR||LA53_5==PLUS||LA53_5==SUB) ) {
alt53=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 53, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 53, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt53=1;
}
break;
case EOF:
case AMPERSAND:
case AND:
case ARROW:
case ASSIGN:
case BITOR:
case BITXOR:
case COLON:
case COMMA:
case DIV:
case DOT:
case DOTDOT:
case EQUALS:
case EQUIV_ACSL:
case GT:
case GTE:
case HASH:
case IMPLIES:
case IMPLIES_ACSL:
case LPAREN:
case LSQUARE:
case LT:
case LTE:
case MINUSMINUS:
case MOD:
case NEQ:
case OR:
case PLUS:
case QMARK:
case RCURLY:
case RPAREN:
case RSQUARE:
case SEMI:
case SHIFTLEFT:
case SHIFTRIGHT:
case STAR:
case SUB:
case XOR_ACSL:
case FOR:
{
alt53=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 53, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA53_0==AMPERSAND||LA53_0==CHARACTER_CONSTANT||LA53_0==ELLIPSIS||LA53_0==FLOATING_CONSTANT||LA53_0==IDENTIFIER||LA53_0==INTEGER_CONSTANT||LA53_0==LCURLY||LA53_0==LPAREN||LA53_0==NOT||LA53_0==PLUS||LA53_0==STAR||(LA53_0 >= STRING_LITERAL && LA53_0 <= SUB)||LA53_0==TILDE||LA53_0==SELF||LA53_0==SIZEOF) ) {
alt53=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 53, 0, input);
throw nvae;
}
switch (alt53) {
case 1 :
// AcslParser.g:572:23: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_logicalEquivExpression4167);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:572:48: b= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_logicalEquivExpression4173);
b=logicalImpliesExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalImpliesExpression.add(b.getTree());
}
break;
}
// AST REWRITE
// elements: logicalEquivExpression, EQUIV_ACSL, b
// token labels:
// rule labels: b, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 573:13: -> ^( OPERATOR EQUIV_ACSL ^( ARGUMENT_LIST $logicalEquivExpression $b) )
{
// AcslParser.g:573:16: ^( OPERATOR EQUIV_ACSL ^( ARGUMENT_LIST $logicalEquivExpression $b) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_EQUIV_ACSL.nextNode());
// AcslParser.g:573:38: ^( ARGUMENT_LIST $logicalEquivExpression $b)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_b.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop54;
}
}
}
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
}
return retval;
}
// $ANTLR end "logicalEquivExpression"
public static class logicalImpliesExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logicalImpliesExpression"
// AcslParser.g:580:1: logicalImpliesExpression : a= logicalOrExpression (op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR $op ^( ARGUMENT_LIST $a $b) ) | -> $a) ;
public final AcslParser.logicalImpliesExpression_return logicalImpliesExpression() throws RecognitionException {
AcslParser.logicalImpliesExpression_return retval = new AcslParser.logicalImpliesExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token op=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
Object op_tree=null;
RewriteRuleTokenStream stream_IMPLIES=new RewriteRuleTokenStream(adaptor,"token IMPLIES");
RewriteRuleTokenStream stream_IMPLIES_ACSL=new RewriteRuleTokenStream(adaptor,"token IMPLIES_ACSL");
RewriteRuleSubtreeStream stream_logicalOrExpression=new RewriteRuleSubtreeStream(adaptor,"rule logicalOrExpression");
RewriteRuleSubtreeStream stream_logicalImpliesExpression=new RewriteRuleSubtreeStream(adaptor,"rule logicalImpliesExpression");
RewriteRuleSubtreeStream stream_quantifierExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifierExpression");
try {
// AcslParser.g:581:2: (a= logicalOrExpression (op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR $op ^( ARGUMENT_LIST $a $b) ) | -> $a) )
// AcslParser.g:581:4: a= logicalOrExpression (op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR $op ^( ARGUMENT_LIST $a $b) ) | -> $a)
{
pushFollow(FOLLOW_logicalOrExpression_in_logicalImpliesExpression4233);
a=logicalOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalOrExpression.add(a.getTree());
// AcslParser.g:582:9: (op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR $op ^( ARGUMENT_LIST $a $b) ) | -> $a)
int alt57=2;
switch ( input.LA(1) ) {
case IMPLIES:
{
int LA57_1 = input.LA(2);
if ( (synpred88_AcslParser()) ) {
alt57=1;
}
else if ( (true) ) {
alt57=2;
}
}
break;
case IMPLIES_ACSL:
{
int LA57_2 = input.LA(2);
if ( (synpred88_AcslParser()) ) {
alt57=1;
}
else if ( (true) ) {
alt57=2;
}
}
break;
case EOF:
case AMPERSAND:
case AND:
case ASSIGN:
case BITOR:
case BITXOR:
case COLON:
case COMMA:
case DIV:
case DOTDOT:
case EQUALS:
case EQUIV_ACSL:
case GT:
case GTE:
case HASH:
case IDENTIFIER:
case LT:
case LTE:
case MINUSMINUS:
case MOD:
case NEQ:
case OR:
case PLUS:
case QMARK:
case RCURLY:
case RPAREN:
case RSQUARE:
case SEMI:
case SHIFTLEFT:
case SHIFTRIGHT:
case STAR:
case SUB:
case XOR_ACSL:
case FOR:
{
alt57=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 57, 0, input);
throw nvae;
}
switch (alt57) {
case 1 :
// AcslParser.g:582:11: op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression )
{
// AcslParser.g:582:14: ( IMPLIES | IMPLIES_ACSL )
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==IMPLIES) ) {
alt55=1;
}
else if ( (LA55_0==IMPLIES_ACSL) ) {
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 :
// AcslParser.g:582:15: IMPLIES
{
op=(Token)match(input,IMPLIES,FOLLOW_IMPLIES_in_logicalImpliesExpression4248); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IMPLIES.add(op);
}
break;
case 2 :
// AcslParser.g:582:23: IMPLIES_ACSL
{
op=(Token)match(input,IMPLIES_ACSL,FOLLOW_IMPLIES_ACSL_in_logicalImpliesExpression4250); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IMPLIES_ACSL.add(op);
}
break;
}
// AcslParser.g:582:37: (b= quantifierExpression |b= logicalImpliesExpression )
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case IDENTIFIER:
{
int LA56_3 = input.LA(3);
if ( (LA56_3==LPAREN||LA56_3==STAR) ) {
alt56=1;
}
else if ( (LA56_3==IDENTIFIER) ) {
int LA56_5 = input.LA(4);
if ( (LA56_5==COMMA||LA56_5==LSQUARE||LA56_5==SEMI) ) {
alt56=1;
}
else if ( (LA56_5==BITOR||LA56_5==PLUS||LA56_5==SUB) ) {
alt56=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 56, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 56, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt56=1;
}
break;
case EOF:
case AMPERSAND:
case AND:
case ARROW:
case ASSIGN:
case BITOR:
case BITXOR:
case COLON:
case COMMA:
case DIV:
case DOT:
case DOTDOT:
case EQUALS:
case EQUIV_ACSL:
case GT:
case GTE:
case HASH:
case IMPLIES:
case IMPLIES_ACSL:
case LPAREN:
case LSQUARE:
case LT:
case LTE:
case MINUSMINUS:
case MOD:
case NEQ:
case OR:
case PLUS:
case QMARK:
case RCURLY:
case RPAREN:
case RSQUARE:
case SEMI:
case SHIFTLEFT:
case SHIFTRIGHT:
case STAR:
case SUB:
case XOR_ACSL:
case FOR:
{
alt56=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 56, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA56_0==AMPERSAND||LA56_0==CHARACTER_CONSTANT||LA56_0==ELLIPSIS||LA56_0==FLOATING_CONSTANT||LA56_0==IDENTIFIER||LA56_0==INTEGER_CONSTANT||LA56_0==LCURLY||LA56_0==LPAREN||LA56_0==NOT||LA56_0==PLUS||LA56_0==STAR||(LA56_0 >= STRING_LITERAL && LA56_0 <= SUB)||LA56_0==TILDE||LA56_0==SELF||LA56_0==SIZEOF) ) {
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 :
// AcslParser.g:582:38: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_logicalImpliesExpression4256);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:582:63: b= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_logicalImpliesExpression4262);
b=logicalImpliesExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalImpliesExpression.add(b.getTree());
}
break;
}
// AST REWRITE
// elements: a, b, op
// token labels: op
// rule labels: a, b, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleTokenStream stream_op=new RewriteRuleTokenStream(adaptor,"token op",op);
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 583:13: -> ^( OPERATOR $op ^( ARGUMENT_LIST $a $b) )
{
// AcslParser.g:583:16: ^( OPERATOR $op ^( ARGUMENT_LIST $a $b) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_op.nextNode());
// AcslParser.g:583:31: ^( ARGUMENT_LIST $a $b)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_a.nextTree());
adaptor.addChild(root_2, stream_b.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:584:11:
{
// AST REWRITE
// elements: a
// token labels:
// rule labels: a, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 584:11: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
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
}
return retval;
}
// $ANTLR end "logicalImpliesExpression"
public static class logicalOrExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logicalOrExpression"
// AcslParser.g:591:1: logicalOrExpression : (a= logicalXorExpression -> $a) ( OR (b= quantifierExpression |b= logicalXorExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $b) ) )* ;
public final AcslParser.logicalOrExpression_return logicalOrExpression() throws RecognitionException {
AcslParser.logicalOrExpression_return retval = new AcslParser.logicalOrExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token OR244=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
Object OR244_tree=null;
RewriteRuleTokenStream stream_OR=new RewriteRuleTokenStream(adaptor,"token OR");
RewriteRuleSubtreeStream stream_logicalXorExpression=new RewriteRuleSubtreeStream(adaptor,"rule logicalXorExpression");
RewriteRuleSubtreeStream stream_quantifierExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifierExpression");
try {
// AcslParser.g:592:2: ( (a= logicalXorExpression -> $a) ( OR (b= quantifierExpression |b= logicalXorExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $b) ) )* )
// AcslParser.g:592:4: (a= logicalXorExpression -> $a) ( OR (b= quantifierExpression |b= logicalXorExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $b) ) )*
{
// AcslParser.g:592:4: (a= logicalXorExpression -> $a)
// AcslParser.g:592:5: a= logicalXorExpression
{
pushFollow(FOLLOW_logicalXorExpression_in_logicalOrExpression4338);
a=logicalXorExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalXorExpression.add(a.getTree());
// AST REWRITE
// elements: a
// token labels:
// rule labels: a, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 592:28: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:593:9: ( OR (b= quantifierExpression |b= logicalXorExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $b) ) )*
loop59:
while (true) {
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==OR) ) {
int LA59_2 = input.LA(2);
if ( (synpred90_AcslParser()) ) {
alt59=1;
}
}
switch (alt59) {
case 1 :
// AcslParser.g:593:11: OR (b= quantifierExpression |b= logicalXorExpression )
{
OR244=(Token)match(input,OR,FOLLOW_OR_in_logicalOrExpression4356); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_OR.add(OR244);
// AcslParser.g:593:14: (b= quantifierExpression |b= logicalXorExpression )
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case IDENTIFIER:
{
int LA58_3 = input.LA(3);
if ( (LA58_3==LPAREN||LA58_3==STAR) ) {
alt58=1;
}
else if ( (LA58_3==IDENTIFIER) ) {
int LA58_5 = input.LA(4);
if ( (LA58_5==COMMA||LA58_5==LSQUARE||LA58_5==SEMI) ) {
alt58=1;
}
else if ( (LA58_5==BITOR||LA58_5==PLUS||LA58_5==SUB) ) {
alt58=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 58, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 58, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt58=1;
}
break;
case EOF:
case AMPERSAND:
case AND:
case ARROW:
case ASSIGN:
case BITOR:
case BITXOR:
case COLON:
case COMMA:
case DIV:
case DOT:
case DOTDOT:
case EQUALS:
case EQUIV_ACSL:
case GT:
case GTE:
case HASH:
case IMPLIES:
case IMPLIES_ACSL:
case LPAREN:
case LSQUARE:
case LT:
case LTE:
case MINUSMINUS:
case MOD:
case NEQ:
case OR:
case PLUS:
case QMARK:
case RCURLY:
case RPAREN:
case RSQUARE:
case SEMI:
case SHIFTLEFT:
case SHIFTRIGHT:
case STAR:
case SUB:
case XOR_ACSL:
case FOR:
{
alt58=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 58, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA58_0==AMPERSAND||LA58_0==CHARACTER_CONSTANT||LA58_0==ELLIPSIS||LA58_0==FLOATING_CONSTANT||LA58_0==IDENTIFIER||LA58_0==INTEGER_CONSTANT||LA58_0==LCURLY||LA58_0==LPAREN||LA58_0==NOT||LA58_0==PLUS||LA58_0==STAR||(LA58_0 >= STRING_LITERAL && LA58_0 <= SUB)||LA58_0==TILDE||LA58_0==SELF||LA58_0==SIZEOF) ) {
alt58=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 58, 0, input);
throw nvae;
}
switch (alt58) {
case 1 :
// AcslParser.g:593:15: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_logicalOrExpression4361);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:593:40: b= logicalXorExpression
{
pushFollow(FOLLOW_logicalXorExpression_in_logicalOrExpression4367);
b=logicalXorExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalXorExpression.add(b.getTree());
}
break;
}
// AST REWRITE
// elements: OR, b, logicalOrExpression
// token labels:
// rule labels: b, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 594:13: -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $b) )
{
// AcslParser.g:594:16: ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $b) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_OR.nextNode());
// AcslParser.g:594:30: ^( ARGUMENT_LIST $logicalOrExpression $b)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_b.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop59;
}
}
}
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
}
return retval;
}
// $ANTLR end "logicalOrExpression"
public static class logicalXorExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logicalXorExpression"
// AcslParser.g:601:1: logicalXorExpression : (a= logicalAndExpression -> $a) ( XOR_ACSL (b= quantifierExpression |b= logicalAndExpression ) -> ^( OPERATOR XOR_ACSL ^( ARGUMENT_LIST $logicalXorExpression $b) ) )* ;
public final AcslParser.logicalXorExpression_return logicalXorExpression() throws RecognitionException {
AcslParser.logicalXorExpression_return retval = new AcslParser.logicalXorExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token XOR_ACSL245=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
Object XOR_ACSL245_tree=null;
RewriteRuleTokenStream stream_XOR_ACSL=new RewriteRuleTokenStream(adaptor,"token XOR_ACSL");
RewriteRuleSubtreeStream stream_logicalAndExpression=new RewriteRuleSubtreeStream(adaptor,"rule logicalAndExpression");
RewriteRuleSubtreeStream stream_quantifierExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifierExpression");
try {
// AcslParser.g:602:2: ( (a= logicalAndExpression -> $a) ( XOR_ACSL (b= quantifierExpression |b= logicalAndExpression ) -> ^( OPERATOR XOR_ACSL ^( ARGUMENT_LIST $logicalXorExpression $b) ) )* )
// AcslParser.g:602:4: (a= logicalAndExpression -> $a) ( XOR_ACSL (b= quantifierExpression |b= logicalAndExpression ) -> ^( OPERATOR XOR_ACSL ^( ARGUMENT_LIST $logicalXorExpression $b) ) )*
{
// AcslParser.g:602:4: (a= logicalAndExpression -> $a)
// AcslParser.g:602:5: a= logicalAndExpression
{
pushFollow(FOLLOW_logicalAndExpression_in_logicalXorExpression4426);
a=logicalAndExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalAndExpression.add(a.getTree());
// AST REWRITE
// elements: a
// token labels:
// rule labels: a, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 602:28: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:603:9: ( XOR_ACSL (b= quantifierExpression |b= logicalAndExpression ) -> ^( OPERATOR XOR_ACSL ^( ARGUMENT_LIST $logicalXorExpression $b) ) )*
loop61:
while (true) {
int alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==XOR_ACSL) ) {
int LA61_2 = input.LA(2);
if ( (synpred92_AcslParser()) ) {
alt61=1;
}
}
switch (alt61) {
case 1 :
// AcslParser.g:603:11: XOR_ACSL (b= quantifierExpression |b= logicalAndExpression )
{
XOR_ACSL245=(Token)match(input,XOR_ACSL,FOLLOW_XOR_ACSL_in_logicalXorExpression4444); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_XOR_ACSL.add(XOR_ACSL245);
// AcslParser.g:603:20: (b= quantifierExpression |b= logicalAndExpression )
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case IDENTIFIER:
{
int LA60_3 = input.LA(3);
if ( (LA60_3==LPAREN||LA60_3==STAR) ) {
alt60=1;
}
else if ( (LA60_3==IDENTIFIER) ) {
int LA60_5 = input.LA(4);
if ( (LA60_5==COMMA||LA60_5==LSQUARE||LA60_5==SEMI) ) {
alt60=1;
}
else if ( (LA60_5==BITOR||LA60_5==PLUS||LA60_5==SUB) ) {
alt60=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 60, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 60, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt60=1;
}
break;
case EOF:
case AMPERSAND:
case AND:
case ARROW:
case ASSIGN:
case BITOR:
case BITXOR:
case COLON:
case COMMA:
case DIV:
case DOT:
case DOTDOT:
case EQUALS:
case EQUIV_ACSL:
case GT:
case GTE:
case HASH:
case IMPLIES:
case IMPLIES_ACSL:
case LPAREN:
case LSQUARE:
case LT:
case LTE:
case MINUSMINUS:
case MOD:
case NEQ:
case OR:
case PLUS:
case QMARK:
case RCURLY:
case RPAREN:
case RSQUARE:
case SEMI:
case SHIFTLEFT:
case SHIFTRIGHT:
case STAR:
case SUB:
case XOR_ACSL:
case FOR:
{
alt60=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 60, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA60_0==AMPERSAND||LA60_0==CHARACTER_CONSTANT||LA60_0==ELLIPSIS||LA60_0==FLOATING_CONSTANT||LA60_0==IDENTIFIER||LA60_0==INTEGER_CONSTANT||LA60_0==LCURLY||LA60_0==LPAREN||LA60_0==NOT||LA60_0==PLUS||LA60_0==STAR||(LA60_0 >= STRING_LITERAL && LA60_0 <= SUB)||LA60_0==TILDE||LA60_0==SELF||LA60_0==SIZEOF) ) {
alt60=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 60, 0, input);
throw nvae;
}
switch (alt60) {
case 1 :
// AcslParser.g:603:21: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_logicalXorExpression4449);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:603:46: b= logicalAndExpression
{
pushFollow(FOLLOW_logicalAndExpression_in_logicalXorExpression4455);
b=logicalAndExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalAndExpression.add(b.getTree());
}
break;
}
// AST REWRITE
// elements: b, logicalXorExpression, XOR_ACSL
// token labels:
// rule labels: b, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 604:13: -> ^( OPERATOR XOR_ACSL ^( ARGUMENT_LIST $logicalXorExpression $b) )
{
// AcslParser.g:604:16: ^( OPERATOR XOR_ACSL ^( ARGUMENT_LIST $logicalXorExpression $b) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_XOR_ACSL.nextNode());
// AcslParser.g:604:36: ^( ARGUMENT_LIST $logicalXorExpression $b)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_b.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop61;
}
}
}
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
}
return retval;
}
// $ANTLR end "logicalXorExpression"
public static class logicalAndExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logicalAndExpression"
// AcslParser.g:611:1: logicalAndExpression : (a= bitwiseEquivExpression -> $a) ( AND (b= quantifierExpression |b= bitwiseEquivExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $b) ) )* ;
public final AcslParser.logicalAndExpression_return logicalAndExpression() throws RecognitionException {
AcslParser.logicalAndExpression_return retval = new AcslParser.logicalAndExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AND246=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
Object AND246_tree=null;
RewriteRuleTokenStream stream_AND=new RewriteRuleTokenStream(adaptor,"token AND");
RewriteRuleSubtreeStream stream_bitwiseEquivExpression=new RewriteRuleSubtreeStream(adaptor,"rule bitwiseEquivExpression");
RewriteRuleSubtreeStream stream_quantifierExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifierExpression");
try {
// AcslParser.g:612:2: ( (a= bitwiseEquivExpression -> $a) ( AND (b= quantifierExpression |b= bitwiseEquivExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $b) ) )* )
// AcslParser.g:612:4: (a= bitwiseEquivExpression -> $a) ( AND (b= quantifierExpression |b= bitwiseEquivExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $b) ) )*
{
// AcslParser.g:612:4: (a= bitwiseEquivExpression -> $a)
// AcslParser.g:612:5: a= bitwiseEquivExpression
{
pushFollow(FOLLOW_bitwiseEquivExpression_in_logicalAndExpression4513);
a=bitwiseEquivExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bitwiseEquivExpression.add(a.getTree());
// AST REWRITE
// elements: a
// token labels:
// rule labels: a, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 612:30: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:613:9: ( AND (b= quantifierExpression |b= bitwiseEquivExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $b) ) )*
loop63:
while (true) {
int alt63=2;
int LA63_0 = input.LA(1);
if ( (LA63_0==AND) ) {
int LA63_2 = input.LA(2);
if ( (synpred94_AcslParser()) ) {
alt63=1;
}
}
switch (alt63) {
case 1 :
// AcslParser.g:613:11: AND (b= quantifierExpression |b= bitwiseEquivExpression )
{
AND246=(Token)match(input,AND,FOLLOW_AND_in_logicalAndExpression4531); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AND.add(AND246);
// AcslParser.g:613:15: (b= quantifierExpression |b= bitwiseEquivExpression )
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case IDENTIFIER:
{
int LA62_3 = input.LA(3);
if ( (LA62_3==LPAREN||LA62_3==STAR) ) {
alt62=1;
}
else if ( (LA62_3==IDENTIFIER) ) {
int LA62_5 = input.LA(4);
if ( (LA62_5==COMMA||LA62_5==LSQUARE||LA62_5==SEMI) ) {
alt62=1;
}
else if ( (LA62_5==BITOR||LA62_5==PLUS||LA62_5==SUB) ) {
alt62=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 62, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 62, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt62=1;
}
break;
case EOF:
case AMPERSAND:
case AND:
case ARROW:
case ASSIGN:
case BITOR:
case BITXOR:
case COLON:
case COMMA:
case DIV:
case DOT:
case DOTDOT:
case EQUALS:
case EQUIV_ACSL:
case GT:
case GTE:
case HASH:
case IMPLIES:
case IMPLIES_ACSL:
case LPAREN:
case LSQUARE:
case LT:
case LTE:
case MINUSMINUS:
case MOD:
case NEQ:
case OR:
case PLUS:
case QMARK:
case RCURLY:
case RPAREN:
case RSQUARE:
case SEMI:
case SHIFTLEFT:
case SHIFTRIGHT:
case STAR:
case SUB:
case XOR_ACSL:
case FOR:
{
alt62=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA62_0==AMPERSAND||LA62_0==CHARACTER_CONSTANT||LA62_0==ELLIPSIS||LA62_0==FLOATING_CONSTANT||LA62_0==IDENTIFIER||LA62_0==INTEGER_CONSTANT||LA62_0==LCURLY||LA62_0==LPAREN||LA62_0==NOT||LA62_0==PLUS||LA62_0==STAR||(LA62_0 >= STRING_LITERAL && LA62_0 <= SUB)||LA62_0==TILDE||LA62_0==SELF||LA62_0==SIZEOF) ) {
alt62=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 62, 0, input);
throw nvae;
}
switch (alt62) {
case 1 :
// AcslParser.g:613:16: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_logicalAndExpression4536);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:613:41: b= bitwiseEquivExpression
{
pushFollow(FOLLOW_bitwiseEquivExpression_in_logicalAndExpression4542);
b=bitwiseEquivExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bitwiseEquivExpression.add(b.getTree());
}
break;
}
// AST REWRITE
// elements: logicalAndExpression, b, AND
// token labels:
// rule labels: b, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 614:13: -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $b) )
{
// AcslParser.g:614:16: ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $b) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_AND.nextNode());
// AcslParser.g:614:31: ^( ARGUMENT_LIST $logicalAndExpression $b)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_b.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop63;
}
}
}
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
}
return retval;
}
// $ANTLR end "logicalAndExpression"
public static class bitwiseEquivExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "bitwiseEquivExpression"
// AcslParser.g:621:1: bitwiseEquivExpression : (a= bitwiseImpliesExpression -> $a) ( bitequiv_op b= bitwiseImpliesExpression -> ^( OPERATOR BEQUIV_ACSL ^( ARGUMENT_LIST $bitwiseEquivExpression $b) ) )* ;
public final AcslParser.bitwiseEquivExpression_return bitwiseEquivExpression() throws RecognitionException {
AcslParser.bitwiseEquivExpression_return retval = new AcslParser.bitwiseEquivExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope bitequiv_op247 =null;
RewriteRuleSubtreeStream stream_bitwiseImpliesExpression=new RewriteRuleSubtreeStream(adaptor,"rule bitwiseImpliesExpression");
RewriteRuleSubtreeStream stream_bitequiv_op=new RewriteRuleSubtreeStream(adaptor,"rule bitequiv_op");
try {
// AcslParser.g:622:2: ( (a= bitwiseImpliesExpression -> $a) ( bitequiv_op b= bitwiseImpliesExpression -> ^( OPERATOR BEQUIV_ACSL ^( ARGUMENT_LIST $bitwiseEquivExpression $b) ) )* )
// AcslParser.g:622:4: (a= bitwiseImpliesExpression -> $a) ( bitequiv_op b= bitwiseImpliesExpression -> ^( OPERATOR BEQUIV_ACSL ^( ARGUMENT_LIST $bitwiseEquivExpression $b) ) )*
{
// AcslParser.g:622:4: (a= bitwiseImpliesExpression -> $a)
// AcslParser.g:622:5: a= bitwiseImpliesExpression
{
pushFollow(FOLLOW_bitwiseImpliesExpression_in_bitwiseEquivExpression4600);
a=bitwiseImpliesExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bitwiseImpliesExpression.add(a.getTree());
// AST REWRITE
// elements: a
// token labels:
// rule labels: a, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 622:32: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:623:9: ( bitequiv_op b= bitwiseImpliesExpression -> ^( OPERATOR BEQUIV_ACSL ^( ARGUMENT_LIST $bitwiseEquivExpression $b) ) )*
loop64:
while (true) {
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==LT) ) {
int LA64_2 = input.LA(2);
if ( (synpred95_AcslParser()) ) {
alt64=1;
}
}
switch (alt64) {
case 1 :
// AcslParser.g:623:11: bitequiv_op b= bitwiseImpliesExpression
{
pushFollow(FOLLOW_bitequiv_op_in_bitwiseEquivExpression4618);
bitequiv_op247=bitequiv_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bitequiv_op.add(bitequiv_op247.getTree());
pushFollow(FOLLOW_bitwiseImpliesExpression_in_bitwiseEquivExpression4622);
b=bitwiseImpliesExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bitwiseImpliesExpression.add(b.getTree());
// AST REWRITE
// elements: b, bitwiseEquivExpression
// token labels:
// rule labels: b, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 624:13: -> ^( OPERATOR BEQUIV_ACSL ^( ARGUMENT_LIST $bitwiseEquivExpression $b) )
{
// AcslParser.g:624:16: ^( OPERATOR BEQUIV_ACSL ^( ARGUMENT_LIST $bitwiseEquivExpression $b) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(BEQUIV_ACSL, "BEQUIV_ACSL"));
// AcslParser.g:624:39: ^( ARGUMENT_LIST $bitwiseEquivExpression $b)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_b.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop64;
}
}
}
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
}
return retval;
}
// $ANTLR end "bitwiseEquivExpression"
public static class bitwiseImpliesExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "bitwiseImpliesExpression"
// AcslParser.g:631:1: bitwiseImpliesExpression : a= inclusiveOrExpression (op= bitimplies_op b= bitwiseImpliesExpression -> ^( OPERATOR BIMPLIES_ACSL ^( ARGUMENT_LIST $a $b) ) | -> $a) ;
public final AcslParser.bitwiseImpliesExpression_return bitwiseImpliesExpression() throws RecognitionException {
AcslParser.bitwiseImpliesExpression_return retval = new AcslParser.bitwiseImpliesExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope op =null;
ParserRuleReturnScope b =null;
RewriteRuleSubtreeStream stream_inclusiveOrExpression=new RewriteRuleSubtreeStream(adaptor,"rule inclusiveOrExpression");
RewriteRuleSubtreeStream stream_bitimplies_op=new RewriteRuleSubtreeStream(adaptor,"rule bitimplies_op");
RewriteRuleSubtreeStream stream_bitwiseImpliesExpression=new RewriteRuleSubtreeStream(adaptor,"rule bitwiseImpliesExpression");
try {
// AcslParser.g:632:2: (a= inclusiveOrExpression (op= bitimplies_op b= bitwiseImpliesExpression -> ^( OPERATOR BIMPLIES_ACSL ^( ARGUMENT_LIST $a $b) ) | -> $a) )
// AcslParser.g:632:4: a= inclusiveOrExpression (op= bitimplies_op b= bitwiseImpliesExpression -> ^( OPERATOR BIMPLIES_ACSL ^( ARGUMENT_LIST $a $b) ) | -> $a)
{
pushFollow(FOLLOW_inclusiveOrExpression_in_bitwiseImpliesExpression4678);
a=inclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inclusiveOrExpression.add(a.getTree());
// AcslParser.g:633:9: (op= bitimplies_op b= bitwiseImpliesExpression -> ^( OPERATOR BIMPLIES_ACSL ^( ARGUMENT_LIST $a $b) ) | -> $a)
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==MINUSMINUS) ) {
int LA65_1 = input.LA(2);
if ( (synpred96_AcslParser()) ) {
alt65=1;
}
else if ( (true) ) {
alt65=2;
}
}
else if ( (LA65_0==EOF||(LA65_0 >= AMPERSAND && LA65_0 <= AND)||LA65_0==ASSIGN||LA65_0==BITOR||LA65_0==BITXOR||(LA65_0 >= COLON && LA65_0 <= COMMA)||LA65_0==DIV||LA65_0==DOTDOT||(LA65_0 >= EQUALS && LA65_0 <= EQUIV_ACSL)||(LA65_0 >= GT && LA65_0 <= HASH)||LA65_0==IDENTIFIER||(LA65_0 >= IMPLIES && LA65_0 <= IMPLIES_ACSL)||(LA65_0 >= LT && LA65_0 <= LTE)||LA65_0==MOD||LA65_0==NEQ||LA65_0==OR||LA65_0==PLUS||(LA65_0 >= QMARK && LA65_0 <= RCURLY)||LA65_0==RPAREN||LA65_0==RSQUARE||(LA65_0 >= SEMI && LA65_0 <= SHIFTLEFT)||LA65_0==SHIFTRIGHT||LA65_0==STAR||LA65_0==SUB||LA65_0==XOR_ACSL||LA65_0==FOR) ) {
alt65=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 65, 0, input);
throw nvae;
}
switch (alt65) {
case 1 :
// AcslParser.g:633:11: op= bitimplies_op b= bitwiseImpliesExpression
{
pushFollow(FOLLOW_bitimplies_op_in_bitwiseImpliesExpression4692);
op=bitimplies_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bitimplies_op.add(op.getTree());
pushFollow(FOLLOW_bitwiseImpliesExpression_in_bitwiseImpliesExpression4696);
b=bitwiseImpliesExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bitwiseImpliesExpression.add(b.getTree());
// AST REWRITE
// elements: a, b
// token labels:
// rule labels: a, b, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 634:13: -> ^( OPERATOR BIMPLIES_ACSL ^( ARGUMENT_LIST $a $b) )
{
// AcslParser.g:634:16: ^( OPERATOR BIMPLIES_ACSL ^( ARGUMENT_LIST $a $b) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(BIMPLIES_ACSL, "BIMPLIES_ACSL"));
// AcslParser.g:634:41: ^( ARGUMENT_LIST $a $b)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_a.nextTree());
adaptor.addChild(root_2, stream_b.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:635:11:
{
// AST REWRITE
// elements: a
// token labels:
// rule labels: a, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 635:11: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
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
}
return retval;
}
// $ANTLR end "bitwiseImpliesExpression"
public static class inclusiveOrExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "inclusiveOrExpression"
// AcslParser.g:654:1: inclusiveOrExpression : ( exclusiveOrExpression -> exclusiveOrExpression ) ({...}? BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )* ;
public final AcslParser.inclusiveOrExpression_return inclusiveOrExpression() throws RecognitionException {
AcslParser.inclusiveOrExpression_return retval = new AcslParser.inclusiveOrExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token BITOR249=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope exclusiveOrExpression248 =null;
Object BITOR249_tree=null;
RewriteRuleTokenStream stream_BITOR=new RewriteRuleTokenStream(adaptor,"token BITOR");
RewriteRuleSubtreeStream stream_exclusiveOrExpression=new RewriteRuleSubtreeStream(adaptor,"rule exclusiveOrExpression");
try {
// AcslParser.g:655:2: ( ( exclusiveOrExpression -> exclusiveOrExpression ) ({...}? BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )* )
// AcslParser.g:655:4: ( exclusiveOrExpression -> exclusiveOrExpression ) ({...}? BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )*
{
// AcslParser.g:655:4: ( exclusiveOrExpression -> exclusiveOrExpression )
// AcslParser.g:655:6: exclusiveOrExpression
{
pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4767);
exclusiveOrExpression248=exclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_exclusiveOrExpression.add(exclusiveOrExpression248.getTree());
// AST REWRITE
// elements: exclusiveOrExpression
// 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();
// 655:28: -> exclusiveOrExpression
{
adaptor.addChild(root_0, stream_exclusiveOrExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:656:4: ({...}? BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )*
loop66:
while (true) {
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==BITOR) ) {
int LA66_2 = input.LA(2);
if ( (((!(input.LA(2)==IDENTIFIER && input.LA(3)==IDENTIFIER))&&synpred97_AcslParser())) ) {
alt66=1;
}
}
switch (alt66) {
case 1 :
// AcslParser.g:656:6: {...}? BITOR y= exclusiveOrExpression
{
if ( !((!(input.LA(2)==IDENTIFIER && input.LA(3)==IDENTIFIER))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "inclusiveOrExpression", "!(input.LA(2)==IDENTIFIER && input.LA(3)==IDENTIFIER)");
}
BITOR249=(Token)match(input,BITOR,FOLLOW_BITOR_in_inclusiveOrExpression4781); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR249);
pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4785);
y=exclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_exclusiveOrExpression.add(y.getTree());
// AST REWRITE
// elements: BITOR, y, inclusiveOrExpression
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 657:6: -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) )
{
// AcslParser.g:657:9: ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_BITOR.nextNode());
// AcslParser.g:657:26: ^( ARGUMENT_LIST $inclusiveOrExpression $y)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_y.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop66;
}
}
}
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
}
return retval;
}
// $ANTLR end "inclusiveOrExpression"
public static class exclusiveOrExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "exclusiveOrExpression"
// AcslParser.g:667:1: exclusiveOrExpression : ( andExpression -> andExpression ) ( BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )* ;
public final AcslParser.exclusiveOrExpression_return exclusiveOrExpression() throws RecognitionException {
AcslParser.exclusiveOrExpression_return retval = new AcslParser.exclusiveOrExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token BITXOR251=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope andExpression250 =null;
Object BITXOR251_tree=null;
RewriteRuleTokenStream stream_BITXOR=new RewriteRuleTokenStream(adaptor,"token BITXOR");
RewriteRuleSubtreeStream stream_andExpression=new RewriteRuleSubtreeStream(adaptor,"rule andExpression");
try {
// AcslParser.g:668:5: ( ( andExpression -> andExpression ) ( BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )* )
// AcslParser.g:668:7: ( andExpression -> andExpression ) ( BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )*
{
// AcslParser.g:668:7: ( andExpression -> andExpression )
// AcslParser.g:668:9: andExpression
{
pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression4832);
andExpression250=andExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_andExpression.add(andExpression250.getTree());
// AST REWRITE
// elements: andExpression
// 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();
// 668:23: -> andExpression
{
adaptor.addChild(root_0, stream_andExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:669:4: ( BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )*
loop67:
while (true) {
int alt67=2;
int LA67_0 = input.LA(1);
if ( (LA67_0==BITXOR) ) {
int LA67_2 = input.LA(2);
if ( (synpred98_AcslParser()) ) {
alt67=1;
}
}
switch (alt67) {
case 1 :
// AcslParser.g:669:6: BITXOR y= andExpression
{
BITXOR251=(Token)match(input,BITXOR,FOLLOW_BITXOR_in_exclusiveOrExpression4845); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITXOR.add(BITXOR251);
pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression4849);
y=andExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_andExpression.add(y.getTree());
// AST REWRITE
// elements: BITXOR, exclusiveOrExpression, y
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 670:6: -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) )
{
// AcslParser.g:670:9: ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_BITXOR.nextNode());
// AcslParser.g:670:27: ^( ARGUMENT_LIST $exclusiveOrExpression $y)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_y.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop67;
}
}
}
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
}
return retval;
}
// $ANTLR end "exclusiveOrExpression"
public static class andExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "andExpression"
// AcslParser.g:680:1: andExpression : ( relationalExpression -> relationalExpression ) ( AMPERSAND y= relationalExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )* ;
public final AcslParser.andExpression_return andExpression() throws RecognitionException {
AcslParser.andExpression_return retval = new AcslParser.andExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AMPERSAND253=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope relationalExpression252 =null;
Object AMPERSAND253_tree=null;
RewriteRuleTokenStream stream_AMPERSAND=new RewriteRuleTokenStream(adaptor,"token AMPERSAND");
RewriteRuleSubtreeStream stream_relationalExpression=new RewriteRuleSubtreeStream(adaptor,"rule relationalExpression");
try {
// AcslParser.g:681:2: ( ( relationalExpression -> relationalExpression ) ( AMPERSAND y= relationalExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )* )
// AcslParser.g:681:4: ( relationalExpression -> relationalExpression ) ( AMPERSAND y= relationalExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )*
{
// AcslParser.g:681:4: ( relationalExpression -> relationalExpression )
// AcslParser.g:681:6: relationalExpression
{
pushFollow(FOLLOW_relationalExpression_in_andExpression4893);
relationalExpression252=relationalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relationalExpression.add(relationalExpression252.getTree());
// AST REWRITE
// elements: relationalExpression
// 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();
// 681:27: -> relationalExpression
{
adaptor.addChild(root_0, stream_relationalExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:682:4: ( AMPERSAND y= relationalExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )*
loop68:
while (true) {
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==AMPERSAND) ) {
int LA68_2 = input.LA(2);
if ( (synpred99_AcslParser()) ) {
alt68=1;
}
}
switch (alt68) {
case 1 :
// AcslParser.g:682:6: AMPERSAND y= relationalExpression
{
AMPERSAND253=(Token)match(input,AMPERSAND,FOLLOW_AMPERSAND_in_andExpression4906); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AMPERSAND.add(AMPERSAND253);
pushFollow(FOLLOW_relationalExpression_in_andExpression4910);
y=relationalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relationalExpression.add(y.getTree());
// AST REWRITE
// elements: andExpression, y, AMPERSAND
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 683:6: -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) )
{
// AcslParser.g:683:9: ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_AMPERSAND.nextNode());
// AcslParser.g:683:30: ^( ARGUMENT_LIST $andExpression $y)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_y.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop68;
}
}
}
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
}
return retval;
}
// $ANTLR end "andExpression"
public static class relOp_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "relOp"
// AcslParser.g:728:1: relOp : ( EQUALS | NEQ | LT | LTE | GT | GTE );
public final AcslParser.relOp_return relOp() throws RecognitionException {
AcslParser.relOp_return retval = new AcslParser.relOp_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set254=null;
Object set254_tree=null;
try {
// AcslParser.g:728:6: ( EQUALS | NEQ | LT | LTE | GT | GTE )
// AcslParser.g:
{
root_0 = (Object)adaptor.nil();
set254=input.LT(1);
if ( input.LA(1)==EQUALS||(input.LA(1) >= GT && input.LA(1) <= GTE)||(input.LA(1) >= LT && input.LA(1) <= LTE)||input.LA(1)==NEQ ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set254));
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
}
return retval;
}
// $ANTLR end "relOp"
public static class relationalExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "relationalExpression"
// AcslParser.g:735:1: relationalExpression : x= shiftExpression ( (s+= relOp s+= shiftExpression )+ -> ^( RELCHAIN $x ( $s)* ) | -> $x) ;
public final AcslParser.relationalExpression_return relationalExpression() throws RecognitionException {
AcslParser.relationalExpression_return retval = new AcslParser.relationalExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
List<Object> list_s=null;
ParserRuleReturnScope x =null;
RuleReturnScope s = null;
RewriteRuleSubtreeStream stream_shiftExpression=new RewriteRuleSubtreeStream(adaptor,"rule shiftExpression");
RewriteRuleSubtreeStream stream_relOp=new RewriteRuleSubtreeStream(adaptor,"rule relOp");
try {
// AcslParser.g:736:5: (x= shiftExpression ( (s+= relOp s+= shiftExpression )+ -> ^( RELCHAIN $x ( $s)* ) | -> $x) )
// AcslParser.g:736:7: x= shiftExpression ( (s+= relOp s+= shiftExpression )+ -> ^( RELCHAIN $x ( $s)* ) | -> $x)
{
pushFollow(FOLLOW_shiftExpression_in_relationalExpression4991);
x=shiftExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_shiftExpression.add(x.getTree());
// AcslParser.g:737:9: ( (s+= relOp s+= shiftExpression )+ -> ^( RELCHAIN $x ( $s)* ) | -> $x)
int alt70=2;
switch ( input.LA(1) ) {
case LT:
{
int LA70_1 = input.LA(2);
if ( (synpred106_AcslParser()) ) {
alt70=1;
}
else if ( (true) ) {
alt70=2;
}
}
break;
case EOF:
case AMPERSAND:
case AND:
case ASSIGN:
case BITOR:
case BITXOR:
case COLON:
case COMMA:
case DIV:
case DOTDOT:
case EQUIV_ACSL:
case HASH:
case IDENTIFIER:
case IMPLIES:
case IMPLIES_ACSL:
case MINUSMINUS:
case MOD:
case OR:
case PLUS:
case QMARK:
case RCURLY:
case RPAREN:
case RSQUARE:
case SEMI:
case SHIFTLEFT:
case SHIFTRIGHT:
case STAR:
case SUB:
case XOR_ACSL:
case FOR:
{
alt70=2;
}
break;
case EQUALS:
case GT:
case GTE:
case LTE:
case NEQ:
{
int LA70_3 = input.LA(2);
if ( (synpred106_AcslParser()) ) {
alt70=1;
}
else if ( (true) ) {
alt70=2;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 70, 0, input);
throw nvae;
}
switch (alt70) {
case 1 :
// AcslParser.g:737:11: (s+= relOp s+= shiftExpression )+
{
// AcslParser.g:737:11: (s+= relOp s+= shiftExpression )+
int cnt69=0;
loop69:
while (true) {
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==LT) ) {
int LA69_2 = input.LA(2);
if ( (synpred105_AcslParser()) ) {
alt69=1;
}
}
else if ( (LA69_0==EQUALS||(LA69_0 >= GT && LA69_0 <= GTE)||LA69_0==LTE||LA69_0==NEQ) ) {
int LA69_3 = input.LA(2);
if ( (synpred105_AcslParser()) ) {
alt69=1;
}
}
switch (alt69) {
case 1 :
// AcslParser.g:737:12: s+= relOp s+= shiftExpression
{
pushFollow(FOLLOW_relOp_in_relationalExpression5006);
s=relOp();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relOp.add(s.getTree());
if (list_s==null) list_s=new ArrayList<Object>();
list_s.add(s.getTree());
pushFollow(FOLLOW_shiftExpression_in_relationalExpression5010);
s=shiftExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_shiftExpression.add(s.getTree());
if (list_s==null) list_s=new ArrayList<Object>();
list_s.add(s.getTree());
}
break;
default :
if ( cnt69 >= 1 ) break loop69;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(69, input);
throw eee;
}
cnt69++;
}
// AST REWRITE
// elements: x, s
// token labels:
// rule labels: x, retval
// token list labels:
// rule list labels: s
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_x=new RewriteRuleSubtreeStream(adaptor,"rule x",x!=null?x.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
RewriteRuleSubtreeStream stream_s=new RewriteRuleSubtreeStream(adaptor,"token s",list_s);
root_0 = (Object)adaptor.nil();
// 737:42: -> ^( RELCHAIN $x ( $s)* )
{
// AcslParser.g:737:45: ^( RELCHAIN $x ( $s)* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(RELCHAIN, "RELCHAIN"), root_1);
adaptor.addChild(root_1, stream_x.nextTree());
// AcslParser.g:737:60: ( $s)*
while ( stream_s.hasNext() ) {
adaptor.addChild(root_1, stream_s.nextTree());
}
stream_s.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:738:11:
{
// AST REWRITE
// elements: x
// token labels:
// rule labels: x, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_x=new RewriteRuleSubtreeStream(adaptor,"rule x",x!=null?x.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 738:11: -> $x
{
adaptor.addChild(root_0, stream_x.nextTree());
}
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
}
return retval;
}
// $ANTLR end "relationalExpression"
public static class shiftExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "shiftExpression"
// AcslParser.g:754:1: shiftExpression : ( rangeExpression -> rangeExpression ) ( SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )* ;
public final AcslParser.shiftExpression_return shiftExpression() throws RecognitionException {
AcslParser.shiftExpression_return retval = new AcslParser.shiftExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SHIFTLEFT256=null;
Token SHIFTRIGHT257=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope rangeExpression255 =null;
Object SHIFTLEFT256_tree=null;
Object SHIFTRIGHT257_tree=null;
RewriteRuleTokenStream stream_SHIFTLEFT=new RewriteRuleTokenStream(adaptor,"token SHIFTLEFT");
RewriteRuleTokenStream stream_SHIFTRIGHT=new RewriteRuleTokenStream(adaptor,"token SHIFTRIGHT");
RewriteRuleSubtreeStream stream_rangeExpression=new RewriteRuleSubtreeStream(adaptor,"rule rangeExpression");
try {
// AcslParser.g:755:2: ( ( rangeExpression -> rangeExpression ) ( SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )* )
// AcslParser.g:755:4: ( rangeExpression -> rangeExpression ) ( SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )*
{
// AcslParser.g:755:4: ( rangeExpression -> rangeExpression )
// AcslParser.g:755:5: rangeExpression
{
pushFollow(FOLLOW_rangeExpression_in_shiftExpression5068);
rangeExpression255=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(rangeExpression255.getTree());
// AST REWRITE
// elements: rangeExpression
// 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();
// 755:21: -> rangeExpression
{
adaptor.addChild(root_0, stream_rangeExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:756:9: ( SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )*
loop71:
while (true) {
int alt71=3;
int LA71_0 = input.LA(1);
if ( (LA71_0==SHIFTLEFT) ) {
int LA71_2 = input.LA(2);
if ( (synpred107_AcslParser()) ) {
alt71=1;
}
}
else if ( (LA71_0==SHIFTRIGHT) ) {
int LA71_3 = input.LA(2);
if ( (synpred108_AcslParser()) ) {
alt71=2;
}
}
switch (alt71) {
case 1 :
// AcslParser.g:756:11: SHIFTLEFT y= rangeExpression
{
SHIFTLEFT256=(Token)match(input,SHIFTLEFT,FOLLOW_SHIFTLEFT_in_shiftExpression5085); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SHIFTLEFT.add(SHIFTLEFT256);
pushFollow(FOLLOW_rangeExpression_in_shiftExpression5089);
y=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(y.getTree());
// AST REWRITE
// elements: SHIFTLEFT, y, shiftExpression
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 757:11: -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) )
{
// AcslParser.g:757:14: ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_SHIFTLEFT.nextNode());
// AcslParser.g:757:35: ^( ARGUMENT_LIST $shiftExpression $y)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_y.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:758:11: SHIFTRIGHT y= rangeExpression
{
SHIFTRIGHT257=(Token)match(input,SHIFTRIGHT,FOLLOW_SHIFTRIGHT_in_shiftExpression5129); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SHIFTRIGHT.add(SHIFTRIGHT257);
pushFollow(FOLLOW_rangeExpression_in_shiftExpression5133);
y=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(y.getTree());
// AST REWRITE
// elements: shiftExpression, SHIFTRIGHT, y
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 759:11: -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) )
{
// AcslParser.g:759:14: ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_SHIFTRIGHT.nextNode());
// AcslParser.g:759:36: ^( ARGUMENT_LIST $shiftExpression $y)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_y.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop71;
}
}
}
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
}
return retval;
}
// $ANTLR end "shiftExpression"
public static class rangeExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "rangeExpression"
// AcslParser.g:769:1: rangeExpression : x= additiveExpression ( DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x) ;
public final AcslParser.rangeExpression_return rangeExpression() throws RecognitionException {
AcslParser.rangeExpression_return retval = new AcslParser.rangeExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DOTDOT258=null;
ParserRuleReturnScope x =null;
ParserRuleReturnScope s =null;
Object DOTDOT258_tree=null;
RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT");
RewriteRuleSubtreeStream stream_additiveExpression=new RewriteRuleSubtreeStream(adaptor,"rule additiveExpression");
RewriteRuleSubtreeStream stream_rangeSuffix=new RewriteRuleSubtreeStream(adaptor,"rule rangeSuffix");
try {
// AcslParser.g:770:2: (x= additiveExpression ( DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x) )
// AcslParser.g:770:4: x= additiveExpression ( DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x)
{
pushFollow(FOLLOW_additiveExpression_in_rangeExpression5187);
x=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additiveExpression.add(x.getTree());
// AcslParser.g:771:9: ( DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x)
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==DOTDOT) ) {
int LA72_1 = input.LA(2);
if ( (synpred109_AcslParser()) ) {
alt72=1;
}
else if ( (true) ) {
alt72=2;
}
}
else if ( (LA72_0==EOF||(LA72_0 >= AMPERSAND && LA72_0 <= AND)||LA72_0==ASSIGN||LA72_0==BITOR||LA72_0==BITXOR||(LA72_0 >= COLON && LA72_0 <= COMMA)||LA72_0==DIV||(LA72_0 >= EQUALS && LA72_0 <= EQUIV_ACSL)||(LA72_0 >= GT && LA72_0 <= HASH)||LA72_0==IDENTIFIER||(LA72_0 >= IMPLIES && LA72_0 <= IMPLIES_ACSL)||(LA72_0 >= LT && LA72_0 <= LTE)||(LA72_0 >= MINUSMINUS && LA72_0 <= MOD)||LA72_0==NEQ||LA72_0==OR||LA72_0==PLUS||(LA72_0 >= QMARK && LA72_0 <= RCURLY)||LA72_0==RPAREN||LA72_0==RSQUARE||(LA72_0 >= SEMI && LA72_0 <= SHIFTLEFT)||LA72_0==SHIFTRIGHT||LA72_0==STAR||LA72_0==SUB||LA72_0==XOR_ACSL||LA72_0==FOR) ) {
alt72=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 0, input);
throw nvae;
}
switch (alt72) {
case 1 :
// AcslParser.g:771:11: DOTDOT s= rangeSuffix
{
DOTDOT258=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_rangeExpression5199); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOTDOT.add(DOTDOT258);
pushFollow(FOLLOW_rangeSuffix_in_rangeExpression5203);
s=rangeSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeSuffix.add(s.getTree());
// AST REWRITE
// elements: x, DOTDOT, s
// token labels:
// rule labels: s, x, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_s=new RewriteRuleSubtreeStream(adaptor,"rule s",s!=null?s.getTree():null);
RewriteRuleSubtreeStream stream_x=new RewriteRuleSubtreeStream(adaptor,"rule x",x!=null?x.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 771:32: -> ^( DOTDOT $x $s)
{
// AcslParser.g:771:35: ^( DOTDOT $x $s)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_DOTDOT.nextNode(), root_1);
adaptor.addChild(root_1, stream_x.nextTree());
adaptor.addChild(root_1, stream_s.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:772:11:
{
// AST REWRITE
// elements: x
// token labels:
// rule labels: x, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_x=new RewriteRuleSubtreeStream(adaptor,"rule x",x!=null?x.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 772:11: -> $x
{
adaptor.addChild(root_0, stream_x.nextTree());
}
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
}
return retval;
}
// $ANTLR end "rangeExpression"
public static class rangeSuffix_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "rangeSuffix"
// AcslParser.g:776:1: rangeSuffix : additiveExpression ( HASH ! additiveExpression )? ;
public final AcslParser.rangeSuffix_return rangeSuffix() throws RecognitionException {
AcslParser.rangeSuffix_return retval = new AcslParser.rangeSuffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token HASH260=null;
ParserRuleReturnScope additiveExpression259 =null;
ParserRuleReturnScope additiveExpression261 =null;
Object HASH260_tree=null;
try {
// AcslParser.g:777:5: ( additiveExpression ( HASH ! additiveExpression )? )
// AcslParser.g:777:7: additiveExpression ( HASH ! additiveExpression )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_additiveExpression_in_rangeSuffix5257);
additiveExpression259=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, additiveExpression259.getTree());
// AcslParser.g:777:26: ( HASH ! additiveExpression )?
int alt73=2;
int LA73_0 = input.LA(1);
if ( (LA73_0==HASH) ) {
int LA73_1 = input.LA(2);
if ( (synpred110_AcslParser()) ) {
alt73=1;
}
}
switch (alt73) {
case 1 :
// AcslParser.g:777:27: HASH ! additiveExpression
{
HASH260=(Token)match(input,HASH,FOLLOW_HASH_in_rangeSuffix5260); if (state.failed) return retval;
pushFollow(FOLLOW_additiveExpression_in_rangeSuffix5263);
additiveExpression261=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, additiveExpression261.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
}
return retval;
}
// $ANTLR end "rangeSuffix"
public static class additiveExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "additiveExpression"
// AcslParser.g:785:1: additiveExpression : ( multiplicativeExpression -> multiplicativeExpression ) ( PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )* ;
public final AcslParser.additiveExpression_return additiveExpression() throws RecognitionException {
AcslParser.additiveExpression_return retval = new AcslParser.additiveExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PLUS263=null;
Token SUB264=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope multiplicativeExpression262 =null;
Object PLUS263_tree=null;
Object SUB264_tree=null;
RewriteRuleTokenStream stream_SUB=new RewriteRuleTokenStream(adaptor,"token SUB");
RewriteRuleTokenStream stream_PLUS=new RewriteRuleTokenStream(adaptor,"token PLUS");
RewriteRuleSubtreeStream stream_multiplicativeExpression=new RewriteRuleSubtreeStream(adaptor,"rule multiplicativeExpression");
try {
// AcslParser.g:786:2: ( ( multiplicativeExpression -> multiplicativeExpression ) ( PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )* )
// AcslParser.g:786:4: ( multiplicativeExpression -> multiplicativeExpression ) ( PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )*
{
// AcslParser.g:786:4: ( multiplicativeExpression -> multiplicativeExpression )
// AcslParser.g:786:5: multiplicativeExpression
{
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression5282);
multiplicativeExpression262=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(multiplicativeExpression262.getTree());
// AST REWRITE
// elements: multiplicativeExpression
// 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();
// 786:30: -> multiplicativeExpression
{
adaptor.addChild(root_0, stream_multiplicativeExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:787:9: ( PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )*
loop74:
while (true) {
int alt74=3;
int LA74_0 = input.LA(1);
if ( (LA74_0==PLUS) ) {
int LA74_2 = input.LA(2);
if ( (synpred111_AcslParser()) ) {
alt74=1;
}
}
else if ( (LA74_0==SUB) ) {
int LA74_3 = input.LA(2);
if ( (synpred112_AcslParser()) ) {
alt74=2;
}
}
switch (alt74) {
case 1 :
// AcslParser.g:787:11: PLUS y= multiplicativeExpression
{
PLUS263=(Token)match(input,PLUS,FOLLOW_PLUS_in_additiveExpression5299); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS263);
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression5303);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(y.getTree());
// AST REWRITE
// elements: additiveExpression, PLUS, y
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 788:11: -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) )
{
// AcslParser.g:788:14: ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_PLUS.nextNode());
// AcslParser.g:788:30: ^( ARGUMENT_LIST $additiveExpression $y)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_y.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:789:11: SUB y= multiplicativeExpression
{
SUB264=(Token)match(input,SUB,FOLLOW_SUB_in_additiveExpression5343); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUB.add(SUB264);
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression5347);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(y.getTree());
// AST REWRITE
// elements: additiveExpression, y, SUB
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 790:11: -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) )
{
// AcslParser.g:790:14: ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_SUB.nextNode());
// AcslParser.g:790:29: ^( ARGUMENT_LIST $additiveExpression $y)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_y.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop74;
}
}
}
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
}
return retval;
}
// $ANTLR end "additiveExpression"
public static class multiplicativeExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "multiplicativeExpression"
// AcslParser.g:800:1: multiplicativeExpression : ( castExpression -> castExpression ) ( STAR y= castExpression -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | DIV y= castExpression -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | MOD y= castExpression -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) ) )* ;
public final AcslParser.multiplicativeExpression_return multiplicativeExpression() throws RecognitionException {
AcslParser.multiplicativeExpression_return retval = new AcslParser.multiplicativeExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STAR266=null;
Token DIV267=null;
Token MOD268=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope castExpression265 =null;
Object STAR266_tree=null;
Object DIV267_tree=null;
Object MOD268_tree=null;
RewriteRuleTokenStream stream_DIV=new RewriteRuleTokenStream(adaptor,"token DIV");
RewriteRuleTokenStream stream_MOD=new RewriteRuleTokenStream(adaptor,"token MOD");
RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR");
RewriteRuleSubtreeStream stream_castExpression=new RewriteRuleSubtreeStream(adaptor,"rule castExpression");
try {
// AcslParser.g:801:2: ( ( castExpression -> castExpression ) ( STAR y= castExpression -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | DIV y= castExpression -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | MOD y= castExpression -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) ) )* )
// AcslParser.g:801:4: ( castExpression -> castExpression ) ( STAR y= castExpression -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | DIV y= castExpression -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | MOD y= castExpression -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) ) )*
{
// AcslParser.g:801:4: ( castExpression -> castExpression )
// AcslParser.g:801:5: castExpression
{
pushFollow(FOLLOW_castExpression_in_multiplicativeExpression5400);
castExpression265=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(castExpression265.getTree());
// AST REWRITE
// elements: castExpression
// 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();
// 801:20: -> castExpression
{
adaptor.addChild(root_0, stream_castExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:802:2: ( STAR y= castExpression -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | DIV y= castExpression -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | MOD y= castExpression -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) ) )*
loop75:
while (true) {
int alt75=4;
switch ( input.LA(1) ) {
case STAR:
{
int LA75_2 = input.LA(2);
if ( (synpred113_AcslParser()) ) {
alt75=1;
}
}
break;
case DIV:
{
int LA75_3 = input.LA(2);
if ( (synpred114_AcslParser()) ) {
alt75=2;
}
}
break;
case MOD:
{
int LA75_4 = input.LA(2);
if ( (synpred115_AcslParser()) ) {
alt75=3;
}
}
break;
}
switch (alt75) {
case 1 :
// AcslParser.g:802:4: STAR y= castExpression
{
STAR266=(Token)match(input,STAR,FOLLOW_STAR_in_multiplicativeExpression5410); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR266);
pushFollow(FOLLOW_castExpression_in_multiplicativeExpression5414);
y=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(y.getTree());
// AST REWRITE
// elements: multiplicativeExpression, y, STAR
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 803:4: -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// AcslParser.g:803:7: ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_STAR.nextNode());
// AcslParser.g:803:23: ^( ARGUMENT_LIST $multiplicativeExpression $y)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_y.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:804:4: DIV y= castExpression
{
DIV267=(Token)match(input,DIV,FOLLOW_DIV_in_multiplicativeExpression5440); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DIV.add(DIV267);
pushFollow(FOLLOW_castExpression_in_multiplicativeExpression5444);
y=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(y.getTree());
// AST REWRITE
// elements: multiplicativeExpression, DIV, y
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 805:4: -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// AcslParser.g:805:7: ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_DIV.nextNode());
// AcslParser.g:805:22: ^( ARGUMENT_LIST $multiplicativeExpression $y)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_y.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:806:7: MOD y= castExpression
{
MOD268=(Token)match(input,MOD,FOLLOW_MOD_in_multiplicativeExpression5473); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MOD.add(MOD268);
pushFollow(FOLLOW_castExpression_in_multiplicativeExpression5477);
y=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(y.getTree());
// AST REWRITE
// elements: MOD, multiplicativeExpression, y
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 807:4: -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// AcslParser.g:807:7: ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_MOD.nextNode());
// AcslParser.g:807:22: ^( ARGUMENT_LIST $multiplicativeExpression $y)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_y.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop75;
}
}
}
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
}
return retval;
}
// $ANTLR end "multiplicativeExpression"
public static class castExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "castExpression"
// AcslParser.g:819:1: castExpression : ( ( LPAREN type_expr RPAREN )=>l= LPAREN type_expr RPAREN castExpression -> ^( CAST type_expr castExpression ) | unaryExpression );
public final AcslParser.castExpression_return castExpression() throws RecognitionException {
AcslParser.castExpression_return retval = new AcslParser.castExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token l=null;
Token RPAREN270=null;
ParserRuleReturnScope type_expr269 =null;
ParserRuleReturnScope castExpression271 =null;
ParserRuleReturnScope unaryExpression272 =null;
Object l_tree=null;
Object RPAREN270_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_castExpression=new RewriteRuleSubtreeStream(adaptor,"rule castExpression");
RewriteRuleSubtreeStream stream_type_expr=new RewriteRuleSubtreeStream(adaptor,"rule type_expr");
try {
// AcslParser.g:820:2: ( ( LPAREN type_expr RPAREN )=>l= LPAREN type_expr RPAREN castExpression -> ^( CAST type_expr castExpression ) | unaryExpression )
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==LPAREN) ) {
int LA76_1 = input.LA(2);
if ( (synpred116_AcslParser()) ) {
alt76=1;
}
else if ( (true) ) {
alt76=2;
}
}
else if ( (LA76_0==AMPERSAND||LA76_0==CHARACTER_CONSTANT||LA76_0==ELLIPSIS||LA76_0==EXTENDED_IDENTIFIER||LA76_0==FLOATING_CONSTANT||LA76_0==IDENTIFIER||LA76_0==INTEGER_CONSTANT||LA76_0==LCURLY||LA76_0==NOT||LA76_0==PLUS||LA76_0==STAR||(LA76_0 >= STRING_LITERAL && LA76_0 <= SUB)||LA76_0==TILDE||LA76_0==SELF||LA76_0==SIZEOF) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 76, 0, input);
throw nvae;
}
switch (alt76) {
case 1 :
// AcslParser.g:820:4: ( LPAREN type_expr RPAREN )=>l= LPAREN type_expr RPAREN castExpression
{
l=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_castExpression5531); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(l);
pushFollow(FOLLOW_type_expr_in_castExpression5533);
type_expr269=type_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_expr.add(type_expr269.getTree());
RPAREN270=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_castExpression5535); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN270);
pushFollow(FOLLOW_castExpression_in_castExpression5537);
castExpression271=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(castExpression271.getTree());
// AST REWRITE
// elements: castExpression, type_expr
// 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();
// 821:4: -> ^( CAST type_expr castExpression )
{
// AcslParser.g:821:7: ^( CAST type_expr castExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CAST, "CAST"), root_1);
adaptor.addChild(root_1, stream_type_expr.nextTree());
adaptor.addChild(root_1, stream_castExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:822:4: unaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unaryExpression_in_castExpression5555);
unaryExpression272=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression272.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
}
return retval;
}
// $ANTLR end "castExpression"
public static class unaryExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unaryExpression"
// AcslParser.g:832:1: unaryExpression : ( postfixExpression | unary_op (b= castExpression |b= quantifierExpression ) -> ^( OPERATOR unary_op ^( ARGUMENT_LIST $b) ) | ( SIZEOF LPAREN type_expr )=> SIZEOF LPAREN type_expr RPAREN -> ^( SIZEOF_TYPE type_expr ) | SIZEOF unaryExpression -> ^( SIZEOF_EXPR unaryExpression ) | union_key LPAREN argumentExpressionList RPAREN -> ^( UNION_ACSL union_key argumentExpressionList RPAREN ) | inter_key LPAREN argumentExpressionList RPAREN -> ^( INTER inter_key argumentExpressionList RPAREN ) | valid_key LPAREN term RPAREN -> ^( VALID valid_key term RPAREN ) | extendedQuantification -> ^( QUANTIFIED_EXT extendedQuantification ) | object_of_key LPAREN term RPAREN -> ^( OBJECT_OF object_of_key LPAREN term RPAREN ) | old_key LPAREN term RPAREN -> ^( OLD old_key term RPAREN ) );
public final AcslParser.unaryExpression_return unaryExpression() throws RecognitionException {
AcslParser.unaryExpression_return retval = new AcslParser.unaryExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SIZEOF275=null;
Token LPAREN276=null;
Token RPAREN278=null;
Token SIZEOF279=null;
Token LPAREN282=null;
Token RPAREN284=null;
Token LPAREN286=null;
Token RPAREN288=null;
Token LPAREN290=null;
Token RPAREN292=null;
Token LPAREN295=null;
Token RPAREN297=null;
Token LPAREN299=null;
Token RPAREN301=null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope postfixExpression273 =null;
ParserRuleReturnScope unary_op274 =null;
ParserRuleReturnScope type_expr277 =null;
ParserRuleReturnScope unaryExpression280 =null;
ParserRuleReturnScope union_key281 =null;
ParserRuleReturnScope argumentExpressionList283 =null;
ParserRuleReturnScope inter_key285 =null;
ParserRuleReturnScope argumentExpressionList287 =null;
ParserRuleReturnScope valid_key289 =null;
ParserRuleReturnScope term291 =null;
ParserRuleReturnScope extendedQuantification293 =null;
ParserRuleReturnScope object_of_key294 =null;
ParserRuleReturnScope term296 =null;
ParserRuleReturnScope old_key298 =null;
ParserRuleReturnScope term300 =null;
Object SIZEOF275_tree=null;
Object LPAREN276_tree=null;
Object RPAREN278_tree=null;
Object SIZEOF279_tree=null;
Object LPAREN282_tree=null;
Object RPAREN284_tree=null;
Object LPAREN286_tree=null;
Object RPAREN288_tree=null;
Object LPAREN290_tree=null;
Object RPAREN292_tree=null;
Object LPAREN295_tree=null;
Object RPAREN297_tree=null;
Object LPAREN299_tree=null;
Object RPAREN301_tree=null;
RewriteRuleTokenStream stream_SIZEOF=new RewriteRuleTokenStream(adaptor,"token SIZEOF");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_valid_key=new RewriteRuleSubtreeStream(adaptor,"rule valid_key");
RewriteRuleSubtreeStream stream_unary_op=new RewriteRuleSubtreeStream(adaptor,"rule unary_op");
RewriteRuleSubtreeStream stream_old_key=new RewriteRuleSubtreeStream(adaptor,"rule old_key");
RewriteRuleSubtreeStream stream_quantifierExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifierExpression");
RewriteRuleSubtreeStream stream_inter_key=new RewriteRuleSubtreeStream(adaptor,"rule inter_key");
RewriteRuleSubtreeStream stream_castExpression=new RewriteRuleSubtreeStream(adaptor,"rule castExpression");
RewriteRuleSubtreeStream stream_type_expr=new RewriteRuleSubtreeStream(adaptor,"rule type_expr");
RewriteRuleSubtreeStream stream_union_key=new RewriteRuleSubtreeStream(adaptor,"rule union_key");
RewriteRuleSubtreeStream stream_object_of_key=new RewriteRuleSubtreeStream(adaptor,"rule object_of_key");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
RewriteRuleSubtreeStream stream_extendedQuantification=new RewriteRuleSubtreeStream(adaptor,"rule extendedQuantification");
RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression");
try {
// AcslParser.g:833:2: ( postfixExpression | unary_op (b= castExpression |b= quantifierExpression ) -> ^( OPERATOR unary_op ^( ARGUMENT_LIST $b) ) | ( SIZEOF LPAREN type_expr )=> SIZEOF LPAREN type_expr RPAREN -> ^( SIZEOF_TYPE type_expr ) | SIZEOF unaryExpression -> ^( SIZEOF_EXPR unaryExpression ) | union_key LPAREN argumentExpressionList RPAREN -> ^( UNION_ACSL union_key argumentExpressionList RPAREN ) | inter_key LPAREN argumentExpressionList RPAREN -> ^( INTER inter_key argumentExpressionList RPAREN ) | valid_key LPAREN term RPAREN -> ^( VALID valid_key term RPAREN ) | extendedQuantification -> ^( QUANTIFIED_EXT extendedQuantification ) | object_of_key LPAREN term RPAREN -> ^( OBJECT_OF object_of_key LPAREN term RPAREN ) | old_key LPAREN term RPAREN -> ^( OLD old_key term RPAREN ) )
int alt78=10;
switch ( input.LA(1) ) {
case CHARACTER_CONSTANT:
case ELLIPSIS:
case FLOATING_CONSTANT:
case IDENTIFIER:
case INTEGER_CONSTANT:
case LCURLY:
case LPAREN:
case STRING_LITERAL:
case SELF:
{
alt78=1;
}
break;
case EXTENDED_IDENTIFIER:
{
int LA78_4 = input.LA(2);
if ( ((synpred117_AcslParser()&&((input.LT(1).getText().equals("\\false"))||(input.LT(1).getText().equals("\\result"))||(input.LT(1).getText().equals("\\nothing"))||(input.LT(1).getText().equals("\\null"))||(input.LT(1).getText().equals("\\true"))))) ) {
alt78=1;
}
else if ( ((synpred122_AcslParser()&&(input.LT(1).getText().equals("\\union")))) ) {
alt78=5;
}
else if ( ((synpred123_AcslParser()&&(input.LT(1).getText().equals("\\inter")))) ) {
alt78=6;
}
else if ( ((synpred124_AcslParser()&&(input.LT(1).getText().equals("\\valid")))) ) {
alt78=7;
}
else if ( ((synpred125_AcslParser()&&((input.LT(1).getText().equals("\\product"))||(input.LT(1).getText().equals("\\min"))||(input.LT(1).getText().equals("\\sum"))||(input.LT(1).getText().equals("\\max"))||(input.LT(1).getText().equals("\\numof"))))) ) {
alt78=8;
}
else if ( ((synpred126_AcslParser()&&(input.LT(1).getText().equals("\\object_of")))) ) {
alt78=9;
}
else if ( ((input.LT(1).getText().equals("\\old"))) ) {
alt78=10;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 78, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case AMPERSAND:
case NOT:
case PLUS:
case STAR:
case SUB:
case TILDE:
{
alt78=2;
}
break;
case SIZEOF:
{
int LA78_12 = input.LA(2);
if ( (synpred120_AcslParser()) ) {
alt78=3;
}
else if ( (synpred121_AcslParser()) ) {
alt78=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 78, 12, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 78, 0, input);
throw nvae;
}
switch (alt78) {
case 1 :
// AcslParser.g:833:4: postfixExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_postfixExpression_in_unaryExpression5568);
postfixExpression273=postfixExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, postfixExpression273.getTree());
}
break;
case 2 :
// AcslParser.g:834:4: unary_op (b= castExpression |b= quantifierExpression )
{
pushFollow(FOLLOW_unary_op_in_unaryExpression5573);
unary_op274=unary_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_op.add(unary_op274.getTree());
// AcslParser.g:834:13: (b= castExpression |b= quantifierExpression )
int alt77=2;
int LA77_0 = input.LA(1);
if ( (LA77_0==AMPERSAND||LA77_0==CHARACTER_CONSTANT||LA77_0==ELLIPSIS||LA77_0==FLOATING_CONSTANT||LA77_0==IDENTIFIER||LA77_0==INTEGER_CONSTANT||LA77_0==LCURLY||LA77_0==LPAREN||LA77_0==NOT||LA77_0==PLUS||LA77_0==STAR||(LA77_0 >= STRING_LITERAL && LA77_0 <= SUB)||LA77_0==TILDE||LA77_0==SELF||LA77_0==SIZEOF) ) {
alt77=1;
}
else if ( (LA77_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case EOF:
case AMPERSAND:
case AND:
case ARROW:
case ASSIGN:
case BITOR:
case BITXOR:
case COLON:
case COMMA:
case DIV:
case DOT:
case DOTDOT:
case EQUALS:
case EQUIV_ACSL:
case GT:
case GTE:
case HASH:
case IMPLIES:
case IMPLIES_ACSL:
case LPAREN:
case LSQUARE:
case LT:
case LTE:
case MINUSMINUS:
case MOD:
case NEQ:
case OR:
case PLUS:
case QMARK:
case RCURLY:
case RPAREN:
case RSQUARE:
case SEMI:
case SHIFTLEFT:
case SHIFTRIGHT:
case STAR:
case SUB:
case XOR_ACSL:
case FOR:
{
alt77=1;
}
break;
case IDENTIFIER:
{
int LA77_3 = input.LA(3);
if ( (LA77_3==IDENTIFIER) ) {
int LA77_5 = input.LA(4);
if ( (LA77_5==BITOR||LA77_5==PLUS||LA77_5==SUB) ) {
alt77=1;
}
else if ( (LA77_5==COMMA||LA77_5==LSQUARE||LA77_5==SEMI) ) {
alt77=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 77, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA77_3==LPAREN||LA77_3==STAR) ) {
alt77=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 77, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt77=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 77, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 77, 0, input);
throw nvae;
}
switch (alt77) {
case 1 :
// AcslParser.g:834:14: b= castExpression
{
pushFollow(FOLLOW_castExpression_in_unaryExpression5578);
b=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:834:33: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_unaryExpression5584);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
}
// AST REWRITE
// elements: unary_op, b
// token labels:
// rule labels: b, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 835:9: -> ^( OPERATOR unary_op ^( ARGUMENT_LIST $b) )
{
// AcslParser.g:835:12: ^( OPERATOR unary_op ^( ARGUMENT_LIST $b) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_unary_op.nextTree());
// AcslParser.g:835:32: ^( ARGUMENT_LIST $b)
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_b.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:836:4: ( SIZEOF LPAREN type_expr )=> SIZEOF LPAREN type_expr RPAREN
{
SIZEOF275=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unaryExpression5622); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF275);
LPAREN276=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression5624); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN276);
pushFollow(FOLLOW_type_expr_in_unaryExpression5626);
type_expr277=type_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_expr.add(type_expr277.getTree());
RPAREN278=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression5628); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN278);
// AST REWRITE
// elements: type_expr
// 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();
// 837:9: -> ^( SIZEOF_TYPE type_expr )
{
// AcslParser.g:837:12: ^( SIZEOF_TYPE type_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SIZEOF_TYPE, "SIZEOF_TYPE"), root_1);
adaptor.addChild(root_1, stream_type_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// AcslParser.g:838:4: SIZEOF unaryExpression
{
SIZEOF279=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unaryExpression5649); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF279);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression5651);
unaryExpression280=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression280.getTree());
// AST REWRITE
// elements: unaryExpression
// 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();
// 839:9: -> ^( SIZEOF_EXPR unaryExpression )
{
// AcslParser.g:839:12: ^( SIZEOF_EXPR unaryExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SIZEOF_EXPR, "SIZEOF_EXPR"), root_1);
adaptor.addChild(root_1, stream_unaryExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// AcslParser.g:840:7: union_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_union_key_in_unaryExpression5675);
union_key281=union_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_union_key.add(union_key281.getTree());
LPAREN282=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression5677); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN282);
pushFollow(FOLLOW_argumentExpressionList_in_unaryExpression5679);
argumentExpressionList283=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList283.getTree());
RPAREN284=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression5681); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN284);
// AST REWRITE
// elements: union_key, RPAREN, argumentExpressionList
// 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:9: -> ^( UNION_ACSL union_key argumentExpressionList RPAREN )
{
// AcslParser.g:841:12: ^( UNION_ACSL union_key argumentExpressionList RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNION_ACSL, "UNION_ACSL"), root_1);
adaptor.addChild(root_1, stream_union_key.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// AcslParser.g:842:7: inter_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_inter_key_in_unaryExpression5709);
inter_key285=inter_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inter_key.add(inter_key285.getTree());
LPAREN286=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression5711); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN286);
pushFollow(FOLLOW_argumentExpressionList_in_unaryExpression5713);
argumentExpressionList287=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList287.getTree());
RPAREN288=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression5715); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN288);
// AST REWRITE
// elements: inter_key, argumentExpressionList, RPAREN
// 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();
// 843:9: -> ^( INTER inter_key argumentExpressionList RPAREN )
{
// AcslParser.g:843:12: ^( INTER inter_key argumentExpressionList RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INTER, "INTER"), root_1);
adaptor.addChild(root_1, stream_inter_key.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 7 :
// AcslParser.g:844:7: valid_key LPAREN term RPAREN
{
pushFollow(FOLLOW_valid_key_in_unaryExpression5743);
valid_key289=valid_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_valid_key.add(valid_key289.getTree());
LPAREN290=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression5745); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN290);
pushFollow(FOLLOW_term_in_unaryExpression5747);
term291=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term291.getTree());
RPAREN292=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression5749); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN292);
// AST REWRITE
// elements: term, RPAREN, valid_key
// 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();
// 845:9: -> ^( VALID valid_key term RPAREN )
{
// AcslParser.g:845:12: ^( VALID valid_key term RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VALID, "VALID"), root_1);
adaptor.addChild(root_1, stream_valid_key.nextTree());
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 8 :
// AcslParser.g:846:7: extendedQuantification
{
pushFollow(FOLLOW_extendedQuantification_in_unaryExpression5777);
extendedQuantification293=extendedQuantification();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_extendedQuantification.add(extendedQuantification293.getTree());
// AST REWRITE
// elements: extendedQuantification
// 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();
// 846:30: -> ^( QUANTIFIED_EXT extendedQuantification )
{
// AcslParser.g:846:32: ^( QUANTIFIED_EXT extendedQuantification )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QUANTIFIED_EXT, "QUANTIFIED_EXT"), root_1);
adaptor.addChild(root_1, stream_extendedQuantification.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 9 :
// AcslParser.g:847:7: object_of_key LPAREN term RPAREN
{
pushFollow(FOLLOW_object_of_key_in_unaryExpression5792);
object_of_key294=object_of_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_object_of_key.add(object_of_key294.getTree());
LPAREN295=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression5794); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN295);
pushFollow(FOLLOW_term_in_unaryExpression5796);
term296=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term296.getTree());
RPAREN297=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression5798); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN297);
// AST REWRITE
// elements: object_of_key, term, RPAREN, LPAREN
// 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();
// 847:40: -> ^( OBJECT_OF object_of_key LPAREN term RPAREN )
{
// AcslParser.g:847:43: ^( OBJECT_OF object_of_key LPAREN term RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OBJECT_OF, "OBJECT_OF"), root_1);
adaptor.addChild(root_1, stream_object_of_key.nextTree());
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 10 :
// AcslParser.g:848:7: old_key LPAREN term RPAREN
{
pushFollow(FOLLOW_old_key_in_unaryExpression5820);
old_key298=old_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_old_key.add(old_key298.getTree());
LPAREN299=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression5822); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN299);
pushFollow(FOLLOW_term_in_unaryExpression5824);
term300=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term300.getTree());
RPAREN301=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression5826); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN301);
// AST REWRITE
// elements: old_key, term, RPAREN
// 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();
// 849:9: -> ^( OLD old_key term RPAREN )
{
// AcslParser.g:849:12: ^( OLD old_key term RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OLD, "OLD"), root_1);
adaptor.addChild(root_1, stream_old_key.nextTree());
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
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
}
return retval;
}
// $ANTLR end "unaryExpression"
public static class extendedQuantification_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "extendedQuantification"
// AcslParser.g:852:1: extendedQuantification : ( sum_key LPAREN term COMMA term COMMA term RPAREN -> ^( SUM sum_key ( term )+ ) | max_key LPAREN term COMMA term COMMA term RPAREN -> ^( MAX max_key ( term )+ ) | min_key LPAREN term COMMA term COMMA term RPAREN -> ^( MIN min_key ( term )+ ) | product_key LPAREN term COMMA term COMMA term RPAREN -> ^( PROD product_key ( term )+ ) | numof_key LPAREN term COMMA term COMMA term RPAREN -> ^( NUMOF numof_key ( term )+ ) );
public final AcslParser.extendedQuantification_return extendedQuantification() throws RecognitionException {
AcslParser.extendedQuantification_return retval = new AcslParser.extendedQuantification_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN303=null;
Token COMMA305=null;
Token COMMA307=null;
Token RPAREN309=null;
Token LPAREN311=null;
Token COMMA313=null;
Token COMMA315=null;
Token RPAREN317=null;
Token LPAREN319=null;
Token COMMA321=null;
Token COMMA323=null;
Token RPAREN325=null;
Token LPAREN327=null;
Token COMMA329=null;
Token COMMA331=null;
Token RPAREN333=null;
Token LPAREN335=null;
Token COMMA337=null;
Token COMMA339=null;
Token RPAREN341=null;
ParserRuleReturnScope sum_key302 =null;
ParserRuleReturnScope term304 =null;
ParserRuleReturnScope term306 =null;
ParserRuleReturnScope term308 =null;
ParserRuleReturnScope max_key310 =null;
ParserRuleReturnScope term312 =null;
ParserRuleReturnScope term314 =null;
ParserRuleReturnScope term316 =null;
ParserRuleReturnScope min_key318 =null;
ParserRuleReturnScope term320 =null;
ParserRuleReturnScope term322 =null;
ParserRuleReturnScope term324 =null;
ParserRuleReturnScope product_key326 =null;
ParserRuleReturnScope term328 =null;
ParserRuleReturnScope term330 =null;
ParserRuleReturnScope term332 =null;
ParserRuleReturnScope numof_key334 =null;
ParserRuleReturnScope term336 =null;
ParserRuleReturnScope term338 =null;
ParserRuleReturnScope term340 =null;
Object LPAREN303_tree=null;
Object COMMA305_tree=null;
Object COMMA307_tree=null;
Object RPAREN309_tree=null;
Object LPAREN311_tree=null;
Object COMMA313_tree=null;
Object COMMA315_tree=null;
Object RPAREN317_tree=null;
Object LPAREN319_tree=null;
Object COMMA321_tree=null;
Object COMMA323_tree=null;
Object RPAREN325_tree=null;
Object LPAREN327_tree=null;
Object COMMA329_tree=null;
Object COMMA331_tree=null;
Object RPAREN333_tree=null;
Object LPAREN335_tree=null;
Object COMMA337_tree=null;
Object COMMA339_tree=null;
Object RPAREN341_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_max_key=new RewriteRuleSubtreeStream(adaptor,"rule max_key");
RewriteRuleSubtreeStream stream_numof_key=new RewriteRuleSubtreeStream(adaptor,"rule numof_key");
RewriteRuleSubtreeStream stream_product_key=new RewriteRuleSubtreeStream(adaptor,"rule product_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
RewriteRuleSubtreeStream stream_sum_key=new RewriteRuleSubtreeStream(adaptor,"rule sum_key");
RewriteRuleSubtreeStream stream_min_key=new RewriteRuleSubtreeStream(adaptor,"rule min_key");
try {
// AcslParser.g:853:2: ( sum_key LPAREN term COMMA term COMMA term RPAREN -> ^( SUM sum_key ( term )+ ) | max_key LPAREN term COMMA term COMMA term RPAREN -> ^( MAX max_key ( term )+ ) | min_key LPAREN term COMMA term COMMA term RPAREN -> ^( MIN min_key ( term )+ ) | product_key LPAREN term COMMA term COMMA term RPAREN -> ^( PROD product_key ( term )+ ) | numof_key LPAREN term COMMA term COMMA term RPAREN -> ^( NUMOF numof_key ( term )+ ) )
int alt79=5;
int LA79_0 = input.LA(1);
if ( (LA79_0==EXTENDED_IDENTIFIER) ) {
int LA79_1 = input.LA(2);
if ( ((synpred127_AcslParser()&&(input.LT(1).getText().equals("\\sum")))) ) {
alt79=1;
}
else if ( (((input.LT(1).getText().equals("\\max"))&&synpred128_AcslParser())) ) {
alt79=2;
}
else if ( (((input.LT(1).getText().equals("\\min"))&&synpred129_AcslParser())) ) {
alt79=3;
}
else if ( ((synpred130_AcslParser()&&(input.LT(1).getText().equals("\\product")))) ) {
alt79=4;
}
else if ( ((input.LT(1).getText().equals("\\numof"))) ) {
alt79=5;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 79, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 79, 0, input);
throw nvae;
}
switch (alt79) {
case 1 :
// AcslParser.g:853:4: sum_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_sum_key_in_extendedQuantification5858);
sum_key302=sum_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_sum_key.add(sum_key302.getTree());
LPAREN303=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_extendedQuantification5860); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN303);
pushFollow(FOLLOW_term_in_extendedQuantification5862);
term304=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term304.getTree());
COMMA305=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification5864); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA305);
pushFollow(FOLLOW_term_in_extendedQuantification5866);
term306=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term306.getTree());
COMMA307=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification5868); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA307);
pushFollow(FOLLOW_term_in_extendedQuantification5870);
term308=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term308.getTree());
RPAREN309=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_extendedQuantification5872); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN309);
// AST REWRITE
// elements: term, sum_key
// 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:9: -> ^( SUM sum_key ( term )+ )
{
// AcslParser.g:854:12: ^( SUM sum_key ( term )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SUM, "SUM"), root_1);
adaptor.addChild(root_1, stream_sum_key.nextTree());
if ( !(stream_term.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_term.hasNext() ) {
adaptor.addChild(root_1, stream_term.nextTree());
}
stream_term.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:855:7: max_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_max_key_in_extendedQuantification5899);
max_key310=max_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_max_key.add(max_key310.getTree());
LPAREN311=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_extendedQuantification5901); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN311);
pushFollow(FOLLOW_term_in_extendedQuantification5903);
term312=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term312.getTree());
COMMA313=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification5905); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA313);
pushFollow(FOLLOW_term_in_extendedQuantification5907);
term314=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term314.getTree());
COMMA315=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification5909); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA315);
pushFollow(FOLLOW_term_in_extendedQuantification5911);
term316=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term316.getTree());
RPAREN317=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_extendedQuantification5913); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN317);
// AST REWRITE
// elements: term, max_key
// 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();
// 856:9: -> ^( MAX max_key ( term )+ )
{
// AcslParser.g:856:12: ^( MAX max_key ( term )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MAX, "MAX"), root_1);
adaptor.addChild(root_1, stream_max_key.nextTree());
if ( !(stream_term.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_term.hasNext() ) {
adaptor.addChild(root_1, stream_term.nextTree());
}
stream_term.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:857:7: min_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_min_key_in_extendedQuantification5940);
min_key318=min_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_min_key.add(min_key318.getTree());
LPAREN319=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_extendedQuantification5942); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN319);
pushFollow(FOLLOW_term_in_extendedQuantification5944);
term320=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term320.getTree());
COMMA321=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification5946); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA321);
pushFollow(FOLLOW_term_in_extendedQuantification5948);
term322=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term322.getTree());
COMMA323=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification5950); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA323);
pushFollow(FOLLOW_term_in_extendedQuantification5952);
term324=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term324.getTree());
RPAREN325=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_extendedQuantification5954); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN325);
// AST REWRITE
// elements: min_key, term
// 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();
// 858:9: -> ^( MIN min_key ( term )+ )
{
// AcslParser.g:858:12: ^( MIN min_key ( term )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MIN, "MIN"), root_1);
adaptor.addChild(root_1, stream_min_key.nextTree());
if ( !(stream_term.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_term.hasNext() ) {
adaptor.addChild(root_1, stream_term.nextTree());
}
stream_term.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// AcslParser.g:859:7: product_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_product_key_in_extendedQuantification5981);
product_key326=product_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_product_key.add(product_key326.getTree());
LPAREN327=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_extendedQuantification5983); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN327);
pushFollow(FOLLOW_term_in_extendedQuantification5985);
term328=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term328.getTree());
COMMA329=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification5987); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA329);
pushFollow(FOLLOW_term_in_extendedQuantification5989);
term330=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term330.getTree());
COMMA331=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification5991); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA331);
pushFollow(FOLLOW_term_in_extendedQuantification5993);
term332=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term332.getTree());
RPAREN333=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_extendedQuantification5995); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN333);
// AST REWRITE
// elements: product_key, term
// 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();
// 860:9: -> ^( PROD product_key ( term )+ )
{
// AcslParser.g:860:12: ^( PROD product_key ( term )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PROD, "PROD"), root_1);
adaptor.addChild(root_1, stream_product_key.nextTree());
if ( !(stream_term.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_term.hasNext() ) {
adaptor.addChild(root_1, stream_term.nextTree());
}
stream_term.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// AcslParser.g:861:7: numof_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_numof_key_in_extendedQuantification6022);
numof_key334=numof_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_numof_key.add(numof_key334.getTree());
LPAREN335=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_extendedQuantification6024); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN335);
pushFollow(FOLLOW_term_in_extendedQuantification6026);
term336=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term336.getTree());
COMMA337=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6028); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA337);
pushFollow(FOLLOW_term_in_extendedQuantification6030);
term338=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term338.getTree());
COMMA339=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6032); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA339);
pushFollow(FOLLOW_term_in_extendedQuantification6034);
term340=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term340.getTree());
RPAREN341=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_extendedQuantification6036); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN341);
// AST REWRITE
// elements: numof_key, term
// 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();
// 862:9: -> ^( NUMOF numof_key ( term )+ )
{
// AcslParser.g:862:12: ^( NUMOF numof_key ( term )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NUMOF, "NUMOF"), root_1);
adaptor.addChild(root_1, stream_numof_key.nextTree());
if ( !(stream_term.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_term.hasNext() ) {
adaptor.addChild(root_1, stream_term.nextTree());
}
stream_term.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
}
return retval;
}
// $ANTLR end "extendedQuantification"
public static class postfixExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "postfixExpression"
// AcslParser.g:877:1: postfixExpression : ( primaryExpression -> primaryExpression ) (l= LSQUARE term RSQUARE -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression term ) RSQUARE ) | LPAREN argumentExpressionList RPAREN -> ^( FUNC_CALL $postfixExpression argumentExpressionList ) | DOT IDENTIFIER -> ^( DOT $postfixExpression IDENTIFIER ) | ARROW IDENTIFIER -> ^( ARROW $postfixExpression IDENTIFIER ) )* ;
public final AcslParser.postfixExpression_return postfixExpression() throws RecognitionException {
AcslParser.postfixExpression_return retval = new AcslParser.postfixExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token l=null;
Token RSQUARE344=null;
Token LPAREN345=null;
Token RPAREN347=null;
Token DOT348=null;
Token IDENTIFIER349=null;
Token ARROW350=null;
Token IDENTIFIER351=null;
ParserRuleReturnScope primaryExpression342 =null;
ParserRuleReturnScope term343 =null;
ParserRuleReturnScope argumentExpressionList346 =null;
Object l_tree=null;
Object RSQUARE344_tree=null;
Object LPAREN345_tree=null;
Object RPAREN347_tree=null;
Object DOT348_tree=null;
Object IDENTIFIER349_tree=null;
Object ARROW350_tree=null;
Object IDENTIFIER351_tree=null;
RewriteRuleTokenStream stream_LSQUARE=new RewriteRuleTokenStream(adaptor,"token LSQUARE");
RewriteRuleTokenStream stream_RSQUARE=new RewriteRuleTokenStream(adaptor,"token RSQUARE");
RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_primaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule primaryExpression");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:878:2: ( ( primaryExpression -> primaryExpression ) (l= LSQUARE term RSQUARE -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression term ) RSQUARE ) | LPAREN argumentExpressionList RPAREN -> ^( FUNC_CALL $postfixExpression argumentExpressionList ) | DOT IDENTIFIER -> ^( DOT $postfixExpression IDENTIFIER ) | ARROW IDENTIFIER -> ^( ARROW $postfixExpression IDENTIFIER ) )* )
// AcslParser.g:878:4: ( primaryExpression -> primaryExpression ) (l= LSQUARE term RSQUARE -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression term ) RSQUARE ) | LPAREN argumentExpressionList RPAREN -> ^( FUNC_CALL $postfixExpression argumentExpressionList ) | DOT IDENTIFIER -> ^( DOT $postfixExpression IDENTIFIER ) | ARROW IDENTIFIER -> ^( ARROW $postfixExpression IDENTIFIER ) )*
{
// AcslParser.g:878:4: ( primaryExpression -> primaryExpression )
// AcslParser.g:878:5: primaryExpression
{
pushFollow(FOLLOW_primaryExpression_in_postfixExpression6069);
primaryExpression342=primaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primaryExpression.add(primaryExpression342.getTree());
// AST REWRITE
// elements: primaryExpression
// 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();
// 878:23: -> primaryExpression
{
adaptor.addChild(root_0, stream_primaryExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:880:4: (l= LSQUARE term RSQUARE -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression term ) RSQUARE ) | LPAREN argumentExpressionList RPAREN -> ^( FUNC_CALL $postfixExpression argumentExpressionList ) | DOT IDENTIFIER -> ^( DOT $postfixExpression IDENTIFIER ) | ARROW IDENTIFIER -> ^( ARROW $postfixExpression IDENTIFIER ) )*
loop80:
while (true) {
int alt80=5;
switch ( input.LA(1) ) {
case LSQUARE:
{
alt80=1;
}
break;
case LPAREN:
{
alt80=2;
}
break;
case DOT:
{
alt80=3;
}
break;
case ARROW:
{
alt80=4;
}
break;
}
switch (alt80) {
case 1 :
// AcslParser.g:880:6: l= LSQUARE term RSQUARE
{
l=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_postfixExpression6086); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(l);
pushFollow(FOLLOW_term_in_postfixExpression6088);
term343=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term343.getTree());
RSQUARE344=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_postfixExpression6090); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE344);
// AST REWRITE
// elements: term, RSQUARE, postfixExpression
// 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:6: -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression term ) RSQUARE )
{
// AcslParser.g:881:9: ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression term ) RSQUARE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(INDEX, l));
// AcslParser.g:883:13: ^( ARGUMENT_LIST $postfixExpression term )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_2);
adaptor.addChild(root_2, stream_retval.nextTree());
adaptor.addChild(root_2, stream_term.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, stream_RSQUARE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:886:6: LPAREN argumentExpressionList RPAREN
{
LPAREN345=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_postfixExpression6164); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN345);
pushFollow(FOLLOW_argumentExpressionList_in_postfixExpression6166);
argumentExpressionList346=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList346.getTree());
RPAREN347=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_postfixExpression6168); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN347);
// AST REWRITE
// elements: argumentExpressionList, postfixExpression
// 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();
// 887:6: -> ^( FUNC_CALL $postfixExpression argumentExpressionList )
{
// AcslParser.g:887:9: ^( FUNC_CALL $postfixExpression argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNC_CALL, "FUNC_CALL"), root_1);
adaptor.addChild(root_1, stream_retval.nextTree());
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:889:6: DOT IDENTIFIER
{
DOT348=(Token)match(input,DOT,FOLLOW_DOT_in_postfixExpression6199); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT348);
IDENTIFIER349=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfixExpression6201); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER349);
// AST REWRITE
// elements: IDENTIFIER, DOT, postfixExpression
// 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();
// 890:6: -> ^( DOT $postfixExpression IDENTIFIER )
{
// AcslParser.g:890:9: ^( DOT $postfixExpression IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_DOT.nextNode(), root_1);
adaptor.addChild(root_1, stream_retval.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// AcslParser.g:891:6: ARROW IDENTIFIER
{
ARROW350=(Token)match(input,ARROW,FOLLOW_ARROW_in_postfixExpression6224); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ARROW.add(ARROW350);
IDENTIFIER351=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfixExpression6226); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER351);
// AST REWRITE
// elements: postfixExpression, ARROW, IDENTIFIER
// 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();
// 892:6: -> ^( ARROW $postfixExpression IDENTIFIER )
{
// AcslParser.g:892:9: ^( ARROW $postfixExpression IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ARROW.nextNode(), root_1);
adaptor.addChild(root_1, stream_retval.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop80;
}
}
}
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
}
return retval;
}
// $ANTLR end "postfixExpression"
public static class argumentExpressionList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "argumentExpressionList"
// AcslParser.g:897:1: argumentExpressionList : ( -> ^( ARGUMENT_LIST ) | assignmentExpression ( COMMA assignmentExpression )* -> ^( ARGUMENT_LIST ( assignmentExpression )+ ) );
public final AcslParser.argumentExpressionList_return argumentExpressionList() throws RecognitionException {
AcslParser.argumentExpressionList_return retval = new AcslParser.argumentExpressionList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA353=null;
ParserRuleReturnScope assignmentExpression352 =null;
ParserRuleReturnScope assignmentExpression354 =null;
Object COMMA353_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// AcslParser.g:898:2: ( -> ^( ARGUMENT_LIST ) | assignmentExpression ( COMMA assignmentExpression )* -> ^( ARGUMENT_LIST ( assignmentExpression )+ ) )
int alt82=2;
int LA82_0 = input.LA(1);
if ( (LA82_0==EOF||LA82_0==COMMA||LA82_0==RPAREN||LA82_0==SEMI) ) {
alt82=1;
}
else if ( (LA82_0==AMPERSAND||LA82_0==CHARACTER_CONSTANT||LA82_0==ELLIPSIS||LA82_0==EXTENDED_IDENTIFIER||LA82_0==FLOATING_CONSTANT||LA82_0==IDENTIFIER||LA82_0==INTEGER_CONSTANT||LA82_0==LCURLY||LA82_0==LPAREN||LA82_0==NOT||LA82_0==PLUS||LA82_0==STAR||(LA82_0 >= STRING_LITERAL && LA82_0 <= SUB)||LA82_0==TILDE||LA82_0==SELF||LA82_0==SIZEOF) ) {
alt82=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 82, 0, input);
throw nvae;
}
switch (alt82) {
case 1 :
// AcslParser.g:898:4:
{
// 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();
// 898:4: -> ^( ARGUMENT_LIST )
{
// AcslParser.g:898:7: ^( ARGUMENT_LIST )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:899:4: assignmentExpression ( COMMA assignmentExpression )*
{
pushFollow(FOLLOW_assignmentExpression_in_argumentExpressionList6271);
assignmentExpression352=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression352.getTree());
// AcslParser.g:899:25: ( COMMA assignmentExpression )*
loop81:
while (true) {
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==COMMA) ) {
int LA81_2 = input.LA(2);
if ( (synpred136_AcslParser()) ) {
alt81=1;
}
}
switch (alt81) {
case 1 :
// AcslParser.g:899:26: COMMA assignmentExpression
{
COMMA353=(Token)match(input,COMMA,FOLLOW_COMMA_in_argumentExpressionList6274); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA353);
pushFollow(FOLLOW_assignmentExpression_in_argumentExpressionList6276);
assignmentExpression354=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression354.getTree());
}
break;
default :
break loop81;
}
}
// AST REWRITE
// elements: assignmentExpression
// 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();
// 900:4: -> ^( ARGUMENT_LIST ( assignmentExpression )+ )
{
// AcslParser.g:900:7: ^( ARGUMENT_LIST ( assignmentExpression )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_1);
if ( !(stream_assignmentExpression.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_assignmentExpression.hasNext() ) {
adaptor.addChild(root_1, stream_assignmentExpression.nextTree());
}
stream_assignmentExpression.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
}
return retval;
}
// $ANTLR end "argumentExpressionList"
public static class primaryExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "primaryExpression"
// AcslParser.g:904:1: primaryExpression : ( constant | IDENTIFIER | STRING_LITERAL | LCURLY term BITOR binders ( SEMI term )? RCURLY -> ^( SET_BINDERS term binders ( term )? ) | LCURLY term RCURLY -> ^( SET_SIMPLE term ) | LPAREN term RPAREN -> ^( TERM_PARENTHESIZED term ) );
public final AcslParser.primaryExpression_return primaryExpression() throws RecognitionException {
AcslParser.primaryExpression_return retval = new AcslParser.primaryExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER356=null;
Token STRING_LITERAL357=null;
Token LCURLY358=null;
Token BITOR360=null;
Token SEMI362=null;
Token RCURLY364=null;
Token LCURLY365=null;
Token RCURLY367=null;
Token LPAREN368=null;
Token RPAREN370=null;
ParserRuleReturnScope constant355 =null;
ParserRuleReturnScope term359 =null;
ParserRuleReturnScope binders361 =null;
ParserRuleReturnScope term363 =null;
ParserRuleReturnScope term366 =null;
ParserRuleReturnScope term369 =null;
Object IDENTIFIER356_tree=null;
Object STRING_LITERAL357_tree=null;
Object LCURLY358_tree=null;
Object BITOR360_tree=null;
Object SEMI362_tree=null;
Object RCURLY364_tree=null;
Object LCURLY365_tree=null;
Object RCURLY367_tree=null;
Object LPAREN368_tree=null;
Object RPAREN370_tree=null;
RewriteRuleTokenStream stream_BITOR=new RewriteRuleTokenStream(adaptor,"token BITOR");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_binders=new RewriteRuleSubtreeStream(adaptor,"rule binders");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:905:2: ( constant | IDENTIFIER | STRING_LITERAL | LCURLY term BITOR binders ( SEMI term )? RCURLY -> ^( SET_BINDERS term binders ( term )? ) | LCURLY term RCURLY -> ^( SET_SIMPLE term ) | LPAREN term RPAREN -> ^( TERM_PARENTHESIZED term ) )
int alt84=6;
switch ( input.LA(1) ) {
case CHARACTER_CONSTANT:
case ELLIPSIS:
case EXTENDED_IDENTIFIER:
case FLOATING_CONSTANT:
case INTEGER_CONSTANT:
case SELF:
{
alt84=1;
}
break;
case IDENTIFIER:
{
alt84=2;
}
break;
case STRING_LITERAL:
{
alt84=3;
}
break;
case LCURLY:
{
int LA84_9 = input.LA(2);
if ( (synpred141_AcslParser()) ) {
alt84=4;
}
else if ( (synpred142_AcslParser()) ) {
alt84=5;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 84, 9, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case LPAREN:
{
alt84=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 84, 0, input);
throw nvae;
}
switch (alt84) {
case 1 :
// AcslParser.g:905:4: constant
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_constant_in_primaryExpression6303);
constant355=constant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, constant355.getTree());
}
break;
case 2 :
// AcslParser.g:906:7: IDENTIFIER
{
root_0 = (Object)adaptor.nil();
IDENTIFIER356=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_primaryExpression6311); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER356_tree = (Object)adaptor.create(IDENTIFIER356);
adaptor.addChild(root_0, IDENTIFIER356_tree);
}
}
break;
case 3 :
// AcslParser.g:907:4: STRING_LITERAL
{
root_0 = (Object)adaptor.nil();
STRING_LITERAL357=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_primaryExpression6316); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STRING_LITERAL357_tree = (Object)adaptor.create(STRING_LITERAL357);
adaptor.addChild(root_0, STRING_LITERAL357_tree);
}
}
break;
case 4 :
// AcslParser.g:908:7: LCURLY term BITOR binders ( SEMI term )? RCURLY
{
LCURLY358=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_primaryExpression6324); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY358);
pushFollow(FOLLOW_term_in_primaryExpression6326);
term359=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term359.getTree());
BITOR360=(Token)match(input,BITOR,FOLLOW_BITOR_in_primaryExpression6328); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR360);
pushFollow(FOLLOW_binders_in_primaryExpression6330);
binders361=binders();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binders.add(binders361.getTree());
// AcslParser.g:908:33: ( SEMI term )?
int alt83=2;
int LA83_0 = input.LA(1);
if ( (LA83_0==SEMI) ) {
alt83=1;
}
switch (alt83) {
case 1 :
// AcslParser.g:908:34: SEMI term
{
SEMI362=(Token)match(input,SEMI,FOLLOW_SEMI_in_primaryExpression6333); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI362);
pushFollow(FOLLOW_term_in_primaryExpression6335);
term363=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term363.getTree());
}
break;
}
RCURLY364=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_primaryExpression6339); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY364);
// AST REWRITE
// elements: binders, term, term
// 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();
// 909:9: -> ^( SET_BINDERS term binders ( term )? )
{
// AcslParser.g:909:11: ^( SET_BINDERS term binders ( term )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SET_BINDERS, "SET_BINDERS"), root_1);
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_1, stream_binders.nextTree());
// AcslParser.g:909:38: ( term )?
if ( stream_term.hasNext() ) {
adaptor.addChild(root_1, stream_term.nextTree());
}
stream_term.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// AcslParser.g:910:7: LCURLY term RCURLY
{
LCURLY365=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_primaryExpression6367); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY365);
pushFollow(FOLLOW_term_in_primaryExpression6369);
term366=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term366.getTree());
RCURLY367=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_primaryExpression6371); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY367);
// AST REWRITE
// elements: term
// 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:9: -> ^( SET_SIMPLE term )
{
// AcslParser.g:911:11: ^( SET_SIMPLE term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SET_SIMPLE, "SET_SIMPLE"), root_1);
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// AcslParser.g:912:4: LPAREN term RPAREN
{
LPAREN368=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_primaryExpression6391); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN368);
pushFollow(FOLLOW_term_in_primaryExpression6393);
term369=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term369.getTree());
RPAREN370=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_primaryExpression6395); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN370);
// AST REWRITE
// elements: term
// 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();
// 913:5: -> ^( TERM_PARENTHESIZED term )
{
// AcslParser.g:913:8: ^( TERM_PARENTHESIZED term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TERM_PARENTHESIZED, "TERM_PARENTHESIZED"), root_1);
adaptor.addChild(root_1, stream_term.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
}
return retval;
}
// $ANTLR end "primaryExpression"
public static class constantExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "constantExpression"
// AcslParser.g:917:1: constantExpression : conditionalExpression ;
public final AcslParser.constantExpression_return constantExpression() throws RecognitionException {
AcslParser.constantExpression_return retval = new AcslParser.constantExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope conditionalExpression371 =null;
try {
// AcslParser.g:918:2: ( conditionalExpression )
// AcslParser.g:918:4: conditionalExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpression_in_constantExpression6425);
conditionalExpression371=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, conditionalExpression371.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
}
return retval;
}
// $ANTLR end "constantExpression"
public static class constant_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "constant"
// AcslParser.g:921:1: constant : ( INTEGER_CONSTANT | FLOATING_CONSTANT | CHARACTER_CONSTANT | true_key | false_key | result_key | nothing_key | ELLIPSIS | SELF | null_key );
public final AcslParser.constant_return constant() throws RecognitionException {
AcslParser.constant_return retval = new AcslParser.constant_return();
retval.start = input.LT(1);
Object root_0 = null;
Token INTEGER_CONSTANT372=null;
Token FLOATING_CONSTANT373=null;
Token CHARACTER_CONSTANT374=null;
Token ELLIPSIS379=null;
Token SELF380=null;
ParserRuleReturnScope true_key375 =null;
ParserRuleReturnScope false_key376 =null;
ParserRuleReturnScope result_key377 =null;
ParserRuleReturnScope nothing_key378 =null;
ParserRuleReturnScope null_key381 =null;
Object INTEGER_CONSTANT372_tree=null;
Object FLOATING_CONSTANT373_tree=null;
Object CHARACTER_CONSTANT374_tree=null;
Object ELLIPSIS379_tree=null;
Object SELF380_tree=null;
try {
// AcslParser.g:922:2: ( INTEGER_CONSTANT | FLOATING_CONSTANT | CHARACTER_CONSTANT | true_key | false_key | result_key | nothing_key | ELLIPSIS | SELF | null_key )
int alt85=10;
switch ( input.LA(1) ) {
case INTEGER_CONSTANT:
{
alt85=1;
}
break;
case FLOATING_CONSTANT:
{
alt85=2;
}
break;
case CHARACTER_CONSTANT:
{
alt85=3;
}
break;
case EXTENDED_IDENTIFIER:
{
int LA85_4 = input.LA(2);
if ( ((synpred146_AcslParser()&&(input.LT(1).getText().equals("\\true")))) ) {
alt85=4;
}
else if ( (((input.LT(1).getText().equals("\\false"))&&synpred147_AcslParser())) ) {
alt85=5;
}
else if ( (((input.LT(1).getText().equals("\\result"))&&synpred148_AcslParser())) ) {
alt85=6;
}
else if ( ((synpred149_AcslParser()&&(input.LT(1).getText().equals("\\nothing")))) ) {
alt85=7;
}
else if ( ((input.LT(1).getText().equals("\\null"))) ) {
alt85=10;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 85, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ELLIPSIS:
{
alt85=8;
}
break;
case SELF:
{
alt85=9;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 85, 0, input);
throw nvae;
}
switch (alt85) {
case 1 :
// AcslParser.g:922:4: INTEGER_CONSTANT
{
root_0 = (Object)adaptor.nil();
INTEGER_CONSTANT372=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_constant6437); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INTEGER_CONSTANT372_tree = (Object)adaptor.create(INTEGER_CONSTANT372);
adaptor.addChild(root_0, INTEGER_CONSTANT372_tree);
}
}
break;
case 2 :
// AcslParser.g:923:4: FLOATING_CONSTANT
{
root_0 = (Object)adaptor.nil();
FLOATING_CONSTANT373=(Token)match(input,FLOATING_CONSTANT,FOLLOW_FLOATING_CONSTANT_in_constant6442); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FLOATING_CONSTANT373_tree = (Object)adaptor.create(FLOATING_CONSTANT373);
adaptor.addChild(root_0, FLOATING_CONSTANT373_tree);
}
}
break;
case 3 :
// AcslParser.g:924:4: CHARACTER_CONSTANT
{
root_0 = (Object)adaptor.nil();
CHARACTER_CONSTANT374=(Token)match(input,CHARACTER_CONSTANT,FOLLOW_CHARACTER_CONSTANT_in_constant6447); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CHARACTER_CONSTANT374_tree = (Object)adaptor.create(CHARACTER_CONSTANT374);
adaptor.addChild(root_0, CHARACTER_CONSTANT374_tree);
}
}
break;
case 4 :
// AcslParser.g:925:4: true_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_true_key_in_constant6452);
true_key375=true_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, true_key375.getTree());
}
break;
case 5 :
// AcslParser.g:925:15: false_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_false_key_in_constant6456);
false_key376=false_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, false_key376.getTree());
}
break;
case 6 :
// AcslParser.g:925:28: result_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_result_key_in_constant6461);
result_key377=result_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, result_key377.getTree());
}
break;
case 7 :
// AcslParser.g:925:41: nothing_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_nothing_key_in_constant6465);
nothing_key378=nothing_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, nothing_key378.getTree());
}
break;
case 8 :
// AcslParser.g:925:55: ELLIPSIS
{
root_0 = (Object)adaptor.nil();
ELLIPSIS379=(Token)match(input,ELLIPSIS,FOLLOW_ELLIPSIS_in_constant6469); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ELLIPSIS379_tree = (Object)adaptor.create(ELLIPSIS379);
adaptor.addChild(root_0, ELLIPSIS379_tree);
}
}
break;
case 9 :
// AcslParser.g:926:7: SELF
{
root_0 = (Object)adaptor.nil();
SELF380=(Token)match(input,SELF,FOLLOW_SELF_in_constant6477); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SELF380_tree = (Object)adaptor.create(SELF380);
adaptor.addChild(root_0, SELF380_tree);
}
}
break;
case 10 :
// AcslParser.g:926:14: null_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_null_key_in_constant6481);
null_key381=null_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, null_key381.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
}
return retval;
}
// $ANTLR end "constant"
public static class bitimplies_op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "bitimplies_op"
// AcslParser.g:929:1: bitimplies_op : MINUSMINUS GT ;
public final AcslParser.bitimplies_op_return bitimplies_op() throws RecognitionException {
AcslParser.bitimplies_op_return retval = new AcslParser.bitimplies_op_return();
retval.start = input.LT(1);
Object root_0 = null;
Token MINUSMINUS382=null;
Token GT383=null;
Object MINUSMINUS382_tree=null;
Object GT383_tree=null;
try {
// AcslParser.g:930:2: ( MINUSMINUS GT )
// AcslParser.g:930:4: MINUSMINUS GT
{
root_0 = (Object)adaptor.nil();
MINUSMINUS382=(Token)match(input,MINUSMINUS,FOLLOW_MINUSMINUS_in_bitimplies_op6492); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MINUSMINUS382_tree = (Object)adaptor.create(MINUSMINUS382);
adaptor.addChild(root_0, MINUSMINUS382_tree);
}
GT383=(Token)match(input,GT,FOLLOW_GT_in_bitimplies_op6494); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GT383_tree = (Object)adaptor.create(GT383);
adaptor.addChild(root_0, GT383_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
}
return retval;
}
// $ANTLR end "bitimplies_op"
public static class bitequiv_op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "bitequiv_op"
// AcslParser.g:933:1: bitequiv_op : LT MINUSMINUS GT ;
public final AcslParser.bitequiv_op_return bitequiv_op() throws RecognitionException {
AcslParser.bitequiv_op_return retval = new AcslParser.bitequiv_op_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LT384=null;
Token MINUSMINUS385=null;
Token GT386=null;
Object LT384_tree=null;
Object MINUSMINUS385_tree=null;
Object GT386_tree=null;
try {
// AcslParser.g:934:2: ( LT MINUSMINUS GT )
// AcslParser.g:934:4: LT MINUSMINUS GT
{
root_0 = (Object)adaptor.nil();
LT384=(Token)match(input,LT,FOLLOW_LT_in_bitequiv_op6507); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LT384_tree = (Object)adaptor.create(LT384);
adaptor.addChild(root_0, LT384_tree);
}
MINUSMINUS385=(Token)match(input,MINUSMINUS,FOLLOW_MINUSMINUS_in_bitequiv_op6509); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MINUSMINUS385_tree = (Object)adaptor.create(MINUSMINUS385);
adaptor.addChild(root_0, MINUSMINUS385_tree);
}
GT386=(Token)match(input,GT,FOLLOW_GT_in_bitequiv_op6511); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GT386_tree = (Object)adaptor.create(GT386);
adaptor.addChild(root_0, GT386_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
}
return retval;
}
// $ANTLR end "bitequiv_op"
public static class unary_op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unary_op"
// AcslParser.g:937:1: unary_op : ( PLUS | SUB | NOT | TILDE | STAR | AMPERSAND );
public final AcslParser.unary_op_return unary_op() throws RecognitionException {
AcslParser.unary_op_return retval = new AcslParser.unary_op_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set387=null;
Object set387_tree=null;
try {
// AcslParser.g:938:5: ( PLUS | SUB | NOT | TILDE | STAR | AMPERSAND )
// AcslParser.g:
{
root_0 = (Object)adaptor.nil();
set387=input.LT(1);
if ( input.LA(1)==AMPERSAND||input.LA(1)==NOT||input.LA(1)==PLUS||input.LA(1)==STAR||input.LA(1)==SUB||input.LA(1)==TILDE ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set387));
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
}
return retval;
}
// $ANTLR end "unary_op"
public static class boolean_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "boolean_type"
// AcslParser.g:942:1: boolean_type :{...}? IDENTIFIER -> ^( BOOLEAN IDENTIFIER ) ;
public final AcslParser.boolean_type_return boolean_type() throws RecognitionException {
AcslParser.boolean_type_return retval = new AcslParser.boolean_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER388=null;
Object IDENTIFIER388_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:943:5: ({...}? IDENTIFIER -> ^( BOOLEAN IDENTIFIER ) )
// AcslParser.g:943:7: {...}? IDENTIFIER
{
if ( !((input.LT(1).getText().equals("boolean"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "boolean_type", "input.LT(1).getText().equals(\"boolean\")");
}
IDENTIFIER388=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_boolean_type6571); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER388);
// AST REWRITE
// elements: IDENTIFIER
// 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:9: -> ^( BOOLEAN IDENTIFIER )
{
// AcslParser.g:944:12: ^( BOOLEAN IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BOOLEAN, "BOOLEAN"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "boolean_type"
public static class integer_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "integer_type"
// AcslParser.g:947:1: integer_type :{...}? IDENTIFIER -> ^( INTEGER IDENTIFIER ) ;
public final AcslParser.integer_type_return integer_type() throws RecognitionException {
AcslParser.integer_type_return retval = new AcslParser.integer_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER389=null;
Object IDENTIFIER389_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:948:5: ({...}? IDENTIFIER -> ^( INTEGER IDENTIFIER ) )
// AcslParser.g:948:7: {...}? IDENTIFIER
{
if ( !((input.LT(1).getText().equals("integer"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "integer_type", "input.LT(1).getText().equals(\"integer\")");
}
IDENTIFIER389=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_integer_type6606); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER389);
// AST REWRITE
// elements: IDENTIFIER
// 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();
// 949:9: -> ^( INTEGER IDENTIFIER )
{
// AcslParser.g:949:12: ^( INTEGER IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INTEGER, "INTEGER"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "integer_type"
public static class real_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "real_type"
// AcslParser.g:952:1: real_type :{...}? IDENTIFIER -> ^( REAL_ACSL IDENTIFIER ) ;
public final AcslParser.real_type_return real_type() throws RecognitionException {
AcslParser.real_type_return retval = new AcslParser.real_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER390=null;
Object IDENTIFIER390_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:953:5: ({...}? IDENTIFIER -> ^( REAL_ACSL IDENTIFIER ) )
// AcslParser.g:953:7: {...}? IDENTIFIER
{
if ( !((input.LT(1).getText().equals("real"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "real_type", "input.LT(1).getText().equals(\"real\")");
}
IDENTIFIER390=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_real_type6641); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER390);
// AST REWRITE
// elements: IDENTIFIER
// 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();
// 954:9: -> ^( REAL_ACSL IDENTIFIER )
{
// AcslParser.g:954:12: ^( REAL_ACSL IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REAL_ACSL, "REAL_ACSL"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "real_type"
public static class alloc_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "alloc_key"
// AcslParser.g:959:1: alloc_key :{...}? IDENTIFIER ;
public final AcslParser.alloc_key_return alloc_key() throws RecognitionException {
AcslParser.alloc_key_return retval = new AcslParser.alloc_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER391=null;
Object IDENTIFIER391_tree=null;
try {
// AcslParser.g:960:5: ({...}? IDENTIFIER )
// AcslParser.g:960:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("allocates"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "alloc_key", "input.LT(1).getText().equals(\"allocates\")");
}
IDENTIFIER391=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_alloc_key6684); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER391_tree = (Object)adaptor.create(IDENTIFIER391);
adaptor.addChild(root_0, IDENTIFIER391_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
}
return retval;
}
// $ANTLR end "alloc_key"
public static class assigns_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assigns_key"
// AcslParser.g:963:1: assigns_key :{...}? IDENTIFIER ;
public final AcslParser.assigns_key_return assigns_key() throws RecognitionException {
AcslParser.assigns_key_return retval = new AcslParser.assigns_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER392=null;
Object IDENTIFIER392_tree=null;
try {
// AcslParser.g:964:5: ({...}? IDENTIFIER )
// AcslParser.g:964:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("assigns"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "assigns_key", "input.LT(1).getText().equals(\"assigns\")");
}
IDENTIFIER392=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_assigns_key6705); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER392_tree = (Object)adaptor.create(IDENTIFIER392);
adaptor.addChild(root_0, IDENTIFIER392_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
}
return retval;
}
// $ANTLR end "assigns_key"
public static class assumes_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assumes_key"
// AcslParser.g:967:1: assumes_key :{...}? IDENTIFIER ;
public final AcslParser.assumes_key_return assumes_key() throws RecognitionException {
AcslParser.assumes_key_return retval = new AcslParser.assumes_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER393=null;
Object IDENTIFIER393_tree=null;
try {
// AcslParser.g:968:5: ({...}? IDENTIFIER )
// AcslParser.g:968:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("assumes"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "assumes_key", "input.LT(1).getText().equals(\"assumes\")");
}
IDENTIFIER393=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_assumes_key6726); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER393_tree = (Object)adaptor.create(IDENTIFIER393);
adaptor.addChild(root_0, IDENTIFIER393_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
}
return retval;
}
// $ANTLR end "assumes_key"
public static class assert_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assert_key"
// AcslParser.g:971:1: assert_key :{...}? IDENTIFIER ;
public final AcslParser.assert_key_return assert_key() throws RecognitionException {
AcslParser.assert_key_return retval = new AcslParser.assert_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER394=null;
Object IDENTIFIER394_tree=null;
try {
// AcslParser.g:972:5: ({...}? IDENTIFIER )
// AcslParser.g:972:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("assert"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "assert_key", "input.LT(1).getText().equals(\"assert\")");
}
IDENTIFIER394=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_assert_key6746); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER394_tree = (Object)adaptor.create(IDENTIFIER394);
adaptor.addChild(root_0, IDENTIFIER394_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
}
return retval;
}
// $ANTLR end "assert_key"
public static class behaviors_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "behaviors_key"
// AcslParser.g:975:1: behaviors_key :{...}? IDENTIFIER ;
public final AcslParser.behaviors_key_return behaviors_key() throws RecognitionException {
AcslParser.behaviors_key_return retval = new AcslParser.behaviors_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER395=null;
Object IDENTIFIER395_tree=null;
try {
// AcslParser.g:976:5: ({...}? IDENTIFIER )
// AcslParser.g:976:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("behaviors"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "behaviors_key", "input.LT(1).getText().equals(\"behaviors\")");
}
IDENTIFIER395=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_behaviors_key6766); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER395_tree = (Object)adaptor.create(IDENTIFIER395);
adaptor.addChild(root_0, IDENTIFIER395_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
}
return retval;
}
// $ANTLR end "behaviors_key"
public static class behavior_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "behavior_key"
// AcslParser.g:979:1: behavior_key :{...}? IDENTIFIER ;
public final AcslParser.behavior_key_return behavior_key() throws RecognitionException {
AcslParser.behavior_key_return retval = new AcslParser.behavior_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER396=null;
Object IDENTIFIER396_tree=null;
try {
// AcslParser.g:980:5: ({...}? IDENTIFIER )
// AcslParser.g:980:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("behavior"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "behavior_key", "input.LT(1).getText().equals(\"behavior\")");
}
IDENTIFIER396=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_behavior_key6787); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER396_tree = (Object)adaptor.create(IDENTIFIER396);
adaptor.addChild(root_0, IDENTIFIER396_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
}
return retval;
}
// $ANTLR end "behavior_key"
public static class completes_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "completes_key"
// AcslParser.g:983:1: completes_key :{...}? IDENTIFIER ;
public final AcslParser.completes_key_return completes_key() throws RecognitionException {
AcslParser.completes_key_return retval = new AcslParser.completes_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER397=null;
Object IDENTIFIER397_tree=null;
try {
// AcslParser.g:984:5: ({...}? IDENTIFIER )
// AcslParser.g:984:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("complete"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "completes_key", "input.LT(1).getText().equals(\"complete\")");
}
IDENTIFIER397=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_completes_key6808); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER397_tree = (Object)adaptor.create(IDENTIFIER397);
adaptor.addChild(root_0, IDENTIFIER397_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
}
return retval;
}
// $ANTLR end "completes_key"
public static class decreases_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "decreases_key"
// AcslParser.g:987:1: decreases_key :{...}? IDENTIFIER ;
public final AcslParser.decreases_key_return decreases_key() throws RecognitionException {
AcslParser.decreases_key_return retval = new AcslParser.decreases_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER398=null;
Object IDENTIFIER398_tree=null;
try {
// AcslParser.g:988:5: ({...}? IDENTIFIER )
// AcslParser.g:988:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("decreases"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "decreases_key", "input.LT(1).getText().equals(\"decreases\")");
}
IDENTIFIER398=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_decreases_key6828); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER398_tree = (Object)adaptor.create(IDENTIFIER398);
adaptor.addChild(root_0, IDENTIFIER398_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
}
return retval;
}
// $ANTLR end "decreases_key"
public static class disjoint_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "disjoint_key"
// AcslParser.g:991:1: disjoint_key :{...}? IDENTIFIER ;
public final AcslParser.disjoint_key_return disjoint_key() throws RecognitionException {
AcslParser.disjoint_key_return retval = new AcslParser.disjoint_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER399=null;
Object IDENTIFIER399_tree=null;
try {
// AcslParser.g:992:5: ({...}? IDENTIFIER )
// AcslParser.g:992:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("disjoint"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "disjoint_key", "input.LT(1).getText().equals(\"disjoint\")");
}
IDENTIFIER399=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_disjoint_key6849); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER399_tree = (Object)adaptor.create(IDENTIFIER399);
adaptor.addChild(root_0, IDENTIFIER399_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
}
return retval;
}
// $ANTLR end "disjoint_key"
public static class ensures_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "ensures_key"
// AcslParser.g:995:1: ensures_key :{...}? IDENTIFIER ;
public final AcslParser.ensures_key_return ensures_key() throws RecognitionException {
AcslParser.ensures_key_return retval = new AcslParser.ensures_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER400=null;
Object IDENTIFIER400_tree=null;
try {
// AcslParser.g:996:5: ({...}? IDENTIFIER )
// AcslParser.g:996:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("ensures"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "ensures_key", "input.LT(1).getText().equals(\"ensures\")");
}
IDENTIFIER400=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_ensures_key6870); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER400_tree = (Object)adaptor.create(IDENTIFIER400);
adaptor.addChild(root_0, IDENTIFIER400_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
}
return retval;
}
// $ANTLR end "ensures_key"
public static class frees_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "frees_key"
// AcslParser.g:999:1: frees_key :{...}? IDENTIFIER ;
public final AcslParser.frees_key_return frees_key() throws RecognitionException {
AcslParser.frees_key_return retval = new AcslParser.frees_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER401=null;
Object IDENTIFIER401_tree=null;
try {
// AcslParser.g:1000:5: ({...}? IDENTIFIER )
// AcslParser.g:1000:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("frees"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "frees_key", "input.LT(1).getText().equals(\"frees\")");
}
IDENTIFIER401=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_frees_key6895); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER401_tree = (Object)adaptor.create(IDENTIFIER401);
adaptor.addChild(root_0, IDENTIFIER401_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
}
return retval;
}
// $ANTLR end "frees_key"
public static class focus_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "focus_key"
// AcslParser.g:1003:1: focus_key :{...}? IDENTIFIER ;
public final AcslParser.focus_key_return focus_key() throws RecognitionException {
AcslParser.focus_key_return retval = new AcslParser.focus_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER402=null;
Object IDENTIFIER402_tree=null;
try {
// AcslParser.g:1004:4: ({...}? IDENTIFIER )
// AcslParser.g:1004:6: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("focus"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "focus_key", "input.LT(1).getText().equals(\"focus\")");
}
IDENTIFIER402=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_focus_key6916); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER402_tree = (Object)adaptor.create(IDENTIFIER402);
adaptor.addChild(root_0, IDENTIFIER402_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
}
return retval;
}
// $ANTLR end "focus_key"
public static class ordered_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "ordered_key"
// AcslParser.g:1007:1: ordered_key :{...}? IDENTIFIER ;
public final AcslParser.ordered_key_return ordered_key() throws RecognitionException {
AcslParser.ordered_key_return retval = new AcslParser.ordered_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER403=null;
Object IDENTIFIER403_tree=null;
try {
// AcslParser.g:1008:5: ({...}? IDENTIFIER )
// AcslParser.g:1008:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("ordered"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "ordered_key", "input.LT(1).getText().equals(\"ordered\")");
}
IDENTIFIER403=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_ordered_key6934); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER403_tree = (Object)adaptor.create(IDENTIFIER403);
adaptor.addChild(root_0, IDENTIFIER403_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
}
return retval;
}
// $ANTLR end "ordered_key"
public static class invariant_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "invariant_key"
// AcslParser.g:1011:1: invariant_key :{...}? IDENTIFIER ;
public final AcslParser.invariant_key_return invariant_key() throws RecognitionException {
AcslParser.invariant_key_return retval = new AcslParser.invariant_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER404=null;
Object IDENTIFIER404_tree=null;
try {
// AcslParser.g:1012:5: ({...}? IDENTIFIER )
// AcslParser.g:1012:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("invariant"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "invariant_key", "input.LT(1).getText().equals(\"invariant\")");
}
IDENTIFIER404=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_invariant_key6953); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER404_tree = (Object)adaptor.create(IDENTIFIER404);
adaptor.addChild(root_0, IDENTIFIER404_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
}
return retval;
}
// $ANTLR end "invariant_key"
public static class loop_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_key"
// AcslParser.g:1015:1: loop_key :{...}? IDENTIFIER ;
public final AcslParser.loop_key_return loop_key() throws RecognitionException {
AcslParser.loop_key_return retval = new AcslParser.loop_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER405=null;
Object IDENTIFIER405_tree=null;
try {
// AcslParser.g:1016:2: ({...}? IDENTIFIER )
// AcslParser.g:1016:4: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("loop"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "loop_key", "input.LT(1).getText().equals(\"loop\")");
}
IDENTIFIER405=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_loop_key6970); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER405_tree = (Object)adaptor.create(IDENTIFIER405);
adaptor.addChild(root_0, IDENTIFIER405_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
}
return retval;
}
// $ANTLR end "loop_key"
public static class requires_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "requires_key"
// AcslParser.g:1019:1: requires_key :{...}? IDENTIFIER ;
public final AcslParser.requires_key_return requires_key() throws RecognitionException {
AcslParser.requires_key_return retval = new AcslParser.requires_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER406=null;
Object IDENTIFIER406_tree=null;
try {
// AcslParser.g:1020:5: ({...}? IDENTIFIER )
// AcslParser.g:1020:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("requires"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "requires_key", "input.LT(1).getText().equals(\"requires\")");
}
IDENTIFIER406=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_requires_key6990); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER406_tree = (Object)adaptor.create(IDENTIFIER406);
adaptor.addChild(root_0, IDENTIFIER406_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
}
return retval;
}
// $ANTLR end "requires_key"
public static class terminates_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "terminates_key"
// AcslParser.g:1023:1: terminates_key :{...}? IDENTIFIER ;
public final AcslParser.terminates_key_return terminates_key() throws RecognitionException {
AcslParser.terminates_key_return retval = new AcslParser.terminates_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER407=null;
Object IDENTIFIER407_tree=null;
try {
// AcslParser.g:1024:5: ({...}? IDENTIFIER )
// AcslParser.g:1024:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("terminates"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "terminates_key", "input.LT(1).getText().equals(\"terminates\")");
}
IDENTIFIER407=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_terminates_key7013); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER407_tree = (Object)adaptor.create(IDENTIFIER407);
adaptor.addChild(root_0, IDENTIFIER407_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
}
return retval;
}
// $ANTLR end "terminates_key"
public static class variant_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "variant_key"
// AcslParser.g:1027:1: variant_key :{...}? IDENTIFIER ;
public final AcslParser.variant_key_return variant_key() throws RecognitionException {
AcslParser.variant_key_return retval = new AcslParser.variant_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER408=null;
Object IDENTIFIER408_tree=null;
try {
// AcslParser.g:1028:5: ({...}? IDENTIFIER )
// AcslParser.g:1028:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("variant"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "variant_key", "input.LT(1).getText().equals(\"variant\")");
}
IDENTIFIER408=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_variant_key7035); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER408_tree = (Object)adaptor.create(IDENTIFIER408);
adaptor.addChild(root_0, IDENTIFIER408_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
}
return retval;
}
// $ANTLR end "variant_key"
public static class predicate_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "predicate_key"
// AcslParser.g:1031:1: predicate_key :{...}? IDENTIFIER ;
public final AcslParser.predicate_key_return predicate_key() throws RecognitionException {
AcslParser.predicate_key_return retval = new AcslParser.predicate_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER409=null;
Object IDENTIFIER409_tree=null;
try {
// AcslParser.g:1032:2: ({...}? IDENTIFIER )
// AcslParser.g:1032:4: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("predicate"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "predicate_key", "input.LT(1).getText().equals(\"predicate\")");
}
IDENTIFIER409=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_predicate_key7051); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER409_tree = (Object)adaptor.create(IDENTIFIER409);
adaptor.addChild(root_0, IDENTIFIER409_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
}
return retval;
}
// $ANTLR end "predicate_key"
public static class logic_specifier_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logic_specifier_key"
// AcslParser.g:1035:1: logic_specifier_key :{...}? IDENTIFIER ;
public final AcslParser.logic_specifier_key_return logic_specifier_key() throws RecognitionException {
AcslParser.logic_specifier_key_return retval = new AcslParser.logic_specifier_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER410=null;
Object IDENTIFIER410_tree=null;
try {
// AcslParser.g:1036:2: ({...}? IDENTIFIER )
// AcslParser.g:1036:4: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("logic"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "logic_specifier_key", "input.LT(1).getText().equals(\"logic\")");
}
IDENTIFIER410=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_logic_specifier_key7064); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER410_tree = (Object)adaptor.create(IDENTIFIER410);
adaptor.addChild(root_0, IDENTIFIER410_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
}
return retval;
}
// $ANTLR end "logic_specifier_key"
public static class empty_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "empty_key"
// AcslParser.g:1041:1: empty_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.empty_key_return empty_key() throws RecognitionException {
AcslParser.empty_key_return retval = new AcslParser.empty_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER411=null;
Object EXTENDED_IDENTIFIER411_tree=null;
try {
// AcslParser.g:1042:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1042:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\empty"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "empty_key", "input.LT(1).getText().equals(\"\\\\empty\")");
}
EXTENDED_IDENTIFIER411=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_empty_key7084); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER411_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER411);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER411_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
}
return retval;
}
// $ANTLR end "empty_key"
public static class exists_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "exists_key"
// AcslParser.g:1045:1: exists_key :{...}? EXTENDED_IDENTIFIER -> ^( EXISTS_ACSL EXTENDED_IDENTIFIER ) ;
public final AcslParser.exists_key_return exists_key() throws RecognitionException {
AcslParser.exists_key_return retval = new AcslParser.exists_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER412=null;
Object EXTENDED_IDENTIFIER412_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1046:5: ({...}? EXTENDED_IDENTIFIER -> ^( EXISTS_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1046:7: {...}? EXTENDED_IDENTIFIER
{
if ( !((input.LT(1).getText().equals("\\exists"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "exists_key", "input.LT(1).getText().equals(\"\\\\exists\")");
}
EXTENDED_IDENTIFIER412=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_exists_key7103); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER412);
// AST REWRITE
// elements: EXTENDED_IDENTIFIER
// 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();
// 1047:5: -> ^( EXISTS_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1047:8: ^( EXISTS_ACSL EXTENDED_IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXISTS_ACSL, "EXISTS_ACSL"), root_1);
adaptor.addChild(root_1, stream_EXTENDED_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "exists_key"
public static class false_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "false_key"
// AcslParser.g:1050:1: false_key :{...}? EXTENDED_IDENTIFIER -> ^( FALSE_ACSL EXTENDED_IDENTIFIER ) ;
public final AcslParser.false_key_return false_key() throws RecognitionException {
AcslParser.false_key_return retval = new AcslParser.false_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER413=null;
Object EXTENDED_IDENTIFIER413_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1051:5: ({...}? EXTENDED_IDENTIFIER -> ^( FALSE_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1051:7: {...}? EXTENDED_IDENTIFIER
{
if ( !((input.LT(1).getText().equals("\\false"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "false_key", "input.LT(1).getText().equals(\"\\\\false\")");
}
EXTENDED_IDENTIFIER413=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_false_key7134); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER413);
// AST REWRITE
// elements: EXTENDED_IDENTIFIER
// 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();
// 1052:5: -> ^( FALSE_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1052:8: ^( FALSE_ACSL EXTENDED_IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FALSE_ACSL, "FALSE_ACSL"), root_1);
adaptor.addChild(root_1, stream_EXTENDED_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "false_key"
public static class forall_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "forall_key"
// AcslParser.g:1055:1: forall_key :{...}? EXTENDED_IDENTIFIER -> ^( FORALL_ACSL EXTENDED_IDENTIFIER ) ;
public final AcslParser.forall_key_return forall_key() throws RecognitionException {
AcslParser.forall_key_return retval = new AcslParser.forall_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER414=null;
Object EXTENDED_IDENTIFIER414_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1056:5: ({...}? EXTENDED_IDENTIFIER -> ^( FORALL_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1056:7: {...}? EXTENDED_IDENTIFIER
{
if ( !((input.LT(1).getText().equals("\\forall"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "forall_key", "input.LT(1).getText().equals(\"\\\\forall\")");
}
EXTENDED_IDENTIFIER414=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_forall_key7165); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER414);
// AST REWRITE
// elements: EXTENDED_IDENTIFIER
// 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();
// 1057:5: -> ^( FORALL_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1057:8: ^( FORALL_ACSL EXTENDED_IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FORALL_ACSL, "FORALL_ACSL"), root_1);
adaptor.addChild(root_1, stream_EXTENDED_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "forall_key"
public static class inter_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "inter_key"
// AcslParser.g:1060:1: inter_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.inter_key_return inter_key() throws RecognitionException {
AcslParser.inter_key_return retval = new AcslParser.inter_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER415=null;
Object EXTENDED_IDENTIFIER415_tree=null;
try {
// AcslParser.g:1061:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1061:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\inter"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "inter_key", "input.LT(1).getText().equals(\"\\\\inter\")");
}
EXTENDED_IDENTIFIER415=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_inter_key7196); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER415_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER415);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER415_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
}
return retval;
}
// $ANTLR end "inter_key"
public static class let_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "let_key"
// AcslParser.g:1064:1: let_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.let_key_return let_key() throws RecognitionException {
AcslParser.let_key_return retval = new AcslParser.let_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER416=null;
Object EXTENDED_IDENTIFIER416_tree=null;
try {
// AcslParser.g:1065:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1065:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\let"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "let_key", "input.LT(1).getText().equals(\"\\\\let\")");
}
EXTENDED_IDENTIFIER416=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_let_key7215); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER416_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER416);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER416_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
}
return retval;
}
// $ANTLR end "let_key"
public static class nothing_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "nothing_key"
// AcslParser.g:1068:1: nothing_key :{...}? EXTENDED_IDENTIFIER -> ^( NOTHING EXTENDED_IDENTIFIER ) ;
public final AcslParser.nothing_key_return nothing_key() throws RecognitionException {
AcslParser.nothing_key_return retval = new AcslParser.nothing_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER417=null;
Object EXTENDED_IDENTIFIER417_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1069:5: ({...}? EXTENDED_IDENTIFIER -> ^( NOTHING EXTENDED_IDENTIFIER ) )
// AcslParser.g:1069:7: {...}? EXTENDED_IDENTIFIER
{
if ( !((input.LT(1).getText().equals("\\nothing"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "nothing_key", "input.LT(1).getText().equals(\"\\\\nothing\")");
}
EXTENDED_IDENTIFIER417=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_nothing_key7234); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER417);
// AST REWRITE
// elements: EXTENDED_IDENTIFIER
// 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();
// 1070:5: -> ^( NOTHING EXTENDED_IDENTIFIER )
{
// AcslParser.g:1070:8: ^( NOTHING EXTENDED_IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NOTHING, "NOTHING"), root_1);
adaptor.addChild(root_1, stream_EXTENDED_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "nothing_key"
public static class null_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "null_key"
// AcslParser.g:1073:1: null_key :{...}? EXTENDED_IDENTIFIER -> ^( NULL_ACSL EXTENDED_IDENTIFIER ) ;
public final AcslParser.null_key_return null_key() throws RecognitionException {
AcslParser.null_key_return retval = new AcslParser.null_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER418=null;
Object EXTENDED_IDENTIFIER418_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1074:5: ({...}? EXTENDED_IDENTIFIER -> ^( NULL_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1074:7: {...}? EXTENDED_IDENTIFIER
{
if ( !((input.LT(1).getText().equals("\\null"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "null_key", "input.LT(1).getText().equals(\"\\\\null\")");
}
EXTENDED_IDENTIFIER418=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_null_key7265); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER418);
// AST REWRITE
// elements: EXTENDED_IDENTIFIER
// 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();
// 1075:5: -> ^( NULL_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1075:8: ^( NULL_ACSL EXTENDED_IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NULL_ACSL, "NULL_ACSL"), root_1);
adaptor.addChild(root_1, stream_EXTENDED_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "null_key"
public static class old_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "old_key"
// AcslParser.g:1078:1: old_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.old_key_return old_key() throws RecognitionException {
AcslParser.old_key_return retval = new AcslParser.old_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER419=null;
Object EXTENDED_IDENTIFIER419_tree=null;
try {
// AcslParser.g:1079:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1079:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\old"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "old_key", "input.LT(1).getText().equals(\"\\\\old\")");
}
EXTENDED_IDENTIFIER419=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_old_key7296); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER419_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER419);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER419_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
}
return retval;
}
// $ANTLR end "old_key"
public static class result_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "result_key"
// AcslParser.g:1082:1: result_key :{...}? EXTENDED_IDENTIFIER -> ^( RESULT_ACSL EXTENDED_IDENTIFIER ) ;
public final AcslParser.result_key_return result_key() throws RecognitionException {
AcslParser.result_key_return retval = new AcslParser.result_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER420=null;
Object EXTENDED_IDENTIFIER420_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1083:5: ({...}? EXTENDED_IDENTIFIER -> ^( RESULT_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1083:7: {...}? EXTENDED_IDENTIFIER
{
if ( !((input.LT(1).getText().equals("\\result"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "result_key", "input.LT(1).getText().equals(\"\\\\result\")");
}
EXTENDED_IDENTIFIER420=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_result_key7315); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER420);
// AST REWRITE
// elements: EXTENDED_IDENTIFIER
// 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();
// 1084:5: -> ^( RESULT_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1084:8: ^( RESULT_ACSL EXTENDED_IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(RESULT_ACSL, "RESULT_ACSL"), root_1);
adaptor.addChild(root_1, stream_EXTENDED_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "result_key"
public static class true_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "true_key"
// AcslParser.g:1087:1: true_key :{...}? EXTENDED_IDENTIFIER -> ^( TRUE_ACSL EXTENDED_IDENTIFIER ) ;
public final AcslParser.true_key_return true_key() throws RecognitionException {
AcslParser.true_key_return retval = new AcslParser.true_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER421=null;
Object EXTENDED_IDENTIFIER421_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1088:5: ({...}? EXTENDED_IDENTIFIER -> ^( TRUE_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1088:7: {...}? EXTENDED_IDENTIFIER
{
if ( !((input.LT(1).getText().equals("\\true"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "true_key", "input.LT(1).getText().equals(\"\\\\true\")");
}
EXTENDED_IDENTIFIER421=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_true_key7346); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER421);
// AST REWRITE
// elements: EXTENDED_IDENTIFIER
// 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();
// 1089:5: -> ^( TRUE_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1089:8: ^( TRUE_ACSL EXTENDED_IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TRUE_ACSL, "TRUE_ACSL"), root_1);
adaptor.addChild(root_1, stream_EXTENDED_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "true_key"
public static class union_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "union_key"
// AcslParser.g:1092:1: union_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.union_key_return union_key() throws RecognitionException {
AcslParser.union_key_return retval = new AcslParser.union_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER422=null;
Object EXTENDED_IDENTIFIER422_tree=null;
try {
// AcslParser.g:1093:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1093:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\union"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "union_key", "input.LT(1).getText().equals(\"\\\\union\")");
}
EXTENDED_IDENTIFIER422=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_union_key7377); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER422_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER422);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER422_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
}
return retval;
}
// $ANTLR end "union_key"
public static class valid_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "valid_key"
// AcslParser.g:1096:1: valid_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.valid_key_return valid_key() throws RecognitionException {
AcslParser.valid_key_return retval = new AcslParser.valid_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER423=null;
Object EXTENDED_IDENTIFIER423_tree=null;
try {
// AcslParser.g:1097:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1097:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\valid"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "valid_key", "input.LT(1).getText().equals(\"\\\\valid\")");
}
EXTENDED_IDENTIFIER423=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_valid_key7396); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER423_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER423);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER423_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
}
return retval;
}
// $ANTLR end "valid_key"
public static class with_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "with_key"
// AcslParser.g:1100:1: with_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.with_key_return with_key() throws RecognitionException {
AcslParser.with_key_return retval = new AcslParser.with_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER424=null;
Object EXTENDED_IDENTIFIER424_tree=null;
try {
// AcslParser.g:1101:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1101:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\with"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "with_key", "input.LT(1).getText().equals(\"\\\\with\")");
}
EXTENDED_IDENTIFIER424=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_with_key7415); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER424_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER424);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER424_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
}
return retval;
}
// $ANTLR end "with_key"
public static class executeswhen_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "executeswhen_key"
// AcslParser.g:1105:1: executeswhen_key :{...}? IDENTIFIER ;
public final AcslParser.executeswhen_key_return executeswhen_key() throws RecognitionException {
AcslParser.executeswhen_key_return retval = new AcslParser.executeswhen_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER425=null;
Object IDENTIFIER425_tree=null;
try {
// AcslParser.g:1106:5: ({...}? IDENTIFIER )
// AcslParser.g:1106:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("executes_when"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "executeswhen_key", "input.LT(1).getText().equals(\"executes_when\")");
}
IDENTIFIER425=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_executeswhen_key7436); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER425_tree = (Object)adaptor.create(IDENTIFIER425);
adaptor.addChild(root_0, IDENTIFIER425_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
}
return retval;
}
// $ANTLR end "executeswhen_key"
public static class pure_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "pure_key"
// AcslParser.g:1109:1: pure_key :{...}? IDENTIFIER -> ^( PURE IDENTIFIER ) ;
public final AcslParser.pure_key_return pure_key() throws RecognitionException {
AcslParser.pure_key_return retval = new AcslParser.pure_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER426=null;
Object IDENTIFIER426_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:1110:5: ({...}? IDENTIFIER -> ^( PURE IDENTIFIER ) )
// AcslParser.g:1110:7: {...}? IDENTIFIER
{
if ( !((input.LT(1).getText().equals("pure"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "pure_key", "input.LT(1).getText().equals(\"pure\")");
}
IDENTIFIER426=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_pure_key7456); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER426);
// AST REWRITE
// elements: IDENTIFIER
// 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();
// 1111:5: -> ^( PURE IDENTIFIER )
{
// AcslParser.g:1111:8: ^( PURE IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PURE, "PURE"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "pure_key"
public static class reads_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "reads_key"
// AcslParser.g:1114:1: reads_key :{...}? IDENTIFIER ;
public final AcslParser.reads_key_return reads_key() throws RecognitionException {
AcslParser.reads_key_return retval = new AcslParser.reads_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER427=null;
Object IDENTIFIER427_tree=null;
try {
// AcslParser.g:1115:5: ({...}? IDENTIFIER )
// AcslParser.g:1115:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("reads"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "reads_key", "input.LT(1).getText().equals(\"reads\")");
}
IDENTIFIER427=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_reads_key7487); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER427_tree = (Object)adaptor.create(IDENTIFIER427);
adaptor.addChild(root_0, IDENTIFIER427_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
}
return retval;
}
// $ANTLR end "reads_key"
public static class access_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "access_key"
// AcslParser.g:1120:1: access_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.access_key_return access_key() throws RecognitionException {
AcslParser.access_key_return retval = new AcslParser.access_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER428=null;
Object EXTENDED_IDENTIFIER428_tree=null;
try {
// AcslParser.g:1121:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1121:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\access"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "access_key", "input.LT(1).getText().equals(\"\\\\access\")");
}
EXTENDED_IDENTIFIER428=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_access_key7509); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER428_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER428);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER428_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
}
return retval;
}
// $ANTLR end "access_key"
public static class anyact_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "anyact_key"
// AcslParser.g:1125:1: anyact_key :{...}? EXTENDED_IDENTIFIER -> ^( ANYACT EXTENDED_IDENTIFIER ) ;
public final AcslParser.anyact_key_return anyact_key() throws RecognitionException {
AcslParser.anyact_key_return retval = new AcslParser.anyact_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER429=null;
Object EXTENDED_IDENTIFIER429_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1126:5: ({...}? EXTENDED_IDENTIFIER -> ^( ANYACT EXTENDED_IDENTIFIER ) )
// AcslParser.g:1126:7: {...}? EXTENDED_IDENTIFIER
{
if ( !((input.LT(1).getText().equals("\\anyact"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "anyact_key", "input.LT(1).getText().equals(\"\\\\anyact\")");
}
EXTENDED_IDENTIFIER429=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_anyact_key7529); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER429);
// AST REWRITE
// elements: EXTENDED_IDENTIFIER
// 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();
// 1127:5: -> ^( ANYACT EXTENDED_IDENTIFIER )
{
// AcslParser.g:1127:8: ^( ANYACT EXTENDED_IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ANYACT, "ANYACT"), root_1);
adaptor.addChild(root_1, stream_EXTENDED_IDENTIFIER.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
}
return retval;
}
// $ANTLR end "anyact_key"
public static class call_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "call_key"
// AcslParser.g:1131:1: call_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.call_key_return call_key() throws RecognitionException {
AcslParser.call_key_return retval = new AcslParser.call_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER430=null;
Object EXTENDED_IDENTIFIER430_tree=null;
try {
// AcslParser.g:1132:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1132:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\call"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "call_key", "input.LT(1).getText().equals(\"\\\\call\")");
}
EXTENDED_IDENTIFIER430=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_call_key7561); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER430_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER430);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER430_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
}
return retval;
}
// $ANTLR end "call_key"
public static class dependson_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "dependson_key"
// AcslParser.g:1135:1: dependson_key :{...}? IDENTIFIER ;
public final AcslParser.dependson_key_return dependson_key() throws RecognitionException {
AcslParser.dependson_key_return retval = new AcslParser.dependson_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER431=null;
Object IDENTIFIER431_tree=null;
try {
// AcslParser.g:1136:5: ({...}? IDENTIFIER )
// AcslParser.g:1136:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("depends_on"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "dependson_key", "input.LT(1).getText().equals(\"depends_on\")");
}
IDENTIFIER431=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_dependson_key7580); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER431_tree = (Object)adaptor.create(IDENTIFIER431);
adaptor.addChild(root_0, IDENTIFIER431_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
}
return retval;
}
// $ANTLR end "dependson_key"
public static class object_of_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "object_of_key"
// AcslParser.g:1139:1: object_of_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.object_of_key_return object_of_key() throws RecognitionException {
AcslParser.object_of_key_return retval = new AcslParser.object_of_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER432=null;
Object EXTENDED_IDENTIFIER432_tree=null;
try {
// AcslParser.g:1140:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1140:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\object_of"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "object_of_key", "input.LT(1).getText().equals(\"\\\\object_of\")");
}
EXTENDED_IDENTIFIER432=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_object_of_key7603); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER432_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER432);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER432_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
}
return retval;
}
// $ANTLR end "object_of_key"
public static class read_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "read_key"
// AcslParser.g:1143:1: read_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.read_key_return read_key() throws RecognitionException {
AcslParser.read_key_return retval = new AcslParser.read_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER433=null;
Object EXTENDED_IDENTIFIER433_tree=null;
try {
// AcslParser.g:1144:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1144:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\read"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "read_key", "input.LT(1).getText().equals(\"\\\\read\")");
}
EXTENDED_IDENTIFIER433=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_read_key7623); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER433_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER433);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER433_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
}
return retval;
}
// $ANTLR end "read_key"
public static class region_of_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "region_of_key"
// AcslParser.g:1148:1: region_of_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.region_of_key_return region_of_key() throws RecognitionException {
AcslParser.region_of_key_return retval = new AcslParser.region_of_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER434=null;
Object EXTENDED_IDENTIFIER434_tree=null;
try {
// AcslParser.g:1149:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1149:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\region_of"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "region_of_key", "input.LT(1).getText().equals(\"\\\\region_of\")");
}
EXTENDED_IDENTIFIER434=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_region_of_key7647); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER434_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER434);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER434_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
}
return retval;
}
// $ANTLR end "region_of_key"
public static class write_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "write_key"
// AcslParser.g:1152:1: write_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.write_key_return write_key() throws RecognitionException {
AcslParser.write_key_return retval = new AcslParser.write_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER435=null;
Object EXTENDED_IDENTIFIER435_tree=null;
try {
// AcslParser.g:1153:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1153:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\write"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "write_key", "input.LT(1).getText().equals(\"\\\\write\")");
}
EXTENDED_IDENTIFIER435=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_write_key7666); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER435_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER435);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER435_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
}
return retval;
}
// $ANTLR end "write_key"
public static class lambda_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "lambda_key"
// AcslParser.g:1158:1: lambda_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.lambda_key_return lambda_key() throws RecognitionException {
AcslParser.lambda_key_return retval = new AcslParser.lambda_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER436=null;
Object EXTENDED_IDENTIFIER436_tree=null;
try {
// AcslParser.g:1159:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1159:4: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\lambda"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "lambda_key", "input.LT(1).getText().equals(\"\\\\lambda\")");
}
EXTENDED_IDENTIFIER436=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_lambda_key7685); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER436_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER436);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER436_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
}
return retval;
}
// $ANTLR end "lambda_key"
public static class sum_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "sum_key"
// AcslParser.g:1162:1: sum_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.sum_key_return sum_key() throws RecognitionException {
AcslParser.sum_key_return retval = new AcslParser.sum_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER437=null;
Object EXTENDED_IDENTIFIER437_tree=null;
try {
// AcslParser.g:1163:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1163:4: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\sum"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "sum_key", "input.LT(1).getText().equals(\"\\\\sum\")");
}
EXTENDED_IDENTIFIER437=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_sum_key7699); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER437_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER437);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER437_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
}
return retval;
}
// $ANTLR end "sum_key"
public static class max_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "max_key"
// AcslParser.g:1166:1: max_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.max_key_return max_key() throws RecognitionException {
AcslParser.max_key_return retval = new AcslParser.max_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER438=null;
Object EXTENDED_IDENTIFIER438_tree=null;
try {
// AcslParser.g:1167:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1167:4: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\max"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "max_key", "input.LT(1).getText().equals(\"\\\\max\")");
}
EXTENDED_IDENTIFIER438=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_max_key7712); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER438_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER438);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER438_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
}
return retval;
}
// $ANTLR end "max_key"
public static class min_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "min_key"
// AcslParser.g:1170:1: min_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.min_key_return min_key() throws RecognitionException {
AcslParser.min_key_return retval = new AcslParser.min_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER439=null;
Object EXTENDED_IDENTIFIER439_tree=null;
try {
// AcslParser.g:1171:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1171:4: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\min"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "min_key", "input.LT(1).getText().equals(\"\\\\min\")");
}
EXTENDED_IDENTIFIER439=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_min_key7726); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER439_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER439);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER439_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
}
return retval;
}
// $ANTLR end "min_key"
public static class product_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "product_key"
// AcslParser.g:1174:1: product_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.product_key_return product_key() throws RecognitionException {
AcslParser.product_key_return retval = new AcslParser.product_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER440=null;
Object EXTENDED_IDENTIFIER440_tree=null;
try {
// AcslParser.g:1175:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1175:4: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\product"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "product_key", "input.LT(1).getText().equals(\"\\\\product\")");
}
EXTENDED_IDENTIFIER440=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_product_key7739); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER440_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER440);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER440_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
}
return retval;
}
// $ANTLR end "product_key"
public static class numof_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "numof_key"
// AcslParser.g:1178:1: numof_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.numof_key_return numof_key() throws RecognitionException {
AcslParser.numof_key_return retval = new AcslParser.numof_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER441=null;
Object EXTENDED_IDENTIFIER441_tree=null;
try {
// AcslParser.g:1179:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1179:4: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\numof"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "numof_key", "input.LT(1).getText().equals(\"\\\\numof\")");
}
EXTENDED_IDENTIFIER441=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_numof_key7753); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER441_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER441);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER441_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
}
return retval;
}
// $ANTLR end "numof_key"
// $ANTLR start synpred1_AcslParser
public final void synpred1_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:144:7: ( loop_contract )
// AcslParser.g:144:7: loop_contract
{
pushFollow(FOLLOW_loop_contract_in_synpred1_AcslParser856);
loop_contract();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred1_AcslParser
// $ANTLR start synpred2_AcslParser
public final void synpred2_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:145:7: ( function_contract )
// AcslParser.g:145:7: function_contract
{
pushFollow(FOLLOW_function_contract_in_synpred2_AcslParser865);
function_contract();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred2_AcslParser
// $ANTLR start synpred3_AcslParser
public final void synpred3_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:146:7: ( logic_function_contract )
// AcslParser.g:146:7: logic_function_contract
{
pushFollow(FOLLOW_logic_function_contract_in_synpred3_AcslParser874);
logic_function_contract();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred3_AcslParser
// $ANTLR start synpred4_AcslParser
public final void synpred4_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:147:7: ( assert_contract )
// AcslParser.g:147:7: assert_contract
{
pushFollow(FOLLOW_assert_contract_in_synpred4_AcslParser882);
assert_contract();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred4_AcslParser
// $ANTLR start synpred5_AcslParser
public final void synpred5_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:148:7: ( ordered_contract )
// AcslParser.g:148:7: ordered_contract
{
pushFollow(FOLLOW_ordered_contract_in_synpred5_AcslParser890);
ordered_contract();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred5_AcslParser
// $ANTLR start synpred6_AcslParser
public final void synpred6_AcslParser_fragment() throws RecognitionException {
List<Object> list_lc=null;
RuleReturnScope lc = null;
// AcslParser.g:159:9: (lc+= loop_clause )
// AcslParser.g:159:9: lc+= loop_clause
{
pushFollow(FOLLOW_loop_clause_in_synpred6_AcslParser951);
lc=loop_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred6_AcslParser
// $ANTLR start synpred8_AcslParser
public final void synpred8_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope lv =null;
// AcslParser.g:159:45: (lv= loop_variant )
// AcslParser.g:159:45: lv= loop_variant
{
pushFollow(FOLLOW_loop_variant_in_synpred8_AcslParser961);
lv=loop_variant();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred8_AcslParser
// $ANTLR start synpred10_AcslParser
public final void synpred10_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:164:7: ( loop_invariant SEMI )
// AcslParser.g:164:7: loop_invariant SEMI
{
pushFollow(FOLLOW_loop_invariant_in_synpred10_AcslParser1013);
loop_invariant();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred10_AcslParser1015); if (state.failed) return;
}
}
// $ANTLR end synpred10_AcslParser
// $ANTLR start synpred11_AcslParser
public final void synpred11_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:166:7: ( loop_assigns SEMI )
// AcslParser.g:166:7: loop_assigns SEMI
{
pushFollow(FOLLOW_loop_assigns_in_synpred11_AcslParser1038);
loop_assigns();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred11_AcslParser1040); if (state.failed) return;
}
}
// $ANTLR end synpred11_AcslParser
// $ANTLR start synpred13_AcslParser
public final void synpred13_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:183:7: ( loop_key alloc_key argumentExpressionList ( COMMA term )? )
// AcslParser.g:183:7: loop_key alloc_key argumentExpressionList ( COMMA term )?
{
pushFollow(FOLLOW_loop_key_in_synpred13_AcslParser1171);
loop_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_alloc_key_in_synpred13_AcslParser1173);
alloc_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred13_AcslParser1175);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
// AcslParser.g:183:49: ( COMMA term )?
int alt86=2;
int LA86_0 = input.LA(1);
if ( (LA86_0==COMMA) ) {
alt86=1;
}
switch (alt86) {
case 1 :
// AcslParser.g:183:50: COMMA term
{
match(input,COMMA,FOLLOW_COMMA_in_synpred13_AcslParser1178); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred13_AcslParser1180);
term();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred13_AcslParser
// $ANTLR start synpred14_AcslParser
public final void synpred14_AcslParser_fragment() throws RecognitionException {
List<Object> list_lc=null;
RuleReturnScope lc = null;
// AcslParser.g:190:33: (lc+= loop_clause )
// AcslParser.g:190:33: lc+= loop_clause
{
pushFollow(FOLLOW_loop_clause_in_synpred14_AcslParser1254);
lc=loop_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred14_AcslParser
// $ANTLR start synpred15_AcslParser
public final void synpred15_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:195:7: ( loop_key variant_key term )
// AcslParser.g:195:7: loop_key variant_key term
{
pushFollow(FOLLOW_loop_key_in_synpred15_AcslParser1292);
loop_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_variant_key_in_synpred15_AcslParser1294);
variant_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred15_AcslParser1296);
term();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred15_AcslParser
// $ANTLR start synpred17_AcslParser
public final void synpred17_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:210:7: ( PLUS LCURLY rangeExpression RCURLY )
// AcslParser.g:210:7: PLUS LCURLY rangeExpression RCURLY
{
match(input,PLUS,FOLLOW_PLUS_in_synpred17_AcslParser1433); if (state.failed) return;
match(input,LCURLY,FOLLOW_LCURLY_in_synpred17_AcslParser1435); if (state.failed) return;
pushFollow(FOLLOW_rangeExpression_in_synpred17_AcslParser1437);
rangeExpression();
state._fsp--;
if (state.failed) return;
match(input,RCURLY,FOLLOW_RCURLY_in_synpred17_AcslParser1439); if (state.failed) return;
}
}
// $ANTLR end synpred17_AcslParser
// $ANTLR start synpred18_AcslParser
public final void synpred18_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:212:7: ( PLUS unaryExpression )
// AcslParser.g:212:7: PLUS unaryExpression
{
match(input,PLUS,FOLLOW_PLUS_in_synpred18_AcslParser1462); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_synpred18_AcslParser1464);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred18_AcslParser
// $ANTLR start synpred21_AcslParser
public final void synpred21_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:247:7: ( pure_function )
// AcslParser.g:247:7: pure_function
{
pushFollow(FOLLOW_pure_function_in_synpred21_AcslParser1730);
pure_function();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred21_AcslParser
// $ANTLR start synpred24_AcslParser
public final void synpred24_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:274:7: ( LPAREN binders RPAREN ASSIGN term )
// AcslParser.g:274:7: LPAREN binders RPAREN ASSIGN term
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred24_AcslParser1926); if (state.failed) return;
pushFollow(FOLLOW_binders_in_synpred24_AcslParser1928);
binders();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred24_AcslParser1930); if (state.failed) return;
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred24_AcslParser1932); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred24_AcslParser1934);
term();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred24_AcslParser
// $ANTLR start synpred25_AcslParser
public final void synpred25_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:276:7: ( LPAREN binders RPAREN )
// AcslParser.g:276:7: LPAREN binders RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred25_AcslParser1960); if (state.failed) return;
pushFollow(FOLLOW_binders_in_synpred25_AcslParser1962);
binders();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred25_AcslParser1964); if (state.failed) return;
}
}
// $ANTLR end synpred25_AcslParser
// $ANTLR start synpred26_AcslParser
public final void synpred26_AcslParser_fragment() throws RecognitionException {
List<Object> list_f=null;
RuleReturnScope f = null;
// AcslParser.g:289:8: (f+= function_clause )
// AcslParser.g:289:8: f+= function_clause
{
pushFollow(FOLLOW_function_clause_in_synpred26_AcslParser2054);
f=function_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred26_AcslParser
// $ANTLR start synpred29_AcslParser
public final void synpred29_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:296:28: ( completeness_clause_block )
// AcslParser.g:296:28: completeness_clause_block
{
pushFollow(FOLLOW_completeness_clause_block_in_synpred29_AcslParser2127);
completeness_clause_block();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred29_AcslParser
// $ANTLR start synpred30_AcslParser
public final void synpred30_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:300:7: ( requires_clause SEMI )
// AcslParser.g:300:7: requires_clause SEMI
{
pushFollow(FOLLOW_requires_clause_in_synpred30_AcslParser2145);
requires_clause();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred30_AcslParser2147); if (state.failed) return;
}
}
// $ANTLR end synpred30_AcslParser
// $ANTLR start synpred31_AcslParser
public final void synpred31_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:301:7: ( terminates_clause SEMI )
// AcslParser.g:301:7: terminates_clause SEMI
{
pushFollow(FOLLOW_terminates_clause_in_synpred31_AcslParser2162);
terminates_clause();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred31_AcslParser2164); if (state.failed) return;
}
}
// $ANTLR end synpred31_AcslParser
// $ANTLR start synpred36_AcslParser
public final void synpred36_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:344:7: ( pointer )
// AcslParser.g:344:7: pointer
{
pushFollow(FOLLOW_pointer_in_synpred36_AcslParser2485);
pointer();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred36_AcslParser
// $ANTLR start synpred37_AcslParser
public final void synpred37_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:346:7: ( directAbstractDeclarator )
// AcslParser.g:346:7: directAbstractDeclarator
{
pushFollow(FOLLOW_directAbstractDeclarator_in_synpred37_AcslParser2509);
directAbstractDeclarator();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred37_AcslParser
// $ANTLR start synpred38_AcslParser
public final void synpred38_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:348:7: ( pointer directAbstractDeclarator )
// AcslParser.g:348:7: pointer directAbstractDeclarator
{
pushFollow(FOLLOW_pointer_in_synpred38_AcslParser2533);
pointer();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_directAbstractDeclarator_in_synpred38_AcslParser2535);
directAbstractDeclarator();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred38_AcslParser
// $ANTLR start synpred42_AcslParser
public final void synpred42_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:362:7: ( STAR )
// AcslParser.g:362:7: STAR
{
match(input,STAR,FOLLOW_STAR_in_synpred42_AcslParser2656); if (state.failed) return;
}
}
// $ANTLR end synpred42_AcslParser
// $ANTLR start synpred49_AcslParser
public final void synpred49_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:382:7: ( boolean_type )
// AcslParser.g:382:7: boolean_type
{
pushFollow(FOLLOW_boolean_type_in_synpred49_AcslParser2805);
boolean_type();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred49_AcslParser
// $ANTLR start synpred50_AcslParser
public final void synpred50_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:382:22: ( integer_type )
// AcslParser.g:382:22: integer_type
{
pushFollow(FOLLOW_integer_type_in_synpred50_AcslParser2809);
integer_type();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred50_AcslParser
// $ANTLR start synpred52_AcslParser
public final void synpred52_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:388:7: ( variable_ident_base LSQUARE RSQUARE )
// AcslParser.g:388:7: variable_ident_base LSQUARE RSQUARE
{
pushFollow(FOLLOW_variable_ident_base_in_synpred52_AcslParser2855);
variable_ident_base();
state._fsp--;
if (state.failed) return;
match(input,LSQUARE,FOLLOW_LSQUARE_in_synpred52_AcslParser2857); if (state.failed) return;
match(input,RSQUARE,FOLLOW_RSQUARE_in_synpred52_AcslParser2859); if (state.failed) return;
}
}
// $ANTLR end synpred52_AcslParser
// $ANTLR start synpred54_AcslParser
public final void synpred54_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:406:7: ( assigns_clause )
// AcslParser.g:406:7: assigns_clause
{
pushFollow(FOLLOW_assigns_clause_in_synpred54_AcslParser2995);
assigns_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred54_AcslParser
// $ANTLR start synpred55_AcslParser
public final void synpred55_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:407:7: ( ensures_clause )
// AcslParser.g:407:7: ensures_clause
{
pushFollow(FOLLOW_ensures_clause_in_synpred55_AcslParser3003);
ensures_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred55_AcslParser
// $ANTLR start synpred56_AcslParser
public final void synpred56_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:408:7: ( allocation_clause )
// AcslParser.g:408:7: allocation_clause
{
pushFollow(FOLLOW_allocation_clause_in_synpred56_AcslParser3012);
allocation_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred56_AcslParser
// $ANTLR start synpred57_AcslParser
public final void synpred57_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:409:7: ( reads_clause )
// AcslParser.g:409:7: reads_clause
{
pushFollow(FOLLOW_reads_clause_in_synpred57_AcslParser3020);
reads_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred57_AcslParser
// $ANTLR start synpred58_AcslParser
public final void synpred58_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:410:7: ( depends_clause )
// AcslParser.g:410:7: depends_clause
{
pushFollow(FOLLOW_depends_clause_in_synpred58_AcslParser3028);
depends_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred58_AcslParser
// $ANTLR start synpred59_AcslParser
public final void synpred59_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:423:7: ( alloc_key argumentExpressionList )
// AcslParser.g:423:7: alloc_key argumentExpressionList
{
pushFollow(FOLLOW_alloc_key_in_synpred59_AcslParser3109);
alloc_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred59_AcslParser3111);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred59_AcslParser
// $ANTLR start synpred61_AcslParser
public final void synpred61_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:440:7: ( event_base PLUS event_base )
// AcslParser.g:440:7: event_base PLUS event_base
{
pushFollow(FOLLOW_event_base_in_synpred61_AcslParser3245);
event_base();
state._fsp--;
if (state.failed) return;
match(input,PLUS,FOLLOW_PLUS_in_synpred61_AcslParser3247); if (state.failed) return;
pushFollow(FOLLOW_event_base_in_synpred61_AcslParser3249);
event_base();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred61_AcslParser
// $ANTLR start synpred62_AcslParser
public final void synpred62_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:442:7: ( event_base SUB event_base )
// AcslParser.g:442:7: event_base SUB event_base
{
pushFollow(FOLLOW_event_base_in_synpred62_AcslParser3275);
event_base();
state._fsp--;
if (state.failed) return;
match(input,SUB,FOLLOW_SUB_in_synpred62_AcslParser3277); if (state.failed) return;
pushFollow(FOLLOW_event_base_in_synpred62_AcslParser3279);
event_base();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred62_AcslParser
// $ANTLR start synpred63_AcslParser
public final void synpred63_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:444:7: ( event_base AMPERSAND event_base )
// AcslParser.g:444:7: event_base AMPERSAND event_base
{
pushFollow(FOLLOW_event_base_in_synpred63_AcslParser3305);
event_base();
state._fsp--;
if (state.failed) return;
match(input,AMPERSAND,FOLLOW_AMPERSAND_in_synpred63_AcslParser3307); if (state.failed) return;
pushFollow(FOLLOW_event_base_in_synpred63_AcslParser3309);
event_base();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred63_AcslParser
// $ANTLR start synpred64_AcslParser
public final void synpred64_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:451:7: ( read_key LPAREN argumentExpressionList RPAREN )
// AcslParser.g:451:7: read_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_read_key_in_synpred64_AcslParser3368);
read_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred64_AcslParser3370); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred64_AcslParser3372);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred64_AcslParser3374); if (state.failed) return;
}
}
// $ANTLR end synpred64_AcslParser
// $ANTLR start synpred65_AcslParser
public final void synpred65_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:453:7: ( write_key LPAREN argumentExpressionList RPAREN )
// AcslParser.g:453:7: write_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_write_key_in_synpred65_AcslParser3400);
write_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred65_AcslParser3402); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred65_AcslParser3404);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred65_AcslParser3406); if (state.failed) return;
}
}
// $ANTLR end synpred65_AcslParser
// $ANTLR start synpred66_AcslParser
public final void synpred66_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:455:7: ( access_key LPAREN argumentExpressionList RPAREN )
// AcslParser.g:455:7: access_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_access_key_in_synpred66_AcslParser3432);
access_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred66_AcslParser3434); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred66_AcslParser3436);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred66_AcslParser3438); if (state.failed) return;
}
}
// $ANTLR end synpred66_AcslParser
// $ANTLR start synpred68_AcslParser
public final void synpred68_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:457:7: ( call_key LPAREN IDENTIFIER ( COMMA argumentExpressionList )? RPAREN )
// AcslParser.g:457:7: call_key LPAREN IDENTIFIER ( COMMA argumentExpressionList )? RPAREN
{
pushFollow(FOLLOW_call_key_in_synpred68_AcslParser3464);
call_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred68_AcslParser3466); if (state.failed) return;
match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred68_AcslParser3468); if (state.failed) return;
// AcslParser.g:457:34: ( COMMA argumentExpressionList )?
int alt88=2;
int LA88_0 = input.LA(1);
if ( (LA88_0==COMMA) ) {
alt88=1;
}
switch (alt88) {
case 1 :
// AcslParser.g:457:35: COMMA argumentExpressionList
{
match(input,COMMA,FOLLOW_COMMA_in_synpred68_AcslParser3471); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred68_AcslParser3473);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_synpred68_AcslParser3477); if (state.failed) return;
}
}
// $ANTLR end synpred68_AcslParser
// $ANTLR start synpred69_AcslParser
public final void synpred69_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:459:7: ( nothing_key )
// AcslParser.g:459:7: nothing_key
{
pushFollow(FOLLOW_nothing_key_in_synpred69_AcslParser3506);
nothing_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred69_AcslParser
// $ANTLR start synpred70_AcslParser
public final void synpred70_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:460:7: ( anyact_key )
// AcslParser.g:460:7: anyact_key
{
pushFollow(FOLLOW_anyact_key_in_synpred70_AcslParser3514);
anyact_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred70_AcslParser
// $ANTLR start synpred71_AcslParser
public final void synpred71_AcslParser_fragment() throws RecognitionException {
List<Object> list_b=null;
RuleReturnScope b = null;
// AcslParser.g:472:8: (b+= behavior_clause SEMI )
// AcslParser.g:472:8: b+= behavior_clause SEMI
{
pushFollow(FOLLOW_behavior_clause_in_synpred71_AcslParser3607);
b=behavior_clause();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred71_AcslParser3609); if (state.failed) return;
}
}
// $ANTLR end synpred71_AcslParser
// $ANTLR start synpred72_AcslParser
public final void synpred72_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:476:7: ( assumes_clause )
// AcslParser.g:476:7: assumes_clause
{
pushFollow(FOLLOW_assumes_clause_in_synpred72_AcslParser3638);
assumes_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred72_AcslParser
// $ANTLR start synpred73_AcslParser
public final void synpred73_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:477:7: ( requires_clause )
// AcslParser.g:477:7: requires_clause
{
pushFollow(FOLLOW_requires_clause_in_synpred73_AcslParser3647);
requires_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred73_AcslParser
// $ANTLR start synpred74_AcslParser
public final void synpred74_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:486:7: ( completes_key behaviors_key id_list )
// AcslParser.g:486:7: completes_key behaviors_key id_list
{
pushFollow(FOLLOW_completes_key_in_synpred74_AcslParser3700);
completes_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_behaviors_key_in_synpred74_AcslParser3702);
behaviors_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_id_list_in_synpred74_AcslParser3704);
id_list();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred74_AcslParser
// $ANTLR start synpred78_AcslParser
public final void synpred78_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:511:4: ( forall_key binders SEMI term )
// AcslParser.g:511:4: forall_key binders SEMI term
{
pushFollow(FOLLOW_forall_key_in_synpred78_AcslParser3844);
forall_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_binders_in_synpred78_AcslParser3846);
binders();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred78_AcslParser3848); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred78_AcslParser3850);
term();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred78_AcslParser
// $ANTLR start synpred79_AcslParser
public final void synpred79_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:513:7: ( exists_key binders SEMI term )
// AcslParser.g:513:7: exists_key binders SEMI term
{
pushFollow(FOLLOW_exists_key_in_synpred79_AcslParser3875);
exists_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_binders_in_synpred79_AcslParser3877);
binders();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred79_AcslParser3879); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred79_AcslParser3881);
term();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred79_AcslParser
// $ANTLR start synpred80_AcslParser
public final void synpred80_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:533:4: ( unaryExpression ASSIGN )
// AcslParser.g:533:5: unaryExpression ASSIGN
{
pushFollow(FOLLOW_unaryExpression_in_synpred80_AcslParser3942);
unaryExpression();
state._fsp--;
if (state.failed) return;
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred80_AcslParser3944); if (state.failed) return;
}
}
// $ANTLR end synpred80_AcslParser
// $ANTLR start synpred83_AcslParser
public final void synpred83_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope b =null;
ParserRuleReturnScope c =null;
// AcslParser.g:560:11: ( QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression ) )
// AcslParser.g:560:11: QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression )
{
match(input,QMARK,FOLLOW_QMARK_in_synpred83_AcslParser4042); if (state.failed) return;
pushFollow(FOLLOW_conditionalExpression_in_synpred83_AcslParser4046);
b=conditionalExpression();
state._fsp--;
if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_synpred83_AcslParser4048); if (state.failed) return;
// AcslParser.g:561:13: (c= quantifierExpression |c= conditionalExpression )
int alt89=2;
int LA89_0 = input.LA(1);
if ( (LA89_0==EXTENDED_IDENTIFIER) ) {
int LA89_1 = input.LA(2);
if ( (LA89_1==IDENTIFIER||LA89_1==CHAR||LA89_1==DOUBLE||LA89_1==FLOAT||LA89_1==INT||LA89_1==LONG||LA89_1==SHORT||LA89_1==VOID) ) {
alt89=1;
}
else if ( (LA89_1==EOF||(LA89_1 >= AMPERSAND && LA89_1 <= AND)||LA89_1==ARROW||LA89_1==BITOR||LA89_1==BITXOR||LA89_1==DIV||(LA89_1 >= DOT && LA89_1 <= DOTDOT)||(LA89_1 >= EQUALS && LA89_1 <= EQUIV_ACSL)||(LA89_1 >= GT && LA89_1 <= GTE)||(LA89_1 >= IMPLIES && LA89_1 <= IMPLIES_ACSL)||LA89_1==LPAREN||(LA89_1 >= LSQUARE && LA89_1 <= LTE)||(LA89_1 >= MINUSMINUS && LA89_1 <= MOD)||LA89_1==NEQ||LA89_1==OR||LA89_1==PLUS||LA89_1==QMARK||LA89_1==SHIFTLEFT||LA89_1==SHIFTRIGHT||LA89_1==STAR||LA89_1==SUB||LA89_1==XOR_ACSL) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA89_0==AMPERSAND||LA89_0==CHARACTER_CONSTANT||LA89_0==ELLIPSIS||LA89_0==FLOATING_CONSTANT||LA89_0==IDENTIFIER||LA89_0==INTEGER_CONSTANT||LA89_0==LCURLY||LA89_0==LPAREN||LA89_0==NOT||LA89_0==PLUS||LA89_0==STAR||(LA89_0 >= STRING_LITERAL && LA89_0 <= SUB)||LA89_0==TILDE||LA89_0==SELF||LA89_0==SIZEOF) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 89, 0, input);
throw nvae;
}
switch (alt89) {
case 1 :
// AcslParser.g:561:14: c= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred83_AcslParser4066);
c=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:561:39: c= conditionalExpression
{
pushFollow(FOLLOW_conditionalExpression_in_synpred83_AcslParser4072);
c=conditionalExpression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred83_AcslParser
// $ANTLR start synpred85_AcslParser
public final void synpred85_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope b =null;
// AcslParser.g:572:11: ( EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression ) )
// AcslParser.g:572:11: EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression )
{
match(input,EQUIV_ACSL,FOLLOW_EQUIV_ACSL_in_synpred85_AcslParser4162); if (state.failed) return;
// AcslParser.g:572:22: (b= quantifierExpression |b= logicalImpliesExpression )
int alt90=2;
int LA90_0 = input.LA(1);
if ( (LA90_0==EXTENDED_IDENTIFIER) ) {
int LA90_1 = input.LA(2);
if ( (LA90_1==IDENTIFIER||LA90_1==CHAR||LA90_1==DOUBLE||LA90_1==FLOAT||LA90_1==INT||LA90_1==LONG||LA90_1==SHORT||LA90_1==VOID) ) {
alt90=1;
}
else if ( (LA90_1==EOF||(LA90_1 >= AMPERSAND && LA90_1 <= AND)||LA90_1==ARROW||LA90_1==BITOR||LA90_1==BITXOR||LA90_1==DIV||(LA90_1 >= DOT && LA90_1 <= DOTDOT)||LA90_1==EQUALS||(LA90_1 >= GT && LA90_1 <= GTE)||(LA90_1 >= IMPLIES && LA90_1 <= IMPLIES_ACSL)||LA90_1==LPAREN||(LA90_1 >= LSQUARE && LA90_1 <= LTE)||(LA90_1 >= MINUSMINUS && LA90_1 <= MOD)||LA90_1==NEQ||LA90_1==OR||LA90_1==PLUS||LA90_1==SHIFTLEFT||LA90_1==SHIFTRIGHT||LA90_1==STAR||LA90_1==SUB||LA90_1==XOR_ACSL) ) {
alt90=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 90, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA90_0==AMPERSAND||LA90_0==CHARACTER_CONSTANT||LA90_0==ELLIPSIS||LA90_0==FLOATING_CONSTANT||LA90_0==IDENTIFIER||LA90_0==INTEGER_CONSTANT||LA90_0==LCURLY||LA90_0==LPAREN||LA90_0==NOT||LA90_0==PLUS||LA90_0==STAR||(LA90_0 >= STRING_LITERAL && LA90_0 <= SUB)||LA90_0==TILDE||LA90_0==SELF||LA90_0==SIZEOF) ) {
alt90=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 90, 0, input);
throw nvae;
}
switch (alt90) {
case 1 :
// AcslParser.g:572:23: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred85_AcslParser4167);
b=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:572:48: b= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_synpred85_AcslParser4173);
b=logicalImpliesExpression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred85_AcslParser
// $ANTLR start synpred88_AcslParser
public final void synpred88_AcslParser_fragment() throws RecognitionException {
Token op=null;
ParserRuleReturnScope b =null;
// AcslParser.g:582:11: (op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression ) )
// AcslParser.g:582:11: op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression )
{
op=input.LT(1);
if ( (input.LA(1) >= IMPLIES && input.LA(1) <= IMPLIES_ACSL) ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
// AcslParser.g:582:37: (b= quantifierExpression |b= logicalImpliesExpression )
int alt91=2;
int LA91_0 = input.LA(1);
if ( (LA91_0==EXTENDED_IDENTIFIER) ) {
int LA91_1 = input.LA(2);
if ( (LA91_1==IDENTIFIER||LA91_1==CHAR||LA91_1==DOUBLE||LA91_1==FLOAT||LA91_1==INT||LA91_1==LONG||LA91_1==SHORT||LA91_1==VOID) ) {
alt91=1;
}
else if ( (LA91_1==EOF||(LA91_1 >= AMPERSAND && LA91_1 <= AND)||LA91_1==ARROW||LA91_1==BITOR||LA91_1==BITXOR||LA91_1==DIV||(LA91_1 >= DOT && LA91_1 <= DOTDOT)||LA91_1==EQUALS||(LA91_1 >= GT && LA91_1 <= GTE)||(LA91_1 >= IMPLIES && LA91_1 <= IMPLIES_ACSL)||LA91_1==LPAREN||(LA91_1 >= LSQUARE && LA91_1 <= LTE)||(LA91_1 >= MINUSMINUS && LA91_1 <= MOD)||LA91_1==NEQ||LA91_1==OR||LA91_1==PLUS||LA91_1==SHIFTLEFT||LA91_1==SHIFTRIGHT||LA91_1==STAR||LA91_1==SUB||LA91_1==XOR_ACSL) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA91_0==AMPERSAND||LA91_0==CHARACTER_CONSTANT||LA91_0==ELLIPSIS||LA91_0==FLOATING_CONSTANT||LA91_0==IDENTIFIER||LA91_0==INTEGER_CONSTANT||LA91_0==LCURLY||LA91_0==LPAREN||LA91_0==NOT||LA91_0==PLUS||LA91_0==STAR||(LA91_0 >= STRING_LITERAL && LA91_0 <= SUB)||LA91_0==TILDE||LA91_0==SELF||LA91_0==SIZEOF) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 91, 0, input);
throw nvae;
}
switch (alt91) {
case 1 :
// AcslParser.g:582:38: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred88_AcslParser4256);
b=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:582:63: b= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_synpred88_AcslParser4262);
b=logicalImpliesExpression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred88_AcslParser
// $ANTLR start synpred90_AcslParser
public final void synpred90_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope b =null;
// AcslParser.g:593:11: ( OR (b= quantifierExpression |b= logicalXorExpression ) )
// AcslParser.g:593:11: OR (b= quantifierExpression |b= logicalXorExpression )
{
match(input,OR,FOLLOW_OR_in_synpred90_AcslParser4356); if (state.failed) return;
// AcslParser.g:593:14: (b= quantifierExpression |b= logicalXorExpression )
int alt92=2;
int LA92_0 = input.LA(1);
if ( (LA92_0==EXTENDED_IDENTIFIER) ) {
int LA92_1 = input.LA(2);
if ( (LA92_1==IDENTIFIER||LA92_1==CHAR||LA92_1==DOUBLE||LA92_1==FLOAT||LA92_1==INT||LA92_1==LONG||LA92_1==SHORT||LA92_1==VOID) ) {
alt92=1;
}
else if ( (LA92_1==EOF||(LA92_1 >= AMPERSAND && LA92_1 <= AND)||LA92_1==ARROW||LA92_1==BITOR||LA92_1==BITXOR||LA92_1==DIV||(LA92_1 >= DOT && LA92_1 <= DOTDOT)||LA92_1==EQUALS||(LA92_1 >= GT && LA92_1 <= GTE)||LA92_1==LPAREN||(LA92_1 >= LSQUARE && LA92_1 <= LTE)||(LA92_1 >= MINUSMINUS && LA92_1 <= MOD)||LA92_1==NEQ||LA92_1==PLUS||LA92_1==SHIFTLEFT||LA92_1==SHIFTRIGHT||LA92_1==STAR||LA92_1==SUB||LA92_1==XOR_ACSL) ) {
alt92=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 92, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA92_0==AMPERSAND||LA92_0==CHARACTER_CONSTANT||LA92_0==ELLIPSIS||LA92_0==FLOATING_CONSTANT||LA92_0==IDENTIFIER||LA92_0==INTEGER_CONSTANT||LA92_0==LCURLY||LA92_0==LPAREN||LA92_0==NOT||LA92_0==PLUS||LA92_0==STAR||(LA92_0 >= STRING_LITERAL && LA92_0 <= SUB)||LA92_0==TILDE||LA92_0==SELF||LA92_0==SIZEOF) ) {
alt92=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 92, 0, input);
throw nvae;
}
switch (alt92) {
case 1 :
// AcslParser.g:593:15: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred90_AcslParser4361);
b=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:593:40: b= logicalXorExpression
{
pushFollow(FOLLOW_logicalXorExpression_in_synpred90_AcslParser4367);
b=logicalXorExpression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred90_AcslParser
// $ANTLR start synpred92_AcslParser
public final void synpred92_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope b =null;
// AcslParser.g:603:11: ( XOR_ACSL (b= quantifierExpression |b= logicalAndExpression ) )
// AcslParser.g:603:11: XOR_ACSL (b= quantifierExpression |b= logicalAndExpression )
{
match(input,XOR_ACSL,FOLLOW_XOR_ACSL_in_synpred92_AcslParser4444); if (state.failed) return;
// AcslParser.g:603:20: (b= quantifierExpression |b= logicalAndExpression )
int alt93=2;
int LA93_0 = input.LA(1);
if ( (LA93_0==EXTENDED_IDENTIFIER) ) {
int LA93_1 = input.LA(2);
if ( (LA93_1==IDENTIFIER||LA93_1==CHAR||LA93_1==DOUBLE||LA93_1==FLOAT||LA93_1==INT||LA93_1==LONG||LA93_1==SHORT||LA93_1==VOID) ) {
alt93=1;
}
else if ( (LA93_1==EOF||(LA93_1 >= AMPERSAND && LA93_1 <= AND)||LA93_1==ARROW||LA93_1==BITOR||LA93_1==BITXOR||LA93_1==DIV||(LA93_1 >= DOT && LA93_1 <= DOTDOT)||LA93_1==EQUALS||(LA93_1 >= GT && LA93_1 <= GTE)||LA93_1==LPAREN||(LA93_1 >= LSQUARE && LA93_1 <= LTE)||(LA93_1 >= MINUSMINUS && LA93_1 <= MOD)||LA93_1==NEQ||LA93_1==PLUS||LA93_1==SHIFTLEFT||LA93_1==SHIFTRIGHT||LA93_1==STAR||LA93_1==SUB) ) {
alt93=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 93, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA93_0==AMPERSAND||LA93_0==CHARACTER_CONSTANT||LA93_0==ELLIPSIS||LA93_0==FLOATING_CONSTANT||LA93_0==IDENTIFIER||LA93_0==INTEGER_CONSTANT||LA93_0==LCURLY||LA93_0==LPAREN||LA93_0==NOT||LA93_0==PLUS||LA93_0==STAR||(LA93_0 >= STRING_LITERAL && LA93_0 <= SUB)||LA93_0==TILDE||LA93_0==SELF||LA93_0==SIZEOF) ) {
alt93=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 93, 0, input);
throw nvae;
}
switch (alt93) {
case 1 :
// AcslParser.g:603:21: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred92_AcslParser4449);
b=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:603:46: b= logicalAndExpression
{
pushFollow(FOLLOW_logicalAndExpression_in_synpred92_AcslParser4455);
b=logicalAndExpression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred92_AcslParser
// $ANTLR start synpred94_AcslParser
public final void synpred94_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope b =null;
// AcslParser.g:613:11: ( AND (b= quantifierExpression |b= bitwiseEquivExpression ) )
// AcslParser.g:613:11: AND (b= quantifierExpression |b= bitwiseEquivExpression )
{
match(input,AND,FOLLOW_AND_in_synpred94_AcslParser4531); if (state.failed) return;
// AcslParser.g:613:15: (b= quantifierExpression |b= bitwiseEquivExpression )
int alt94=2;
int LA94_0 = input.LA(1);
if ( (LA94_0==EXTENDED_IDENTIFIER) ) {
int LA94_1 = input.LA(2);
if ( (LA94_1==IDENTIFIER||LA94_1==CHAR||LA94_1==DOUBLE||LA94_1==FLOAT||LA94_1==INT||LA94_1==LONG||LA94_1==SHORT||LA94_1==VOID) ) {
alt94=1;
}
else if ( (LA94_1==EOF||LA94_1==AMPERSAND||LA94_1==ARROW||LA94_1==BITOR||LA94_1==BITXOR||LA94_1==DIV||(LA94_1 >= DOT && LA94_1 <= DOTDOT)||LA94_1==EQUALS||(LA94_1 >= GT && LA94_1 <= GTE)||LA94_1==LPAREN||(LA94_1 >= LSQUARE && LA94_1 <= LTE)||(LA94_1 >= MINUSMINUS && LA94_1 <= MOD)||LA94_1==NEQ||LA94_1==PLUS||LA94_1==SHIFTLEFT||LA94_1==SHIFTRIGHT||LA94_1==STAR||LA94_1==SUB) ) {
alt94=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 94, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA94_0==AMPERSAND||LA94_0==CHARACTER_CONSTANT||LA94_0==ELLIPSIS||LA94_0==FLOATING_CONSTANT||LA94_0==IDENTIFIER||LA94_0==INTEGER_CONSTANT||LA94_0==LCURLY||LA94_0==LPAREN||LA94_0==NOT||LA94_0==PLUS||LA94_0==STAR||(LA94_0 >= STRING_LITERAL && LA94_0 <= SUB)||LA94_0==TILDE||LA94_0==SELF||LA94_0==SIZEOF) ) {
alt94=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 94, 0, input);
throw nvae;
}
switch (alt94) {
case 1 :
// AcslParser.g:613:16: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred94_AcslParser4536);
b=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:613:41: b= bitwiseEquivExpression
{
pushFollow(FOLLOW_bitwiseEquivExpression_in_synpred94_AcslParser4542);
b=bitwiseEquivExpression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred94_AcslParser
// $ANTLR start synpred95_AcslParser
public final void synpred95_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope b =null;
// AcslParser.g:623:11: ( bitequiv_op b= bitwiseImpliesExpression )
// AcslParser.g:623:11: bitequiv_op b= bitwiseImpliesExpression
{
pushFollow(FOLLOW_bitequiv_op_in_synpred95_AcslParser4618);
bitequiv_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_bitwiseImpliesExpression_in_synpred95_AcslParser4622);
b=bitwiseImpliesExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred95_AcslParser
// $ANTLR start synpred96_AcslParser
public final void synpred96_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope op =null;
ParserRuleReturnScope b =null;
// AcslParser.g:633:11: (op= bitimplies_op b= bitwiseImpliesExpression )
// AcslParser.g:633:11: op= bitimplies_op b= bitwiseImpliesExpression
{
pushFollow(FOLLOW_bitimplies_op_in_synpred96_AcslParser4692);
op=bitimplies_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_bitwiseImpliesExpression_in_synpred96_AcslParser4696);
b=bitwiseImpliesExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred96_AcslParser
// $ANTLR start synpred97_AcslParser
public final void synpred97_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:656:6: ({...}? BITOR y= exclusiveOrExpression )
// AcslParser.g:656:6: {...}? BITOR y= exclusiveOrExpression
{
if ( !((!(input.LA(2)==IDENTIFIER && input.LA(3)==IDENTIFIER))) ) {
if (state.backtracking>0) {state.failed=true; return;}
throw new FailedPredicateException(input, "synpred97_AcslParser", "!(input.LA(2)==IDENTIFIER && input.LA(3)==IDENTIFIER)");
}
match(input,BITOR,FOLLOW_BITOR_in_synpred97_AcslParser4781); if (state.failed) return;
pushFollow(FOLLOW_exclusiveOrExpression_in_synpred97_AcslParser4785);
y=exclusiveOrExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred97_AcslParser
// $ANTLR start synpred98_AcslParser
public final void synpred98_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:669:6: ( BITXOR y= andExpression )
// AcslParser.g:669:6: BITXOR y= andExpression
{
match(input,BITXOR,FOLLOW_BITXOR_in_synpred98_AcslParser4845); if (state.failed) return;
pushFollow(FOLLOW_andExpression_in_synpred98_AcslParser4849);
y=andExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred98_AcslParser
// $ANTLR start synpred99_AcslParser
public final void synpred99_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:682:6: ( AMPERSAND y= relationalExpression )
// AcslParser.g:682:6: AMPERSAND y= relationalExpression
{
match(input,AMPERSAND,FOLLOW_AMPERSAND_in_synpred99_AcslParser4906); if (state.failed) return;
pushFollow(FOLLOW_relationalExpression_in_synpred99_AcslParser4910);
y=relationalExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred99_AcslParser
// $ANTLR start synpred105_AcslParser
public final void synpred105_AcslParser_fragment() throws RecognitionException {
List<Object> list_s=null;
RuleReturnScope s = null;
// AcslParser.g:737:12: (s+= relOp s+= shiftExpression )
// AcslParser.g:737:12: s+= relOp s+= shiftExpression
{
pushFollow(FOLLOW_relOp_in_synpred105_AcslParser5006);
s=relOp();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_shiftExpression_in_synpred105_AcslParser5010);
s=shiftExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred105_AcslParser
// $ANTLR start synpred106_AcslParser
public final void synpred106_AcslParser_fragment() throws RecognitionException {
List<Object> list_s=null;
RuleReturnScope s = null;
// AcslParser.g:737:11: ( (s+= relOp s+= shiftExpression )+ )
// AcslParser.g:737:11: (s+= relOp s+= shiftExpression )+
{
// AcslParser.g:737:11: (s+= relOp s+= shiftExpression )+
int cnt95=0;
loop95:
while (true) {
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==EQUALS||(LA95_0 >= GT && LA95_0 <= GTE)||(LA95_0 >= LT && LA95_0 <= LTE)||LA95_0==NEQ) ) {
alt95=1;
}
switch (alt95) {
case 1 :
// AcslParser.g:737:12: s+= relOp s+= shiftExpression
{
pushFollow(FOLLOW_relOp_in_synpred106_AcslParser5006);
s=relOp();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_shiftExpression_in_synpred106_AcslParser5010);
s=shiftExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
if ( cnt95 >= 1 ) break loop95;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(95, input);
throw eee;
}
cnt95++;
}
}
}
// $ANTLR end synpred106_AcslParser
// $ANTLR start synpred107_AcslParser
public final void synpred107_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:756:11: ( SHIFTLEFT y= rangeExpression )
// AcslParser.g:756:11: SHIFTLEFT y= rangeExpression
{
match(input,SHIFTLEFT,FOLLOW_SHIFTLEFT_in_synpred107_AcslParser5085); if (state.failed) return;
pushFollow(FOLLOW_rangeExpression_in_synpred107_AcslParser5089);
y=rangeExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred107_AcslParser
// $ANTLR start synpred108_AcslParser
public final void synpred108_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:758:11: ( SHIFTRIGHT y= rangeExpression )
// AcslParser.g:758:11: SHIFTRIGHT y= rangeExpression
{
match(input,SHIFTRIGHT,FOLLOW_SHIFTRIGHT_in_synpred108_AcslParser5129); if (state.failed) return;
pushFollow(FOLLOW_rangeExpression_in_synpred108_AcslParser5133);
y=rangeExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred108_AcslParser
// $ANTLR start synpred109_AcslParser
public final void synpred109_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope s =null;
// AcslParser.g:771:11: ( DOTDOT s= rangeSuffix )
// AcslParser.g:771:11: DOTDOT s= rangeSuffix
{
match(input,DOTDOT,FOLLOW_DOTDOT_in_synpred109_AcslParser5199); if (state.failed) return;
pushFollow(FOLLOW_rangeSuffix_in_synpred109_AcslParser5203);
s=rangeSuffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred109_AcslParser
// $ANTLR start synpred110_AcslParser
public final void synpred110_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:777:27: ( HASH additiveExpression )
// AcslParser.g:777:27: HASH additiveExpression
{
match(input,HASH,FOLLOW_HASH_in_synpred110_AcslParser5260); if (state.failed) return;
pushFollow(FOLLOW_additiveExpression_in_synpred110_AcslParser5263);
additiveExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred110_AcslParser
// $ANTLR start synpred111_AcslParser
public final void synpred111_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:787:11: ( PLUS y= multiplicativeExpression )
// AcslParser.g:787:11: PLUS y= multiplicativeExpression
{
match(input,PLUS,FOLLOW_PLUS_in_synpred111_AcslParser5299); if (state.failed) return;
pushFollow(FOLLOW_multiplicativeExpression_in_synpred111_AcslParser5303);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred111_AcslParser
// $ANTLR start synpred112_AcslParser
public final void synpred112_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:789:11: ( SUB y= multiplicativeExpression )
// AcslParser.g:789:11: SUB y= multiplicativeExpression
{
match(input,SUB,FOLLOW_SUB_in_synpred112_AcslParser5343); if (state.failed) return;
pushFollow(FOLLOW_multiplicativeExpression_in_synpred112_AcslParser5347);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred112_AcslParser
// $ANTLR start synpred113_AcslParser
public final void synpred113_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:802:4: ( STAR y= castExpression )
// AcslParser.g:802:4: STAR y= castExpression
{
match(input,STAR,FOLLOW_STAR_in_synpred113_AcslParser5410); if (state.failed) return;
pushFollow(FOLLOW_castExpression_in_synpred113_AcslParser5414);
y=castExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred113_AcslParser
// $ANTLR start synpred114_AcslParser
public final void synpred114_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:804:4: ( DIV y= castExpression )
// AcslParser.g:804:4: DIV y= castExpression
{
match(input,DIV,FOLLOW_DIV_in_synpred114_AcslParser5440); if (state.failed) return;
pushFollow(FOLLOW_castExpression_in_synpred114_AcslParser5444);
y=castExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred114_AcslParser
// $ANTLR start synpred115_AcslParser
public final void synpred115_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:806:7: ( MOD y= castExpression )
// AcslParser.g:806:7: MOD y= castExpression
{
match(input,MOD,FOLLOW_MOD_in_synpred115_AcslParser5473); if (state.failed) return;
pushFollow(FOLLOW_castExpression_in_synpred115_AcslParser5477);
y=castExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred115_AcslParser
// $ANTLR start synpred116_AcslParser
public final void synpred116_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:820:4: ( LPAREN type_expr RPAREN )
// AcslParser.g:820:5: LPAREN type_expr RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred116_AcslParser5521); if (state.failed) return;
pushFollow(FOLLOW_type_expr_in_synpred116_AcslParser5523);
type_expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred116_AcslParser5525); if (state.failed) return;
}
}
// $ANTLR end synpred116_AcslParser
// $ANTLR start synpred117_AcslParser
public final void synpred117_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:833:4: ( postfixExpression )
// AcslParser.g:833:4: postfixExpression
{
pushFollow(FOLLOW_postfixExpression_in_synpred117_AcslParser5568);
postfixExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred117_AcslParser
// $ANTLR start synpred120_AcslParser
public final void synpred120_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:836:4: ( SIZEOF LPAREN type_expr )
// AcslParser.g:836:5: SIZEOF LPAREN type_expr
{
match(input,SIZEOF,FOLLOW_SIZEOF_in_synpred120_AcslParser5614); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred120_AcslParser5616); if (state.failed) return;
pushFollow(FOLLOW_type_expr_in_synpred120_AcslParser5618);
type_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred120_AcslParser
// $ANTLR start synpred121_AcslParser
public final void synpred121_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:838:4: ( SIZEOF unaryExpression )
// AcslParser.g:838:4: SIZEOF unaryExpression
{
match(input,SIZEOF,FOLLOW_SIZEOF_in_synpred121_AcslParser5649); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_synpred121_AcslParser5651);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred121_AcslParser
// $ANTLR start synpred122_AcslParser
public final void synpred122_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:840:7: ( union_key LPAREN argumentExpressionList RPAREN )
// AcslParser.g:840:7: union_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_union_key_in_synpred122_AcslParser5675);
union_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred122_AcslParser5677); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred122_AcslParser5679);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred122_AcslParser5681); if (state.failed) return;
}
}
// $ANTLR end synpred122_AcslParser
// $ANTLR start synpred123_AcslParser
public final void synpred123_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:842:7: ( inter_key LPAREN argumentExpressionList RPAREN )
// AcslParser.g:842:7: inter_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_inter_key_in_synpred123_AcslParser5709);
inter_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred123_AcslParser5711); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred123_AcslParser5713);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred123_AcslParser5715); if (state.failed) return;
}
}
// $ANTLR end synpred123_AcslParser
// $ANTLR start synpred124_AcslParser
public final void synpred124_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:844:7: ( valid_key LPAREN term RPAREN )
// AcslParser.g:844:7: valid_key LPAREN term RPAREN
{
pushFollow(FOLLOW_valid_key_in_synpred124_AcslParser5743);
valid_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred124_AcslParser5745); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred124_AcslParser5747);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred124_AcslParser5749); if (state.failed) return;
}
}
// $ANTLR end synpred124_AcslParser
// $ANTLR start synpred125_AcslParser
public final void synpred125_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:846:7: ( extendedQuantification )
// AcslParser.g:846:7: extendedQuantification
{
pushFollow(FOLLOW_extendedQuantification_in_synpred125_AcslParser5777);
extendedQuantification();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred125_AcslParser
// $ANTLR start synpred126_AcslParser
public final void synpred126_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:847:7: ( object_of_key LPAREN term RPAREN )
// AcslParser.g:847:7: object_of_key LPAREN term RPAREN
{
pushFollow(FOLLOW_object_of_key_in_synpred126_AcslParser5792);
object_of_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred126_AcslParser5794); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred126_AcslParser5796);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred126_AcslParser5798); if (state.failed) return;
}
}
// $ANTLR end synpred126_AcslParser
// $ANTLR start synpred127_AcslParser
public final void synpred127_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:853:4: ( sum_key LPAREN term COMMA term COMMA term RPAREN )
// AcslParser.g:853:4: sum_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_sum_key_in_synpred127_AcslParser5858);
sum_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred127_AcslParser5860); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred127_AcslParser5862);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred127_AcslParser5864); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred127_AcslParser5866);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred127_AcslParser5868); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred127_AcslParser5870);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred127_AcslParser5872); if (state.failed) return;
}
}
// $ANTLR end synpred127_AcslParser
// $ANTLR start synpred128_AcslParser
public final void synpred128_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:855:7: ( max_key LPAREN term COMMA term COMMA term RPAREN )
// AcslParser.g:855:7: max_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_max_key_in_synpred128_AcslParser5899);
max_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred128_AcslParser5901); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred128_AcslParser5903);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred128_AcslParser5905); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred128_AcslParser5907);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred128_AcslParser5909); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred128_AcslParser5911);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred128_AcslParser5913); if (state.failed) return;
}
}
// $ANTLR end synpred128_AcslParser
// $ANTLR start synpred129_AcslParser
public final void synpred129_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:857:7: ( min_key LPAREN term COMMA term COMMA term RPAREN )
// AcslParser.g:857:7: min_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_min_key_in_synpred129_AcslParser5940);
min_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred129_AcslParser5942); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred129_AcslParser5944);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred129_AcslParser5946); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred129_AcslParser5948);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred129_AcslParser5950); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred129_AcslParser5952);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred129_AcslParser5954); if (state.failed) return;
}
}
// $ANTLR end synpred129_AcslParser
// $ANTLR start synpred130_AcslParser
public final void synpred130_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:859:7: ( product_key LPAREN term COMMA term COMMA term RPAREN )
// AcslParser.g:859:7: product_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_product_key_in_synpred130_AcslParser5981);
product_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred130_AcslParser5983); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred130_AcslParser5985);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred130_AcslParser5987); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred130_AcslParser5989);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred130_AcslParser5991); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred130_AcslParser5993);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred130_AcslParser5995); if (state.failed) return;
}
}
// $ANTLR end synpred130_AcslParser
// $ANTLR start synpred136_AcslParser
public final void synpred136_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:899:26: ( COMMA assignmentExpression )
// AcslParser.g:899:26: COMMA assignmentExpression
{
match(input,COMMA,FOLLOW_COMMA_in_synpred136_AcslParser6274); if (state.failed) return;
pushFollow(FOLLOW_assignmentExpression_in_synpred136_AcslParser6276);
assignmentExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred136_AcslParser
// $ANTLR start synpred141_AcslParser
public final void synpred141_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:908:7: ( LCURLY term BITOR binders ( SEMI term )? RCURLY )
// AcslParser.g:908:7: LCURLY term BITOR binders ( SEMI term )? RCURLY
{
match(input,LCURLY,FOLLOW_LCURLY_in_synpred141_AcslParser6324); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred141_AcslParser6326);
term();
state._fsp--;
if (state.failed) return;
match(input,BITOR,FOLLOW_BITOR_in_synpred141_AcslParser6328); if (state.failed) return;
pushFollow(FOLLOW_binders_in_synpred141_AcslParser6330);
binders();
state._fsp--;
if (state.failed) return;
// AcslParser.g:908:33: ( SEMI term )?
int alt97=2;
int LA97_0 = input.LA(1);
if ( (LA97_0==SEMI) ) {
alt97=1;
}
switch (alt97) {
case 1 :
// AcslParser.g:908:34: SEMI term
{
match(input,SEMI,FOLLOW_SEMI_in_synpred141_AcslParser6333); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred141_AcslParser6335);
term();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,RCURLY,FOLLOW_RCURLY_in_synpred141_AcslParser6339); if (state.failed) return;
}
}
// $ANTLR end synpred141_AcslParser
// $ANTLR start synpred142_AcslParser
public final void synpred142_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:910:7: ( LCURLY term RCURLY )
// AcslParser.g:910:7: LCURLY term RCURLY
{
match(input,LCURLY,FOLLOW_LCURLY_in_synpred142_AcslParser6367); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred142_AcslParser6369);
term();
state._fsp--;
if (state.failed) return;
match(input,RCURLY,FOLLOW_RCURLY_in_synpred142_AcslParser6371); if (state.failed) return;
}
}
// $ANTLR end synpred142_AcslParser
// $ANTLR start synpred146_AcslParser
public final void synpred146_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:925:4: ( true_key )
// AcslParser.g:925:4: true_key
{
pushFollow(FOLLOW_true_key_in_synpred146_AcslParser6452);
true_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred146_AcslParser
// $ANTLR start synpred147_AcslParser
public final void synpred147_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:925:15: ( false_key )
// AcslParser.g:925:15: false_key
{
pushFollow(FOLLOW_false_key_in_synpred147_AcslParser6456);
false_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred147_AcslParser
// $ANTLR start synpred148_AcslParser
public final void synpred148_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:925:28: ( result_key )
// AcslParser.g:925:28: result_key
{
pushFollow(FOLLOW_result_key_in_synpred148_AcslParser6461);
result_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred148_AcslParser
// $ANTLR start synpred149_AcslParser
public final void synpred149_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:925:41: ( nothing_key )
// AcslParser.g:925:41: nothing_key
{
pushFollow(FOLLOW_nothing_key_in_synpred149_AcslParser6465);
nothing_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred149_AcslParser
// Delegated rules
public final boolean synpred31_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred31_AcslParser_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 synpred74_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred74_AcslParser_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 synpred130_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred130_AcslParser_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 synpred64_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred64_AcslParser_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 synpred120_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred120_AcslParser_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 synpred2_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred2_AcslParser_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 synpred5_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred5_AcslParser_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 synpred71_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred71_AcslParser_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 synpred8_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred8_AcslParser_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 synpred24_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred24_AcslParser_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 synpred14_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred14_AcslParser_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 synpred57_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred57_AcslParser_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 synpred94_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred94_AcslParser_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 synpred113_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred113_AcslParser_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 synpred61_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred61_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred146_AcslParser_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 synpred108_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred108_AcslParser_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 synpred29_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred29_AcslParser_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 synpred128_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred128_AcslParser_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 synpred123_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred123_AcslParser_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 synpred11_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred11_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred54_AcslParser_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 synpred97_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred97_AcslParser_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 synpred110_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred110_AcslParser_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 synpred21_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred21_AcslParser_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 synpred13_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred13_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred92_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred99_AcslParser_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 synpred112_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred112_AcslParser_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 synpred109_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred109_AcslParser_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 synpred69_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred69_AcslParser_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 synpred72_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred72_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred79_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred122_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred49_AcslParser_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 synpred59_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred59_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred142_AcslParser_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 synpred148_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred148_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred63_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred98_AcslParser_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 synpred111_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred111_AcslParser_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 synpred121_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred121_AcslParser_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 synpred42_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred42_AcslParser_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 synpred52_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred52_AcslParser_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 synpred62_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred62_AcslParser_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 synpred129_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred129_AcslParser_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 synpred149_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred149_AcslParser_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 synpred141_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred141_AcslParser_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 synpred117_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred117_AcslParser_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 synpred127_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred127_AcslParser_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 synpred38_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred38_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred90_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred88_AcslParser_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 synpred107_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred107_AcslParser_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 synpred18_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred18_AcslParser_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 synpred55_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred55_AcslParser_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 synpred6_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred6_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred83_AcslParser_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 synpred30_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred30_AcslParser_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 synpred50_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred50_AcslParser_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 synpred1_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred1_AcslParser_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 synpred73_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred73_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred78_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred80_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred124_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred58_AcslParser_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 synpred68_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred68_AcslParser_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 synpred25_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred25_AcslParser_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 synpred70_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred70_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred114_AcslParser_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 synpred147_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred147_AcslParser_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 synpred15_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred15_AcslParser_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 synpred66_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred66_AcslParser_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 synpred36_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred36_AcslParser_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 synpred125_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred125_AcslParser_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 synpred3_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred3_AcslParser_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 synpred10_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred10_AcslParser_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 synpred26_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred26_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred115_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred96_AcslParser_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 synpred105_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred105_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred37_AcslParser_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 synpred136_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred136_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred65_AcslParser_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 synpred116_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred116_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred126_AcslParser_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 synpred4_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred4_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred85_AcslParser_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 synpred17_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred17_AcslParser_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 synpred106_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred106_AcslParser_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 synpred56_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred56_AcslParser_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_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred95_AcslParser_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 DFA22 dfa22 = new DFA22(this);
static final String DFA22_eotS =
"\13\uffff";
static final String DFA22_eofS =
"\1\2\12\uffff";
static final String DFA22_minS =
"\2\71\1\uffff\1\25\1\0\1\26\1\uffff\1\71\1\0\1\26\1\0";
static final String DFA22_maxS =
"\2\71\1\uffff\1\151\1\0\1\151\1\uffff\1\71\1\0\1\151\1\0";
static final String DFA22_acceptS =
"\2\uffff\1\2\3\uffff\1\1\4\uffff";
static final String DFA22_specialS =
"\4\uffff\1\0\3\uffff\1\1\1\uffff\1\2}>";
static final String[] DFA22_transitionS = {
"\1\1",
"\1\3",
"",
"\1\2\43\uffff\1\5\57\uffff\1\4",
"\1\uffff",
"\1\7\122\uffff\1\10",
"",
"\1\11",
"\1\uffff",
"\1\7\122\uffff\1\12",
"\1\uffff"
};
static final short[] DFA22_eot = DFA.unpackEncodedString(DFA22_eotS);
static final short[] DFA22_eof = DFA.unpackEncodedString(DFA22_eofS);
static final char[] DFA22_min = DFA.unpackEncodedStringToUnsignedChars(DFA22_minS);
static final char[] DFA22_max = DFA.unpackEncodedStringToUnsignedChars(DFA22_maxS);
static final short[] DFA22_accept = DFA.unpackEncodedString(DFA22_acceptS);
static final short[] DFA22_special = DFA.unpackEncodedString(DFA22_specialS);
static final short[][] DFA22_transition;
static {
int numStates = DFA22_transitionS.length;
DFA22_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA22_transition[i] = DFA.unpackEncodedString(DFA22_transitionS[i]);
}
}
protected class DFA22 extends DFA {
public DFA22(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 22;
this.eot = DFA22_eot;
this.eof = DFA22_eof;
this.min = DFA22_min;
this.max = DFA22_max;
this.accept = DFA22_accept;
this.special = DFA22_special;
this.transition = DFA22_transition;
}
@Override
public String getDescription() {
return "296:28: ( completeness_clause_block )?";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA22_4 = input.LA(1);
int index22_4 = input.index();
input.rewind();
s = -1;
if ( ((((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))&&synpred29_AcslParser())) ) {s = 6;}
else if ( (((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))) ) {s = 2;}
input.seek(index22_4);
if ( s>=0 ) return s;
break;
case 1 :
int LA22_8 = input.LA(1);
int index22_8 = input.index();
input.rewind();
s = -1;
if ( ((((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))&&synpred29_AcslParser())) ) {s = 6;}
else if ( (((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))) ) {s = 2;}
input.seek(index22_8);
if ( s>=0 ) return s;
break;
case 2 :
int LA22_10 = input.LA(1);
int index22_10 = input.index();
input.rewind();
s = -1;
if ( ((((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))&&synpred29_AcslParser())) ) {s = 6;}
else if ( (((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))) ) {s = 2;}
input.seek(index22_10);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 22, _s, input);
error(nvae);
throw nvae;
}
}
public static final BitSet FOLLOW_loop_contract_in_contract856 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_contract_in_contract865 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logic_function_contract_in_contract874 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assert_contract_in_contract882 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ordered_contract_in_contract890 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_transform_contract_in_contract898 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_contract_block_in_loop_contract917 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_clause_in_loop_contract_block951 = new BitSet(new long[]{0x0200000000000002L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_loop_behavior_in_loop_contract_block956 = new BitSet(new long[]{0x0200000000000002L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_loop_variant_in_loop_contract_block961 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_loop_focus_in_loop_contract_block966 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_invariant_in_loop_clause1013 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_loop_clause1015 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_assigns_in_loop_clause1038 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_loop_clause1040 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_allocation_in_loop_clause1063 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_loop_clause1065 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_invariant1097 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_invariant_key_in_loop_invariant1099 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_loop_invariant1101 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_assigns1133 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_assigns_key_in_loop_assigns1135 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_loop_assigns1137 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_allocation1171 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_alloc_key_in_loop_allocation1173 = new BitSet(new long[]{0x0200090400500010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_loop_allocation1175 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_loop_allocation1178 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_loop_allocation1180 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_allocation1208 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_frees_key_in_loop_allocation1210 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_loop_allocation1212 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_loop_behavior1244 = new BitSet(new long[]{0x0200000000200000L});
public static final BitSet FOLLOW_id_list_in_loop_behavior1248 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_loop_behavior1250 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_loop_clause_in_loop_behavior1254 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_variant1292 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_variant_key_in_loop_variant1294 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_loop_variant1296 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_variant1319 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_variant_key_in_loop_variant1321 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_loop_variant1323 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_FOR_in_loop_variant1325 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_loop_variant1327 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_focus_key_in_loop_focus1365 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_loop_focus_head_in_loop_focus1367 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_loop_focus1369 = new BitSet(new long[]{0x0200090400100010L,0x000B420020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_loop_focus1371 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_loop_focus1373 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_loop_focus_head1399 = new BitSet(new long[]{0x0000000000000002L,0x0002000020000000L});
public static final BitSet FOLLOW_loop_focus_window_in_loop_focus_head1401 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_loop_focus_window1433 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_loop_focus_window1435 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_loop_focus_window1437 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_loop_focus_window1439 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_loop_focus_window1462 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_unaryExpression_in_loop_focus_window1464 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUB_in_loop_focus_window1479 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_unaryExpression_in_loop_focus_window1481 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_transform_contract_block_in_transform_contract1505 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_transform_in_transform_contract_block1539 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_transform_spec_in_transform1566 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_transform1568 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_focus_assert_spec_in_transform_spec1592 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_focus_key_in_focus_assert_spec1613 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_focus_assert_spec1615 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_focus_key_in_ordered_contract1641 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_ordered_key_in_ordered_contract1643 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_ordered_contract1653 = new BitSet(new long[]{0x0000C02000000000L,0x0000000000083000L});
public static final BitSet FOLLOW_relOp_in_ordered_contract1655 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_ordered_contract1657 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_ordered_contract1667 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_ordered_contract1669 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_ordered_contract1671 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_ordered_contract1685 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_assignmentExpression_in_ordered_contract1687 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_ordered_contract1689 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_ordered_contract1691 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pure_function_in_function_contract1730 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_full_contract_block_in_function_contract1733 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logic_function_clause_in_logic_function_contract1772 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_logic_specifier_key_in_logic_function_clause1801 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_type_expr_in_logic_function_clause1803 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_logic_function_clause1807 = new BitSet(new long[]{0x0000000000000200L,0x0000000000000200L});
public static final BitSet FOLLOW_logic_function_body_in_logic_function_clause1811 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_logic_function_clause1813 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_predicate_key_in_logic_function_clause1843 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_logic_function_clause1847 = new BitSet(new long[]{0x0000000000000200L,0x0000000000000200L});
public static final BitSet FOLLOW_logic_function_body_in_logic_function_clause1851 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_logic_function_clause1853 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assert_key_in_assert_contract1893 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_assert_contract1895 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_assert_contract1897 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_logic_function_body1926 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binders_in_logic_function_body1928 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_logic_function_body1930 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_ASSIGN_in_logic_function_body1932 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_logic_function_body1934 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_logic_function_body1960 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binders_in_logic_function_body1962 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_logic_function_body1964 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSIGN_in_logic_function_body1989 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_logic_function_body1991 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pure_key_in_pure_function2026 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_pure_function2028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_clause_in_full_contract_block2054 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_contract_block_in_full_contract_block2061 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_completeness_clause_block_in_full_contract_block2076 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_named_behavior_block_in_contract_block2125 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_completeness_clause_block_in_contract_block2127 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_requires_clause_in_function_clause2145 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_function_clause2147 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_terminates_clause_in_function_clause2162 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_function_clause2164 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simple_clause_in_function_clause2179 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_function_clause2181 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_named_behavior_in_named_behavior_block2206 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_completeness_clause_in_completeness_clause_block2231 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_completeness_clause_block2233 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_requires_key_in_requires_clause2258 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_requires_clause2260 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_terminates_key_in_terminates_clause2287 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_terminates_clause2289 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_binder_in_binders2316 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_binders2319 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binder_in_binders2321 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_type_expr_in_binder2356 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000200L});
public static final BitSet FOLLOW_variable_ident_in_binder2358 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_binder2361 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000200L});
public static final BitSet FOLLOW_variable_ident_in_binder2363 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_logic_type_expr_in_type_expr2400 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_specifierQualifierList_in_type_expr2415 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000A00L});
public static final BitSet FOLLOW_abstractDeclarator_in_type_expr2417 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_basic_type_in_specifierQualifierList2452 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_pointer_in_abstractDeclarator2485 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2509 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_abstractDeclarator2533 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000A00L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_directAbstractDeclarator2578 = new BitSet(new long[]{0x0000000000000000L,0x0000402000000A00L});
public static final BitSet FOLLOW_abstractDeclarator_in_directAbstractDeclarator2580 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclarator2582 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
public static final BitSet FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator2584 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
public static final BitSet FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator2621 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
public static final BitSet FOLLOW_STAR_in_pointer2656 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
public static final BitSet FOLLOW_LSQUARE_in_directAbstractDeclaratorSuffix2683 = new BitSet(new long[]{0x0200090400100010L,0x000B408020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_assignmentExpression_opt_in_directAbstractDeclaratorSuffix2685 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix2687 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_built_in_logic_type_in_logic_type_expr2740 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_boolean_type_in_built_in_logic_type2805 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_type_in_built_in_logic_type2809 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_real_type_in_built_in_logic_type2813 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_variable_ident2830 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_variable_ident_base_in_variable_ident2832 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_ident_base_in_variable_ident2855 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_LSQUARE_in_variable_ident2857 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_variable_ident2859 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_ident_base_in_variable_ident2882 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_variable_ident_base2914 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_variable_ident_base2933 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000200L});
public static final BitSet FOLLOW_variable_ident_in_variable_ident_base2935 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_variable_ident_base2937 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_executeswhen_key_in_guards_clause2967 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_guards_clause2969 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assigns_clause_in_simple_clause2995 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ensures_clause_in_simple_clause3003 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocation_clause_in_simple_clause3012 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reads_clause_in_simple_clause3020 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_depends_clause_in_simple_clause3028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_guards_clause_in_simple_clause3036 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assigns_key_in_assigns_clause3053 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_assigns_clause3055 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ensures_key_in_ensures_clause3081 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_ensures_clause3083 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_alloc_key_in_allocation_clause3109 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_allocation_clause3111 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_frees_key_in_allocation_clause3128 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_allocation_clause3130 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reads_key_in_reads_clause3156 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_reads_clause3158 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dependson_key_in_depends_clause3184 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_list_in_depends_clause3186 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_in_event_list3212 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_event_list3215 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_in_event_list3217 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_event_base_in_event3245 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
public static final BitSet FOLLOW_PLUS_in_event3247 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_event3249 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_event3275 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_SUB_in_event3277 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_event3279 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_event3305 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_AMPERSAND_in_event3307 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_event3309 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_event3335 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_read_key_in_event_base3368 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_event_base3370 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_event_base3372 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_event_base3374 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_write_key_in_event_base3400 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_event_base3402 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_event_base3404 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_event_base3406 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_key_in_event_base3432 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_event_base3434 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_event_base3436 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_event_base3438 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_call_key_in_event_base3464 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_event_base3466 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_event_base3468 = new BitSet(new long[]{0x0000000000400000L,0x0000002000000000L});
public static final BitSet FOLLOW_COMMA_in_event_base3471 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_event_base3473 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_event_base3477 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nothing_key_in_event_base3506 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_anyact_key_in_event_base3514 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_event_base3522 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_in_event_base3524 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_event_base3526 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_behavior_key_in_named_behavior3561 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_named_behavior3563 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_named_behavior3565 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_behavior_body_in_named_behavior3567 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_behavior_clause_in_behavior_body3607 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_behavior_body3609 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_assumes_clause_in_behavior_clause3638 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_requires_clause_in_behavior_clause3647 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simple_clause_in_behavior_clause3655 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assumes_key_in_assumes_clause3672 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_assumes_clause3674 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_completes_key_in_completeness_clause3700 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_behaviors_key_in_completeness_clause3702 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_id_list_in_completeness_clause3704 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_disjoint_key_in_completeness_clause3732 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_behaviors_key_in_completeness_clause3734 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_id_list_in_completeness_clause3736 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_id_list3779 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_id_list3782 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_id_list3784 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_quantifierExpression_in_term3821 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_term3825 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forall_key_in_quantifierExpression3844 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binders_in_quantifierExpression3846 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_quantifierExpression3848 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_quantifierExpression3850 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_exists_key_in_quantifierExpression3875 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binders_in_quantifierExpression3877 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_quantifierExpression3879 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_quantifierExpression3881 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lambda_key_in_quantifierExpression3906 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binders_in_quantifierExpression3908 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_quantifierExpression3910 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_quantifierExpression3912 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_assignmentExpression3948 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_ASSIGN_in_assignmentExpression3950 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression3952 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_assignmentExpression3988 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression_opt4012 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalEquivExpression_in_conditionalExpression4030 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
public static final BitSet FOLLOW_QMARK_in_conditionalExpression4042 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_conditionalExpression_in_conditionalExpression4046 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_conditionalExpression4048 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_conditionalExpression4066 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_conditionalExpression4072 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_logicalEquivExpression4144 = new BitSet(new long[]{0x0000004000000002L});
public static final BitSet FOLLOW_EQUIV_ACSL_in_logicalEquivExpression4162 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_logicalEquivExpression4167 = new BitSet(new long[]{0x0000004000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_logicalEquivExpression4173 = new BitSet(new long[]{0x0000004000000002L});
public static final BitSet FOLLOW_logicalOrExpression_in_logicalImpliesExpression4233 = new BitSet(new long[]{0x6000000000000002L});
public static final BitSet FOLLOW_IMPLIES_in_logicalImpliesExpression4248 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_IMPLIES_ACSL_in_logicalImpliesExpression4250 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_logicalImpliesExpression4256 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_logicalImpliesExpression4262 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalXorExpression_in_logicalOrExpression4338 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
public static final BitSet FOLLOW_OR_in_logicalOrExpression4356 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_logicalOrExpression4361 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
public static final BitSet FOLLOW_logicalXorExpression_in_logicalOrExpression4367 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
public static final BitSet FOLLOW_logicalAndExpression_in_logicalXorExpression4426 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
public static final BitSet FOLLOW_XOR_ACSL_in_logicalXorExpression4444 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_logicalXorExpression4449 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
public static final BitSet FOLLOW_logicalAndExpression_in_logicalXorExpression4455 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
public static final BitSet FOLLOW_bitwiseEquivExpression_in_logicalAndExpression4513 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_AND_in_logicalAndExpression4531 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_logicalAndExpression4536 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_bitwiseEquivExpression_in_logicalAndExpression4542 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_bitwiseImpliesExpression_in_bitwiseEquivExpression4600 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
public static final BitSet FOLLOW_bitequiv_op_in_bitwiseEquivExpression4618 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_bitwiseImpliesExpression_in_bitwiseEquivExpression4622 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
public static final BitSet FOLLOW_inclusiveOrExpression_in_bitwiseImpliesExpression4678 = new BitSet(new long[]{0x0000000000000002L,0x0000000000010000L});
public static final BitSet FOLLOW_bitimplies_op_in_bitwiseImpliesExpression4692 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_bitwiseImpliesExpression_in_bitwiseImpliesExpression4696 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4767 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_BITOR_in_inclusiveOrExpression4781 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4785 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression4832 = new BitSet(new long[]{0x0000000000004002L});
public static final BitSet FOLLOW_BITXOR_in_exclusiveOrExpression4845 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression4849 = new BitSet(new long[]{0x0000000000004002L});
public static final BitSet FOLLOW_relationalExpression_in_andExpression4893 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_AMPERSAND_in_andExpression4906 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_relationalExpression_in_andExpression4910 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression4991 = new BitSet(new long[]{0x0000C02000000002L,0x0000000000083000L});
public static final BitSet FOLLOW_relOp_in_relationalExpression5006 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression5010 = new BitSet(new long[]{0x0000C02000000002L,0x0000000000083000L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression5068 = new BitSet(new long[]{0x0000000000000002L,0x0000140000000000L});
public static final BitSet FOLLOW_SHIFTLEFT_in_shiftExpression5085 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression5089 = new BitSet(new long[]{0x0000000000000002L,0x0000140000000000L});
public static final BitSet FOLLOW_SHIFTRIGHT_in_shiftExpression5129 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression5133 = new BitSet(new long[]{0x0000000000000002L,0x0000140000000000L});
public static final BitSet FOLLOW_additiveExpression_in_rangeExpression5187 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_DOTDOT_in_rangeExpression5199 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeSuffix_in_rangeExpression5203 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_additiveExpression_in_rangeSuffix5257 = new BitSet(new long[]{0x0001000000000002L});
public static final BitSet FOLLOW_HASH_in_rangeSuffix5260 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_additiveExpression_in_rangeSuffix5263 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression5282 = new BitSet(new long[]{0x0000000000000002L,0x0002000020000000L});
public static final BitSet FOLLOW_PLUS_in_additiveExpression5299 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression5303 = new BitSet(new long[]{0x0000000000000002L,0x0002000020000000L});
public static final BitSet FOLLOW_SUB_in_additiveExpression5343 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression5347 = new BitSet(new long[]{0x0000000000000002L,0x0002000020000000L});
public static final BitSet FOLLOW_castExpression_in_multiplicativeExpression5400 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_STAR_in_multiplicativeExpression5410 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_multiplicativeExpression5414 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_DIV_in_multiplicativeExpression5440 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_multiplicativeExpression5444 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_MOD_in_multiplicativeExpression5473 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_multiplicativeExpression5477 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_LPAREN_in_castExpression5531 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_type_expr_in_castExpression5533 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_castExpression5535 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_castExpression5537 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_castExpression5555 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfixExpression_in_unaryExpression5568 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_op_in_unaryExpression5573 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_unaryExpression5578 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifierExpression_in_unaryExpression5584 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unaryExpression5622 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression5624 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_type_expr_in_unaryExpression5626 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression5628 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unaryExpression5649 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression5651 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_union_key_in_unaryExpression5675 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression5677 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_unaryExpression5679 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression5681 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_inter_key_in_unaryExpression5709 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression5711 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_unaryExpression5713 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression5715 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_valid_key_in_unaryExpression5743 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression5745 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_unaryExpression5747 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression5749 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_extendedQuantification_in_unaryExpression5777 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_object_of_key_in_unaryExpression5792 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression5794 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_unaryExpression5796 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression5798 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_old_key_in_unaryExpression5820 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression5822 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_unaryExpression5824 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression5826 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sum_key_in_extendedQuantification5858 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_extendedQuantification5860 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5862 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification5864 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5866 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification5868 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5870 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_extendedQuantification5872 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_max_key_in_extendedQuantification5899 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_extendedQuantification5901 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5903 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification5905 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5907 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification5909 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5911 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_extendedQuantification5913 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_min_key_in_extendedQuantification5940 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_extendedQuantification5942 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5944 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification5946 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5948 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification5950 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5952 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_extendedQuantification5954 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_product_key_in_extendedQuantification5981 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_extendedQuantification5983 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5985 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification5987 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5989 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification5991 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification5993 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_extendedQuantification5995 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_numof_key_in_extendedQuantification6022 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_extendedQuantification6024 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6026 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6028 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6030 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6032 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6034 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_extendedQuantification6036 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primaryExpression_in_postfixExpression6069 = new BitSet(new long[]{0x0000000010000102L,0x0000000000000A00L});
public static final BitSet FOLLOW_LSQUARE_in_postfixExpression6086 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_postfixExpression6088 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_postfixExpression6090 = new BitSet(new long[]{0x0000000010000102L,0x0000000000000A00L});
public static final BitSet FOLLOW_LPAREN_in_postfixExpression6164 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_postfixExpression6166 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_postfixExpression6168 = new BitSet(new long[]{0x0000000010000102L,0x0000000000000A00L});
public static final BitSet FOLLOW_DOT_in_postfixExpression6199 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfixExpression6201 = new BitSet(new long[]{0x0000000010000102L,0x0000000000000A00L});
public static final BitSet FOLLOW_ARROW_in_postfixExpression6224 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfixExpression6226 = new BitSet(new long[]{0x0000000010000102L,0x0000000000000A00L});
public static final BitSet FOLLOW_assignmentExpression_in_argumentExpressionList6271 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_argumentExpressionList6274 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_assignmentExpression_in_argumentExpressionList6276 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_constant_in_primaryExpression6303 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_primaryExpression6311 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_LITERAL_in_primaryExpression6316 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_primaryExpression6324 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_primaryExpression6326 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_primaryExpression6328 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binders_in_primaryExpression6330 = new BitSet(new long[]{0x0000000000000000L,0x0000020800000000L});
public static final BitSet FOLLOW_SEMI_in_primaryExpression6333 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_primaryExpression6335 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_primaryExpression6339 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_primaryExpression6367 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_primaryExpression6369 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_primaryExpression6371 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_primaryExpression6391 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_primaryExpression6393 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_primaryExpression6395 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_constantExpression6425 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_constant6437 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOATING_CONSTANT_in_constant6442 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHARACTER_CONSTANT_in_constant6447 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_true_key_in_constant6452 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_false_key_in_constant6456 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_result_key_in_constant6461 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nothing_key_in_constant6465 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELLIPSIS_in_constant6469 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SELF_in_constant6477 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_null_key_in_constant6481 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUSMINUS_in_bitimplies_op6492 = new BitSet(new long[]{0x0000400000000000L});
public static final BitSet FOLLOW_GT_in_bitimplies_op6494 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LT_in_bitequiv_op6507 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_MINUSMINUS_in_bitequiv_op6509 = new BitSet(new long[]{0x0000400000000000L});
public static final BitSet FOLLOW_GT_in_bitequiv_op6511 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_boolean_type6571 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_integer_type6606 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_real_type6641 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_alloc_key6684 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_assigns_key6705 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_assumes_key6726 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_assert_key6746 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_behaviors_key6766 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_behavior_key6787 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_completes_key6808 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_decreases_key6828 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_disjoint_key6849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_ensures_key6870 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_frees_key6895 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_focus_key6916 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_ordered_key6934 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_invariant_key6953 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_loop_key6970 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_requires_key6990 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_terminates_key7013 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_variant_key7035 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_predicate_key7051 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_logic_specifier_key7064 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_empty_key7084 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_exists_key7103 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_false_key7134 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_forall_key7165 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_inter_key7196 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_let_key7215 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_nothing_key7234 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_null_key7265 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_old_key7296 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_result_key7315 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_true_key7346 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_union_key7377 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_valid_key7396 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_with_key7415 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_executeswhen_key7436 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_pure_key7456 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_reads_key7487 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_access_key7509 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_anyact_key7529 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_call_key7561 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_dependson_key7580 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_object_of_key7603 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_read_key7623 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_region_of_key7647 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_write_key7666 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_lambda_key7685 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_sum_key7699 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_max_key7712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_min_key7726 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_product_key7739 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_numof_key7753 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_contract_in_synpred1_AcslParser856 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_contract_in_synpred2_AcslParser865 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logic_function_contract_in_synpred3_AcslParser874 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assert_contract_in_synpred4_AcslParser882 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ordered_contract_in_synpred5_AcslParser890 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_clause_in_synpred6_AcslParser951 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_variant_in_synpred8_AcslParser961 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_invariant_in_synpred10_AcslParser1013 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred10_AcslParser1015 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_assigns_in_synpred11_AcslParser1038 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred11_AcslParser1040 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_synpred13_AcslParser1171 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_alloc_key_in_synpred13_AcslParser1173 = new BitSet(new long[]{0x0200090400500010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred13_AcslParser1175 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_synpred13_AcslParser1178 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred13_AcslParser1180 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_clause_in_synpred14_AcslParser1254 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_synpred15_AcslParser1292 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_variant_key_in_synpred15_AcslParser1294 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred15_AcslParser1296 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_synpred17_AcslParser1433 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_synpred17_AcslParser1435 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_synpred17_AcslParser1437 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_synpred17_AcslParser1439 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_synpred18_AcslParser1462 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_unaryExpression_in_synpred18_AcslParser1464 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pure_function_in_synpred21_AcslParser1730 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred24_AcslParser1926 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binders_in_synpred24_AcslParser1928 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred24_AcslParser1930 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_ASSIGN_in_synpred24_AcslParser1932 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred24_AcslParser1934 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred25_AcslParser1960 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binders_in_synpred25_AcslParser1962 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred25_AcslParser1964 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_clause_in_synpred26_AcslParser2054 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_completeness_clause_block_in_synpred29_AcslParser2127 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_requires_clause_in_synpred30_AcslParser2145 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred30_AcslParser2147 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_terminates_clause_in_synpred31_AcslParser2162 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred31_AcslParser2164 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_synpred36_AcslParser2485 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_synpred37_AcslParser2509 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_synpred38_AcslParser2533 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000A00L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_synpred38_AcslParser2535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_synpred42_AcslParser2656 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_boolean_type_in_synpred49_AcslParser2805 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_type_in_synpred50_AcslParser2809 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_ident_base_in_synpred52_AcslParser2855 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_LSQUARE_in_synpred52_AcslParser2857 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_synpred52_AcslParser2859 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assigns_clause_in_synpred54_AcslParser2995 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ensures_clause_in_synpred55_AcslParser3003 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocation_clause_in_synpred56_AcslParser3012 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reads_clause_in_synpred57_AcslParser3020 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_depends_clause_in_synpred58_AcslParser3028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_alloc_key_in_synpred59_AcslParser3109 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred59_AcslParser3111 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_synpred61_AcslParser3245 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
public static final BitSet FOLLOW_PLUS_in_synpred61_AcslParser3247 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_synpred61_AcslParser3249 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_synpred62_AcslParser3275 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_SUB_in_synpred62_AcslParser3277 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_synpred62_AcslParser3279 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_synpred63_AcslParser3305 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_AMPERSAND_in_synpred63_AcslParser3307 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_synpred63_AcslParser3309 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_read_key_in_synpred64_AcslParser3368 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred64_AcslParser3370 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred64_AcslParser3372 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred64_AcslParser3374 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_write_key_in_synpred65_AcslParser3400 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred65_AcslParser3402 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred65_AcslParser3404 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred65_AcslParser3406 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_key_in_synpred66_AcslParser3432 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred66_AcslParser3434 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred66_AcslParser3436 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred66_AcslParser3438 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_call_key_in_synpred68_AcslParser3464 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred68_AcslParser3466 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_synpred68_AcslParser3468 = new BitSet(new long[]{0x0000000000400000L,0x0000002000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred68_AcslParser3471 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred68_AcslParser3473 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred68_AcslParser3477 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nothing_key_in_synpred69_AcslParser3506 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_anyact_key_in_synpred70_AcslParser3514 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_behavior_clause_in_synpred71_AcslParser3607 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred71_AcslParser3609 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assumes_clause_in_synpred72_AcslParser3638 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_requires_clause_in_synpred73_AcslParser3647 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_completes_key_in_synpred74_AcslParser3700 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_behaviors_key_in_synpred74_AcslParser3702 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_id_list_in_synpred74_AcslParser3704 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forall_key_in_synpred78_AcslParser3844 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binders_in_synpred78_AcslParser3846 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred78_AcslParser3848 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred78_AcslParser3850 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_exists_key_in_synpred79_AcslParser3875 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binders_in_synpred79_AcslParser3877 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred79_AcslParser3879 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred79_AcslParser3881 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_synpred80_AcslParser3942 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_ASSIGN_in_synpred80_AcslParser3944 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_QMARK_in_synpred83_AcslParser4042 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_conditionalExpression_in_synpred83_AcslParser4046 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_synpred83_AcslParser4048 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred83_AcslParser4066 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_synpred83_AcslParser4072 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQUIV_ACSL_in_synpred85_AcslParser4162 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred85_AcslParser4167 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_synpred85_AcslParser4173 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_synpred88_AcslParser4247 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred88_AcslParser4256 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_synpred88_AcslParser4262 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OR_in_synpred90_AcslParser4356 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred90_AcslParser4361 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalXorExpression_in_synpred90_AcslParser4367 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_XOR_ACSL_in_synpred92_AcslParser4444 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred92_AcslParser4449 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalAndExpression_in_synpred92_AcslParser4455 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AND_in_synpred94_AcslParser4531 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred94_AcslParser4536 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bitwiseEquivExpression_in_synpred94_AcslParser4542 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bitequiv_op_in_synpred95_AcslParser4618 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_bitwiseImpliesExpression_in_synpred95_AcslParser4622 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bitimplies_op_in_synpred96_AcslParser4692 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_bitwiseImpliesExpression_in_synpred96_AcslParser4696 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BITOR_in_synpred97_AcslParser4781 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_synpred97_AcslParser4785 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BITXOR_in_synpred98_AcslParser4845 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_andExpression_in_synpred98_AcslParser4849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AMPERSAND_in_synpred99_AcslParser4906 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_relationalExpression_in_synpred99_AcslParser4910 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_relOp_in_synpred105_AcslParser5006 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_shiftExpression_in_synpred105_AcslParser5010 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_relOp_in_synpred106_AcslParser5006 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_shiftExpression_in_synpred106_AcslParser5010 = new BitSet(new long[]{0x0000C02000000002L,0x0000000000083000L});
public static final BitSet FOLLOW_SHIFTLEFT_in_synpred107_AcslParser5085 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_synpred107_AcslParser5089 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHIFTRIGHT_in_synpred108_AcslParser5129 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_synpred108_AcslParser5133 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOTDOT_in_synpred109_AcslParser5199 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeSuffix_in_synpred109_AcslParser5203 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HASH_in_synpred110_AcslParser5260 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_additiveExpression_in_synpred110_AcslParser5263 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_synpred111_AcslParser5299 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_multiplicativeExpression_in_synpred111_AcslParser5303 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUB_in_synpred112_AcslParser5343 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_multiplicativeExpression_in_synpred112_AcslParser5347 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_synpred113_AcslParser5410 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_synpred113_AcslParser5414 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIV_in_synpred114_AcslParser5440 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_synpred114_AcslParser5444 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MOD_in_synpred115_AcslParser5473 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_synpred115_AcslParser5477 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred116_AcslParser5521 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_type_expr_in_synpred116_AcslParser5523 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred116_AcslParser5525 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfixExpression_in_synpred117_AcslParser5568 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_synpred120_AcslParser5614 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred120_AcslParser5616 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_type_expr_in_synpred120_AcslParser5618 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_synpred121_AcslParser5649 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_unaryExpression_in_synpred121_AcslParser5651 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_union_key_in_synpred122_AcslParser5675 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred122_AcslParser5677 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred122_AcslParser5679 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred122_AcslParser5681 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_inter_key_in_synpred123_AcslParser5709 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred123_AcslParser5711 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred123_AcslParser5713 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred123_AcslParser5715 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_valid_key_in_synpred124_AcslParser5743 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred124_AcslParser5745 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred124_AcslParser5747 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred124_AcslParser5749 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_extendedQuantification_in_synpred125_AcslParser5777 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_object_of_key_in_synpred126_AcslParser5792 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred126_AcslParser5794 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred126_AcslParser5796 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred126_AcslParser5798 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sum_key_in_synpred127_AcslParser5858 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred127_AcslParser5860 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred127_AcslParser5862 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred127_AcslParser5864 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred127_AcslParser5866 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred127_AcslParser5868 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred127_AcslParser5870 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred127_AcslParser5872 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_max_key_in_synpred128_AcslParser5899 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred128_AcslParser5901 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred128_AcslParser5903 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred128_AcslParser5905 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred128_AcslParser5907 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred128_AcslParser5909 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred128_AcslParser5911 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred128_AcslParser5913 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_min_key_in_synpred129_AcslParser5940 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred129_AcslParser5942 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred129_AcslParser5944 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred129_AcslParser5946 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred129_AcslParser5948 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred129_AcslParser5950 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred129_AcslParser5952 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred129_AcslParser5954 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_product_key_in_synpred130_AcslParser5981 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred130_AcslParser5983 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred130_AcslParser5985 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred130_AcslParser5987 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred130_AcslParser5989 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred130_AcslParser5991 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred130_AcslParser5993 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred130_AcslParser5995 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_synpred136_AcslParser6274 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_assignmentExpression_in_synpred136_AcslParser6276 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_synpred141_AcslParser6324 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred141_AcslParser6326 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_synpred141_AcslParser6328 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000001000080L});
public static final BitSet FOLLOW_binders_in_synpred141_AcslParser6330 = new BitSet(new long[]{0x0000000000000000L,0x0000020800000000L});
public static final BitSet FOLLOW_SEMI_in_synpred141_AcslParser6333 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred141_AcslParser6335 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_synpred141_AcslParser6339 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_synpred142_AcslParser6367 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred142_AcslParser6369 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_synpred142_AcslParser6371 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_true_key_in_synpred146_AcslParser6452 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_false_key_in_synpred147_AcslParser6456 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_result_key_in_synpred148_AcslParser6461 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nothing_key_in_synpred149_AcslParser6465 = new BitSet(new long[]{0x0000000000000002L});
}