AcslParser.java
// $ANTLR 3.5.2 AcslParser.g 2026-06-29 15:03:35
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",
"STATE_NULL", "STATIC", "STATICASSERT", "STRUCT", "SWITCH", "SYSTEM",
"TEXT_BLOCK", "THREADLOCAL", "TYPEDEF", "TYPEOF", "UNIFORM", "UNION",
"UNSIGNED", "UPDATE", "VALUE_AT", "VOID", "VOLATILE", "WHEN", "WHILE",
"WITH", "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", "BOTH",
"CALL_ACSL", "CAST", "CLAUSE_BEHAVIOR", "CLAUSE_COMPLETE", "CLAUSE_NORMAL",
"COL", "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", "MPI_ABSENT",
"MPI_AGREE", "MPI_COLLECTIVE", "MPI_COMM_RANK", "MPI_COMM_SIZE", "MPI_CONSTANT",
"MPI_EMPTY_IN", "MPI_EMPTY_OUT", "MPI_EQUALS", "MPI_EXPRESSION", "MPI_EXTENT",
"MPI_OFFSET", "MPI_REDUCE", "MPI_REGION", "MPI_VALID", "NOTHING", "NULL_ACSL",
"NUMOF", "OBJECT_OF", "OLD", "OPERATOR", "P2P", "POINTER", "PREDICATE_CLAUSE",
"PROD", "QUANTIFIED", "QUANTIFIED_EXT", "READS_ACSL", "READ_ACSL", "REAL_ACSL",
"RELCHAIN", "REMOTE_ACCESS", "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", "WAITSFOR",
"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 STATE_NULL=204;
public static final int STATIC=205;
public static final int STATICASSERT=206;
public static final int STRUCT=207;
public static final int SWITCH=208;
public static final int SYSTEM=209;
public static final int TEXT_BLOCK=210;
public static final int THREADLOCAL=211;
public static final int TYPEDEF=212;
public static final int TYPEOF=213;
public static final int UNIFORM=214;
public static final int UNION=215;
public static final int UNSIGNED=216;
public static final int UPDATE=217;
public static final int VALUE_AT=218;
public static final int VOID=219;
public static final int VOLATILE=220;
public static final int WHEN=221;
public static final int WHILE=222;
public static final int WITH=223;
public static final int ABSENT=224;
public static final int ABSENT_EVENT_ENTER=225;
public static final int ABSENT_EVENT_EXIT=226;
public static final int ABSENT_EVENT_SENDFROM=227;
public static final int ABSENT_EVENT_SENDTO=228;
public static final int ABSTRACT_DECLARATOR=229;
public static final int ACCESS_ACSL=230;
public static final int ALLOC=231;
public static final int ANYACT=232;
public static final int ARGUMENT_LIST=233;
public static final int ARRAY_SUFFIX=234;
public static final int ASSERT_ACSL=235;
public static final int ASSIGNS_ACSL=236;
public static final int ASSUMES_ACSL=237;
public static final int BEHAVIOR=238;
public static final int BEHAVIOR_BODY=239;
public static final int BEHAVIOR_COMPLETE=240;
public static final int BEHAVIOR_DISJOINT=241;
public static final int BEQUIV_ACSL=242;
public static final int BIMPLIES_ACSL=243;
public static final int BINDER=244;
public static final int BINDER_LIST=245;
public static final int BOOLEAN=246;
public static final int BOTH=247;
public static final int CALL_ACSL=248;
public static final int CAST=249;
public static final int CLAUSE_BEHAVIOR=250;
public static final int CLAUSE_COMPLETE=251;
public static final int CLAUSE_NORMAL=252;
public static final int COL=253;
public static final int CONTRACT=254;
public static final int C_TYPE=255;
public static final int DEPENDSON=256;
public static final int DIRECT_ABSTRACT_DECLARATOR=257;
public static final int ENSURES_ACSL=258;
public static final int EVENT_BASE=259;
public static final int EVENT_INTS=260;
public static final int EVENT_LIST=261;
public static final int EVENT_PARENTHESIZED=262;
public static final int EVENT_PLUS=263;
public static final int EVENT_SUB=264;
public static final int EXECUTES_WHEN=265;
public static final int EXISTS_ACSL=266;
public static final int FALSE_ACSL=267;
public static final int FOCUS_ASSERT=268;
public static final int FOCUS_LOOP=269;
public static final int FOCUS_ORDERED_STATEMENT=270;
public static final int FORALL_ACSL=271;
public static final int FREES=272;
public static final int FUNC_CALL=273;
public static final int FUNC_CONTRACT=274;
public static final int FUNC_CONTRACT_BLOCK=275;
public static final int ID_LIST=276;
public static final int INDEX=277;
public static final int INTEGER=278;
public static final int INTER=279;
public static final int LAMBDA_ACSL=280;
public static final int LOGIC_FUNCTIONS=281;
public static final int LOGIC_FUNCTION_BODY=282;
public static final int LOGIC_FUNCTION_CLAUSE=283;
public static final int LOGIC_TYPE=284;
public static final int LOOP_ALLOC=285;
public static final int LOOP_ASSIGNS=286;
public static final int LOOP_BEHAVIOR=287;
public static final int LOOP_CLAUSE=288;
public static final int LOOP_CONTRACT=289;
public static final int LOOP_CONTRACT_BLOCK=290;
public static final int LOOP_FOCUS_HEAD=291;
public static final int LOOP_FOCUS_NEG_SINGLETON=292;
public static final int LOOP_FOCUS_POS_SINGLETON=293;
public static final int LOOP_FOCUS_RANGE=294;
public static final int LOOP_FREE=295;
public static final int LOOP_INVARIANT=296;
public static final int LOOP_VARIANT=297;
public static final int MAX=298;
public static final int MIN=299;
public static final int MPI_ABSENT=300;
public static final int MPI_AGREE=301;
public static final int MPI_COLLECTIVE=302;
public static final int MPI_COMM_RANK=303;
public static final int MPI_COMM_SIZE=304;
public static final int MPI_CONSTANT=305;
public static final int MPI_EMPTY_IN=306;
public static final int MPI_EMPTY_OUT=307;
public static final int MPI_EQUALS=308;
public static final int MPI_EXPRESSION=309;
public static final int MPI_EXTENT=310;
public static final int MPI_OFFSET=311;
public static final int MPI_REDUCE=312;
public static final int MPI_REGION=313;
public static final int MPI_VALID=314;
public static final int NOTHING=315;
public static final int NULL_ACSL=316;
public static final int NUMOF=317;
public static final int OBJECT_OF=318;
public static final int OLD=319;
public static final int OPERATOR=320;
public static final int P2P=321;
public static final int POINTER=322;
public static final int PREDICATE_CLAUSE=323;
public static final int PROD=324;
public static final int QUANTIFIED=325;
public static final int QUANTIFIED_EXT=326;
public static final int READS_ACSL=327;
public static final int READ_ACSL=328;
public static final int REAL_ACSL=329;
public static final int RELCHAIN=330;
public static final int REMOTE_ACCESS=331;
public static final int REQUIRES_ACSL=332;
public static final int RESULT_ACSL=333;
public static final int SET_BINDERS=334;
public static final int SET_SIMPLE=335;
public static final int SIZEOF_EXPR=336;
public static final int SIZEOF_TYPE=337;
public static final int SPECIFIER_QUALIFIER_LIST=338;
public static final int SUM=339;
public static final int TERMINATES=340;
public static final int TERM_PARENTHESIZED=341;
public static final int TRANSFORM=342;
public static final int TRANSFORM_CONTRACT=343;
public static final int TRANSFORM_CONTRACT_BLOCK=344;
public static final int TRUE_ACSL=345;
public static final int TYPE_BUILTIN=346;
public static final int TYPE_ID=347;
public static final int UNION_ACSL=348;
public static final int VALID=349;
public static final int VAR_ID=350;
public static final int VAR_ID_BASE=351;
public static final int VAR_ID_SQUARE=352;
public static final int VAR_ID_STAR=353;
public static final int WAITSFOR=354;
public static final int WRITE_ACSL=355;
// 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:163: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:164: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("waitsfor"))||(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;
case EXTENDED_IDENTIFIER:
{
alt1=2;
}
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:164:7: loop_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_loop_contract_in_contract996);
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:165:7: function_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_function_contract_in_contract1005);
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:166:7: logic_function_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_logic_function_contract_in_contract1014);
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:167:7: assert_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assert_contract_in_contract1022);
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:168:7: ordered_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_ordered_contract_in_contract1030);
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:169:7: transform_contract
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_transform_contract_in_contract1038);
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:173: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:174:5: ( loop_contract_block -> ^( LOOP_CONTRACT loop_contract_block ) )
// AcslParser.g:174:7: loop_contract_block
{
pushFollow(FOLLOW_loop_contract_block_in_loop_contract1057);
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();
// 175:9: -> ^( LOOP_CONTRACT loop_contract_block )
{
// AcslParser.g:175: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:178: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:179:5: ( (lc+= loop_clause )* (lb+= loop_behavior )* (lv= loop_variant )? (lf= loop_focus )? -> ^( LOOP_CONTRACT_BLOCK ( $lc)* ( $lb)* ( $lv)? ( $lf)? ) )
// AcslParser.g:179:7: (lc+= loop_clause )* (lb+= loop_behavior )* (lv= loop_variant )? (lf= loop_focus )?
{
// AcslParser.g:179: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:179:9: lc+= loop_clause
{
pushFollow(FOLLOW_loop_clause_in_loop_contract_block1091);
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:179: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:179:26: lb+= loop_behavior
{
pushFollow(FOLLOW_loop_behavior_in_loop_contract_block1096);
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:179: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:179:45: lv= loop_variant
{
pushFollow(FOLLOW_loop_variant_in_loop_contract_block1101);
lv=loop_variant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_variant.add(lv.getTree());
}
break;
}
// AcslParser.g:179: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:179:62: lf= loop_focus
{
pushFollow(FOLLOW_loop_focus_in_loop_contract_block1106);
lf=loop_focus();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_focus.add(lf.getTree());
}
break;
}
// AST REWRITE
// elements: lf, lb, 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();
// 180:9: -> ^( LOOP_CONTRACT_BLOCK ( $lc)* ( $lb)* ( $lv)? ( $lf)? )
{
// AcslParser.g:180: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:180:34: ( $lc)*
while ( stream_lc.hasNext() ) {
adaptor.addChild(root_1, stream_lc.nextTree());
}
stream_lc.reset();
// AcslParser.g:180:39: ( $lb)*
while ( stream_lb.hasNext() ) {
adaptor.addChild(root_1, stream_lb.nextTree());
}
stream_lb.reset();
// AcslParser.g:180:44: ( $lv)?
if ( stream_lv.hasNext() ) {
adaptor.addChild(root_1, stream_lv.nextTree());
}
stream_lv.reset();
// AcslParser.g:180: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:183: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:184: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:184:7: loop_invariant SEMI
{
pushFollow(FOLLOW_loop_invariant_in_loop_clause1153);
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_clause1155); 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();
// 185:9: -> ^( LOOP_CLAUSE loop_invariant )
{
// AcslParser.g:185: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:186:7: loop_assigns SEMI
{
pushFollow(FOLLOW_loop_assigns_in_loop_clause1178);
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_clause1180); 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();
// 187:9: -> ^( LOOP_CLAUSE loop_assigns )
{
// AcslParser.g:187: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:188:7: loop_allocation SEMI
{
pushFollow(FOLLOW_loop_allocation_in_loop_clause1203);
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_clause1205); 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();
// 189:9: -> ^( LOOP_CLAUSE loop_allocation )
{
// AcslParser.g:189: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:192: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:193:5: ( loop_key invariant_key term -> ^( LOOP_INVARIANT term ) )
// AcslParser.g:193:7: loop_key invariant_key term
{
pushFollow(FOLLOW_loop_key_in_loop_invariant1237);
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_invariant1239);
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_invariant1241);
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();
// 194:9: -> ^( LOOP_INVARIANT term )
{
// AcslParser.g:194: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:197: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:198:5: ( loop_key assigns_key argumentExpressionList -> ^( LOOP_ASSIGNS assigns_key argumentExpressionList ) )
// AcslParser.g:198:7: loop_key assigns_key argumentExpressionList
{
pushFollow(FOLLOW_loop_key_in_loop_assigns1273);
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_assigns1275);
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_assigns1277);
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();
// 199:9: -> ^( LOOP_ASSIGNS assigns_key argumentExpressionList )
{
// AcslParser.g:199: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:202: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:203: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:203:7: loop_key alloc_key argumentExpressionList ( COMMA term )?
{
pushFollow(FOLLOW_loop_key_in_loop_allocation1311);
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_allocation1313);
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_allocation1315);
argumentExpressionList22=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList22.getTree());
// AcslParser.g:203:49: ( COMMA term )?
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==COMMA) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// AcslParser.g:203:50: COMMA term
{
COMMA23=(Token)match(input,COMMA,FOLLOW_COMMA_in_loop_allocation1318); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA23);
pushFollow(FOLLOW_term_in_loop_allocation1320);
term24=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term24.getTree());
}
break;
}
// AST REWRITE
// elements: argumentExpressionList, 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();
// 204:9: -> ^( LOOP_ALLOC argumentExpressionList ( term )? )
{
// AcslParser.g:204: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:204: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:205:7: loop_key frees_key argumentExpressionList
{
pushFollow(FOLLOW_loop_key_in_loop_allocation1348);
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_allocation1350);
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_allocation1352);
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();
// 206:9: -> ^( LOOP_FREE argumentExpressionList )
{
// AcslParser.g:206: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:209: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:210:5: ( FOR ilist= id_list COLON (lc+= loop_clause )* -> ^( LOOP_BEHAVIOR $ilist ( $lc)* ) )
// AcslParser.g:210:7: FOR ilist= id_list COLON (lc+= loop_clause )*
{
FOR28=(Token)match(input,FOR,FOLLOW_FOR_in_loop_behavior1384); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FOR.add(FOR28);
pushFollow(FOLLOW_id_list_in_loop_behavior1388);
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_behavior1390); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON29);
// AcslParser.g:210: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:210:33: lc+= loop_clause
{
pushFollow(FOLLOW_loop_clause_in_loop_behavior1394);
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();
// 211:9: -> ^( LOOP_BEHAVIOR $ilist ( $lc)* )
{
// AcslParser.g:211: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:211: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:214: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:215: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:215:7: loop_key variant_key term
{
pushFollow(FOLLOW_loop_key_in_loop_variant1432);
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_variant1434);
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_variant1436);
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();
// 216:9: -> ^( LOOP_VARIANT term )
{
// AcslParser.g:216: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:217:7: loop_key variant_key term FOR IDENTIFIER
{
pushFollow(FOLLOW_loop_key_in_loop_variant1459);
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_variant1461);
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_variant1463);
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_variant1465); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FOR.add(FOR36);
IDENTIFIER37=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_loop_variant1467); 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();
// 218:9: -> ^( LOOP_VARIANT term IDENTIFIER )
{
// AcslParser.g:218: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:221: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:222:5: ( focus_key loop_focus_head BITOR argumentExpressionList SEMI -> ^( FOCUS_LOOP loop_focus_head argumentExpressionList ) )
// AcslParser.g:222:7: focus_key loop_focus_head BITOR argumentExpressionList SEMI
{
pushFollow(FOLLOW_focus_key_in_loop_focus1505);
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_focus1507);
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_focus1509); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR40);
pushFollow(FOLLOW_argumentExpressionList_in_loop_focus1511);
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_focus1513); 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();
// 222:67: -> ^( FOCUS_LOOP loop_focus_head argumentExpressionList )
{
// AcslParser.g:222: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:225: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:226:5: ( IDENTIFIER ( loop_focus_window )? -> ^( LOOP_FOCUS_HEAD IDENTIFIER ( loop_focus_window )? ) )
// AcslParser.g:226:7: IDENTIFIER ( loop_focus_window )?
{
IDENTIFIER43=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_loop_focus_head1539); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER43);
// AcslParser.g:226: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:226:18: loop_focus_window
{
pushFollow(FOLLOW_loop_focus_window_in_loop_focus_head1541);
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: IDENTIFIER, loop_focus_window
// 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:37: -> ^( LOOP_FOCUS_HEAD IDENTIFIER ( loop_focus_window )? )
{
// AcslParser.g:226: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:226: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:229: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:230: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:230:7: PLUS LCURLY rangeExpression RCURLY
{
PLUS45=(Token)match(input,PLUS,FOLLOW_PLUS_in_loop_focus_window1573); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS45);
LCURLY46=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_loop_focus_window1575); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY46);
pushFollow(FOLLOW_rangeExpression_in_loop_focus_window1577);
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_window1579); 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();
// 231:9: -> ^( LOOP_FOCUS_RANGE rangeExpression )
{
// AcslParser.g:231: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:232:7: PLUS unaryExpression
{
PLUS49=(Token)match(input,PLUS,FOLLOW_PLUS_in_loop_focus_window1602); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS49);
pushFollow(FOLLOW_unaryExpression_in_loop_focus_window1604);
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();
// 232:28: -> ^( LOOP_FOCUS_POS_SINGLETON unaryExpression )
{
// AcslParser.g:232: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:233:7: SUB unaryExpression
{
SUB51=(Token)match(input,SUB,FOLLOW_SUB_in_loop_focus_window1619); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUB.add(SUB51);
pushFollow(FOLLOW_unaryExpression_in_loop_focus_window1621);
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();
// 233:27: -> ^( LOOP_FOCUS_NEG_SINGLETON unaryExpression )
{
// AcslParser.g:233: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:236: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:237:5: ( transform_contract_block -> ^( TRANSFORM_CONTRACT transform_contract_block ) )
// AcslParser.g:237:7: transform_contract_block
{
pushFollow(FOLLOW_transform_contract_block_in_transform_contract1645);
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();
// 238:9: -> ^( TRANSFORM_CONTRACT transform_contract_block )
{
// AcslParser.g:238: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:241: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:242:5: ( (trs+= transform )* -> ^( TRANSFORM_CONTRACT_BLOCK ( $trs)* ) )
// AcslParser.g:242:7: (trs+= transform )*
{
// AcslParser.g:242: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:242:10: trs+= transform
{
pushFollow(FOLLOW_transform_in_transform_contract_block1679);
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();
// 242:23: -> ^( TRANSFORM_CONTRACT_BLOCK ( $trs)* )
{
// AcslParser.g:242: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:242: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:245: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:246:5: ( transform_spec SEMI -> ^( TRANSFORM transform_spec ) )
// AcslParser.g:246:7: transform_spec SEMI
{
pushFollow(FOLLOW_transform_spec_in_transform1706);
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_transform1708); 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();
// 246:27: -> ^( TRANSFORM transform_spec )
{
// AcslParser.g:246: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:249: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:250:5: ( focus_assert_spec )
// AcslParser.g:250:7: focus_assert_spec
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_focus_assert_spec_in_transform_spec1732);
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:253: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:254:5: ( focus_key ( IDENTIFIER )+ -> ^( FOCUS_ASSERT ( IDENTIFIER )+ ) )
// AcslParser.g:254:7: focus_key ( IDENTIFIER )+
{
pushFollow(FOLLOW_focus_key_in_focus_assert_spec1753);
focus_key57=focus_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_focus_key.add(focus_key57.getTree());
// AcslParser.g:254: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:254:17: IDENTIFIER
{
IDENTIFIER58=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_focus_assert_spec1755); 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();
// 254:29: -> ^( FOCUS_ASSERT ( IDENTIFIER )+ )
{
// AcslParser.g:254: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:257: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:258:5: ( focus_key ordered_key LPAREN relOp COMMA IDENTIFIER COLON rangeExpression BITOR assignmentExpression RPAREN SEMI -> ^( FOCUS_ORDERED_STATEMENT relOp IDENTIFIER rangeExpression assignmentExpression ) )
// AcslParser.g:258:7: focus_key ordered_key LPAREN relOp COMMA IDENTIFIER COLON rangeExpression BITOR assignmentExpression RPAREN SEMI
{
pushFollow(FOLLOW_focus_key_in_ordered_contract1781);
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_contract1783);
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_contract1793); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN61);
pushFollow(FOLLOW_relOp_in_ordered_contract1795);
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_contract1797); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA63);
IDENTIFIER64=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_ordered_contract1807); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER64);
COLON65=(Token)match(input,COLON,FOLLOW_COLON_in_ordered_contract1809); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON65);
pushFollow(FOLLOW_rangeExpression_in_ordered_contract1811);
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_contract1825); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR67);
pushFollow(FOLLOW_assignmentExpression_in_ordered_contract1827);
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_contract1829); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN69);
SEMI70=(Token)match(input,SEMI,FOLLOW_SEMI_in_ordered_contract1831); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI70);
// AST REWRITE
// elements: relOp, assignmentExpression, IDENTIFIER, 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();
// 262:7: -> ^( FOCUS_ORDERED_STATEMENT relOp IDENTIFIER rangeExpression assignmentExpression )
{
// AcslParser.g:262: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:266: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:267:5: ( ( pure_function )? full_contract_block -> ^( FUNC_CONTRACT full_contract_block ( pure_function )? ) )
// AcslParser.g:267:7: ( pure_function )? full_contract_block
{
// AcslParser.g:267: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:267:7: pure_function
{
pushFollow(FOLLOW_pure_function_in_function_contract1870);
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_contract1873);
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: full_contract_block, pure_function
// 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();
// 268:7: -> ^( FUNC_CONTRACT full_contract_block ( pure_function )? )
{
// AcslParser.g:268: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:268: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:274: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:275:5: ( ( (a+= logic_function_clause )* ) -> ^( LOGIC_FUNCTIONS ( $a)* ) )
// AcslParser.g:275:7: ( (a+= logic_function_clause )* )
{
// AcslParser.g:275:7: ( (a+= logic_function_clause )* )
// AcslParser.g:275:8: (a+= logic_function_clause )*
{
// AcslParser.g:275: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:275:9: a+= logic_function_clause
{
pushFollow(FOLLOW_logic_function_clause_in_logic_function_contract1912);
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();
// 275:35: -> ^( LOGIC_FUNCTIONS ( $a)* )
{
// AcslParser.g:275: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:275: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:278: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:279: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:279:7: logic_specifier_key type_expr a= IDENTIFIER b= logic_function_body SEMI
{
pushFollow(FOLLOW_logic_specifier_key_in_logic_function_clause1941);
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_clause1943);
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_clause1947); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(a);
pushFollow(FOLLOW_logic_function_body_in_logic_function_clause1951);
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_clause1953); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI75);
// AST REWRITE
// elements: type_expr, 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();
// 280:9: -> ^( LOGIC_FUNCTION_CLAUSE type_expr $a $b)
{
// AcslParser.g:280: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:281:7: predicate_key a= IDENTIFIER b= logic_function_body SEMI
{
pushFollow(FOLLOW_predicate_key_in_logic_function_clause1983);
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_clause1987); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(a);
pushFollow(FOLLOW_logic_function_body_in_logic_function_clause1991);
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_clause1993); 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();
// 282:9: -> ^( PREDICATE_CLAUSE $a $b)
{
// AcslParser.g:282: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:286: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:287:5: ( assert_key term SEMI -> ^( ASSERT_ACSL term ) )
// AcslParser.g:287:7: assert_key term SEMI
{
pushFollow(FOLLOW_assert_key_in_assert_contract2033);
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_contract2035);
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_contract2037); 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();
// 287:28: -> ^( ASSERT_ACSL term )
{
// AcslParser.g:287: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:293: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:294: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:294:7: LPAREN binders RPAREN ASSIGN term
{
LPAREN81=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_logic_function_body2066); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN81);
pushFollow(FOLLOW_binders_in_logic_function_body2068);
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_body2070); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN83);
ASSIGN84=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_logic_function_body2072); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN84);
pushFollow(FOLLOW_term_in_logic_function_body2074);
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();
// 295:7: -> ^( LOGIC_FUNCTION_BODY binders term )
{
// AcslParser.g:295: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:296:7: LPAREN binders RPAREN
{
LPAREN86=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_logic_function_body2100); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN86);
pushFollow(FOLLOW_binders_in_logic_function_body2102);
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_body2104); 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();
// 297:7: -> ^( LOGIC_FUNCTION_BODY binders ABSENT )
{
// AcslParser.g:297: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:298:7: ASSIGN term
{
ASSIGN89=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_logic_function_body2129); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN89);
pushFollow(FOLLOW_term_in_logic_function_body2131);
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();
// 299:7: -> ^( LOGIC_FUNCTION_BODY ABSENT term )
{
// AcslParser.g:299: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:302:1: pure_function : pure_key SEMI ;
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;
try {
// AcslParser.g:303:5: ( pure_key SEMI )
// AcslParser.g:303:7: pure_key SEMI
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_pure_key_in_pure_function2166);
pure_key91=pure_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, pure_key91.getTree());
SEMI92=(Token)match(input,SEMI,FOLLOW_SEMI_in_pure_function2168); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SEMI92_tree = (Object)adaptor.create(SEMI92);
adaptor.addChild(root_0, SEMI92_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 "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:308: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:309:5: ( (f+= function_clause )* (m+= contract_block )* (c+= completeness_clause_block )* -> ^( FUNC_CONTRACT_BLOCK ( $f)* ( $m)* ( $c)* ) )
// AcslParser.g:309:7: (f+= function_clause )* (m+= contract_block )* (c+= completeness_clause_block )*
{
// AcslParser.g:309:7: (f+= function_clause )*
loop19:
while (true) {
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==IDENTIFIER) ) {
int LA19_2 = input.LA(2);
if ( (LA19_2==IDENTIFIER) ) {
int LA19_3 = input.LA(3);
if ( (LA19_3==SEMI) ) {
int LA19_5 = input.LA(4);
if ( ((synpred26_AcslParser()&&((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("waitsfor"))||(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"))))) ) {
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_2==AMPERSAND||LA19_2==CHARACTER_CONSTANT||LA19_2==ELLIPSIS||LA19_2==EXTENDED_IDENTIFIER||LA19_2==FLOATING_CONSTANT||LA19_2==INTEGER_CONSTANT||LA19_2==LCURLY||LA19_2==LPAREN||LA19_2==NOT||LA19_2==PLUS||LA19_2==SEMI||LA19_2==STAR||(LA19_2 >= STRING_LITERAL && LA19_2 <= SUB)||LA19_2==TILDE||LA19_2==SELF||LA19_2==SIZEOF) ) {
alt19=1;
}
}
switch (alt19) {
case 1 :
// AcslParser.g:309:8: f+= function_clause
{
pushFollow(FOLLOW_function_clause_in_full_contract_block2190);
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:309: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_4 = input.LA(3);
if ( (LA20_4==COLON) ) {
alt20=1;
}
}
}
else if ( (LA20_0==EXTENDED_IDENTIFIER) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// AcslParser.g:309:30: m+= contract_block
{
pushFollow(FOLLOW_contract_block_in_full_contract_block2197);
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:310: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:310:10: c+= completeness_clause_block
{
pushFollow(FOLLOW_completeness_clause_block_in_full_contract_block2212);
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();
// 311:9: -> ^( FUNC_CONTRACT_BLOCK ( $f)* ( $m)* ( $c)* )
{
// AcslParser.g:311: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:311:35: ( $f)*
while ( stream_f.hasNext() ) {
adaptor.addChild(root_1, stream_f.nextTree());
}
stream_f.reset();
// AcslParser.g:311:39: ( $m)*
while ( stream_m.hasNext() ) {
adaptor.addChild(root_1, stream_m.nextTree());
}
stream_m.reset();
// AcslParser.g:311: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 partial_contract_block_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "partial_contract_block"
// AcslParser.g:317:1: partial_contract_block : (f+= function_clause )* (b+= named_behavior_block )* (c+= completeness_clause_block )* -> ^( FUNC_CONTRACT_BLOCK ( $f)* ( $b)* ( $c)* ) ;
public final AcslParser.partial_contract_block_return partial_contract_block() throws RecognitionException {
AcslParser.partial_contract_block_return retval = new AcslParser.partial_contract_block_return();
retval.start = input.LT(1);
Object root_0 = null;
List<Object> list_f=null;
List<Object> list_b=null;
List<Object> list_c=null;
RuleReturnScope f = null;
RuleReturnScope b = null;
RuleReturnScope c = null;
RewriteRuleSubtreeStream stream_function_clause=new RewriteRuleSubtreeStream(adaptor,"rule function_clause");
RewriteRuleSubtreeStream stream_named_behavior_block=new RewriteRuleSubtreeStream(adaptor,"rule named_behavior_block");
RewriteRuleSubtreeStream stream_completeness_clause_block=new RewriteRuleSubtreeStream(adaptor,"rule completeness_clause_block");
try {
// AcslParser.g:318:5: ( (f+= function_clause )* (b+= named_behavior_block )* (c+= completeness_clause_block )* -> ^( FUNC_CONTRACT_BLOCK ( $f)* ( $b)* ( $c)* ) )
// AcslParser.g:318:7: (f+= function_clause )* (b+= named_behavior_block )* (c+= completeness_clause_block )*
{
// AcslParser.g:318:7: (f+= function_clause )*
loop22:
while (true) {
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==IDENTIFIER) ) {
int LA22_1 = input.LA(2);
if ( (LA22_1==IDENTIFIER) ) {
int LA22_3 = input.LA(3);
if ( (LA22_3==SEMI) ) {
int LA22_5 = input.LA(4);
if ( ((synpred29_AcslParser()&&((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("waitsfor"))||(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"))))) ) {
alt22=1;
}
}
else if ( ((LA22_3 >= AMPERSAND && LA22_3 <= AND)||(LA22_3 >= ARROW && LA22_3 <= ASSIGN)||LA22_3==BITOR||LA22_3==BITXOR||LA22_3==COMMA||LA22_3==DIV||(LA22_3 >= DOT && LA22_3 <= DOTDOT)||(LA22_3 >= EQUALS && LA22_3 <= EQUIV_ACSL)||(LA22_3 >= GT && LA22_3 <= GTE)||(LA22_3 >= IMPLIES && LA22_3 <= IMPLIES_ACSL)||LA22_3==LPAREN||(LA22_3 >= LSQUARE && LA22_3 <= LTE)||(LA22_3 >= MINUSMINUS && LA22_3 <= MOD)||LA22_3==NEQ||LA22_3==OR||LA22_3==PLUS||LA22_3==QMARK||LA22_3==SHIFTLEFT||LA22_3==SHIFTRIGHT||LA22_3==STAR||LA22_3==SUB||LA22_3==XOR_ACSL) ) {
alt22=1;
}
}
else if ( (LA22_1==AMPERSAND||LA22_1==CHARACTER_CONSTANT||LA22_1==ELLIPSIS||LA22_1==EXTENDED_IDENTIFIER||LA22_1==FLOATING_CONSTANT||LA22_1==INTEGER_CONSTANT||LA22_1==LCURLY||LA22_1==LPAREN||LA22_1==NOT||LA22_1==PLUS||LA22_1==SEMI||LA22_1==STAR||(LA22_1 >= STRING_LITERAL && LA22_1 <= SUB)||LA22_1==TILDE||LA22_1==SELF||LA22_1==SIZEOF) ) {
alt22=1;
}
}
switch (alt22) {
case 1 :
// AcslParser.g:318:8: f+= function_clause
{
pushFollow(FOLLOW_function_clause_in_partial_contract_block2264);
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 loop22;
}
}
// AcslParser.g:318:29: (b+= named_behavior_block )*
loop23:
while (true) {
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==IDENTIFIER) ) {
int LA23_1 = input.LA(2);
if ( ((synpred30_AcslParser()&&(input.LT(1).getText().equals("behavior")))) ) {
alt23=1;
}
}
switch (alt23) {
case 1 :
// AcslParser.g:318:30: b+= named_behavior_block
{
pushFollow(FOLLOW_named_behavior_block_in_partial_contract_block2271);
b=named_behavior_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_named_behavior_block.add(b.getTree());
if (list_b==null) list_b=new ArrayList<Object>();
list_b.add(b.getTree());
}
break;
default :
break loop23;
}
}
// AcslParser.g:319:9: (c+= completeness_clause_block )*
loop24:
while (true) {
int alt24=2;
alt24 = dfa24.predict(input);
switch (alt24) {
case 1 :
// AcslParser.g:319:10: c+= completeness_clause_block
{
pushFollow(FOLLOW_completeness_clause_block_in_partial_contract_block2287);
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 loop24;
}
}
// AST REWRITE
// elements: b, c, f
// token labels:
// rule labels: retval
// token list labels:
// rule list labels: b, c, f
// 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);
RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"token c",list_c);
RewriteRuleSubtreeStream stream_f=new RewriteRuleSubtreeStream(adaptor,"token f",list_f);
root_0 = (Object)adaptor.nil();
// 320:9: -> ^( FUNC_CONTRACT_BLOCK ( $f)* ( $b)* ( $c)* )
{
// AcslParser.g:320:12: ^( FUNC_CONTRACT_BLOCK ( $f)* ( $b)* ( $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:320:35: ( $f)*
while ( stream_f.hasNext() ) {
adaptor.addChild(root_1, stream_f.nextTree());
}
stream_f.reset();
// AcslParser.g:320:39: ( $b)*
while ( stream_b.hasNext() ) {
adaptor.addChild(root_1, stream_b.nextTree());
}
stream_b.reset();
// AcslParser.g:320: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 "partial_contract_block"
public static class contract_block_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "contract_block"
// AcslParser.g:328:1: contract_block : ( mpi_collective_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 mpi_collective_block93 =null;
ParserRuleReturnScope named_behavior_block94 =null;
ParserRuleReturnScope completeness_clause_block95 =null;
try {
// AcslParser.g:329:5: ( mpi_collective_block | named_behavior_block ( completeness_clause_block )? )
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==EXTENDED_IDENTIFIER) ) {
alt26=1;
}
else if ( (LA26_0==IDENTIFIER) ) {
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:329:7: mpi_collective_block
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_mpi_collective_block_in_contract_block2336);
mpi_collective_block93=mpi_collective_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, mpi_collective_block93.getTree());
}
break;
case 2 :
// AcslParser.g:330:7: named_behavior_block ( completeness_clause_block )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_named_behavior_block_in_contract_block2344);
named_behavior_block94=named_behavior_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, named_behavior_block94.getTree());
// AcslParser.g:330:28: ( completeness_clause_block )?
int alt25=2;
alt25 = dfa25.predict(input);
switch (alt25) {
case 1 :
// AcslParser.g:330:28: completeness_clause_block
{
pushFollow(FOLLOW_completeness_clause_block_in_contract_block2346);
completeness_clause_block95=completeness_clause_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, completeness_clause_block95.getTree());
}
break;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
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:333: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 SEMI97=null;
Token SEMI99=null;
Token SEMI101=null;
ParserRuleReturnScope requires_clause96 =null;
ParserRuleReturnScope terminates_clause98 =null;
ParserRuleReturnScope simple_clause100 =null;
Object SEMI97_tree=null;
Object SEMI99_tree=null;
Object SEMI101_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:334:5: ( requires_clause SEMI -> ^( CLAUSE_NORMAL requires_clause ) | terminates_clause SEMI -> ^( CLAUSE_NORMAL terminates_clause ) | simple_clause SEMI -> ^( CLAUSE_NORMAL simple_clause ) )
int alt27=3;
int LA27_0 = input.LA(1);
if ( (LA27_0==IDENTIFIER) ) {
int LA27_1 = input.LA(2);
if ( ((synpred34_AcslParser()&&(input.LT(1).getText().equals("requires")))) ) {
alt27=1;
}
else if ( ((synpred35_AcslParser()&&(input.LT(1).getText().equals("terminates")))) ) {
alt27=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("waitsfor"))||(input.LT(1).getText().equals("executes_when"))||(input.LT(1).getText().equals("allocates"))||(input.LT(1).getText().equals("depends_on")))) ) {
alt27=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 27, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 27, 0, input);
throw nvae;
}
switch (alt27) {
case 1 :
// AcslParser.g:334:7: requires_clause SEMI
{
pushFollow(FOLLOW_requires_clause_in_function_clause2364);
requires_clause96=requires_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_requires_clause.add(requires_clause96.getTree());
SEMI97=(Token)match(input,SEMI,FOLLOW_SEMI_in_function_clause2366); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI97);
// 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();
// 334:27: -> ^( CLAUSE_NORMAL requires_clause )
{
// AcslParser.g:334: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:335:7: terminates_clause SEMI
{
pushFollow(FOLLOW_terminates_clause_in_function_clause2381);
terminates_clause98=terminates_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_terminates_clause.add(terminates_clause98.getTree());
SEMI99=(Token)match(input,SEMI,FOLLOW_SEMI_in_function_clause2383); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI99);
// 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();
// 335:29: -> ^( CLAUSE_NORMAL terminates_clause )
{
// AcslParser.g:335: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:336:7: simple_clause SEMI
{
pushFollow(FOLLOW_simple_clause_in_function_clause2398);
simple_clause100=simple_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_simple_clause.add(simple_clause100.getTree());
SEMI101=(Token)match(input,SEMI,FOLLOW_SEMI_in_function_clause2400); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI101);
// 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();
// 336:26: -> ^( CLAUSE_NORMAL simple_clause )
{
// AcslParser.g:336: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:339: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_behavior102 =null;
RewriteRuleSubtreeStream stream_named_behavior=new RewriteRuleSubtreeStream(adaptor,"rule named_behavior");
try {
// AcslParser.g:340:5: ( named_behavior -> ^( CLAUSE_BEHAVIOR named_behavior ) )
// AcslParser.g:340:7: named_behavior
{
pushFollow(FOLLOW_named_behavior_in_named_behavior_block2425);
named_behavior102=named_behavior();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_named_behavior.add(named_behavior102.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();
// 340:22: -> ^( CLAUSE_BEHAVIOR named_behavior )
{
// AcslParser.g:340: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:343: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 SEMI104=null;
ParserRuleReturnScope completeness_clause103 =null;
Object SEMI104_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_completeness_clause=new RewriteRuleSubtreeStream(adaptor,"rule completeness_clause");
try {
// AcslParser.g:344:5: ( completeness_clause SEMI -> ^( CLAUSE_COMPLETE completeness_clause ) )
// AcslParser.g:344:7: completeness_clause SEMI
{
pushFollow(FOLLOW_completeness_clause_in_completeness_clause_block2450);
completeness_clause103=completeness_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_completeness_clause.add(completeness_clause103.getTree());
SEMI104=(Token)match(input,SEMI,FOLLOW_SEMI_in_completeness_clause_block2452); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI104);
// 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();
// 344:32: -> ^( CLAUSE_COMPLETE completeness_clause )
{
// AcslParser.g:344: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:347: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_key105 =null;
ParserRuleReturnScope term106 =null;
RewriteRuleSubtreeStream stream_requires_key=new RewriteRuleSubtreeStream(adaptor,"rule requires_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:348:5: ( requires_key term -> ^( REQUIRES_ACSL requires_key term ) )
// AcslParser.g:348:7: requires_key term
{
pushFollow(FOLLOW_requires_key_in_requires_clause2477);
requires_key105=requires_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_requires_key.add(requires_key105.getTree());
pushFollow(FOLLOW_term_in_requires_clause2479);
term106=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term106.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();
// 348:25: -> ^( REQUIRES_ACSL requires_key term )
{
// AcslParser.g:348: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:351: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_key107 =null;
ParserRuleReturnScope term108 =null;
RewriteRuleSubtreeStream stream_terminates_key=new RewriteRuleSubtreeStream(adaptor,"rule terminates_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:352:5: ( terminates_key term -> ^( TERMINATES terminates_key term ) )
// AcslParser.g:352:7: terminates_key term
{
pushFollow(FOLLOW_terminates_key_in_terminates_clause2506);
terminates_key107=terminates_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_terminates_key.add(terminates_key107.getTree());
pushFollow(FOLLOW_term_in_terminates_clause2508);
term108=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term108.getTree());
// AST REWRITE
// elements: term, terminates_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();
// 352:27: -> ^( TERMINATES terminates_key term )
{
// AcslParser.g:352: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:355: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 COMMA110=null;
ParserRuleReturnScope binder109 =null;
ParserRuleReturnScope binder111 =null;
Object COMMA110_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_binder=new RewriteRuleSubtreeStream(adaptor,"rule binder");
try {
// AcslParser.g:356:5: ( binder ( COMMA binder )* -> ^( BINDER_LIST ( binder )+ ) )
// AcslParser.g:356:7: binder ( COMMA binder )*
{
pushFollow(FOLLOW_binder_in_binders2535);
binder109=binder();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binder.add(binder109.getTree());
// AcslParser.g:356:14: ( COMMA binder )*
loop28:
while (true) {
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==COMMA) ) {
alt28=1;
}
switch (alt28) {
case 1 :
// AcslParser.g:356:15: COMMA binder
{
COMMA110=(Token)match(input,COMMA,FOLLOW_COMMA_in_binders2538); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA110);
pushFollow(FOLLOW_binder_in_binders2540);
binder111=binder();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binder.add(binder111.getTree());
}
break;
default :
break loop28;
}
}
// 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();
// 357:9: -> ^( BINDER_LIST ( binder )+ )
{
// AcslParser.g:357: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:360: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 COMMA114=null;
ParserRuleReturnScope type_expr112 =null;
ParserRuleReturnScope variable_ident113 =null;
ParserRuleReturnScope variable_ident115 =null;
Object COMMA114_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:361:5: ( type_expr variable_ident ( COMMA variable_ident )* -> ^( BINDER type_expr ( variable_ident )+ ) )
// AcslParser.g:361:7: type_expr variable_ident ( COMMA variable_ident )*
{
pushFollow(FOLLOW_type_expr_in_binder2575);
type_expr112=type_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_expr.add(type_expr112.getTree());
pushFollow(FOLLOW_variable_ident_in_binder2577);
variable_ident113=variable_ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variable_ident.add(variable_ident113.getTree());
// AcslParser.g:361:32: ( COMMA variable_ident )*
loop29:
while (true) {
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==COMMA) ) {
int LA29_1 = input.LA(2);
if ( (LA29_1==IDENTIFIER) ) {
int LA29_3 = input.LA(3);
if ( (LA29_3==EOF||LA29_3==COMMA||LA29_3==LSQUARE||LA29_3==RCURLY||LA29_3==RPAREN||LA29_3==SEMI) ) {
alt29=1;
}
}
else if ( (LA29_1==LPAREN||LA29_1==STAR) ) {
alt29=1;
}
}
switch (alt29) {
case 1 :
// AcslParser.g:361:33: COMMA variable_ident
{
COMMA114=(Token)match(input,COMMA,FOLLOW_COMMA_in_binder2580); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA114);
pushFollow(FOLLOW_variable_ident_in_binder2582);
variable_ident115=variable_ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variable_ident.add(variable_ident115.getTree());
}
break;
default :
break loop29;
}
}
// AST REWRITE
// elements: variable_ident, 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();
// 362:9: -> ^( BINDER type_expr ( variable_ident )+ )
{
// AcslParser.g:362: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:365: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_expr116 =null;
ParserRuleReturnScope specifierQualifierList117 =null;
ParserRuleReturnScope abstractDeclarator118 =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:366:5: ( logic_type_expr -> ^( LOGIC_TYPE logic_type_expr ) | specifierQualifierList abstractDeclarator -> ^( C_TYPE specifierQualifierList abstractDeclarator ) )
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==IDENTIFIER) ) {
alt30=1;
}
else if ( (LA30_0==CHAR||LA30_0==DOUBLE||LA30_0==FLOAT||LA30_0==INT||LA30_0==LONG||LA30_0==SHORT||LA30_0==VOID) ) {
alt30=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 30, 0, input);
throw nvae;
}
switch (alt30) {
case 1 :
// AcslParser.g:366:7: logic_type_expr
{
pushFollow(FOLLOW_logic_type_expr_in_type_expr2619);
logic_type_expr116=logic_type_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logic_type_expr.add(logic_type_expr116.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();
// 366:23: -> ^( LOGIC_TYPE logic_type_expr )
{
// AcslParser.g:366: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:367:7: specifierQualifierList abstractDeclarator
{
pushFollow(FOLLOW_specifierQualifierList_in_type_expr2634);
specifierQualifierList117=specifierQualifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_specifierQualifierList.add(specifierQualifierList117.getTree());
pushFollow(FOLLOW_abstractDeclarator_in_type_expr2636);
abstractDeclarator118=abstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator118.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();
// 368:7: -> ^( C_TYPE specifierQualifierList abstractDeclarator )
{
// AcslParser.g:368: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:372: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_type119 =null;
RewriteRuleSubtreeStream stream_c_basic_type=new RewriteRuleSubtreeStream(adaptor,"rule c_basic_type");
try {
// AcslParser.g:373:5: ( ( c_basic_type )+ -> ^( SPECIFIER_QUALIFIER_LIST ( c_basic_type )+ ) )
// AcslParser.g:373:7: ( c_basic_type )+
{
// AcslParser.g:373:7: ( c_basic_type )+
int cnt31=0;
loop31:
while (true) {
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==CHAR||LA31_0==DOUBLE||LA31_0==FLOAT||LA31_0==INT||LA31_0==LONG||LA31_0==SHORT||LA31_0==VOID) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// AcslParser.g:373:7: c_basic_type
{
pushFollow(FOLLOW_c_basic_type_in_specifierQualifierList2671);
c_basic_type119=c_basic_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_c_basic_type.add(c_basic_type119.getTree());
}
break;
default :
if ( cnt31 >= 1 ) break loop31;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(31, input);
throw eee;
}
cnt31++;
}
// 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();
// 374:7: -> ^( SPECIFIER_QUALIFIER_LIST ( c_basic_type )+ )
{
// AcslParser.g:374: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:377: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 pointer120 =null;
ParserRuleReturnScope directAbstractDeclarator121 =null;
ParserRuleReturnScope pointer122 =null;
ParserRuleReturnScope directAbstractDeclarator123 =null;
RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer");
RewriteRuleSubtreeStream stream_directAbstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule directAbstractDeclarator");
try {
// AcslParser.g:378:5: ( pointer -> ^( ABSTRACT_DECLARATOR pointer ABSENT ) | directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator ) | pointer directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator ) | -> ABSENT )
int alt32=4;
switch ( input.LA(1) ) {
case STAR:
{
int LA32_1 = input.LA(2);
if ( (synpred40_AcslParser()) ) {
alt32=1;
}
else if ( (synpred42_AcslParser()) ) {
alt32=3;
}
else if ( (true) ) {
alt32=4;
}
}
break;
case LPAREN:
{
int LA32_2 = input.LA(2);
if ( (synpred41_AcslParser()) ) {
alt32=2;
}
else if ( (true) ) {
alt32=4;
}
}
break;
case LSQUARE:
{
alt32=2;
}
break;
case EOF:
case IDENTIFIER:
case RPAREN:
{
alt32=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 32, 0, input);
throw nvae;
}
switch (alt32) {
case 1 :
// AcslParser.g:378:7: pointer
{
pushFollow(FOLLOW_pointer_in_abstractDeclarator2704);
pointer120=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer120.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();
// 379:7: -> ^( ABSTRACT_DECLARATOR pointer ABSENT )
{
// AcslParser.g:379: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:380:7: directAbstractDeclarator
{
pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2728);
directAbstractDeclarator121=directAbstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator121.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();
// 381:7: -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator )
{
// AcslParser.g:381: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:382:7: pointer directAbstractDeclarator
{
pushFollow(FOLLOW_pointer_in_abstractDeclarator2752);
pointer122=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer122.getTree());
pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2754);
directAbstractDeclarator123=directAbstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator123.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();
// 383:7: -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator )
{
// AcslParser.g:383: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:384: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();
// 384: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:387: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 LPAREN124=null;
Token RPAREN126=null;
ParserRuleReturnScope abstractDeclarator125 =null;
ParserRuleReturnScope directAbstractDeclaratorSuffix127 =null;
ParserRuleReturnScope directAbstractDeclaratorSuffix128 =null;
Object LPAREN124_tree=null;
Object RPAREN126_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:388:5: ( LPAREN abstractDeclarator RPAREN ( directAbstractDeclaratorSuffix )* -> ^( DIRECT_ABSTRACT_DECLARATOR abstractDeclarator ( directAbstractDeclaratorSuffix )* ) | ( directAbstractDeclaratorSuffix )+ -> ^( DIRECT_ABSTRACT_DECLARATOR ABSENT ( directAbstractDeclaratorSuffix )+ ) )
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==LPAREN) ) {
alt35=1;
}
else if ( (LA35_0==LSQUARE) ) {
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:388:7: LPAREN abstractDeclarator RPAREN ( directAbstractDeclaratorSuffix )*
{
LPAREN124=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directAbstractDeclarator2797); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN124);
pushFollow(FOLLOW_abstractDeclarator_in_directAbstractDeclarator2799);
abstractDeclarator125=abstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator125.getTree());
RPAREN126=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directAbstractDeclarator2801); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN126);
// AcslParser.g:388:40: ( directAbstractDeclaratorSuffix )*
loop33:
while (true) {
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==LSQUARE) ) {
alt33=1;
}
switch (alt33) {
case 1 :
// AcslParser.g:388:40: directAbstractDeclaratorSuffix
{
pushFollow(FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator2803);
directAbstractDeclaratorSuffix127=directAbstractDeclaratorSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclaratorSuffix.add(directAbstractDeclaratorSuffix127.getTree());
}
break;
default :
break loop33;
}
}
// AST REWRITE
// elements: directAbstractDeclaratorSuffix, 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();
// 389:7: -> ^( DIRECT_ABSTRACT_DECLARATOR abstractDeclarator ( directAbstractDeclaratorSuffix )* )
{
// AcslParser.g:389: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:390: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:391:7: ( directAbstractDeclaratorSuffix )+
{
// AcslParser.g:391:7: ( directAbstractDeclaratorSuffix )+
int cnt34=0;
loop34:
while (true) {
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==LSQUARE) ) {
alt34=1;
}
switch (alt34) {
case 1 :
// AcslParser.g:391:7: directAbstractDeclaratorSuffix
{
pushFollow(FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator2840);
directAbstractDeclaratorSuffix128=directAbstractDeclaratorSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclaratorSuffix.add(directAbstractDeclaratorSuffix128.getTree());
}
break;
default :
if ( cnt34 >= 1 ) break loop34;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(34, input);
throw eee;
}
cnt34++;
}
// 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();
// 392:7: -> ^( DIRECT_ABSTRACT_DECLARATOR ABSENT ( directAbstractDeclaratorSuffix )+ )
{
// AcslParser.g:392: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:395: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 STAR129=null;
Object STAR129_tree=null;
RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR");
try {
// AcslParser.g:396:5: ( ( STAR )+ -> ^( POINTER ( STAR )+ ) )
// AcslParser.g:396:7: ( STAR )+
{
// AcslParser.g:396:7: ( STAR )+
int cnt36=0;
loop36:
while (true) {
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==STAR) ) {
int LA36_2 = input.LA(2);
if ( (synpred46_AcslParser()) ) {
alt36=1;
}
}
switch (alt36) {
case 1 :
// AcslParser.g:396:7: STAR
{
STAR129=(Token)match(input,STAR,FOLLOW_STAR_in_pointer2875); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR129);
}
break;
default :
if ( cnt36 >= 1 ) break loop36;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(36, input);
throw eee;
}
cnt36++;
}
// 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();
// 396:13: -> ^( POINTER ( STAR )+ )
{
// AcslParser.g:396: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:399: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 LSQUARE130=null;
Token RSQUARE132=null;
ParserRuleReturnScope assignmentExpression_opt131 =null;
Object LSQUARE130_tree=null;
Object RSQUARE132_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:400:5: ( LSQUARE assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE assignmentExpression_opt RSQUARE ) )
// AcslParser.g:400:7: LSQUARE assignmentExpression_opt RSQUARE
{
LSQUARE130=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_directAbstractDeclaratorSuffix2902); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE130);
pushFollow(FOLLOW_assignmentExpression_opt_in_directAbstractDeclaratorSuffix2904);
assignmentExpression_opt131=assignmentExpression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression_opt.add(assignmentExpression_opt131.getTree());
RSQUARE132=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix2906); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE132);
// AST REWRITE
// elements: RSQUARE, LSQUARE, assignmentExpression_opt
// 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();
// 401:9: -> ^( ARRAY_SUFFIX LSQUARE assignmentExpression_opt RSQUARE )
{
// AcslParser.g:401: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:407: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_type133 =null;
RewriteRuleSubtreeStream stream_built_in_logic_type=new RewriteRuleSubtreeStream(adaptor,"rule built_in_logic_type");
try {
// AcslParser.g:408:5: ( built_in_logic_type -> ^( TYPE_BUILTIN built_in_logic_type ) )
// AcslParser.g:408:7: built_in_logic_type
{
pushFollow(FOLLOW_built_in_logic_type_in_logic_type_expr2959);
built_in_logic_type133=built_in_logic_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_built_in_logic_type.add(built_in_logic_type133.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();
// 408:27: -> ^( TYPE_BUILTIN built_in_logic_type )
{
// AcslParser.g:408: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:411: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 set134=null;
Object set134_tree=null;
try {
// AcslParser.g:412:5: ( CHAR | DOUBLE | FLOAT | INT | LONG | SHORT | VOID )
// AcslParser.g:
{
root_0 = (Object)adaptor.nil();
set134=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(set134));
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:415: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_type135 =null;
ParserRuleReturnScope integer_type136 =null;
ParserRuleReturnScope real_type137 =null;
try {
// AcslParser.g:416:5: ( boolean_type | integer_type | real_type )
int alt37=3;
int LA37_0 = input.LA(1);
if ( (LA37_0==IDENTIFIER) ) {
int LA37_1 = input.LA(2);
if ( ((synpred53_AcslParser()&&(input.LT(1).getText().equals("boolean")))) ) {
alt37=1;
}
else if ( (((input.LT(1).getText().equals("integer"))&&synpred54_AcslParser())) ) {
alt37=2;
}
else if ( ((input.LT(1).getText().equals("real"))) ) {
alt37=3;
}
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:416:7: boolean_type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_boolean_type_in_built_in_logic_type3024);
boolean_type135=boolean_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, boolean_type135.getTree());
}
break;
case 2 :
// AcslParser.g:416:22: integer_type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_integer_type_in_built_in_logic_type3028);
integer_type136=integer_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, integer_type136.getTree());
}
break;
case 3 :
// AcslParser.g:416:37: real_type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_real_type_in_built_in_logic_type3032);
real_type137=real_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, real_type137.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:419: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 STAR138=null;
Token LSQUARE141=null;
Token RSQUARE142=null;
ParserRuleReturnScope variable_ident_base139 =null;
ParserRuleReturnScope variable_ident_base140 =null;
ParserRuleReturnScope variable_ident_base143 =null;
Object STAR138_tree=null;
Object LSQUARE141_tree=null;
Object RSQUARE142_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:420: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 alt38=3;
switch ( input.LA(1) ) {
case STAR:
{
alt38=1;
}
break;
case IDENTIFIER:
{
int LA38_2 = input.LA(2);
if ( (synpred56_AcslParser()) ) {
alt38=2;
}
else if ( (true) ) {
alt38=3;
}
}
break;
case LPAREN:
{
int LA38_3 = input.LA(2);
if ( (synpred56_AcslParser()) ) {
alt38=2;
}
else if ( (true) ) {
alt38=3;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 38, 0, input);
throw nvae;
}
switch (alt38) {
case 1 :
// AcslParser.g:420:7: STAR variable_ident_base
{
STAR138=(Token)match(input,STAR,FOLLOW_STAR_in_variable_ident3049); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR138);
pushFollow(FOLLOW_variable_ident_base_in_variable_ident3051);
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());
// 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();
// 421:9: -> ^( VAR_ID_STAR variable_ident_base )
{
// AcslParser.g:421: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:422:7: variable_ident_base LSQUARE RSQUARE
{
pushFollow(FOLLOW_variable_ident_base_in_variable_ident3074);
variable_ident_base140=variable_ident_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variable_ident_base.add(variable_ident_base140.getTree());
LSQUARE141=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_variable_ident3076); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE141);
RSQUARE142=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_variable_ident3078); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE142);
// 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();
// 423:9: -> ^( VAR_ID_SQUARE variable_ident_base )
{
// AcslParser.g:423: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:424:7: variable_ident_base
{
pushFollow(FOLLOW_variable_ident_base_in_variable_ident3101);
variable_ident_base143=variable_ident_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variable_ident_base.add(variable_ident_base143.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();
// 425:9: -> ^( VAR_ID variable_ident_base )
{
// AcslParser.g:425: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:428: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 IDENTIFIER144=null;
Token LPAREN145=null;
Token RPAREN147=null;
ParserRuleReturnScope variable_ident146 =null;
Object IDENTIFIER144_tree=null;
Object LPAREN145_tree=null;
Object RPAREN147_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:429:5: ( IDENTIFIER -> ^( IDENTIFIER ) | LPAREN variable_ident RPAREN -> ^( VAR_ID_BASE variable_ident ) )
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==IDENTIFIER) ) {
alt39=1;
}
else if ( (LA39_0==LPAREN) ) {
alt39=2;
}
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:429:7: IDENTIFIER
{
IDENTIFIER144=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_variable_ident_base3133); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER144);
// 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();
// 430:7: -> ^( IDENTIFIER )
{
// AcslParser.g:430: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:431:7: LPAREN variable_ident RPAREN
{
LPAREN145=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_variable_ident_base3152); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN145);
pushFollow(FOLLOW_variable_ident_in_variable_ident_base3154);
variable_ident146=variable_ident();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_variable_ident.add(variable_ident146.getTree());
RPAREN147=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_variable_ident_base3156); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN147);
// 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();
// 432:7: -> ^( VAR_ID_BASE variable_ident )
{
// AcslParser.g:432: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:435: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_key148 =null;
ParserRuleReturnScope term149 =null;
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
RewriteRuleSubtreeStream stream_executeswhen_key=new RewriteRuleSubtreeStream(adaptor,"rule executeswhen_key");
try {
// AcslParser.g:436:5: ( executeswhen_key term -> ^( EXECUTES_WHEN executeswhen_key term ) )
// AcslParser.g:436:7: executeswhen_key term
{
pushFollow(FOLLOW_executeswhen_key_in_guards_clause3186);
executeswhen_key148=executeswhen_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_executeswhen_key.add(executeswhen_key148.getTree());
pushFollow(FOLLOW_term_in_guards_clause3188);
term149=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term149.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();
// 436:29: -> ^( EXECUTES_WHEN executeswhen_key term )
{
// AcslParser.g:436: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:439:1: simple_clause : ( assigns_clause | ensures_clause | allocation_clause | reads_clause | depends_clause | guards_clause | waitsfor_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_clause150 =null;
ParserRuleReturnScope ensures_clause151 =null;
ParserRuleReturnScope allocation_clause152 =null;
ParserRuleReturnScope reads_clause153 =null;
ParserRuleReturnScope depends_clause154 =null;
ParserRuleReturnScope guards_clause155 =null;
ParserRuleReturnScope waitsfor_clause156 =null;
try {
// AcslParser.g:440:5: ( assigns_clause | ensures_clause | allocation_clause | reads_clause | depends_clause | guards_clause | waitsfor_clause )
int alt40=7;
int LA40_0 = input.LA(1);
if ( (LA40_0==IDENTIFIER) ) {
int LA40_1 = input.LA(2);
if ( (((input.LT(1).getText().equals("assigns"))&&synpred58_AcslParser())) ) {
alt40=1;
}
else if ( (((input.LT(1).getText().equals("ensures"))&&synpred59_AcslParser())) ) {
alt40=2;
}
else if ( ((((input.LT(1).getText().equals("frees"))||(input.LT(1).getText().equals("allocates")))&&synpred60_AcslParser())) ) {
alt40=3;
}
else if ( (((input.LT(1).getText().equals("reads"))&&synpred61_AcslParser())) ) {
alt40=4;
}
else if ( ((synpred62_AcslParser()&&(input.LT(1).getText().equals("depends_on")))) ) {
alt40=5;
}
else if ( (((input.LT(1).getText().equals("executes_when"))&&synpred63_AcslParser())) ) {
alt40=6;
}
else if ( ((input.LT(1).getText().equals("waitsfor"))) ) {
alt40=7;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 40, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 40, 0, input);
throw nvae;
}
switch (alt40) {
case 1 :
// AcslParser.g:440:7: assigns_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assigns_clause_in_simple_clause3214);
assigns_clause150=assigns_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assigns_clause150.getTree());
}
break;
case 2 :
// AcslParser.g:441:7: ensures_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_ensures_clause_in_simple_clause3222);
ensures_clause151=ensures_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ensures_clause151.getTree());
}
break;
case 3 :
// AcslParser.g:442:7: allocation_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_allocation_clause_in_simple_clause3231);
allocation_clause152=allocation_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, allocation_clause152.getTree());
}
break;
case 4 :
// AcslParser.g:443:7: reads_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_reads_clause_in_simple_clause3239);
reads_clause153=reads_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, reads_clause153.getTree());
}
break;
case 5 :
// AcslParser.g:444:7: depends_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_depends_clause_in_simple_clause3247);
depends_clause154=depends_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, depends_clause154.getTree());
}
break;
case 6 :
// AcslParser.g:445:7: guards_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_guards_clause_in_simple_clause3255);
guards_clause155=guards_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, guards_clause155.getTree());
}
break;
case 7 :
// AcslParser.g:446:7: waitsfor_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_waitsfor_clause_in_simple_clause3263);
waitsfor_clause156=waitsfor_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, waitsfor_clause156.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:449: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_key157 =null;
ParserRuleReturnScope argumentExpressionList158 =null;
RewriteRuleSubtreeStream stream_assigns_key=new RewriteRuleSubtreeStream(adaptor,"rule assigns_key");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
try {
// AcslParser.g:450:5: ( assigns_key argumentExpressionList -> ^( ASSIGNS_ACSL assigns_key argumentExpressionList ) )
// AcslParser.g:450:7: assigns_key argumentExpressionList
{
pushFollow(FOLLOW_assigns_key_in_assigns_clause3280);
assigns_key157=assigns_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assigns_key.add(assigns_key157.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_assigns_clause3282);
argumentExpressionList158=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList158.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();
// 450:42: -> ^( ASSIGNS_ACSL assigns_key argumentExpressionList )
{
// AcslParser.g:450: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:453: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_key159 =null;
ParserRuleReturnScope term160 =null;
RewriteRuleSubtreeStream stream_ensures_key=new RewriteRuleSubtreeStream(adaptor,"rule ensures_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:454:5: ( ensures_key term -> ^( ENSURES_ACSL ensures_key term ) )
// AcslParser.g:454:7: ensures_key term
{
pushFollow(FOLLOW_ensures_key_in_ensures_clause3308);
ensures_key159=ensures_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ensures_key.add(ensures_key159.getTree());
pushFollow(FOLLOW_term_in_ensures_clause3310);
term160=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term160.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();
// 454:24: -> ^( ENSURES_ACSL ensures_key term )
{
// AcslParser.g:454: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:457: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_key161 =null;
ParserRuleReturnScope argumentExpressionList162 =null;
ParserRuleReturnScope frees_key163 =null;
ParserRuleReturnScope argumentExpressionList164 =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:458:5: ( alloc_key argumentExpressionList -> ^( ALLOC alloc_key argumentExpressionList ) | frees_key argumentExpressionList -> ^( FREES frees_key argumentExpressionList ) )
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==IDENTIFIER) ) {
int LA41_1 = input.LA(2);
if ( ((synpred64_AcslParser()&&(input.LT(1).getText().equals("allocates")))) ) {
alt41=1;
}
else if ( ((input.LT(1).getText().equals("frees"))) ) {
alt41=2;
}
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 (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 41, 0, input);
throw nvae;
}
switch (alt41) {
case 1 :
// AcslParser.g:458:7: alloc_key argumentExpressionList
{
pushFollow(FOLLOW_alloc_key_in_allocation_clause3336);
alloc_key161=alloc_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_alloc_key.add(alloc_key161.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_allocation_clause3338);
argumentExpressionList162=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList162.getTree());
// AST REWRITE
// elements: argumentExpressionList, alloc_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:40: -> ^( ALLOC alloc_key argumentExpressionList )
{
// AcslParser.g:458: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:459:7: frees_key argumentExpressionList
{
pushFollow(FOLLOW_frees_key_in_allocation_clause3355);
frees_key163=frees_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_frees_key.add(frees_key163.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_allocation_clause3357);
argumentExpressionList164=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList164.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();
// 459:40: -> ^( FREES frees_key argumentExpressionList )
{
// AcslParser.g:459: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:462: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_key165 =null;
ParserRuleReturnScope argumentExpressionList166 =null;
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_reads_key=new RewriteRuleSubtreeStream(adaptor,"rule reads_key");
try {
// AcslParser.g:463:5: ( reads_key argumentExpressionList -> ^( READS_ACSL reads_key argumentExpressionList ) )
// AcslParser.g:463:7: reads_key argumentExpressionList
{
pushFollow(FOLLOW_reads_key_in_reads_clause3383);
reads_key165=reads_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_reads_key.add(reads_key165.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_reads_clause3385);
argumentExpressionList166=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList166.getTree());
// AST REWRITE
// elements: reads_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();
// 463:40: -> ^( READS_ACSL reads_key argumentExpressionList )
{
// AcslParser.g:463: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 waitsfor_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "waitsfor_clause"
// AcslParser.g:466:1: waitsfor_clause : waitsfor_key argumentExpressionList -> ^( WAITSFOR waitsfor_key argumentExpressionList ) ;
public final AcslParser.waitsfor_clause_return waitsfor_clause() throws RecognitionException {
AcslParser.waitsfor_clause_return retval = new AcslParser.waitsfor_clause_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope waitsfor_key167 =null;
ParserRuleReturnScope argumentExpressionList168 =null;
RewriteRuleSubtreeStream stream_waitsfor_key=new RewriteRuleSubtreeStream(adaptor,"rule waitsfor_key");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
try {
// AcslParser.g:467:5: ( waitsfor_key argumentExpressionList -> ^( WAITSFOR waitsfor_key argumentExpressionList ) )
// AcslParser.g:467:7: waitsfor_key argumentExpressionList
{
pushFollow(FOLLOW_waitsfor_key_in_waitsfor_clause3411);
waitsfor_key167=waitsfor_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_waitsfor_key.add(waitsfor_key167.getTree());
pushFollow(FOLLOW_argumentExpressionList_in_waitsfor_clause3413);
argumentExpressionList168=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList168.getTree());
// AST REWRITE
// elements: argumentExpressionList, waitsfor_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();
// 467:43: -> ^( WAITSFOR waitsfor_key argumentExpressionList )
{
// AcslParser.g:467:46: ^( WAITSFOR waitsfor_key argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(WAITSFOR, "WAITSFOR"), root_1);
adaptor.addChild(root_1, stream_waitsfor_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 "waitsfor_clause"
public static class depends_clause_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "depends_clause"
// AcslParser.g:470: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_key169 =null;
ParserRuleReturnScope event_list170 =null;
RewriteRuleSubtreeStream stream_event_list=new RewriteRuleSubtreeStream(adaptor,"rule event_list");
RewriteRuleSubtreeStream stream_dependson_key=new RewriteRuleSubtreeStream(adaptor,"rule dependson_key");
try {
// AcslParser.g:471:5: ( dependson_key event_list -> ^( DEPENDSON dependson_key event_list ) )
// AcslParser.g:471:7: dependson_key event_list
{
pushFollow(FOLLOW_dependson_key_in_depends_clause3440);
dependson_key169=dependson_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_dependson_key.add(dependson_key169.getTree());
pushFollow(FOLLOW_event_list_in_depends_clause3442);
event_list170=event_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_list.add(event_list170.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();
// 471:32: -> ^( DEPENDSON dependson_key event_list )
{
// AcslParser.g:471: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:474: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 COMMA172=null;
ParserRuleReturnScope event171 =null;
ParserRuleReturnScope event173 =null;
Object COMMA172_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_event=new RewriteRuleSubtreeStream(adaptor,"rule event");
try {
// AcslParser.g:475:5: ( event ( COMMA event )* -> ^( EVENT_LIST ( event )+ ) )
// AcslParser.g:475:7: event ( COMMA event )*
{
pushFollow(FOLLOW_event_in_event_list3468);
event171=event();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event.add(event171.getTree());
// AcslParser.g:475:13: ( COMMA event )*
loop42:
while (true) {
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==COMMA) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// AcslParser.g:475:14: COMMA event
{
COMMA172=(Token)match(input,COMMA,FOLLOW_COMMA_in_event_list3471); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA172);
pushFollow(FOLLOW_event_in_event_list3473);
event173=event();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event.add(event173.getTree());
}
break;
default :
break loop42;
}
}
// 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();
// 475:28: -> ^( EVENT_LIST ( event )+ )
{
// AcslParser.g:475: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:478: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 PLUS175=null;
Token SUB178=null;
Token AMPERSAND181=null;
ParserRuleReturnScope event_base174 =null;
ParserRuleReturnScope event_base176 =null;
ParserRuleReturnScope event_base177 =null;
ParserRuleReturnScope event_base179 =null;
ParserRuleReturnScope event_base180 =null;
ParserRuleReturnScope event_base182 =null;
ParserRuleReturnScope event_base183 =null;
Object PLUS175_tree=null;
Object SUB178_tree=null;
Object AMPERSAND181_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:479: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 alt43=4;
int LA43_0 = input.LA(1);
if ( (LA43_0==EXTENDED_IDENTIFIER) ) {
int LA43_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")))&&synpred66_AcslParser())) ) {
alt43=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")))&&synpred67_AcslParser())) ) {
alt43=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")))&&synpred68_AcslParser())) ) {
alt43=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")))) ) {
alt43=4;
}
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 ( (LA43_0==LPAREN) ) {
int LA43_2 = input.LA(2);
if ( (synpred66_AcslParser()) ) {
alt43=1;
}
else if ( (synpred67_AcslParser()) ) {
alt43=2;
}
else if ( (synpred68_AcslParser()) ) {
alt43=3;
}
else if ( (true) ) {
alt43=4;
}
}
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:479:7: event_base PLUS event_base
{
pushFollow(FOLLOW_event_base_in_event3501);
event_base174=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base174.getTree());
PLUS175=(Token)match(input,PLUS,FOLLOW_PLUS_in_event3503); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS175);
pushFollow(FOLLOW_event_base_in_event3505);
event_base176=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base176.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();
// 480:9: -> ^( EVENT_PLUS event_base event_base )
{
// AcslParser.g:480: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:481:7: event_base SUB event_base
{
pushFollow(FOLLOW_event_base_in_event3531);
event_base177=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base177.getTree());
SUB178=(Token)match(input,SUB,FOLLOW_SUB_in_event3533); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUB.add(SUB178);
pushFollow(FOLLOW_event_base_in_event3535);
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, 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();
// 482:9: -> ^( EVENT_SUB event_base event_base )
{
// AcslParser.g:482: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:483:7: event_base AMPERSAND event_base
{
pushFollow(FOLLOW_event_base_in_event3561);
event_base180=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base180.getTree());
AMPERSAND181=(Token)match(input,AMPERSAND,FOLLOW_AMPERSAND_in_event3563); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AMPERSAND.add(AMPERSAND181);
pushFollow(FOLLOW_event_base_in_event3565);
event_base182=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base182.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();
// 484:9: -> ^( EVENT_INTS event_base event_base )
{
// AcslParser.g:484: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:485:7: event_base
{
pushFollow(FOLLOW_event_base_in_event3591);
event_base183=event_base();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event_base.add(event_base183.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();
// 486:9: -> ^( EVENT_BASE event_base )
{
// AcslParser.g:486: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:489: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 LPAREN185=null;
Token RPAREN187=null;
Token LPAREN189=null;
Token RPAREN191=null;
Token LPAREN193=null;
Token RPAREN195=null;
Token LPAREN197=null;
Token IDENTIFIER198=null;
Token COMMA199=null;
Token RPAREN201=null;
Token LPAREN204=null;
Token RPAREN206=null;
ParserRuleReturnScope read_key184 =null;
ParserRuleReturnScope argumentExpressionList186 =null;
ParserRuleReturnScope write_key188 =null;
ParserRuleReturnScope argumentExpressionList190 =null;
ParserRuleReturnScope access_key192 =null;
ParserRuleReturnScope argumentExpressionList194 =null;
ParserRuleReturnScope call_key196 =null;
ParserRuleReturnScope argumentExpressionList200 =null;
ParserRuleReturnScope nothing_key202 =null;
ParserRuleReturnScope anyact_key203 =null;
ParserRuleReturnScope event205 =null;
Object LPAREN185_tree=null;
Object RPAREN187_tree=null;
Object LPAREN189_tree=null;
Object RPAREN191_tree=null;
Object LPAREN193_tree=null;
Object RPAREN195_tree=null;
Object LPAREN197_tree=null;
Object IDENTIFIER198_tree=null;
Object COMMA199_tree=null;
Object RPAREN201_tree=null;
Object LPAREN204_tree=null;
Object RPAREN206_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:490: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 alt45=7;
int LA45_0 = input.LA(1);
if ( (LA45_0==EXTENDED_IDENTIFIER) ) {
int LA45_1 = input.LA(2);
if ( ((synpred69_AcslParser()&&(input.LT(1).getText().equals("\\read")))) ) {
alt45=1;
}
else if ( (((input.LT(1).getText().equals("\\write"))&&synpred70_AcslParser())) ) {
alt45=2;
}
else if ( ((synpred71_AcslParser()&&(input.LT(1).getText().equals("\\access")))) ) {
alt45=3;
}
else if ( (((input.LT(1).getText().equals("\\call"))&&synpred73_AcslParser())) ) {
alt45=4;
}
else if ( ((synpred74_AcslParser()&&(input.LT(1).getText().equals("\\nothing")))) ) {
alt45=5;
}
else if ( ((synpred75_AcslParser()&&(input.LT(1).getText().equals("\\anyact")))) ) {
alt45=6;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 45, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA45_0==LPAREN) ) {
alt45=7;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 45, 0, input);
throw nvae;
}
switch (alt45) {
case 1 :
// AcslParser.g:490:7: read_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_read_key_in_event_base3624);
read_key184=read_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_read_key.add(read_key184.getTree());
LPAREN185=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_event_base3626); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN185);
pushFollow(FOLLOW_argumentExpressionList_in_event_base3628);
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_base3630); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN187);
// AST REWRITE
// elements: read_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();
// 491:9: -> ^( READ_ACSL read_key argumentExpressionList )
{
// AcslParser.g:491: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:492:7: write_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_write_key_in_event_base3656);
write_key188=write_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_write_key.add(write_key188.getTree());
LPAREN189=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_event_base3658); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN189);
pushFollow(FOLLOW_argumentExpressionList_in_event_base3660);
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_base3662); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN191);
// AST REWRITE
// elements: write_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();
// 493:9: -> ^( WRITE_ACSL write_key argumentExpressionList )
{
// AcslParser.g:493: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:494:7: access_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_access_key_in_event_base3688);
access_key192=access_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_access_key.add(access_key192.getTree());
LPAREN193=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_event_base3690); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN193);
pushFollow(FOLLOW_argumentExpressionList_in_event_base3692);
argumentExpressionList194=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList194.getTree());
RPAREN195=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_event_base3694); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN195);
// 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();
// 495:9: -> ^( ACCESS_ACSL access_key argumentExpressionList )
{
// AcslParser.g:495: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:496:7: call_key LPAREN IDENTIFIER ( COMMA argumentExpressionList )? RPAREN
{
pushFollow(FOLLOW_call_key_in_event_base3720);
call_key196=call_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_call_key.add(call_key196.getTree());
LPAREN197=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_event_base3722); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN197);
IDENTIFIER198=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_event_base3724); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER198);
// AcslParser.g:496:34: ( COMMA argumentExpressionList )?
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==COMMA) ) {
alt44=1;
}
switch (alt44) {
case 1 :
// AcslParser.g:496:35: COMMA argumentExpressionList
{
COMMA199=(Token)match(input,COMMA,FOLLOW_COMMA_in_event_base3727); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA199);
pushFollow(FOLLOW_argumentExpressionList_in_event_base3729);
argumentExpressionList200=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList200.getTree());
}
break;
}
RPAREN201=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_event_base3733); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN201);
// AST REWRITE
// elements: argumentExpressionList, IDENTIFIER, 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();
// 497:9: -> ^( CALL_ACSL call_key IDENTIFIER ( argumentExpressionList )? )
{
// AcslParser.g:497: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:497: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:498:7: nothing_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_nothing_key_in_event_base3762);
nothing_key202=nothing_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, nothing_key202.getTree());
}
break;
case 6 :
// AcslParser.g:499:7: anyact_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_anyact_key_in_event_base3770);
anyact_key203=anyact_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, anyact_key203.getTree());
}
break;
case 7 :
// AcslParser.g:500:7: LPAREN event RPAREN
{
LPAREN204=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_event_base3778); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN204);
pushFollow(FOLLOW_event_in_event_base3780);
event205=event();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_event.add(event205.getTree());
RPAREN206=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_event_base3782); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN206);
// 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();
// 501:9: -> ^( EVENT_PARENTHESIZED event )
{
// AcslParser.g:501: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 mpi_collective_block_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpi_collective_block"
// AcslParser.g:505:1: mpi_collective_block : mpicollective_key LPAREN IDENTIFIER COMMA kind= mpi_collective_kind RPAREN COLON c= partial_contract_block -> ^( MPI_COLLECTIVE mpicollective_key IDENTIFIER $kind $c) ;
public final AcslParser.mpi_collective_block_return mpi_collective_block() throws RecognitionException {
AcslParser.mpi_collective_block_return retval = new AcslParser.mpi_collective_block_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN208=null;
Token IDENTIFIER209=null;
Token COMMA210=null;
Token RPAREN211=null;
Token COLON212=null;
ParserRuleReturnScope kind =null;
ParserRuleReturnScope c =null;
ParserRuleReturnScope mpicollective_key207 =null;
Object LPAREN208_tree=null;
Object IDENTIFIER209_tree=null;
Object COMMA210_tree=null;
Object RPAREN211_tree=null;
Object COLON212_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
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_mpicollective_key=new RewriteRuleSubtreeStream(adaptor,"rule mpicollective_key");
RewriteRuleSubtreeStream stream_mpi_collective_kind=new RewriteRuleSubtreeStream(adaptor,"rule mpi_collective_kind");
RewriteRuleSubtreeStream stream_partial_contract_block=new RewriteRuleSubtreeStream(adaptor,"rule partial_contract_block");
try {
// AcslParser.g:506:5: ( mpicollective_key LPAREN IDENTIFIER COMMA kind= mpi_collective_kind RPAREN COLON c= partial_contract_block -> ^( MPI_COLLECTIVE mpicollective_key IDENTIFIER $kind $c) )
// AcslParser.g:506:7: mpicollective_key LPAREN IDENTIFIER COMMA kind= mpi_collective_kind RPAREN COLON c= partial_contract_block
{
pushFollow(FOLLOW_mpicollective_key_in_mpi_collective_block3817);
mpicollective_key207=mpicollective_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpicollective_key.add(mpicollective_key207.getTree());
LPAREN208=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_mpi_collective_block3819); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN208);
IDENTIFIER209=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_mpi_collective_block3821); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER209);
COMMA210=(Token)match(input,COMMA,FOLLOW_COMMA_in_mpi_collective_block3823); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA210);
pushFollow(FOLLOW_mpi_collective_kind_in_mpi_collective_block3827);
kind=mpi_collective_kind();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpi_collective_kind.add(kind.getTree());
RPAREN211=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_mpi_collective_block3830); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN211);
COLON212=(Token)match(input,COLON,FOLLOW_COLON_in_mpi_collective_block3832); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON212);
pushFollow(FOLLOW_partial_contract_block_in_mpi_collective_block3842);
c=partial_contract_block();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_partial_contract_block.add(c.getTree());
// AST REWRITE
// elements: c, IDENTIFIER, mpicollective_key, kind
// token labels:
// rule labels: c, kind, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c",c!=null?c.getTree():null);
RewriteRuleSubtreeStream stream_kind=new RewriteRuleSubtreeStream(adaptor,"rule kind",kind!=null?kind.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 507:32: -> ^( MPI_COLLECTIVE mpicollective_key IDENTIFIER $kind $c)
{
// AcslParser.g:507:35: ^( MPI_COLLECTIVE mpicollective_key IDENTIFIER $kind $c)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_COLLECTIVE, "MPI_COLLECTIVE"), root_1);
adaptor.addChild(root_1, stream_mpicollective_key.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_kind.nextTree());
adaptor.addChild(root_1, stream_c.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 "mpi_collective_block"
public static class named_behavior_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "named_behavior"
// AcslParser.g:513: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 IDENTIFIER214=null;
Token COLON215=null;
ParserRuleReturnScope behavior_key213 =null;
ParserRuleReturnScope behavior_body216 =null;
Object IDENTIFIER214_tree=null;
Object COLON215_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:514:5: ( behavior_key IDENTIFIER COLON behavior_body -> ^( BEHAVIOR behavior_key IDENTIFIER behavior_body ) )
// AcslParser.g:514:7: behavior_key IDENTIFIER COLON behavior_body
{
pushFollow(FOLLOW_behavior_key_in_named_behavior3879);
behavior_key213=behavior_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_behavior_key.add(behavior_key213.getTree());
IDENTIFIER214=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_named_behavior3881); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER214);
COLON215=(Token)match(input,COLON,FOLLOW_COLON_in_named_behavior3883); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON215);
pushFollow(FOLLOW_behavior_body_in_named_behavior3885);
behavior_body216=behavior_body();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_behavior_body.add(behavior_body216.getTree());
// AST REWRITE
// elements: behavior_key, IDENTIFIER, behavior_body
// 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();
// 515:9: -> ^( BEHAVIOR behavior_key IDENTIFIER behavior_body )
{
// AcslParser.g:515: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:518: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 SEMI217=null;
List<Object> list_b=null;
RuleReturnScope b = null;
Object SEMI217_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_behavior_clause=new RewriteRuleSubtreeStream(adaptor,"rule behavior_clause");
try {
// AcslParser.g:519:5: ( (b+= behavior_clause SEMI )+ -> ^( BEHAVIOR_BODY ( $b)+ ) )
// AcslParser.g:519:7: (b+= behavior_clause SEMI )+
{
// AcslParser.g:519:7: (b+= behavior_clause SEMI )+
int cnt46=0;
loop46:
while (true) {
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==IDENTIFIER) ) {
int LA46_1 = input.LA(2);
if ( (LA46_1==IDENTIFIER) ) {
int LA46_3 = input.LA(3);
if ( (LA46_3==SEMI) ) {
int LA46_5 = input.LA(4);
if ( ((synpred76_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("waitsfor"))||(input.LT(1).getText().equals("executes_when"))||(input.LT(1).getText().equals("allocates"))||(input.LT(1).getText().equals("requires"))))) ) {
alt46=1;
}
}
else if ( ((LA46_3 >= AMPERSAND && LA46_3 <= AND)||(LA46_3 >= ARROW && LA46_3 <= ASSIGN)||LA46_3==BITOR||LA46_3==BITXOR||LA46_3==COMMA||LA46_3==DIV||(LA46_3 >= DOT && LA46_3 <= DOTDOT)||(LA46_3 >= EQUALS && LA46_3 <= EQUIV_ACSL)||(LA46_3 >= GT && LA46_3 <= GTE)||(LA46_3 >= IMPLIES && LA46_3 <= IMPLIES_ACSL)||LA46_3==LPAREN||(LA46_3 >= LSQUARE && LA46_3 <= LTE)||(LA46_3 >= MINUSMINUS && LA46_3 <= MOD)||LA46_3==NEQ||LA46_3==OR||LA46_3==PLUS||LA46_3==QMARK||LA46_3==SHIFTLEFT||LA46_3==SHIFTRIGHT||LA46_3==STAR||LA46_3==SUB||LA46_3==XOR_ACSL) ) {
alt46=1;
}
}
else if ( (LA46_1==AMPERSAND||LA46_1==CHARACTER_CONSTANT||LA46_1==ELLIPSIS||LA46_1==EXTENDED_IDENTIFIER||LA46_1==FLOATING_CONSTANT||LA46_1==INTEGER_CONSTANT||LA46_1==LCURLY||LA46_1==LPAREN||LA46_1==NOT||LA46_1==PLUS||LA46_1==SEMI||LA46_1==STAR||(LA46_1 >= STRING_LITERAL && LA46_1 <= SUB)||LA46_1==TILDE||LA46_1==SELF||LA46_1==SIZEOF) ) {
alt46=1;
}
}
switch (alt46) {
case 1 :
// AcslParser.g:519:8: b+= behavior_clause SEMI
{
pushFollow(FOLLOW_behavior_clause_in_behavior_body3925);
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());
SEMI217=(Token)match(input,SEMI,FOLLOW_SEMI_in_behavior_body3927); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI217);
}
break;
default :
if ( cnt46 >= 1 ) break loop46;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(46, input);
throw eee;
}
cnt46++;
}
// 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();
// 519:34: -> ^( BEHAVIOR_BODY ( $b)+ )
{
// AcslParser.g:519: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:522: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_clause218 =null;
ParserRuleReturnScope requires_clause219 =null;
ParserRuleReturnScope simple_clause220 =null;
try {
// AcslParser.g:523:5: ( assumes_clause | requires_clause | simple_clause )
int alt47=3;
int LA47_0 = input.LA(1);
if ( (LA47_0==IDENTIFIER) ) {
int LA47_1 = input.LA(2);
if ( (((input.LT(1).getText().equals("assumes"))&&synpred77_AcslParser())) ) {
alt47=1;
}
else if ( ((synpred78_AcslParser()&&(input.LT(1).getText().equals("requires")))) ) {
alt47=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("waitsfor"))||(input.LT(1).getText().equals("executes_when"))||(input.LT(1).getText().equals("allocates"))||(input.LT(1).getText().equals("depends_on")))) ) {
alt47=3;
}
else {
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 (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 47, 0, input);
throw nvae;
}
switch (alt47) {
case 1 :
// AcslParser.g:523:7: assumes_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assumes_clause_in_behavior_clause3956);
assumes_clause218=assumes_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assumes_clause218.getTree());
}
break;
case 2 :
// AcslParser.g:524:7: requires_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_requires_clause_in_behavior_clause3965);
requires_clause219=requires_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, requires_clause219.getTree());
}
break;
case 3 :
// AcslParser.g:525:7: simple_clause
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_simple_clause_in_behavior_clause3973);
simple_clause220=simple_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, simple_clause220.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:528: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_key221 =null;
ParserRuleReturnScope term222 =null;
RewriteRuleSubtreeStream stream_assumes_key=new RewriteRuleSubtreeStream(adaptor,"rule assumes_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:529:5: ( assumes_key term -> ^( ASSUMES_ACSL assumes_key term ) )
// AcslParser.g:529:7: assumes_key term
{
pushFollow(FOLLOW_assumes_key_in_assumes_clause3990);
assumes_key221=assumes_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assumes_key.add(assumes_key221.getTree());
pushFollow(FOLLOW_term_in_assumes_clause3992);
term222=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term222.getTree());
// AST REWRITE
// elements: term, assumes_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();
// 529:24: -> ^( ASSUMES_ACSL assumes_key term )
{
// AcslParser.g:529: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:532: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_key223 =null;
ParserRuleReturnScope behaviors_key224 =null;
ParserRuleReturnScope id_list225 =null;
ParserRuleReturnScope disjoint_key226 =null;
ParserRuleReturnScope behaviors_key227 =null;
ParserRuleReturnScope id_list228 =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:533: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 alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==IDENTIFIER) ) {
int LA48_1 = input.LA(2);
if ( (LA48_1==IDENTIFIER) ) {
int LA48_2 = input.LA(3);
if ( ((synpred79_AcslParser()&&(input.LT(1).getText().equals("complete")))) ) {
alt48=1;
}
else if ( ((input.LT(1).getText().equals("disjoint"))) ) {
alt48=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("", 48, 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("", 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:533:7: completes_key behaviors_key id_list
{
pushFollow(FOLLOW_completes_key_in_completeness_clause4018);
completes_key223=completes_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_completes_key.add(completes_key223.getTree());
pushFollow(FOLLOW_behaviors_key_in_completeness_clause4020);
behaviors_key224=behaviors_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_behaviors_key.add(behaviors_key224.getTree());
pushFollow(FOLLOW_id_list_in_completeness_clause4022);
id_list225=id_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_id_list.add(id_list225.getTree());
// AST REWRITE
// elements: completes_key, id_list, behaviors_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();
// 534:9: -> ^( BEHAVIOR_COMPLETE completes_key behaviors_key id_list )
{
// AcslParser.g:534: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:535:7: disjoint_key behaviors_key id_list
{
pushFollow(FOLLOW_disjoint_key_in_completeness_clause4050);
disjoint_key226=disjoint_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_disjoint_key.add(disjoint_key226.getTree());
pushFollow(FOLLOW_behaviors_key_in_completeness_clause4052);
behaviors_key227=behaviors_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_behaviors_key.add(behaviors_key227.getTree());
pushFollow(FOLLOW_id_list_in_completeness_clause4054);
id_list228=id_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_id_list.add(id_list228.getTree());
// AST REWRITE
// elements: behaviors_key, id_list, disjoint_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();
// 536:9: -> ^( BEHAVIOR_DISJOINT disjoint_key behaviors_key id_list )
{
// AcslParser.g:536: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:539: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 IDENTIFIER229=null;
Token COMMA230=null;
Token IDENTIFIER231=null;
Object IDENTIFIER229_tree=null;
Object COMMA230_tree=null;
Object IDENTIFIER231_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:540:5: (| IDENTIFIER ( COMMA IDENTIFIER )* -> ^( ID_LIST ( IDENTIFIER )+ ) )
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==EOF||LA50_0==COLON||LA50_0==SEMI) ) {
alt50=1;
}
else if ( (LA50_0==IDENTIFIER) ) {
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:541:5:
{
root_0 = (Object)adaptor.nil();
}
break;
case 2 :
// AcslParser.g:541:7: IDENTIFIER ( COMMA IDENTIFIER )*
{
IDENTIFIER229=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_id_list4097); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER229);
// AcslParser.g:541:18: ( COMMA IDENTIFIER )*
loop49:
while (true) {
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==COMMA) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// AcslParser.g:541:19: COMMA IDENTIFIER
{
COMMA230=(Token)match(input,COMMA,FOLLOW_COMMA_in_id_list4100); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA230);
IDENTIFIER231=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_id_list4102); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER231);
}
break;
default :
break loop49;
}
}
// 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();
// 541:38: -> ^( ID_LIST ( IDENTIFIER )+ )
{
// AcslParser.g:541: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:553: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 quantifierExpression232 =null;
ParserRuleReturnScope assignmentExpression233 =null;
try {
// AcslParser.g:554:5: ( quantifierExpression | assignmentExpression )
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 EXTENDED_IDENTIFIER:
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:554:7: quantifierExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_quantifierExpression_in_term4139);
quantifierExpression232=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, quantifierExpression232.getTree());
}
break;
case 2 :
// AcslParser.g:554:30: assignmentExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assignmentExpression_in_term4143);
assignmentExpression233=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assignmentExpression233.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:557: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 SEMI236=null;
Token SEMI240=null;
Token SEMI244=null;
ParserRuleReturnScope forall_key234 =null;
ParserRuleReturnScope binders235 =null;
ParserRuleReturnScope term237 =null;
ParserRuleReturnScope exists_key238 =null;
ParserRuleReturnScope binders239 =null;
ParserRuleReturnScope term241 =null;
ParserRuleReturnScope lambda_key242 =null;
ParserRuleReturnScope binders243 =null;
ParserRuleReturnScope term245 =null;
Object SEMI236_tree=null;
Object SEMI240_tree=null;
Object SEMI244_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:558: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 alt52=3;
int LA52_0 = input.LA(1);
if ( (LA52_0==EXTENDED_IDENTIFIER) ) {
int LA52_1 = input.LA(2);
if ( ((synpred83_AcslParser()&&(input.LT(1).getText().equals("\\forall")))) ) {
alt52=1;
}
else if ( ((synpred84_AcslParser()&&(input.LT(1).getText().equals("\\exists")))) ) {
alt52=2;
}
else if ( ((input.LT(1).getText().equals("\\lambda"))) ) {
alt52=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 52, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
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:558:4: forall_key binders SEMI term
{
pushFollow(FOLLOW_forall_key_in_quantifierExpression4162);
forall_key234=forall_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_forall_key.add(forall_key234.getTree());
pushFollow(FOLLOW_binders_in_quantifierExpression4164);
binders235=binders();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binders.add(binders235.getTree());
SEMI236=(Token)match(input,SEMI,FOLLOW_SEMI_in_quantifierExpression4166); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI236);
pushFollow(FOLLOW_term_in_quantifierExpression4168);
term237=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term237.getTree());
// AST REWRITE
// elements: forall_key, term, 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();
// 559:5: -> ^( QUANTIFIED forall_key binders term )
{
// AcslParser.g:559: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:560:7: exists_key binders SEMI term
{
pushFollow(FOLLOW_exists_key_in_quantifierExpression4193);
exists_key238=exists_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_exists_key.add(exists_key238.getTree());
pushFollow(FOLLOW_binders_in_quantifierExpression4195);
binders239=binders();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binders.add(binders239.getTree());
SEMI240=(Token)match(input,SEMI,FOLLOW_SEMI_in_quantifierExpression4197); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI240);
pushFollow(FOLLOW_term_in_quantifierExpression4199);
term241=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term241.getTree());
// AST REWRITE
// elements: binders, term, exists_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();
// 561:8: -> ^( QUANTIFIED exists_key binders term )
{
// AcslParser.g:561: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:562:4: lambda_key binders SEMI term
{
pushFollow(FOLLOW_lambda_key_in_quantifierExpression4224);
lambda_key242=lambda_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_lambda_key.add(lambda_key242.getTree());
pushFollow(FOLLOW_binders_in_quantifierExpression4226);
binders243=binders();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binders.add(binders243.getTree());
SEMI244=(Token)match(input,SEMI,FOLLOW_SEMI_in_quantifierExpression4228); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI244);
pushFollow(FOLLOW_term_in_quantifierExpression4230);
term245=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term245.getTree());
// AST REWRITE
// elements: term, binders, lambda_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();
// 563:5: -> ^( LAMBDA_ACSL lambda_key binders term )
{
// AcslParser.g:563: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:579: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 ASSIGN247=null;
ParserRuleReturnScope unaryExpression246 =null;
ParserRuleReturnScope assignmentExpression248 =null;
ParserRuleReturnScope conditionalExpression249 =null;
Object ASSIGN247_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:580:2: ( ( unaryExpression ASSIGN )=> unaryExpression ASSIGN assignmentExpression -> ^( OPERATOR ASSIGN ^( ARGUMENT_LIST unaryExpression assignmentExpression ) ) | conditionalExpression )
int alt53=2;
switch ( input.LA(1) ) {
case INTEGER_CONSTANT:
{
int LA53_1 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt53=1;
}
else if ( (true) ) {
alt53=2;
}
}
break;
case FLOATING_CONSTANT:
{
int LA53_2 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt53=1;
}
else if ( (true) ) {
alt53=2;
}
}
break;
case CHARACTER_CONSTANT:
{
int LA53_3 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt53=1;
}
else if ( (true) ) {
alt53=2;
}
}
break;
case EXTENDED_IDENTIFIER:
{
int LA53_4 = input.LA(2);
if ( ((synpred85_AcslParser()&&((input.LT(1).getText().equals("\\product"))||(input.LT(1).getText().equals("\\mpi_extent"))||(input.LT(1).getText().equals("\\sum"))||(input.LT(1).getText().equals("\\union"))||(input.LT(1).getText().equals("\\mpi_comm_rank"))||(input.LT(1).getText().equals("\\inter"))||(input.LT(1).getText().equals("\\max"))||(input.LT(1).getText().equals("\\numof"))||(input.LT(1).getText().equals("\\true"))||(input.LT(1).getText().equals("\\mpi_agree"))||(input.LT(1).getText().equals("\\result"))||(input.LT(1).getText().equals("\\min"))||(input.LT(1).getText().equals("\\mpi_empty_in"))||(input.LT(1).getText().equals("\\mpi_comm_size"))||(input.LT(1).getText().equals("\\object_of"))||(input.LT(1).getText().equals("\\old"))||(input.LT(1).getText().equals("\\mpi_equals"))||(input.LT(1).getText().equals("\\nothing"))||(input.LT(1).getText().equals("\\mpi_reduce"))||(input.LT(1).getText().equals("\\mpi_empty_out"))||(input.LT(1).getText().equals("\\mpi_offset"))||(input.LT(1).getText().equals("\\false"))||(input.LT(1).getText().equals("\\on"))||(input.LT(1).getText().equals("\\mpi_valid"))||(input.LT(1).getText().equals("\\absentof"))||(input.LT(1).getText().equals("\\mpi_region"))||(input.LT(1).getText().equals("\\null"))||(input.LT(1).getText().equals("\\valid"))))) ) {
alt53=1;
}
else if ( (((input.LT(1).getText().equals("\\product"))||(input.LT(1).getText().equals("\\mpi_extent"))||(input.LT(1).getText().equals("\\sum"))||(input.LT(1).getText().equals("\\union"))||(input.LT(1).getText().equals("\\mpi_comm_rank"))||(input.LT(1).getText().equals("\\inter"))||(input.LT(1).getText().equals("\\max"))||(input.LT(1).getText().equals("\\numof"))||(input.LT(1).getText().equals("\\true"))||(input.LT(1).getText().equals("\\mpi_agree"))||(input.LT(1).getText().equals("\\result"))||(input.LT(1).getText().equals("\\min"))||(input.LT(1).getText().equals("\\mpi_empty_in"))||(input.LT(1).getText().equals("\\mpi_comm_size"))||(input.LT(1).getText().equals("\\object_of"))||(input.LT(1).getText().equals("\\old"))||(input.LT(1).getText().equals("\\mpi_equals"))||(input.LT(1).getText().equals("\\nothing"))||(input.LT(1).getText().equals("\\mpi_reduce"))||(input.LT(1).getText().equals("\\mpi_empty_out"))||(input.LT(1).getText().equals("\\mpi_offset"))||(input.LT(1).getText().equals("\\false"))||(input.LT(1).getText().equals("\\on"))||(input.LT(1).getText().equals("\\mpi_valid"))||(input.LT(1).getText().equals("\\absentof"))||(input.LT(1).getText().equals("\\mpi_region"))||(input.LT(1).getText().equals("\\null"))||(input.LT(1).getText().equals("\\valid")))) ) {
alt53=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 53, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ELLIPSIS:
{
int LA53_5 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt53=1;
}
else if ( (true) ) {
alt53=2;
}
}
break;
case SELF:
{
int LA53_6 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt53=1;
}
else if ( (true) ) {
alt53=2;
}
}
break;
case IDENTIFIER:
{
int LA53_7 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt53=1;
}
else if ( (true) ) {
alt53=2;
}
}
break;
case STRING_LITERAL:
{
int LA53_8 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt53=1;
}
else if ( (true) ) {
alt53=2;
}
}
break;
case LCURLY:
{
int LA53_9 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt53=1;
}
else if ( (true) ) {
alt53=2;
}
}
break;
case LPAREN:
{
int LA53_10 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt53=1;
}
else if ( (true) ) {
alt53=2;
}
}
break;
case AMPERSAND:
case NOT:
case PLUS:
case STAR:
case SUB:
case TILDE:
{
int LA53_11 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt53=1;
}
else if ( (true) ) {
alt53=2;
}
}
break;
case SIZEOF:
{
int LA53_12 = input.LA(2);
if ( (synpred85_AcslParser()) ) {
alt53=1;
}
else if ( (true) ) {
alt53=2;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 53, 0, input);
throw nvae;
}
switch (alt53) {
case 1 :
// AcslParser.g:580:4: ( unaryExpression ASSIGN )=> unaryExpression ASSIGN assignmentExpression
{
pushFollow(FOLLOW_unaryExpression_in_assignmentExpression4266);
unaryExpression246=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression246.getTree());
ASSIGN247=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_assignmentExpression4268); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN247);
pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression4270);
assignmentExpression248=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression248.getTree());
// AST REWRITE
// elements: assignmentExpression, ASSIGN, 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();
// 581:4: -> ^( OPERATOR ASSIGN ^( ARGUMENT_LIST unaryExpression assignmentExpression ) )
{
// AcslParser.g:581: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:582: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:583:4: conditionalExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpression_in_assignmentExpression4306);
conditionalExpression249=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, conditionalExpression249.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:586: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 assignmentExpression250 =null;
try {
// AcslParser.g:587:5: ( -> ABSENT | assignmentExpression )
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==RSQUARE) ) {
alt54=1;
}
else if ( (LA54_0==AMPERSAND||LA54_0==CHARACTER_CONSTANT||LA54_0==ELLIPSIS||LA54_0==EXTENDED_IDENTIFIER||LA54_0==FLOATING_CONSTANT||LA54_0==IDENTIFIER||LA54_0==INTEGER_CONSTANT||LA54_0==LCURLY||LA54_0==LPAREN||LA54_0==NOT||LA54_0==PLUS||LA54_0==STAR||(LA54_0 >= STRING_LITERAL && LA54_0 <= SUB)||LA54_0==TILDE||LA54_0==SELF||LA54_0==SIZEOF) ) {
alt54=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 54, 0, input);
throw nvae;
}
switch (alt54) {
case 1 :
// AcslParser.g:587: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();
// 587:7: -> ABSENT
{
adaptor.addChild(root_0, (Object)adaptor.create(ABSENT, "ABSENT"));
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:588:7: assignmentExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression_opt4330);
assignmentExpression250=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assignmentExpression250.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:605: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 QMARK251=null;
Token COLON252=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope c =null;
Object QMARK251_tree=null;
Object COLON252_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:606:2: (a= logicalEquivExpression ( QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST $a $b $c) ) | -> $a) )
// AcslParser.g:606:4: a= logicalEquivExpression ( QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST $a $b $c) ) | -> $a)
{
pushFollow(FOLLOW_logicalEquivExpression_in_conditionalExpression4348);
a=logicalEquivExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalEquivExpression.add(a.getTree());
// AcslParser.g:607:9: ( QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST $a $b $c) ) | -> $a)
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==QMARK) ) {
int LA56_1 = input.LA(2);
if ( (synpred88_AcslParser()) ) {
alt56=1;
}
else if ( (true) ) {
alt56=2;
}
}
else if ( (LA56_0==EOF||(LA56_0 >= AMPERSAND && LA56_0 <= AND)||LA56_0==ASSIGN||LA56_0==BITOR||LA56_0==BITXOR||(LA56_0 >= COLON && LA56_0 <= COMMA)||LA56_0==DIV||LA56_0==DOTDOT||(LA56_0 >= EQUALS && LA56_0 <= EQUIV_ACSL)||(LA56_0 >= GT && LA56_0 <= HASH)||LA56_0==IDENTIFIER||(LA56_0 >= IMPLIES && LA56_0 <= IMPLIES_ACSL)||(LA56_0 >= LT && LA56_0 <= LTE)||(LA56_0 >= MINUSMINUS && LA56_0 <= MOD)||LA56_0==NEQ||LA56_0==OR||LA56_0==PLUS||LA56_0==RCURLY||LA56_0==RPAREN||LA56_0==RSQUARE||(LA56_0 >= SEMI && LA56_0 <= SHIFTLEFT)||LA56_0==SHIFTRIGHT||LA56_0==STAR||LA56_0==SUB||LA56_0==XOR_ACSL||LA56_0==FOR) ) {
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:607:11: QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression )
{
QMARK251=(Token)match(input,QMARK,FOLLOW_QMARK_in_conditionalExpression4360); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_QMARK.add(QMARK251);
pushFollow(FOLLOW_conditionalExpression_in_conditionalExpression4364);
b=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(b.getTree());
COLON252=(Token)match(input,COLON,FOLLOW_COLON_in_conditionalExpression4366); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON252);
// AcslParser.g:608:13: (c= quantifierExpression |c= conditionalExpression )
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case IDENTIFIER:
{
int LA55_3 = input.LA(3);
if ( (LA55_3==LPAREN||LA55_3==STAR) ) {
alt55=1;
}
else if ( (LA55_3==IDENTIFIER) ) {
int LA55_5 = input.LA(4);
if ( (LA55_5==COMMA||LA55_5==LSQUARE||LA55_5==SEMI) ) {
alt55=1;
}
else if ( (LA55_5==BITOR||LA55_5==PLUS||LA55_5==SUB) ) {
alt55=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("", 55, 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("", 55, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt55=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 EXTENDED_IDENTIFIER:
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:
{
alt55=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 55, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA55_0==AMPERSAND||LA55_0==CHARACTER_CONSTANT||LA55_0==ELLIPSIS||LA55_0==FLOATING_CONSTANT||LA55_0==IDENTIFIER||LA55_0==INTEGER_CONSTANT||LA55_0==LCURLY||LA55_0==LPAREN||LA55_0==NOT||LA55_0==PLUS||LA55_0==STAR||(LA55_0 >= STRING_LITERAL && LA55_0 <= SUB)||LA55_0==TILDE||LA55_0==SELF||LA55_0==SIZEOF) ) {
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:608:14: c= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_conditionalExpression4384);
c=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(c.getTree());
}
break;
case 2 :
// AcslParser.g:608:39: c= conditionalExpression
{
pushFollow(FOLLOW_conditionalExpression_in_conditionalExpression4390);
c=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(c.getTree());
}
break;
}
// AST REWRITE
// elements: b, QMARK, c, 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();
// 609:13: -> ^( OPERATOR QMARK ^( ARGUMENT_LIST $a $b $c) )
{
// AcslParser.g:609: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:609: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:610: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();
// 610: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:617: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_ACSL253=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
Object EQUIV_ACSL253_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:618:2: ( (a= logicalImpliesExpression -> $a) ( EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR EQUIV_ACSL ^( ARGUMENT_LIST $logicalEquivExpression $b) ) )* )
// AcslParser.g:618:4: (a= logicalImpliesExpression -> $a) ( EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR EQUIV_ACSL ^( ARGUMENT_LIST $logicalEquivExpression $b) ) )*
{
// AcslParser.g:618:4: (a= logicalImpliesExpression -> $a)
// AcslParser.g:618:5: a= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_logicalEquivExpression4462);
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();
// 618:32: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:619:9: ( EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR EQUIV_ACSL ^( ARGUMENT_LIST $logicalEquivExpression $b) ) )*
loop58:
while (true) {
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==EQUIV_ACSL) ) {
int LA58_2 = input.LA(2);
if ( (synpred90_AcslParser()) ) {
alt58=1;
}
}
switch (alt58) {
case 1 :
// AcslParser.g:619:11: EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression )
{
EQUIV_ACSL253=(Token)match(input,EQUIV_ACSL,FOLLOW_EQUIV_ACSL_in_logicalEquivExpression4480); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EQUIV_ACSL.add(EQUIV_ACSL253);
// AcslParser.g:619:22: (b= quantifierExpression |b= logicalImpliesExpression )
int alt57=2;
int LA57_0 = input.LA(1);
if ( (LA57_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case IDENTIFIER:
{
int LA57_3 = input.LA(3);
if ( (LA57_3==LPAREN||LA57_3==STAR) ) {
alt57=1;
}
else if ( (LA57_3==IDENTIFIER) ) {
int LA57_5 = input.LA(4);
if ( (LA57_5==COMMA||LA57_5==LSQUARE||LA57_5==SEMI) ) {
alt57=1;
}
else if ( (LA57_5==BITOR||LA57_5==PLUS||LA57_5==SUB) ) {
alt57=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("", 57, 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("", 57, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt57=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 EXTENDED_IDENTIFIER:
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:
{
alt57=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 57, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA57_0==AMPERSAND||LA57_0==CHARACTER_CONSTANT||LA57_0==ELLIPSIS||LA57_0==FLOATING_CONSTANT||LA57_0==IDENTIFIER||LA57_0==INTEGER_CONSTANT||LA57_0==LCURLY||LA57_0==LPAREN||LA57_0==NOT||LA57_0==PLUS||LA57_0==STAR||(LA57_0 >= STRING_LITERAL && LA57_0 <= SUB)||LA57_0==TILDE||LA57_0==SELF||LA57_0==SIZEOF) ) {
alt57=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 57, 0, input);
throw nvae;
}
switch (alt57) {
case 1 :
// AcslParser.g:619:23: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_logicalEquivExpression4485);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:619:48: b= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_logicalEquivExpression4491);
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();
// 620:13: -> ^( OPERATOR EQUIV_ACSL ^( ARGUMENT_LIST $logicalEquivExpression $b) )
{
// AcslParser.g:620: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:620: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 loop58;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException 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:627: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:628:2: (a= logicalOrExpression (op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR $op ^( ARGUMENT_LIST $a $b) ) | -> $a) )
// AcslParser.g:628:4: a= logicalOrExpression (op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR $op ^( ARGUMENT_LIST $a $b) ) | -> $a)
{
pushFollow(FOLLOW_logicalOrExpression_in_logicalImpliesExpression4551);
a=logicalOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalOrExpression.add(a.getTree());
// AcslParser.g:629:9: (op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression ) -> ^( OPERATOR $op ^( ARGUMENT_LIST $a $b) ) | -> $a)
int alt61=2;
switch ( input.LA(1) ) {
case IMPLIES:
{
int LA61_1 = input.LA(2);
if ( (synpred93_AcslParser()) ) {
alt61=1;
}
else if ( (true) ) {
alt61=2;
}
}
break;
case IMPLIES_ACSL:
{
int LA61_2 = input.LA(2);
if ( (synpred93_AcslParser()) ) {
alt61=1;
}
else if ( (true) ) {
alt61=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:
{
alt61=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 61, 0, input);
throw nvae;
}
switch (alt61) {
case 1 :
// AcslParser.g:629:11: op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression )
{
// AcslParser.g:629:14: ( IMPLIES | IMPLIES_ACSL )
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==IMPLIES) ) {
alt59=1;
}
else if ( (LA59_0==IMPLIES_ACSL) ) {
alt59=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 59, 0, input);
throw nvae;
}
switch (alt59) {
case 1 :
// AcslParser.g:629:15: IMPLIES
{
op=(Token)match(input,IMPLIES,FOLLOW_IMPLIES_in_logicalImpliesExpression4566); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IMPLIES.add(op);
}
break;
case 2 :
// AcslParser.g:629:23: IMPLIES_ACSL
{
op=(Token)match(input,IMPLIES_ACSL,FOLLOW_IMPLIES_ACSL_in_logicalImpliesExpression4568); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IMPLIES_ACSL.add(op);
}
break;
}
// AcslParser.g:629:37: (b= quantifierExpression |b= logicalImpliesExpression )
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 EXTENDED_IDENTIFIER:
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:629:38: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_logicalImpliesExpression4574);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:629:63: b= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_logicalImpliesExpression4580);
b=logicalImpliesExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalImpliesExpression.add(b.getTree());
}
break;
}
// AST REWRITE
// elements: op, a, b
// 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();
// 630:13: -> ^( OPERATOR $op ^( ARGUMENT_LIST $a $b) )
{
// AcslParser.g:630: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:630: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:631: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();
// 631: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:638: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 OR254=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
Object OR254_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:639:2: ( (a= logicalXorExpression -> $a) ( OR (b= quantifierExpression |b= logicalXorExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $b) ) )* )
// AcslParser.g:639:4: (a= logicalXorExpression -> $a) ( OR (b= quantifierExpression |b= logicalXorExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $b) ) )*
{
// AcslParser.g:639:4: (a= logicalXorExpression -> $a)
// AcslParser.g:639:5: a= logicalXorExpression
{
pushFollow(FOLLOW_logicalXorExpression_in_logicalOrExpression4656);
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();
// 639:28: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:640:9: ( OR (b= quantifierExpression |b= logicalXorExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $b) ) )*
loop63:
while (true) {
int alt63=2;
int LA63_0 = input.LA(1);
if ( (LA63_0==OR) ) {
int LA63_2 = input.LA(2);
if ( (synpred95_AcslParser()) ) {
alt63=1;
}
}
switch (alt63) {
case 1 :
// AcslParser.g:640:11: OR (b= quantifierExpression |b= logicalXorExpression )
{
OR254=(Token)match(input,OR,FOLLOW_OR_in_logicalOrExpression4674); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_OR.add(OR254);
// AcslParser.g:640:14: (b= quantifierExpression |b= logicalXorExpression )
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 EXTENDED_IDENTIFIER:
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:640:15: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_logicalOrExpression4679);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:640:40: b= logicalXorExpression
{
pushFollow(FOLLOW_logicalXorExpression_in_logicalOrExpression4685);
b=logicalXorExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalXorExpression.add(b.getTree());
}
break;
}
// AST REWRITE
// elements: b, logicalOrExpression, OR
// 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();
// 641:13: -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $b) )
{
// AcslParser.g:641: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:641: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 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 "logicalOrExpression"
public static class logicalXorExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logicalXorExpression"
// AcslParser.g:648: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_ACSL255=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
Object XOR_ACSL255_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:649:2: ( (a= logicalAndExpression -> $a) ( XOR_ACSL (b= quantifierExpression |b= logicalAndExpression ) -> ^( OPERATOR XOR_ACSL ^( ARGUMENT_LIST $logicalXorExpression $b) ) )* )
// AcslParser.g:649:4: (a= logicalAndExpression -> $a) ( XOR_ACSL (b= quantifierExpression |b= logicalAndExpression ) -> ^( OPERATOR XOR_ACSL ^( ARGUMENT_LIST $logicalXorExpression $b) ) )*
{
// AcslParser.g:649:4: (a= logicalAndExpression -> $a)
// AcslParser.g:649:5: a= logicalAndExpression
{
pushFollow(FOLLOW_logicalAndExpression_in_logicalXorExpression4744);
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();
// 649:28: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:650:9: ( XOR_ACSL (b= quantifierExpression |b= logicalAndExpression ) -> ^( OPERATOR XOR_ACSL ^( ARGUMENT_LIST $logicalXorExpression $b) ) )*
loop65:
while (true) {
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==XOR_ACSL) ) {
int LA65_2 = input.LA(2);
if ( (synpred97_AcslParser()) ) {
alt65=1;
}
}
switch (alt65) {
case 1 :
// AcslParser.g:650:11: XOR_ACSL (b= quantifierExpression |b= logicalAndExpression )
{
XOR_ACSL255=(Token)match(input,XOR_ACSL,FOLLOW_XOR_ACSL_in_logicalXorExpression4762); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_XOR_ACSL.add(XOR_ACSL255);
// AcslParser.g:650:20: (b= quantifierExpression |b= logicalAndExpression )
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case IDENTIFIER:
{
int LA64_3 = input.LA(3);
if ( (LA64_3==LPAREN||LA64_3==STAR) ) {
alt64=1;
}
else if ( (LA64_3==IDENTIFIER) ) {
int LA64_5 = input.LA(4);
if ( (LA64_5==COMMA||LA64_5==LSQUARE||LA64_5==SEMI) ) {
alt64=1;
}
else if ( (LA64_5==BITOR||LA64_5==PLUS||LA64_5==SUB) ) {
alt64=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("", 64, 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("", 64, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt64=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 EXTENDED_IDENTIFIER:
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:
{
alt64=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 64, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA64_0==AMPERSAND||LA64_0==CHARACTER_CONSTANT||LA64_0==ELLIPSIS||LA64_0==FLOATING_CONSTANT||LA64_0==IDENTIFIER||LA64_0==INTEGER_CONSTANT||LA64_0==LCURLY||LA64_0==LPAREN||LA64_0==NOT||LA64_0==PLUS||LA64_0==STAR||(LA64_0 >= STRING_LITERAL && LA64_0 <= SUB)||LA64_0==TILDE||LA64_0==SELF||LA64_0==SIZEOF) ) {
alt64=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 64, 0, input);
throw nvae;
}
switch (alt64) {
case 1 :
// AcslParser.g:650:21: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_logicalXorExpression4767);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:650:46: b= logicalAndExpression
{
pushFollow(FOLLOW_logicalAndExpression_in_logicalXorExpression4773);
b=logicalAndExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalAndExpression.add(b.getTree());
}
break;
}
// AST REWRITE
// elements: b, XOR_ACSL, logicalXorExpression
// 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();
// 651:13: -> ^( OPERATOR XOR_ACSL ^( ARGUMENT_LIST $logicalXorExpression $b) )
{
// AcslParser.g:651: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:651: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 loop65;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException 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:658: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 AND256=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
Object AND256_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:659:2: ( (a= bitwiseEquivExpression -> $a) ( AND (b= quantifierExpression |b= bitwiseEquivExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $b) ) )* )
// AcslParser.g:659:4: (a= bitwiseEquivExpression -> $a) ( AND (b= quantifierExpression |b= bitwiseEquivExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $b) ) )*
{
// AcslParser.g:659:4: (a= bitwiseEquivExpression -> $a)
// AcslParser.g:659:5: a= bitwiseEquivExpression
{
pushFollow(FOLLOW_bitwiseEquivExpression_in_logicalAndExpression4831);
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();
// 659:30: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:660:9: ( AND (b= quantifierExpression |b= bitwiseEquivExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $b) ) )*
loop67:
while (true) {
int alt67=2;
int LA67_0 = input.LA(1);
if ( (LA67_0==AND) ) {
int LA67_2 = input.LA(2);
if ( (synpred99_AcslParser()) ) {
alt67=1;
}
}
switch (alt67) {
case 1 :
// AcslParser.g:660:11: AND (b= quantifierExpression |b= bitwiseEquivExpression )
{
AND256=(Token)match(input,AND,FOLLOW_AND_in_logicalAndExpression4849); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AND.add(AND256);
// AcslParser.g:660:15: (b= quantifierExpression |b= bitwiseEquivExpression )
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==EXTENDED_IDENTIFIER) ) {
switch ( input.LA(2) ) {
case IDENTIFIER:
{
int LA66_3 = input.LA(3);
if ( (LA66_3==LPAREN||LA66_3==STAR) ) {
alt66=1;
}
else if ( (LA66_3==IDENTIFIER) ) {
int LA66_5 = input.LA(4);
if ( (LA66_5==COMMA||LA66_5==LSQUARE||LA66_5==SEMI) ) {
alt66=1;
}
else if ( (LA66_5==BITOR||LA66_5==PLUS||LA66_5==SUB) ) {
alt66=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("", 66, 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("", 66, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt66=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 EXTENDED_IDENTIFIER:
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:
{
alt66=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 66, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA66_0==AMPERSAND||LA66_0==CHARACTER_CONSTANT||LA66_0==ELLIPSIS||LA66_0==FLOATING_CONSTANT||LA66_0==IDENTIFIER||LA66_0==INTEGER_CONSTANT||LA66_0==LCURLY||LA66_0==LPAREN||LA66_0==NOT||LA66_0==PLUS||LA66_0==STAR||(LA66_0 >= STRING_LITERAL && LA66_0 <= SUB)||LA66_0==TILDE||LA66_0==SELF||LA66_0==SIZEOF) ) {
alt66=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 66, 0, input);
throw nvae;
}
switch (alt66) {
case 1 :
// AcslParser.g:660:16: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_logicalAndExpression4854);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:660:41: b= bitwiseEquivExpression
{
pushFollow(FOLLOW_bitwiseEquivExpression_in_logicalAndExpression4860);
b=bitwiseEquivExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bitwiseEquivExpression.add(b.getTree());
}
break;
}
// AST REWRITE
// elements: b, logicalAndExpression, 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();
// 661:13: -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $b) )
{
// AcslParser.g:661: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:661: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 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 "logicalAndExpression"
public static class bitwiseEquivExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "bitwiseEquivExpression"
// AcslParser.g:668: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_op257 =null;
RewriteRuleSubtreeStream stream_bitwiseImpliesExpression=new RewriteRuleSubtreeStream(adaptor,"rule bitwiseImpliesExpression");
RewriteRuleSubtreeStream stream_bitequiv_op=new RewriteRuleSubtreeStream(adaptor,"rule bitequiv_op");
try {
// AcslParser.g:669:2: ( (a= bitwiseImpliesExpression -> $a) ( bitequiv_op b= bitwiseImpliesExpression -> ^( OPERATOR BEQUIV_ACSL ^( ARGUMENT_LIST $bitwiseEquivExpression $b) ) )* )
// AcslParser.g:669:4: (a= bitwiseImpliesExpression -> $a) ( bitequiv_op b= bitwiseImpliesExpression -> ^( OPERATOR BEQUIV_ACSL ^( ARGUMENT_LIST $bitwiseEquivExpression $b) ) )*
{
// AcslParser.g:669:4: (a= bitwiseImpliesExpression -> $a)
// AcslParser.g:669:5: a= bitwiseImpliesExpression
{
pushFollow(FOLLOW_bitwiseImpliesExpression_in_bitwiseEquivExpression4918);
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();
// 669:32: -> $a
{
adaptor.addChild(root_0, stream_a.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:670:9: ( bitequiv_op b= bitwiseImpliesExpression -> ^( OPERATOR BEQUIV_ACSL ^( ARGUMENT_LIST $bitwiseEquivExpression $b) ) )*
loop68:
while (true) {
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==LT) ) {
int LA68_2 = input.LA(2);
if ( (synpred100_AcslParser()) ) {
alt68=1;
}
}
switch (alt68) {
case 1 :
// AcslParser.g:670:11: bitequiv_op b= bitwiseImpliesExpression
{
pushFollow(FOLLOW_bitequiv_op_in_bitwiseEquivExpression4936);
bitequiv_op257=bitequiv_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bitequiv_op.add(bitequiv_op257.getTree());
pushFollow(FOLLOW_bitwiseImpliesExpression_in_bitwiseEquivExpression4940);
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();
// 671:13: -> ^( OPERATOR BEQUIV_ACSL ^( ARGUMENT_LIST $bitwiseEquivExpression $b) )
{
// AcslParser.g:671: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:671: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 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 "bitwiseEquivExpression"
public static class bitwiseImpliesExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "bitwiseImpliesExpression"
// AcslParser.g:678: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:679:2: (a= inclusiveOrExpression (op= bitimplies_op b= bitwiseImpliesExpression -> ^( OPERATOR BIMPLIES_ACSL ^( ARGUMENT_LIST $a $b) ) | -> $a) )
// AcslParser.g:679:4: a= inclusiveOrExpression (op= bitimplies_op b= bitwiseImpliesExpression -> ^( OPERATOR BIMPLIES_ACSL ^( ARGUMENT_LIST $a $b) ) | -> $a)
{
pushFollow(FOLLOW_inclusiveOrExpression_in_bitwiseImpliesExpression4996);
a=inclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inclusiveOrExpression.add(a.getTree());
// AcslParser.g:680:9: (op= bitimplies_op b= bitwiseImpliesExpression -> ^( OPERATOR BIMPLIES_ACSL ^( ARGUMENT_LIST $a $b) ) | -> $a)
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==MINUSMINUS) ) {
int LA69_1 = input.LA(2);
if ( (synpred101_AcslParser()) ) {
alt69=1;
}
else if ( (true) ) {
alt69=2;
}
}
else if ( (LA69_0==EOF||(LA69_0 >= AMPERSAND && LA69_0 <= AND)||LA69_0==ASSIGN||LA69_0==BITOR||LA69_0==BITXOR||(LA69_0 >= COLON && LA69_0 <= COMMA)||LA69_0==DIV||LA69_0==DOTDOT||(LA69_0 >= EQUALS && LA69_0 <= EQUIV_ACSL)||(LA69_0 >= GT && LA69_0 <= HASH)||LA69_0==IDENTIFIER||(LA69_0 >= IMPLIES && LA69_0 <= IMPLIES_ACSL)||(LA69_0 >= LT && LA69_0 <= LTE)||LA69_0==MOD||LA69_0==NEQ||LA69_0==OR||LA69_0==PLUS||(LA69_0 >= QMARK && LA69_0 <= RCURLY)||LA69_0==RPAREN||LA69_0==RSQUARE||(LA69_0 >= SEMI && LA69_0 <= SHIFTLEFT)||LA69_0==SHIFTRIGHT||LA69_0==STAR||LA69_0==SUB||LA69_0==XOR_ACSL||LA69_0==FOR) ) {
alt69=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 69, 0, input);
throw nvae;
}
switch (alt69) {
case 1 :
// AcslParser.g:680:11: op= bitimplies_op b= bitwiseImpliesExpression
{
pushFollow(FOLLOW_bitimplies_op_in_bitwiseImpliesExpression5010);
op=bitimplies_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_bitimplies_op.add(op.getTree());
pushFollow(FOLLOW_bitwiseImpliesExpression_in_bitwiseImpliesExpression5014);
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();
// 681:13: -> ^( OPERATOR BIMPLIES_ACSL ^( ARGUMENT_LIST $a $b) )
{
// AcslParser.g:681: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:681: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:682: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();
// 682: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:701: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 BITOR259=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope exclusiveOrExpression258 =null;
Object BITOR259_tree=null;
RewriteRuleTokenStream stream_BITOR=new RewriteRuleTokenStream(adaptor,"token BITOR");
RewriteRuleSubtreeStream stream_exclusiveOrExpression=new RewriteRuleSubtreeStream(adaptor,"rule exclusiveOrExpression");
try {
// AcslParser.g:702:2: ( ( exclusiveOrExpression -> exclusiveOrExpression ) ({...}? BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )* )
// AcslParser.g:702:4: ( exclusiveOrExpression -> exclusiveOrExpression ) ({...}? BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )*
{
// AcslParser.g:702:4: ( exclusiveOrExpression -> exclusiveOrExpression )
// AcslParser.g:702:6: exclusiveOrExpression
{
pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression5085);
exclusiveOrExpression258=exclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_exclusiveOrExpression.add(exclusiveOrExpression258.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();
// 702:28: -> exclusiveOrExpression
{
adaptor.addChild(root_0, stream_exclusiveOrExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:703:4: ({...}? BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )*
loop70:
while (true) {
int alt70=2;
int LA70_0 = input.LA(1);
if ( (LA70_0==BITOR) ) {
int LA70_2 = input.LA(2);
if ( ((synpred102_AcslParser()&&(!(input.LA(2)==IDENTIFIER && input.LA(3)==IDENTIFIER)))) ) {
alt70=1;
}
}
switch (alt70) {
case 1 :
// AcslParser.g:703: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)");
}
BITOR259=(Token)match(input,BITOR,FOLLOW_BITOR_in_inclusiveOrExpression5099); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR259);
pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression5103);
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();
// 704:6: -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) )
{
// AcslParser.g:704: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:704: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 loop70;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException 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:714: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 BITXOR261=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope andExpression260 =null;
Object BITXOR261_tree=null;
RewriteRuleTokenStream stream_BITXOR=new RewriteRuleTokenStream(adaptor,"token BITXOR");
RewriteRuleSubtreeStream stream_andExpression=new RewriteRuleSubtreeStream(adaptor,"rule andExpression");
try {
// AcslParser.g:715:5: ( ( andExpression -> andExpression ) ( BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )* )
// AcslParser.g:715:7: ( andExpression -> andExpression ) ( BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )*
{
// AcslParser.g:715:7: ( andExpression -> andExpression )
// AcslParser.g:715:9: andExpression
{
pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression5150);
andExpression260=andExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_andExpression.add(andExpression260.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();
// 715:23: -> andExpression
{
adaptor.addChild(root_0, stream_andExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:716:4: ( BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )*
loop71:
while (true) {
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==BITXOR) ) {
int LA71_2 = input.LA(2);
if ( (synpred103_AcslParser()) ) {
alt71=1;
}
}
switch (alt71) {
case 1 :
// AcslParser.g:716:6: BITXOR y= andExpression
{
BITXOR261=(Token)match(input,BITXOR,FOLLOW_BITXOR_in_exclusiveOrExpression5163); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITXOR.add(BITXOR261);
pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression5167);
y=andExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_andExpression.add(y.getTree());
// AST REWRITE
// elements: y, exclusiveOrExpression, BITXOR
// 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();
// 717:6: -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) )
{
// AcslParser.g:717: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:717: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 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 "exclusiveOrExpression"
public static class andExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "andExpression"
// AcslParser.g:727: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 AMPERSAND263=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope relationalExpression262 =null;
Object AMPERSAND263_tree=null;
RewriteRuleTokenStream stream_AMPERSAND=new RewriteRuleTokenStream(adaptor,"token AMPERSAND");
RewriteRuleSubtreeStream stream_relationalExpression=new RewriteRuleSubtreeStream(adaptor,"rule relationalExpression");
try {
// AcslParser.g:728:2: ( ( relationalExpression -> relationalExpression ) ( AMPERSAND y= relationalExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )* )
// AcslParser.g:728:4: ( relationalExpression -> relationalExpression ) ( AMPERSAND y= relationalExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )*
{
// AcslParser.g:728:4: ( relationalExpression -> relationalExpression )
// AcslParser.g:728:6: relationalExpression
{
pushFollow(FOLLOW_relationalExpression_in_andExpression5211);
relationalExpression262=relationalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relationalExpression.add(relationalExpression262.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();
// 728:27: -> relationalExpression
{
adaptor.addChild(root_0, stream_relationalExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:729:4: ( AMPERSAND y= relationalExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )*
loop72:
while (true) {
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==AMPERSAND) ) {
int LA72_2 = input.LA(2);
if ( (synpred104_AcslParser()) ) {
alt72=1;
}
}
switch (alt72) {
case 1 :
// AcslParser.g:729:6: AMPERSAND y= relationalExpression
{
AMPERSAND263=(Token)match(input,AMPERSAND,FOLLOW_AMPERSAND_in_andExpression5224); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AMPERSAND.add(AMPERSAND263);
pushFollow(FOLLOW_relationalExpression_in_andExpression5228);
y=relationalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relationalExpression.add(y.getTree());
// AST REWRITE
// elements: AMPERSAND, andExpression, 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();
// 730:6: -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) )
{
// AcslParser.g:730: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:730: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 loop72;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException 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:775: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 set264=null;
Object set264_tree=null;
try {
// AcslParser.g:775:6: ( EQUALS | NEQ | LT | LTE | GT | GTE )
// AcslParser.g:
{
root_0 = (Object)adaptor.nil();
set264=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(set264));
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:782: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:783:5: (x= shiftExpression ( (s+= relOp s+= shiftExpression )+ -> ^( RELCHAIN $x ( $s)* ) | -> $x) )
// AcslParser.g:783:7: x= shiftExpression ( (s+= relOp s+= shiftExpression )+ -> ^( RELCHAIN $x ( $s)* ) | -> $x)
{
pushFollow(FOLLOW_shiftExpression_in_relationalExpression5309);
x=shiftExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_shiftExpression.add(x.getTree());
// AcslParser.g:784:9: ( (s+= relOp s+= shiftExpression )+ -> ^( RELCHAIN $x ( $s)* ) | -> $x)
int alt74=2;
switch ( input.LA(1) ) {
case LT:
{
int LA74_1 = input.LA(2);
if ( (synpred111_AcslParser()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=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:
{
alt74=2;
}
break;
case EQUALS:
case GT:
case GTE:
case LTE:
case NEQ:
{
int LA74_3 = input.LA(2);
if ( (synpred111_AcslParser()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 74, 0, input);
throw nvae;
}
switch (alt74) {
case 1 :
// AcslParser.g:784:11: (s+= relOp s+= shiftExpression )+
{
// AcslParser.g:784:11: (s+= relOp s+= shiftExpression )+
int cnt73=0;
loop73:
while (true) {
int alt73=2;
int LA73_0 = input.LA(1);
if ( (LA73_0==LT) ) {
int LA73_2 = input.LA(2);
if ( (synpred110_AcslParser()) ) {
alt73=1;
}
}
else if ( (LA73_0==EQUALS||(LA73_0 >= GT && LA73_0 <= GTE)||LA73_0==LTE||LA73_0==NEQ) ) {
int LA73_3 = input.LA(2);
if ( (synpred110_AcslParser()) ) {
alt73=1;
}
}
switch (alt73) {
case 1 :
// AcslParser.g:784:12: s+= relOp s+= shiftExpression
{
pushFollow(FOLLOW_relOp_in_relationalExpression5324);
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_relationalExpression5328);
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 ( cnt73 >= 1 ) break loop73;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(73, input);
throw eee;
}
cnt73++;
}
// AST REWRITE
// elements: s, x
// 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();
// 784:42: -> ^( RELCHAIN $x ( $s)* )
{
// AcslParser.g:784: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:784: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:785: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();
// 785: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:801: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 SHIFTLEFT266=null;
Token SHIFTRIGHT267=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope rangeExpression265 =null;
Object SHIFTLEFT266_tree=null;
Object SHIFTRIGHT267_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:802:2: ( ( rangeExpression -> rangeExpression ) ( SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )* )
// AcslParser.g:802:4: ( rangeExpression -> rangeExpression ) ( SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )*
{
// AcslParser.g:802:4: ( rangeExpression -> rangeExpression )
// AcslParser.g:802:5: rangeExpression
{
pushFollow(FOLLOW_rangeExpression_in_shiftExpression5386);
rangeExpression265=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(rangeExpression265.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();
// 802:21: -> rangeExpression
{
adaptor.addChild(root_0, stream_rangeExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:803:9: ( SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )*
loop75:
while (true) {
int alt75=3;
int LA75_0 = input.LA(1);
if ( (LA75_0==SHIFTLEFT) ) {
int LA75_2 = input.LA(2);
if ( (synpred112_AcslParser()) ) {
alt75=1;
}
}
else if ( (LA75_0==SHIFTRIGHT) ) {
int LA75_3 = input.LA(2);
if ( (synpred113_AcslParser()) ) {
alt75=2;
}
}
switch (alt75) {
case 1 :
// AcslParser.g:803:11: SHIFTLEFT y= rangeExpression
{
SHIFTLEFT266=(Token)match(input,SHIFTLEFT,FOLLOW_SHIFTLEFT_in_shiftExpression5403); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SHIFTLEFT.add(SHIFTLEFT266);
pushFollow(FOLLOW_rangeExpression_in_shiftExpression5407);
y=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(y.getTree());
// AST REWRITE
// elements: y, SHIFTLEFT, 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();
// 804:11: -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) )
{
// AcslParser.g:804: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:804: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:805:11: SHIFTRIGHT y= rangeExpression
{
SHIFTRIGHT267=(Token)match(input,SHIFTRIGHT,FOLLOW_SHIFTRIGHT_in_shiftExpression5447); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SHIFTRIGHT.add(SHIFTRIGHT267);
pushFollow(FOLLOW_rangeExpression_in_shiftExpression5451);
y=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(y.getTree());
// AST REWRITE
// elements: SHIFTRIGHT, shiftExpression, 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();
// 806:11: -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) )
{
// AcslParser.g:806: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:806: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 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 "shiftExpression"
public static class rangeExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "rangeExpression"
// AcslParser.g:816: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 DOTDOT268=null;
ParserRuleReturnScope x =null;
ParserRuleReturnScope s =null;
Object DOTDOT268_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:817:2: (x= additiveExpression ( DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x) )
// AcslParser.g:817:4: x= additiveExpression ( DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x)
{
pushFollow(FOLLOW_additiveExpression_in_rangeExpression5505);
x=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additiveExpression.add(x.getTree());
// AcslParser.g:818:9: ( DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x)
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==DOTDOT) ) {
int LA76_1 = input.LA(2);
if ( (synpred114_AcslParser()) ) {
alt76=1;
}
else if ( (true) ) {
alt76=2;
}
}
else if ( (LA76_0==EOF||(LA76_0 >= AMPERSAND && LA76_0 <= AND)||LA76_0==ASSIGN||LA76_0==BITOR||LA76_0==BITXOR||(LA76_0 >= COLON && LA76_0 <= COMMA)||LA76_0==DIV||(LA76_0 >= EQUALS && LA76_0 <= EQUIV_ACSL)||(LA76_0 >= GT && LA76_0 <= HASH)||LA76_0==IDENTIFIER||(LA76_0 >= IMPLIES && LA76_0 <= IMPLIES_ACSL)||(LA76_0 >= LT && LA76_0 <= LTE)||(LA76_0 >= MINUSMINUS && LA76_0 <= MOD)||LA76_0==NEQ||LA76_0==OR||LA76_0==PLUS||(LA76_0 >= QMARK && LA76_0 <= RCURLY)||LA76_0==RPAREN||LA76_0==RSQUARE||(LA76_0 >= SEMI && LA76_0 <= SHIFTLEFT)||LA76_0==SHIFTRIGHT||LA76_0==STAR||LA76_0==SUB||LA76_0==XOR_ACSL||LA76_0==FOR) ) {
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:818:11: DOTDOT s= rangeSuffix
{
DOTDOT268=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_rangeExpression5517); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOTDOT.add(DOTDOT268);
pushFollow(FOLLOW_rangeSuffix_in_rangeExpression5521);
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();
// 818:32: -> ^( DOTDOT $x $s)
{
// AcslParser.g:818: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:819: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();
// 819: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:823: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 HASH270=null;
ParserRuleReturnScope additiveExpression269 =null;
ParserRuleReturnScope additiveExpression271 =null;
Object HASH270_tree=null;
try {
// AcslParser.g:824:5: ( additiveExpression ( HASH ! additiveExpression )? )
// AcslParser.g:824:7: additiveExpression ( HASH ! additiveExpression )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_additiveExpression_in_rangeSuffix5575);
additiveExpression269=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, additiveExpression269.getTree());
// AcslParser.g:824:26: ( HASH ! additiveExpression )?
int alt77=2;
int LA77_0 = input.LA(1);
if ( (LA77_0==HASH) ) {
int LA77_1 = input.LA(2);
if ( (synpred115_AcslParser()) ) {
alt77=1;
}
}
switch (alt77) {
case 1 :
// AcslParser.g:824:27: HASH ! additiveExpression
{
HASH270=(Token)match(input,HASH,FOLLOW_HASH_in_rangeSuffix5578); if (state.failed) return retval;
pushFollow(FOLLOW_additiveExpression_in_rangeSuffix5581);
additiveExpression271=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, additiveExpression271.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:832: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 PLUS273=null;
Token SUB274=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope multiplicativeExpression272 =null;
Object PLUS273_tree=null;
Object SUB274_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:833:2: ( ( multiplicativeExpression -> multiplicativeExpression ) ( PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )* )
// AcslParser.g:833:4: ( multiplicativeExpression -> multiplicativeExpression ) ( PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )*
{
// AcslParser.g:833:4: ( multiplicativeExpression -> multiplicativeExpression )
// AcslParser.g:833:5: multiplicativeExpression
{
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression5600);
multiplicativeExpression272=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(multiplicativeExpression272.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();
// 833:30: -> multiplicativeExpression
{
adaptor.addChild(root_0, stream_multiplicativeExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:834:9: ( PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )*
loop78:
while (true) {
int alt78=3;
int LA78_0 = input.LA(1);
if ( (LA78_0==PLUS) ) {
int LA78_2 = input.LA(2);
if ( (synpred116_AcslParser()) ) {
alt78=1;
}
}
else if ( (LA78_0==SUB) ) {
int LA78_3 = input.LA(2);
if ( (synpred117_AcslParser()) ) {
alt78=2;
}
}
switch (alt78) {
case 1 :
// AcslParser.g:834:11: PLUS y= multiplicativeExpression
{
PLUS273=(Token)match(input,PLUS,FOLLOW_PLUS_in_additiveExpression5617); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS273);
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression5621);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(y.getTree());
// AST REWRITE
// elements: additiveExpression, y, PLUS
// 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();
// 835:11: -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) )
{
// AcslParser.g:835: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:835: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:836:11: SUB y= multiplicativeExpression
{
SUB274=(Token)match(input,SUB,FOLLOW_SUB_in_additiveExpression5661); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUB.add(SUB274);
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression5665);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(y.getTree());
// AST REWRITE
// elements: y, additiveExpression, 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();
// 837:11: -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) )
{
// AcslParser.g:837: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:837: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 loop78;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException 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:847: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 STAR276=null;
Token DIV277=null;
Token MOD278=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope castExpression275 =null;
Object STAR276_tree=null;
Object DIV277_tree=null;
Object MOD278_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:848: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:848: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:848:4: ( castExpression -> castExpression )
// AcslParser.g:848:5: castExpression
{
pushFollow(FOLLOW_castExpression_in_multiplicativeExpression5718);
castExpression275=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(castExpression275.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();
// 848:20: -> castExpression
{
adaptor.addChild(root_0, stream_castExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:849: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) ) )*
loop79:
while (true) {
int alt79=4;
switch ( input.LA(1) ) {
case STAR:
{
int LA79_2 = input.LA(2);
if ( (synpred118_AcslParser()) ) {
alt79=1;
}
}
break;
case DIV:
{
int LA79_3 = input.LA(2);
if ( (synpred119_AcslParser()) ) {
alt79=2;
}
}
break;
case MOD:
{
int LA79_4 = input.LA(2);
if ( (synpred120_AcslParser()) ) {
alt79=3;
}
}
break;
}
switch (alt79) {
case 1 :
// AcslParser.g:849:4: STAR y= castExpression
{
STAR276=(Token)match(input,STAR,FOLLOW_STAR_in_multiplicativeExpression5728); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR276);
pushFollow(FOLLOW_castExpression_in_multiplicativeExpression5732);
y=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(y.getTree());
// AST REWRITE
// elements: y, STAR, multiplicativeExpression
// 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();
// 850:4: -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// AcslParser.g:850: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:850: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:851:4: DIV y= castExpression
{
DIV277=(Token)match(input,DIV,FOLLOW_DIV_in_multiplicativeExpression5758); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DIV.add(DIV277);
pushFollow(FOLLOW_castExpression_in_multiplicativeExpression5762);
y=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(y.getTree());
// AST REWRITE
// elements: DIV, y, multiplicativeExpression
// 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();
// 852:4: -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// AcslParser.g:852: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:852: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:853:7: MOD y= castExpression
{
MOD278=(Token)match(input,MOD,FOLLOW_MOD_in_multiplicativeExpression5791); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MOD.add(MOD278);
pushFollow(FOLLOW_castExpression_in_multiplicativeExpression5795);
y=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(y.getTree());
// AST REWRITE
// elements: multiplicativeExpression, y, MOD
// 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();
// 854:4: -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// AcslParser.g:854: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:854: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 loop79;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException 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:866: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 RPAREN280=null;
ParserRuleReturnScope type_expr279 =null;
ParserRuleReturnScope castExpression281 =null;
ParserRuleReturnScope unaryExpression282 =null;
Object l_tree=null;
Object RPAREN280_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:867:2: ( ( LPAREN type_expr RPAREN )=>l= LPAREN type_expr RPAREN castExpression -> ^( CAST type_expr castExpression ) | unaryExpression )
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==LPAREN) ) {
int LA80_1 = input.LA(2);
if ( (synpred121_AcslParser()) ) {
alt80=1;
}
else if ( (true) ) {
alt80=2;
}
}
else if ( (LA80_0==AMPERSAND||LA80_0==CHARACTER_CONSTANT||LA80_0==ELLIPSIS||LA80_0==EXTENDED_IDENTIFIER||LA80_0==FLOATING_CONSTANT||LA80_0==IDENTIFIER||LA80_0==INTEGER_CONSTANT||LA80_0==LCURLY||LA80_0==NOT||LA80_0==PLUS||LA80_0==STAR||(LA80_0 >= STRING_LITERAL && LA80_0 <= SUB)||LA80_0==TILDE||LA80_0==SELF||LA80_0==SIZEOF) ) {
alt80=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 80, 0, input);
throw nvae;
}
switch (alt80) {
case 1 :
// AcslParser.g:867:4: ( LPAREN type_expr RPAREN )=>l= LPAREN type_expr RPAREN castExpression
{
l=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_castExpression5849); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(l);
pushFollow(FOLLOW_type_expr_in_castExpression5851);
type_expr279=type_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_expr.add(type_expr279.getTree());
RPAREN280=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_castExpression5853); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN280);
pushFollow(FOLLOW_castExpression_in_castExpression5855);
castExpression281=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(castExpression281.getTree());
// AST REWRITE
// elements: type_expr, 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();
// 868:4: -> ^( CAST type_expr castExpression )
{
// AcslParser.g:868: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:869:4: unaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unaryExpression_in_castExpression5873);
unaryExpression282=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression282.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:879: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 ) | mpi_expression -> ^( MPI_EXPRESSION mpi_expression ) | 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 SIZEOF285=null;
Token LPAREN286=null;
Token RPAREN288=null;
Token SIZEOF289=null;
Token LPAREN292=null;
Token RPAREN294=null;
Token LPAREN296=null;
Token RPAREN298=null;
Token LPAREN300=null;
Token RPAREN302=null;
Token LPAREN305=null;
Token RPAREN307=null;
Token LPAREN310=null;
Token RPAREN312=null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope postfixExpression283 =null;
ParserRuleReturnScope unary_op284 =null;
ParserRuleReturnScope type_expr287 =null;
ParserRuleReturnScope unaryExpression290 =null;
ParserRuleReturnScope union_key291 =null;
ParserRuleReturnScope argumentExpressionList293 =null;
ParserRuleReturnScope inter_key295 =null;
ParserRuleReturnScope argumentExpressionList297 =null;
ParserRuleReturnScope valid_key299 =null;
ParserRuleReturnScope term301 =null;
ParserRuleReturnScope extendedQuantification303 =null;
ParserRuleReturnScope object_of_key304 =null;
ParserRuleReturnScope term306 =null;
ParserRuleReturnScope mpi_expression308 =null;
ParserRuleReturnScope old_key309 =null;
ParserRuleReturnScope term311 =null;
Object SIZEOF285_tree=null;
Object LPAREN286_tree=null;
Object RPAREN288_tree=null;
Object SIZEOF289_tree=null;
Object LPAREN292_tree=null;
Object RPAREN294_tree=null;
Object LPAREN296_tree=null;
Object RPAREN298_tree=null;
Object LPAREN300_tree=null;
Object RPAREN302_tree=null;
Object LPAREN305_tree=null;
Object RPAREN307_tree=null;
Object LPAREN310_tree=null;
Object RPAREN312_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_mpi_expression=new RewriteRuleSubtreeStream(adaptor,"rule mpi_expression");
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:880: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 ) | mpi_expression -> ^( MPI_EXPRESSION mpi_expression ) | old_key LPAREN term RPAREN -> ^( OLD old_key term RPAREN ) )
int alt82=11;
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:
{
alt82=1;
}
break;
case EXTENDED_IDENTIFIER:
{
int LA82_4 = input.LA(2);
if ( ((((input.LT(1).getText().equals("\\false"))||(input.LT(1).getText().equals("\\result"))||(input.LT(1).getText().equals("\\on"))||(input.LT(1).getText().equals("\\mpi_comm_size"))||(input.LT(1).getText().equals("\\mpi_comm_rank"))||(input.LT(1).getText().equals("\\nothing"))||(input.LT(1).getText().equals("\\null"))||(input.LT(1).getText().equals("\\true")))&&synpred122_AcslParser())) ) {
alt82=1;
}
else if ( ((synpred127_AcslParser()&&(input.LT(1).getText().equals("\\union")))) ) {
alt82=5;
}
else if ( ((synpred128_AcslParser()&&(input.LT(1).getText().equals("\\inter")))) ) {
alt82=6;
}
else if ( ((synpred129_AcslParser()&&(input.LT(1).getText().equals("\\valid")))) ) {
alt82=7;
}
else if ( ((synpred130_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"))))) ) {
alt82=8;
}
else if ( ((synpred131_AcslParser()&&(input.LT(1).getText().equals("\\object_of")))) ) {
alt82=9;
}
else if ( ((synpred132_AcslParser()&&((input.LT(1).getText().equals("\\mpi_extent"))||(input.LT(1).getText().equals("\\mpi_offset"))||(input.LT(1).getText().equals("\\mpi_empty_in"))||(input.LT(1).getText().equals("\\mpi_valid"))||(input.LT(1).getText().equals("\\absentof"))||(input.LT(1).getText().equals("\\mpi_region"))||(input.LT(1).getText().equals("\\mpi_equals"))||(input.LT(1).getText().equals("\\mpi_reduce"))||(input.LT(1).getText().equals("\\mpi_empty_out"))||(input.LT(1).getText().equals("\\mpi_agree"))))) ) {
alt82=10;
}
else if ( ((input.LT(1).getText().equals("\\old"))) ) {
alt82=11;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 82, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case AMPERSAND:
case NOT:
case PLUS:
case STAR:
case SUB:
case TILDE:
{
alt82=2;
}
break;
case SIZEOF:
{
int LA82_12 = input.LA(2);
if ( (synpred125_AcslParser()) ) {
alt82=3;
}
else if ( (synpred126_AcslParser()) ) {
alt82=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 82, 12, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 82, 0, input);
throw nvae;
}
switch (alt82) {
case 1 :
// AcslParser.g:880:4: postfixExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_postfixExpression_in_unaryExpression5886);
postfixExpression283=postfixExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, postfixExpression283.getTree());
}
break;
case 2 :
// AcslParser.g:881:4: unary_op (b= castExpression |b= quantifierExpression )
{
pushFollow(FOLLOW_unary_op_in_unaryExpression5891);
unary_op284=unary_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_op.add(unary_op284.getTree());
// AcslParser.g:881:13: (b= castExpression |b= quantifierExpression )
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==AMPERSAND||LA81_0==CHARACTER_CONSTANT||LA81_0==ELLIPSIS||LA81_0==FLOATING_CONSTANT||LA81_0==IDENTIFIER||LA81_0==INTEGER_CONSTANT||LA81_0==LCURLY||LA81_0==LPAREN||LA81_0==NOT||LA81_0==PLUS||LA81_0==STAR||(LA81_0 >= STRING_LITERAL && LA81_0 <= SUB)||LA81_0==TILDE||LA81_0==SELF||LA81_0==SIZEOF) ) {
alt81=1;
}
else if ( (LA81_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 EXTENDED_IDENTIFIER:
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:
{
alt81=1;
}
break;
case IDENTIFIER:
{
int LA81_3 = input.LA(3);
if ( (LA81_3==IDENTIFIER) ) {
int LA81_5 = input.LA(4);
if ( (LA81_5==BITOR||LA81_5==PLUS||LA81_5==SUB) ) {
alt81=1;
}
else if ( (LA81_5==COMMA||LA81_5==LSQUARE||LA81_5==SEMI) ) {
alt81=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("", 81, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA81_3==LPAREN||LA81_3==STAR) ) {
alt81=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("", 81, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case LONG:
case SHORT:
case VOID:
{
alt81=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 81, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 81, 0, input);
throw nvae;
}
switch (alt81) {
case 1 :
// AcslParser.g:881:14: b= castExpression
{
pushFollow(FOLLOW_castExpression_in_unaryExpression5896);
b=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(b.getTree());
}
break;
case 2 :
// AcslParser.g:881:33: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_unaryExpression5902);
b=quantifierExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifierExpression.add(b.getTree());
}
break;
}
// AST REWRITE
// elements: b, unary_op
// 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();
// 882:9: -> ^( OPERATOR unary_op ^( ARGUMENT_LIST $b) )
{
// AcslParser.g:882: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:882: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:883:4: ( SIZEOF LPAREN type_expr )=> SIZEOF LPAREN type_expr RPAREN
{
SIZEOF285=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unaryExpression5940); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF285);
LPAREN286=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression5942); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN286);
pushFollow(FOLLOW_type_expr_in_unaryExpression5944);
type_expr287=type_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_expr.add(type_expr287.getTree());
RPAREN288=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression5946); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN288);
// 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();
// 884:9: -> ^( SIZEOF_TYPE type_expr )
{
// AcslParser.g:884: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:885:4: SIZEOF unaryExpression
{
SIZEOF289=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unaryExpression5967); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF289);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression5969);
unaryExpression290=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression290.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();
// 886:9: -> ^( SIZEOF_EXPR unaryExpression )
{
// AcslParser.g:886: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:887:7: union_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_union_key_in_unaryExpression5993);
union_key291=union_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_union_key.add(union_key291.getTree());
LPAREN292=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression5995); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN292);
pushFollow(FOLLOW_argumentExpressionList_in_unaryExpression5997);
argumentExpressionList293=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList293.getTree());
RPAREN294=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression5999); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN294);
// AST REWRITE
// elements: RPAREN, union_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();
// 888:9: -> ^( UNION_ACSL union_key argumentExpressionList RPAREN )
{
// AcslParser.g:888: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:889:7: inter_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_inter_key_in_unaryExpression6027);
inter_key295=inter_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inter_key.add(inter_key295.getTree());
LPAREN296=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression6029); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN296);
pushFollow(FOLLOW_argumentExpressionList_in_unaryExpression6031);
argumentExpressionList297=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList297.getTree());
RPAREN298=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression6033); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN298);
// AST REWRITE
// elements: argumentExpressionList, inter_key, 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();
// 890:9: -> ^( INTER inter_key argumentExpressionList RPAREN )
{
// AcslParser.g:890: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:891:7: valid_key LPAREN term RPAREN
{
pushFollow(FOLLOW_valid_key_in_unaryExpression6061);
valid_key299=valid_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_valid_key.add(valid_key299.getTree());
LPAREN300=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression6063); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN300);
pushFollow(FOLLOW_term_in_unaryExpression6065);
term301=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term301.getTree());
RPAREN302=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression6067); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN302);
// AST REWRITE
// elements: valid_key, RPAREN, 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();
// 892:9: -> ^( VALID valid_key term RPAREN )
{
// AcslParser.g:892: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:893:7: extendedQuantification
{
pushFollow(FOLLOW_extendedQuantification_in_unaryExpression6095);
extendedQuantification303=extendedQuantification();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_extendedQuantification.add(extendedQuantification303.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();
// 893:30: -> ^( QUANTIFIED_EXT extendedQuantification )
{
// AcslParser.g:893: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:894:7: object_of_key LPAREN term RPAREN
{
pushFollow(FOLLOW_object_of_key_in_unaryExpression6110);
object_of_key304=object_of_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_object_of_key.add(object_of_key304.getTree());
LPAREN305=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression6112); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN305);
pushFollow(FOLLOW_term_in_unaryExpression6114);
term306=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term306.getTree());
RPAREN307=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression6116); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN307);
// AST REWRITE
// elements: term, RPAREN, object_of_key, 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();
// 894:40: -> ^( OBJECT_OF object_of_key LPAREN term RPAREN )
{
// AcslParser.g:894: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:895:7: mpi_expression
{
pushFollow(FOLLOW_mpi_expression_in_unaryExpression6138);
mpi_expression308=mpi_expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpi_expression.add(mpi_expression308.getTree());
// AST REWRITE
// elements: mpi_expression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 895:22: -> ^( MPI_EXPRESSION mpi_expression )
{
// AcslParser.g:895:25: ^( MPI_EXPRESSION mpi_expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_EXPRESSION, "MPI_EXPRESSION"), root_1);
adaptor.addChild(root_1, stream_mpi_expression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 11 :
// AcslParser.g:896:7: old_key LPAREN term RPAREN
{
pushFollow(FOLLOW_old_key_in_unaryExpression6154);
old_key309=old_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_old_key.add(old_key309.getTree());
LPAREN310=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression6156); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN310);
pushFollow(FOLLOW_term_in_unaryExpression6158);
term311=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term311.getTree());
RPAREN312=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression6160); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN312);
// AST REWRITE
// elements: term, RPAREN, old_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();
// 897:9: -> ^( OLD old_key term RPAREN )
{
// AcslParser.g:897: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:900: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 LPAREN314=null;
Token COMMA316=null;
Token COMMA318=null;
Token RPAREN320=null;
Token LPAREN322=null;
Token COMMA324=null;
Token COMMA326=null;
Token RPAREN328=null;
Token LPAREN330=null;
Token COMMA332=null;
Token COMMA334=null;
Token RPAREN336=null;
Token LPAREN338=null;
Token COMMA340=null;
Token COMMA342=null;
Token RPAREN344=null;
Token LPAREN346=null;
Token COMMA348=null;
Token COMMA350=null;
Token RPAREN352=null;
ParserRuleReturnScope sum_key313 =null;
ParserRuleReturnScope term315 =null;
ParserRuleReturnScope term317 =null;
ParserRuleReturnScope term319 =null;
ParserRuleReturnScope max_key321 =null;
ParserRuleReturnScope term323 =null;
ParserRuleReturnScope term325 =null;
ParserRuleReturnScope term327 =null;
ParserRuleReturnScope min_key329 =null;
ParserRuleReturnScope term331 =null;
ParserRuleReturnScope term333 =null;
ParserRuleReturnScope term335 =null;
ParserRuleReturnScope product_key337 =null;
ParserRuleReturnScope term339 =null;
ParserRuleReturnScope term341 =null;
ParserRuleReturnScope term343 =null;
ParserRuleReturnScope numof_key345 =null;
ParserRuleReturnScope term347 =null;
ParserRuleReturnScope term349 =null;
ParserRuleReturnScope term351 =null;
Object LPAREN314_tree=null;
Object COMMA316_tree=null;
Object COMMA318_tree=null;
Object RPAREN320_tree=null;
Object LPAREN322_tree=null;
Object COMMA324_tree=null;
Object COMMA326_tree=null;
Object RPAREN328_tree=null;
Object LPAREN330_tree=null;
Object COMMA332_tree=null;
Object COMMA334_tree=null;
Object RPAREN336_tree=null;
Object LPAREN338_tree=null;
Object COMMA340_tree=null;
Object COMMA342_tree=null;
Object RPAREN344_tree=null;
Object LPAREN346_tree=null;
Object COMMA348_tree=null;
Object COMMA350_tree=null;
Object RPAREN352_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:901: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 alt83=5;
int LA83_0 = input.LA(1);
if ( (LA83_0==EXTENDED_IDENTIFIER) ) {
int LA83_1 = input.LA(2);
if ( (((input.LT(1).getText().equals("\\sum"))&&synpred133_AcslParser())) ) {
alt83=1;
}
else if ( (((input.LT(1).getText().equals("\\max"))&&synpred134_AcslParser())) ) {
alt83=2;
}
else if ( (((input.LT(1).getText().equals("\\min"))&&synpred135_AcslParser())) ) {
alt83=3;
}
else if ( ((synpred136_AcslParser()&&(input.LT(1).getText().equals("\\product")))) ) {
alt83=4;
}
else if ( ((input.LT(1).getText().equals("\\numof"))) ) {
alt83=5;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 83, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 83, 0, input);
throw nvae;
}
switch (alt83) {
case 1 :
// AcslParser.g:901:4: sum_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_sum_key_in_extendedQuantification6192);
sum_key313=sum_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_sum_key.add(sum_key313.getTree());
LPAREN314=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_extendedQuantification6194); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN314);
pushFollow(FOLLOW_term_in_extendedQuantification6196);
term315=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term315.getTree());
COMMA316=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6198); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA316);
pushFollow(FOLLOW_term_in_extendedQuantification6200);
term317=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term317.getTree());
COMMA318=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6202); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA318);
pushFollow(FOLLOW_term_in_extendedQuantification6204);
term319=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term319.getTree());
RPAREN320=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_extendedQuantification6206); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN320);
// 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();
// 902:9: -> ^( SUM sum_key ( term )+ )
{
// AcslParser.g:902: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:903:7: max_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_max_key_in_extendedQuantification6233);
max_key321=max_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_max_key.add(max_key321.getTree());
LPAREN322=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_extendedQuantification6235); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN322);
pushFollow(FOLLOW_term_in_extendedQuantification6237);
term323=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term323.getTree());
COMMA324=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6239); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA324);
pushFollow(FOLLOW_term_in_extendedQuantification6241);
term325=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term325.getTree());
COMMA326=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6243); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA326);
pushFollow(FOLLOW_term_in_extendedQuantification6245);
term327=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term327.getTree());
RPAREN328=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_extendedQuantification6247); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN328);
// 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();
// 904:9: -> ^( MAX max_key ( term )+ )
{
// AcslParser.g:904: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:905:7: min_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_min_key_in_extendedQuantification6274);
min_key329=min_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_min_key.add(min_key329.getTree());
LPAREN330=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_extendedQuantification6276); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN330);
pushFollow(FOLLOW_term_in_extendedQuantification6278);
term331=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term331.getTree());
COMMA332=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6280); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA332);
pushFollow(FOLLOW_term_in_extendedQuantification6282);
term333=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term333.getTree());
COMMA334=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6284); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA334);
pushFollow(FOLLOW_term_in_extendedQuantification6286);
term335=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term335.getTree());
RPAREN336=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_extendedQuantification6288); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN336);
// 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();
// 906:9: -> ^( MIN min_key ( term )+ )
{
// AcslParser.g:906: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:907:7: product_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_product_key_in_extendedQuantification6315);
product_key337=product_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_product_key.add(product_key337.getTree());
LPAREN338=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_extendedQuantification6317); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN338);
pushFollow(FOLLOW_term_in_extendedQuantification6319);
term339=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term339.getTree());
COMMA340=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6321); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA340);
pushFollow(FOLLOW_term_in_extendedQuantification6323);
term341=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term341.getTree());
COMMA342=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6325); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA342);
pushFollow(FOLLOW_term_in_extendedQuantification6327);
term343=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term343.getTree());
RPAREN344=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_extendedQuantification6329); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN344);
// AST REWRITE
// elements: term, product_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();
// 908:9: -> ^( PROD product_key ( term )+ )
{
// AcslParser.g:908: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:909:7: numof_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_numof_key_in_extendedQuantification6356);
numof_key345=numof_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_numof_key.add(numof_key345.getTree());
LPAREN346=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_extendedQuantification6358); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN346);
pushFollow(FOLLOW_term_in_extendedQuantification6360);
term347=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term347.getTree());
COMMA348=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6362); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA348);
pushFollow(FOLLOW_term_in_extendedQuantification6364);
term349=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term349.getTree());
COMMA350=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendedQuantification6366); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA350);
pushFollow(FOLLOW_term_in_extendedQuantification6368);
term351=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term351.getTree());
RPAREN352=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_extendedQuantification6370); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN352);
// AST REWRITE
// elements: term, numof_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();
// 910:9: -> ^( NUMOF numof_key ( term )+ )
{
// AcslParser.g:910: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:925: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 RSQUARE355=null;
Token LPAREN356=null;
Token RPAREN358=null;
Token DOT359=null;
Token IDENTIFIER360=null;
Token ARROW361=null;
Token IDENTIFIER362=null;
ParserRuleReturnScope primaryExpression353 =null;
ParserRuleReturnScope term354 =null;
ParserRuleReturnScope argumentExpressionList357 =null;
Object l_tree=null;
Object RSQUARE355_tree=null;
Object LPAREN356_tree=null;
Object RPAREN358_tree=null;
Object DOT359_tree=null;
Object IDENTIFIER360_tree=null;
Object ARROW361_tree=null;
Object IDENTIFIER362_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:926: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:926: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:926:4: ( primaryExpression -> primaryExpression )
// AcslParser.g:926:5: primaryExpression
{
pushFollow(FOLLOW_primaryExpression_in_postfixExpression6403);
primaryExpression353=primaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primaryExpression.add(primaryExpression353.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();
// 926:23: -> primaryExpression
{
adaptor.addChild(root_0, stream_primaryExpression.nextTree());
}
retval.tree = root_0;
}
}
// AcslParser.g:928: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 ) )*
loop84:
while (true) {
int alt84=5;
switch ( input.LA(1) ) {
case LSQUARE:
{
alt84=1;
}
break;
case LPAREN:
{
alt84=2;
}
break;
case DOT:
{
alt84=3;
}
break;
case ARROW:
{
alt84=4;
}
break;
}
switch (alt84) {
case 1 :
// AcslParser.g:928:6: l= LSQUARE term RSQUARE
{
l=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_postfixExpression6420); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(l);
pushFollow(FOLLOW_term_in_postfixExpression6422);
term354=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term354.getTree());
RSQUARE355=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_postfixExpression6424); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE355);
// AST REWRITE
// elements: RSQUARE, postfixExpression, 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();
// 929:6: -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression term ) RSQUARE )
{
// AcslParser.g:929: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:931: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:934:6: LPAREN argumentExpressionList RPAREN
{
LPAREN356=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_postfixExpression6498); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN356);
pushFollow(FOLLOW_argumentExpressionList_in_postfixExpression6500);
argumentExpressionList357=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList357.getTree());
RPAREN358=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_postfixExpression6502); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN358);
// 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();
// 935:6: -> ^( FUNC_CALL $postfixExpression argumentExpressionList )
{
// AcslParser.g:935: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:937:6: DOT IDENTIFIER
{
DOT359=(Token)match(input,DOT,FOLLOW_DOT_in_postfixExpression6533); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT359);
IDENTIFIER360=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfixExpression6535); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER360);
// AST REWRITE
// elements: postfixExpression, DOT, 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();
// 938:6: -> ^( DOT $postfixExpression IDENTIFIER )
{
// AcslParser.g:938: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:939:6: ARROW IDENTIFIER
{
ARROW361=(Token)match(input,ARROW,FOLLOW_ARROW_in_postfixExpression6558); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ARROW.add(ARROW361);
IDENTIFIER362=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfixExpression6560); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER362);
// AST REWRITE
// elements: postfixExpression, IDENTIFIER, ARROW
// 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();
// 940:6: -> ^( ARROW $postfixExpression IDENTIFIER )
{
// AcslParser.g:940: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 loop84;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException 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:945: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 COMMA364=null;
ParserRuleReturnScope assignmentExpression363 =null;
ParserRuleReturnScope assignmentExpression365 =null;
Object COMMA364_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// AcslParser.g:946:2: ( -> ^( ARGUMENT_LIST ) | assignmentExpression ( COMMA assignmentExpression )* -> ^( ARGUMENT_LIST ( assignmentExpression )+ ) )
int alt86=2;
int LA86_0 = input.LA(1);
if ( (LA86_0==EOF||LA86_0==COMMA||LA86_0==RPAREN||LA86_0==SEMI) ) {
alt86=1;
}
else if ( (LA86_0==AMPERSAND||LA86_0==CHARACTER_CONSTANT||LA86_0==ELLIPSIS||LA86_0==EXTENDED_IDENTIFIER||LA86_0==FLOATING_CONSTANT||LA86_0==IDENTIFIER||LA86_0==INTEGER_CONSTANT||LA86_0==LCURLY||LA86_0==LPAREN||LA86_0==NOT||LA86_0==PLUS||LA86_0==STAR||(LA86_0 >= STRING_LITERAL && LA86_0 <= SUB)||LA86_0==TILDE||LA86_0==SELF||LA86_0==SIZEOF) ) {
alt86=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 86, 0, input);
throw nvae;
}
switch (alt86) {
case 1 :
// AcslParser.g:946: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();
// 946:4: -> ^( ARGUMENT_LIST )
{
// AcslParser.g:946: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:947:4: assignmentExpression ( COMMA assignmentExpression )*
{
pushFollow(FOLLOW_assignmentExpression_in_argumentExpressionList6605);
assignmentExpression363=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression363.getTree());
// AcslParser.g:947:25: ( COMMA assignmentExpression )*
loop85:
while (true) {
int alt85=2;
int LA85_0 = input.LA(1);
if ( (LA85_0==COMMA) ) {
int LA85_2 = input.LA(2);
if ( (synpred142_AcslParser()) ) {
alt85=1;
}
}
switch (alt85) {
case 1 :
// AcslParser.g:947:26: COMMA assignmentExpression
{
COMMA364=(Token)match(input,COMMA,FOLLOW_COMMA_in_argumentExpressionList6608); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA364);
pushFollow(FOLLOW_assignmentExpression_in_argumentExpressionList6610);
assignmentExpression365=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression365.getTree());
}
break;
default :
break loop85;
}
}
// 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();
// 948:4: -> ^( ARGUMENT_LIST ( assignmentExpression )+ )
{
// AcslParser.g:948: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:952: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 ) | remoteExpression );
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 IDENTIFIER367=null;
Token STRING_LITERAL368=null;
Token LCURLY369=null;
Token BITOR371=null;
Token SEMI373=null;
Token RCURLY375=null;
Token LCURLY376=null;
Token RCURLY378=null;
Token LPAREN379=null;
Token RPAREN381=null;
ParserRuleReturnScope constant366 =null;
ParserRuleReturnScope term370 =null;
ParserRuleReturnScope binders372 =null;
ParserRuleReturnScope term374 =null;
ParserRuleReturnScope term377 =null;
ParserRuleReturnScope term380 =null;
ParserRuleReturnScope remoteExpression382 =null;
Object IDENTIFIER367_tree=null;
Object STRING_LITERAL368_tree=null;
Object LCURLY369_tree=null;
Object BITOR371_tree=null;
Object SEMI373_tree=null;
Object RCURLY375_tree=null;
Object LCURLY376_tree=null;
Object RCURLY378_tree=null;
Object LPAREN379_tree=null;
Object RPAREN381_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:953: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 ) | remoteExpression )
int alt88=7;
switch ( input.LA(1) ) {
case CHARACTER_CONSTANT:
case ELLIPSIS:
case FLOATING_CONSTANT:
case INTEGER_CONSTANT:
case SELF:
{
alt88=1;
}
break;
case EXTENDED_IDENTIFIER:
{
int LA88_4 = input.LA(2);
if ( ((((input.LT(1).getText().equals("\\false"))||(input.LT(1).getText().equals("\\result"))||(input.LT(1).getText().equals("\\mpi_comm_size"))||(input.LT(1).getText().equals("\\mpi_comm_rank"))||(input.LT(1).getText().equals("\\nothing"))||(input.LT(1).getText().equals("\\null"))||(input.LT(1).getText().equals("\\true")))&&synpred143_AcslParser())) ) {
alt88=1;
}
else if ( ((input.LT(1).getText().equals("\\on"))) ) {
alt88=7;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 88, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENTIFIER:
{
alt88=2;
}
break;
case STRING_LITERAL:
{
alt88=3;
}
break;
case LCURLY:
{
int LA88_9 = input.LA(2);
if ( (synpred147_AcslParser()) ) {
alt88=4;
}
else if ( (synpred148_AcslParser()) ) {
alt88=5;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 88, 9, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case LPAREN:
{
alt88=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 88, 0, input);
throw nvae;
}
switch (alt88) {
case 1 :
// AcslParser.g:953:4: constant
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_constant_in_primaryExpression6637);
constant366=constant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, constant366.getTree());
}
break;
case 2 :
// AcslParser.g:954:7: IDENTIFIER
{
root_0 = (Object)adaptor.nil();
IDENTIFIER367=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_primaryExpression6645); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER367_tree = (Object)adaptor.create(IDENTIFIER367);
adaptor.addChild(root_0, IDENTIFIER367_tree);
}
}
break;
case 3 :
// AcslParser.g:955:4: STRING_LITERAL
{
root_0 = (Object)adaptor.nil();
STRING_LITERAL368=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_primaryExpression6650); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STRING_LITERAL368_tree = (Object)adaptor.create(STRING_LITERAL368);
adaptor.addChild(root_0, STRING_LITERAL368_tree);
}
}
break;
case 4 :
// AcslParser.g:956:7: LCURLY term BITOR binders ( SEMI term )? RCURLY
{
LCURLY369=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_primaryExpression6658); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY369);
pushFollow(FOLLOW_term_in_primaryExpression6660);
term370=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term370.getTree());
BITOR371=(Token)match(input,BITOR,FOLLOW_BITOR_in_primaryExpression6662); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR371);
pushFollow(FOLLOW_binders_in_primaryExpression6664);
binders372=binders();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_binders.add(binders372.getTree());
// AcslParser.g:956:33: ( SEMI term )?
int alt87=2;
int LA87_0 = input.LA(1);
if ( (LA87_0==SEMI) ) {
alt87=1;
}
switch (alt87) {
case 1 :
// AcslParser.g:956:34: SEMI term
{
SEMI373=(Token)match(input,SEMI,FOLLOW_SEMI_in_primaryExpression6667); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI373);
pushFollow(FOLLOW_term_in_primaryExpression6669);
term374=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term374.getTree());
}
break;
}
RCURLY375=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_primaryExpression6673); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY375);
// 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();
// 957:9: -> ^( SET_BINDERS term binders ( term )? )
{
// AcslParser.g:957: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:957: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:958:7: LCURLY term RCURLY
{
LCURLY376=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_primaryExpression6701); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY376);
pushFollow(FOLLOW_term_in_primaryExpression6703);
term377=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term377.getTree());
RCURLY378=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_primaryExpression6705); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY378);
// 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();
// 959:9: -> ^( SET_SIMPLE term )
{
// AcslParser.g:959: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:960:4: LPAREN term RPAREN
{
LPAREN379=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_primaryExpression6725); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN379);
pushFollow(FOLLOW_term_in_primaryExpression6727);
term380=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term380.getTree());
RPAREN381=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_primaryExpression6729); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN381);
// 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();
// 961:5: -> ^( TERM_PARENTHESIZED term )
{
// AcslParser.g:961: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;
case 7 :
// AcslParser.g:962:4: remoteExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_remoteExpression_in_primaryExpression6747);
remoteExpression382=remoteExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, remoteExpression382.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 "primaryExpression"
public static class remoteExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "remoteExpression"
// AcslParser.g:972:1: remoteExpression : remote_key LPAREN a= shiftExpression COMMA b= term RPAREN -> ^( REMOTE_ACCESS remote_key $a $b) ;
public final AcslParser.remoteExpression_return remoteExpression() throws RecognitionException {
AcslParser.remoteExpression_return retval = new AcslParser.remoteExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN384=null;
Token COMMA385=null;
Token RPAREN386=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope remote_key383 =null;
Object LPAREN384_tree=null;
Object COMMA385_tree=null;
Object RPAREN386_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_remote_key=new RewriteRuleSubtreeStream(adaptor,"rule remote_key");
RewriteRuleSubtreeStream stream_shiftExpression=new RewriteRuleSubtreeStream(adaptor,"rule shiftExpression");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:973:5: ( remote_key LPAREN a= shiftExpression COMMA b= term RPAREN -> ^( REMOTE_ACCESS remote_key $a $b) )
// AcslParser.g:973:7: remote_key LPAREN a= shiftExpression COMMA b= term RPAREN
{
pushFollow(FOLLOW_remote_key_in_remoteExpression6764);
remote_key383=remote_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_remote_key.add(remote_key383.getTree());
LPAREN384=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_remoteExpression6766); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN384);
pushFollow(FOLLOW_shiftExpression_in_remoteExpression6770);
a=shiftExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_shiftExpression.add(a.getTree());
COMMA385=(Token)match(input,COMMA,FOLLOW_COMMA_in_remoteExpression6772); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA385);
pushFollow(FOLLOW_term_in_remoteExpression6776);
b=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(b.getTree());
RPAREN386=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_remoteExpression6778); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN386);
// AST REWRITE
// elements: a, remote_key, 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();
// 974:9: -> ^( REMOTE_ACCESS remote_key $a $b)
{
// AcslParser.g:974:12: ^( REMOTE_ACCESS remote_key $a $b)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(REMOTE_ACCESS, "REMOTE_ACCESS"), root_1);
adaptor.addChild(root_1, stream_remote_key.nextTree());
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_1, stream_b.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 "remoteExpression"
public static class constantExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "constantExpression"
// AcslParser.g:978: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 conditionalExpression387 =null;
try {
// AcslParser.g:979:2: ( conditionalExpression )
// AcslParser.g:979:4: conditionalExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpression_in_constantExpression6818);
conditionalExpression387=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, conditionalExpression387.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:982:1: constant : ( INTEGER_CONSTANT | FLOATING_CONSTANT | CHARACTER_CONSTANT | true_key | false_key | result_key | nothing_key | ELLIPSIS | SELF | null_key | mpi_constant -> ^( MPI_CONSTANT mpi_constant ) );
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_CONSTANT388=null;
Token FLOATING_CONSTANT389=null;
Token CHARACTER_CONSTANT390=null;
Token ELLIPSIS395=null;
Token SELF396=null;
ParserRuleReturnScope true_key391 =null;
ParserRuleReturnScope false_key392 =null;
ParserRuleReturnScope result_key393 =null;
ParserRuleReturnScope nothing_key394 =null;
ParserRuleReturnScope null_key397 =null;
ParserRuleReturnScope mpi_constant398 =null;
Object INTEGER_CONSTANT388_tree=null;
Object FLOATING_CONSTANT389_tree=null;
Object CHARACTER_CONSTANT390_tree=null;
Object ELLIPSIS395_tree=null;
Object SELF396_tree=null;
RewriteRuleSubtreeStream stream_mpi_constant=new RewriteRuleSubtreeStream(adaptor,"rule mpi_constant");
try {
// AcslParser.g:983:2: ( INTEGER_CONSTANT | FLOATING_CONSTANT | CHARACTER_CONSTANT | true_key | false_key | result_key | nothing_key | ELLIPSIS | SELF | null_key | mpi_constant -> ^( MPI_CONSTANT mpi_constant ) )
int alt89=11;
switch ( input.LA(1) ) {
case INTEGER_CONSTANT:
{
alt89=1;
}
break;
case FLOATING_CONSTANT:
{
alt89=2;
}
break;
case CHARACTER_CONSTANT:
{
alt89=3;
}
break;
case EXTENDED_IDENTIFIER:
{
int LA89_4 = input.LA(2);
if ( ((synpred153_AcslParser()&&(input.LT(1).getText().equals("\\true")))) ) {
alt89=4;
}
else if ( (((input.LT(1).getText().equals("\\false"))&&synpred154_AcslParser())) ) {
alt89=5;
}
else if ( (((input.LT(1).getText().equals("\\result"))&&synpred155_AcslParser())) ) {
alt89=6;
}
else if ( ((synpred156_AcslParser()&&(input.LT(1).getText().equals("\\nothing")))) ) {
alt89=7;
}
else if ( ((synpred159_AcslParser()&&(input.LT(1).getText().equals("\\null")))) ) {
alt89=10;
}
else if ( (((input.LT(1).getText().equals("\\mpi_comm_size"))||(input.LT(1).getText().equals("\\mpi_comm_rank")))) ) {
alt89=11;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ELLIPSIS:
{
alt89=8;
}
break;
case SELF:
{
alt89=9;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 89, 0, input);
throw nvae;
}
switch (alt89) {
case 1 :
// AcslParser.g:983:4: INTEGER_CONSTANT
{
root_0 = (Object)adaptor.nil();
INTEGER_CONSTANT388=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_constant6830); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INTEGER_CONSTANT388_tree = (Object)adaptor.create(INTEGER_CONSTANT388);
adaptor.addChild(root_0, INTEGER_CONSTANT388_tree);
}
}
break;
case 2 :
// AcslParser.g:984:4: FLOATING_CONSTANT
{
root_0 = (Object)adaptor.nil();
FLOATING_CONSTANT389=(Token)match(input,FLOATING_CONSTANT,FOLLOW_FLOATING_CONSTANT_in_constant6835); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FLOATING_CONSTANT389_tree = (Object)adaptor.create(FLOATING_CONSTANT389);
adaptor.addChild(root_0, FLOATING_CONSTANT389_tree);
}
}
break;
case 3 :
// AcslParser.g:985:4: CHARACTER_CONSTANT
{
root_0 = (Object)adaptor.nil();
CHARACTER_CONSTANT390=(Token)match(input,CHARACTER_CONSTANT,FOLLOW_CHARACTER_CONSTANT_in_constant6840); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CHARACTER_CONSTANT390_tree = (Object)adaptor.create(CHARACTER_CONSTANT390);
adaptor.addChild(root_0, CHARACTER_CONSTANT390_tree);
}
}
break;
case 4 :
// AcslParser.g:986:4: true_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_true_key_in_constant6845);
true_key391=true_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, true_key391.getTree());
}
break;
case 5 :
// AcslParser.g:986:15: false_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_false_key_in_constant6849);
false_key392=false_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, false_key392.getTree());
}
break;
case 6 :
// AcslParser.g:986:28: result_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_result_key_in_constant6854);
result_key393=result_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, result_key393.getTree());
}
break;
case 7 :
// AcslParser.g:986:41: nothing_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_nothing_key_in_constant6858);
nothing_key394=nothing_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, nothing_key394.getTree());
}
break;
case 8 :
// AcslParser.g:986:55: ELLIPSIS
{
root_0 = (Object)adaptor.nil();
ELLIPSIS395=(Token)match(input,ELLIPSIS,FOLLOW_ELLIPSIS_in_constant6862); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ELLIPSIS395_tree = (Object)adaptor.create(ELLIPSIS395);
adaptor.addChild(root_0, ELLIPSIS395_tree);
}
}
break;
case 9 :
// AcslParser.g:987:7: SELF
{
root_0 = (Object)adaptor.nil();
SELF396=(Token)match(input,SELF,FOLLOW_SELF_in_constant6870); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SELF396_tree = (Object)adaptor.create(SELF396);
adaptor.addChild(root_0, SELF396_tree);
}
}
break;
case 10 :
// AcslParser.g:987:14: null_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_null_key_in_constant6874);
null_key397=null_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, null_key397.getTree());
}
break;
case 11 :
// AcslParser.g:988:7: mpi_constant
{
pushFollow(FOLLOW_mpi_constant_in_constant6882);
mpi_constant398=mpi_constant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpi_constant.add(mpi_constant398.getTree());
// AST REWRITE
// elements: mpi_constant
// 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();
// 988:20: -> ^( MPI_CONSTANT mpi_constant )
{
// AcslParser.g:988:23: ^( MPI_CONSTANT mpi_constant )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_CONSTANT, "MPI_CONSTANT"), root_1);
adaptor.addChild(root_1, stream_mpi_constant.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 "constant"
public static class mpi_expression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpi_expression"
// AcslParser.g:992:1: mpi_expression : ( mpiemptyin_key LPAREN term RPAREN -> ^( MPI_EMPTY_IN mpiemptyin_key term ) | mpiemptyout_key LPAREN term RPAREN -> ^( MPI_EMPTY_OUT mpiemptyout_key term ) | mpiagree_key LPAREN a= term RPAREN -> ^( MPI_AGREE mpiagree_key $a) | mpiregion_key LPAREN a= term COMMA b= term COMMA c= term RPAREN -> ^( MPI_REGION mpiregion_key $a $b $c) | mpireduce_key LPAREN a= term COMMA b= term COMMA c= term COMMA d= term RPAREN -> ^( MPI_REDUCE mpireduce_key $a $b $c $d) | mpiequals_key LPAREN a= term COMMA b= term RPAREN -> ^( MPI_EQUALS mpiequals_key $a $b) | mpiextent_key LPAREN a= primaryExpression RPAREN -> ^( MPI_EXTENT mpiextent_key $a) | mpioffset_key LPAREN a= term COMMA b= term COMMA c= term RPAREN -> ^( MPI_OFFSET mpioffset_key $a $b $c) | mpivalid_key LPAREN a= term COMMA b= term COMMA c= term RPAREN -> ^( MPI_VALID mpivalid_key $a $b $c) | absent_key a= absent_event after_key b= absent_event until_key c= absent_event -> ^( MPI_ABSENT $a $b $c) );
public final AcslParser.mpi_expression_return mpi_expression() throws RecognitionException {
AcslParser.mpi_expression_return retval = new AcslParser.mpi_expression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN400=null;
Token RPAREN402=null;
Token LPAREN404=null;
Token RPAREN406=null;
Token LPAREN408=null;
Token RPAREN409=null;
Token LPAREN411=null;
Token COMMA412=null;
Token COMMA413=null;
Token RPAREN414=null;
Token LPAREN416=null;
Token COMMA417=null;
Token COMMA418=null;
Token COMMA419=null;
Token RPAREN420=null;
Token LPAREN422=null;
Token COMMA423=null;
Token RPAREN424=null;
Token LPAREN426=null;
Token RPAREN427=null;
Token LPAREN429=null;
Token COMMA430=null;
Token COMMA431=null;
Token RPAREN432=null;
Token LPAREN434=null;
Token COMMA435=null;
Token COMMA436=null;
Token RPAREN437=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope c =null;
ParserRuleReturnScope d =null;
ParserRuleReturnScope mpiemptyin_key399 =null;
ParserRuleReturnScope term401 =null;
ParserRuleReturnScope mpiemptyout_key403 =null;
ParserRuleReturnScope term405 =null;
ParserRuleReturnScope mpiagree_key407 =null;
ParserRuleReturnScope mpiregion_key410 =null;
ParserRuleReturnScope mpireduce_key415 =null;
ParserRuleReturnScope mpiequals_key421 =null;
ParserRuleReturnScope mpiextent_key425 =null;
ParserRuleReturnScope mpioffset_key428 =null;
ParserRuleReturnScope mpivalid_key433 =null;
ParserRuleReturnScope absent_key438 =null;
ParserRuleReturnScope after_key439 =null;
ParserRuleReturnScope until_key440 =null;
Object LPAREN400_tree=null;
Object RPAREN402_tree=null;
Object LPAREN404_tree=null;
Object RPAREN406_tree=null;
Object LPAREN408_tree=null;
Object RPAREN409_tree=null;
Object LPAREN411_tree=null;
Object COMMA412_tree=null;
Object COMMA413_tree=null;
Object RPAREN414_tree=null;
Object LPAREN416_tree=null;
Object COMMA417_tree=null;
Object COMMA418_tree=null;
Object COMMA419_tree=null;
Object RPAREN420_tree=null;
Object LPAREN422_tree=null;
Object COMMA423_tree=null;
Object RPAREN424_tree=null;
Object LPAREN426_tree=null;
Object RPAREN427_tree=null;
Object LPAREN429_tree=null;
Object COMMA430_tree=null;
Object COMMA431_tree=null;
Object RPAREN432_tree=null;
Object LPAREN434_tree=null;
Object COMMA435_tree=null;
Object COMMA436_tree=null;
Object RPAREN437_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_primaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule primaryExpression");
RewriteRuleSubtreeStream stream_mpioffset_key=new RewriteRuleSubtreeStream(adaptor,"rule mpioffset_key");
RewriteRuleSubtreeStream stream_mpiemptyout_key=new RewriteRuleSubtreeStream(adaptor,"rule mpiemptyout_key");
RewriteRuleSubtreeStream stream_absent_event=new RewriteRuleSubtreeStream(adaptor,"rule absent_event");
RewriteRuleSubtreeStream stream_mpiextent_key=new RewriteRuleSubtreeStream(adaptor,"rule mpiextent_key");
RewriteRuleSubtreeStream stream_mpiagree_key=new RewriteRuleSubtreeStream(adaptor,"rule mpiagree_key");
RewriteRuleSubtreeStream stream_mpireduce_key=new RewriteRuleSubtreeStream(adaptor,"rule mpireduce_key");
RewriteRuleSubtreeStream stream_mpiregion_key=new RewriteRuleSubtreeStream(adaptor,"rule mpiregion_key");
RewriteRuleSubtreeStream stream_mpiequals_key=new RewriteRuleSubtreeStream(adaptor,"rule mpiequals_key");
RewriteRuleSubtreeStream stream_until_key=new RewriteRuleSubtreeStream(adaptor,"rule until_key");
RewriteRuleSubtreeStream stream_after_key=new RewriteRuleSubtreeStream(adaptor,"rule after_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
RewriteRuleSubtreeStream stream_mpiemptyin_key=new RewriteRuleSubtreeStream(adaptor,"rule mpiemptyin_key");
RewriteRuleSubtreeStream stream_mpivalid_key=new RewriteRuleSubtreeStream(adaptor,"rule mpivalid_key");
RewriteRuleSubtreeStream stream_absent_key=new RewriteRuleSubtreeStream(adaptor,"rule absent_key");
try {
// AcslParser.g:993:5: ( mpiemptyin_key LPAREN term RPAREN -> ^( MPI_EMPTY_IN mpiemptyin_key term ) | mpiemptyout_key LPAREN term RPAREN -> ^( MPI_EMPTY_OUT mpiemptyout_key term ) | mpiagree_key LPAREN a= term RPAREN -> ^( MPI_AGREE mpiagree_key $a) | mpiregion_key LPAREN a= term COMMA b= term COMMA c= term RPAREN -> ^( MPI_REGION mpiregion_key $a $b $c) | mpireduce_key LPAREN a= term COMMA b= term COMMA c= term COMMA d= term RPAREN -> ^( MPI_REDUCE mpireduce_key $a $b $c $d) | mpiequals_key LPAREN a= term COMMA b= term RPAREN -> ^( MPI_EQUALS mpiequals_key $a $b) | mpiextent_key LPAREN a= primaryExpression RPAREN -> ^( MPI_EXTENT mpiextent_key $a) | mpioffset_key LPAREN a= term COMMA b= term COMMA c= term RPAREN -> ^( MPI_OFFSET mpioffset_key $a $b $c) | mpivalid_key LPAREN a= term COMMA b= term COMMA c= term RPAREN -> ^( MPI_VALID mpivalid_key $a $b $c) | absent_key a= absent_event after_key b= absent_event until_key c= absent_event -> ^( MPI_ABSENT $a $b $c) )
int alt90=10;
int LA90_0 = input.LA(1);
if ( (LA90_0==EXTENDED_IDENTIFIER) ) {
int LA90_1 = input.LA(2);
if ( (((input.LT(1).getText().equals("\\mpi_empty_in"))&&synpred160_AcslParser())) ) {
alt90=1;
}
else if ( ((synpred161_AcslParser()&&(input.LT(1).getText().equals("\\mpi_empty_out")))) ) {
alt90=2;
}
else if ( ((synpred162_AcslParser()&&(input.LT(1).getText().equals("\\mpi_agree")))) ) {
alt90=3;
}
else if ( ((synpred163_AcslParser()&&(input.LT(1).getText().equals("\\mpi_region")))) ) {
alt90=4;
}
else if ( ((synpred164_AcslParser()&&(input.LT(1).getText().equals("\\mpi_reduce")))) ) {
alt90=5;
}
else if ( ((synpred165_AcslParser()&&(input.LT(1).getText().equals("\\mpi_equals")))) ) {
alt90=6;
}
else if ( (((input.LT(1).getText().equals("\\mpi_extent"))&&synpred166_AcslParser())) ) {
alt90=7;
}
else if ( (((input.LT(1).getText().equals("\\mpi_offset"))&&synpred167_AcslParser())) ) {
alt90=8;
}
else if ( ((synpred168_AcslParser()&&(input.LT(1).getText().equals("\\mpi_valid")))) ) {
alt90=9;
}
else if ( ((input.LT(1).getText().equals("\\absentof"))) ) {
alt90=10;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 90, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 90, 0, input);
throw nvae;
}
switch (alt90) {
case 1 :
// AcslParser.g:993:7: mpiemptyin_key LPAREN term RPAREN
{
pushFollow(FOLLOW_mpiemptyin_key_in_mpi_expression6906);
mpiemptyin_key399=mpiemptyin_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpiemptyin_key.add(mpiemptyin_key399.getTree());
LPAREN400=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_mpi_expression6908); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN400);
pushFollow(FOLLOW_term_in_mpi_expression6910);
term401=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term401.getTree());
RPAREN402=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_mpi_expression6912); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN402);
// AST REWRITE
// elements: term, mpiemptyin_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();
// 994:9: -> ^( MPI_EMPTY_IN mpiemptyin_key term )
{
// AcslParser.g:994:12: ^( MPI_EMPTY_IN mpiemptyin_key term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_EMPTY_IN, "MPI_EMPTY_IN"), root_1);
adaptor.addChild(root_1, stream_mpiemptyin_key.nextTree());
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:995:7: mpiemptyout_key LPAREN term RPAREN
{
pushFollow(FOLLOW_mpiemptyout_key_in_mpi_expression6938);
mpiemptyout_key403=mpiemptyout_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpiemptyout_key.add(mpiemptyout_key403.getTree());
LPAREN404=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_mpi_expression6940); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN404);
pushFollow(FOLLOW_term_in_mpi_expression6942);
term405=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term405.getTree());
RPAREN406=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_mpi_expression6944); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN406);
// AST REWRITE
// elements: term, mpiemptyout_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();
// 996:9: -> ^( MPI_EMPTY_OUT mpiemptyout_key term )
{
// AcslParser.g:996:12: ^( MPI_EMPTY_OUT mpiemptyout_key term )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_EMPTY_OUT, "MPI_EMPTY_OUT"), root_1);
adaptor.addChild(root_1, stream_mpiemptyout_key.nextTree());
adaptor.addChild(root_1, stream_term.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:997:7: mpiagree_key LPAREN a= term RPAREN
{
pushFollow(FOLLOW_mpiagree_key_in_mpi_expression6970);
mpiagree_key407=mpiagree_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpiagree_key.add(mpiagree_key407.getTree());
LPAREN408=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_mpi_expression6972); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN408);
pushFollow(FOLLOW_term_in_mpi_expression6976);
a=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(a.getTree());
RPAREN409=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_mpi_expression6978); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN409);
// AST REWRITE
// elements: mpiagree_key, 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();
// 998:9: -> ^( MPI_AGREE mpiagree_key $a)
{
// AcslParser.g:998:12: ^( MPI_AGREE mpiagree_key $a)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_AGREE, "MPI_AGREE"), root_1);
adaptor.addChild(root_1, stream_mpiagree_key.nextTree());
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// AcslParser.g:999:7: mpiregion_key LPAREN a= term COMMA b= term COMMA c= term RPAREN
{
pushFollow(FOLLOW_mpiregion_key_in_mpi_expression7007);
mpiregion_key410=mpiregion_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpiregion_key.add(mpiregion_key410.getTree());
LPAREN411=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_mpi_expression7009); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN411);
pushFollow(FOLLOW_term_in_mpi_expression7013);
a=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(a.getTree());
COMMA412=(Token)match(input,COMMA,FOLLOW_COMMA_in_mpi_expression7015); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA412);
pushFollow(FOLLOW_term_in_mpi_expression7019);
b=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(b.getTree());
COMMA413=(Token)match(input,COMMA,FOLLOW_COMMA_in_mpi_expression7021); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA413);
pushFollow(FOLLOW_term_in_mpi_expression7025);
c=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(c.getTree());
RPAREN414=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_mpi_expression7027); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN414);
// AST REWRITE
// elements: mpiregion_key, a, c, b
// 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();
// 1000:9: -> ^( MPI_REGION mpiregion_key $a $b $c)
{
// AcslParser.g:1000:12: ^( MPI_REGION mpiregion_key $a $b $c)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_REGION, "MPI_REGION"), root_1);
adaptor.addChild(root_1, stream_mpiregion_key.nextTree());
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_1, stream_b.nextTree());
adaptor.addChild(root_1, stream_c.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// AcslParser.g:1001:7: mpireduce_key LPAREN a= term COMMA b= term COMMA c= term COMMA d= term RPAREN
{
pushFollow(FOLLOW_mpireduce_key_in_mpi_expression7060);
mpireduce_key415=mpireduce_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpireduce_key.add(mpireduce_key415.getTree());
LPAREN416=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_mpi_expression7062); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN416);
pushFollow(FOLLOW_term_in_mpi_expression7066);
a=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(a.getTree());
COMMA417=(Token)match(input,COMMA,FOLLOW_COMMA_in_mpi_expression7068); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA417);
pushFollow(FOLLOW_term_in_mpi_expression7072);
b=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(b.getTree());
COMMA418=(Token)match(input,COMMA,FOLLOW_COMMA_in_mpi_expression7074); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA418);
pushFollow(FOLLOW_term_in_mpi_expression7078);
c=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(c.getTree());
COMMA419=(Token)match(input,COMMA,FOLLOW_COMMA_in_mpi_expression7080); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA419);
pushFollow(FOLLOW_term_in_mpi_expression7084);
d=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(d.getTree());
RPAREN420=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_mpi_expression7086); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN420);
// AST REWRITE
// elements: d, a, c, mpireduce_key, b
// token labels:
// rule labels: a, b, c, d, 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_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1002:9: -> ^( MPI_REDUCE mpireduce_key $a $b $c $d)
{
// AcslParser.g:1002:12: ^( MPI_REDUCE mpireduce_key $a $b $c $d)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_REDUCE, "MPI_REDUCE"), root_1);
adaptor.addChild(root_1, stream_mpireduce_key.nextTree());
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_1, stream_b.nextTree());
adaptor.addChild(root_1, stream_c.nextTree());
adaptor.addChild(root_1, stream_d.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// AcslParser.g:1003:7: mpiequals_key LPAREN a= term COMMA b= term RPAREN
{
pushFollow(FOLLOW_mpiequals_key_in_mpi_expression7122);
mpiequals_key421=mpiequals_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpiequals_key.add(mpiequals_key421.getTree());
LPAREN422=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_mpi_expression7124); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN422);
pushFollow(FOLLOW_term_in_mpi_expression7128);
a=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(a.getTree());
COMMA423=(Token)match(input,COMMA,FOLLOW_COMMA_in_mpi_expression7130); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA423);
pushFollow(FOLLOW_term_in_mpi_expression7134);
b=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(b.getTree());
RPAREN424=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_mpi_expression7136); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN424);
// AST REWRITE
// elements: b, a, mpiequals_key
// 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();
// 1004:9: -> ^( MPI_EQUALS mpiequals_key $a $b)
{
// AcslParser.g:1004:12: ^( MPI_EQUALS mpiequals_key $a $b)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_EQUALS, "MPI_EQUALS"), root_1);
adaptor.addChild(root_1, stream_mpiequals_key.nextTree());
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_1, stream_b.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 7 :
// AcslParser.g:1005:7: mpiextent_key LPAREN a= primaryExpression RPAREN
{
pushFollow(FOLLOW_mpiextent_key_in_mpi_expression7166);
mpiextent_key425=mpiextent_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpiextent_key.add(mpiextent_key425.getTree());
LPAREN426=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_mpi_expression7168); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN426);
pushFollow(FOLLOW_primaryExpression_in_mpi_expression7172);
a=primaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primaryExpression.add(a.getTree());
RPAREN427=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_mpi_expression7174); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN427);
// AST REWRITE
// elements: a, mpiextent_key
// 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();
// 1006:9: -> ^( MPI_EXTENT mpiextent_key $a)
{
// AcslParser.g:1006:12: ^( MPI_EXTENT mpiextent_key $a)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_EXTENT, "MPI_EXTENT"), root_1);
adaptor.addChild(root_1, stream_mpiextent_key.nextTree());
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 8 :
// AcslParser.g:1007:7: mpioffset_key LPAREN a= term COMMA b= term COMMA c= term RPAREN
{
pushFollow(FOLLOW_mpioffset_key_in_mpi_expression7201);
mpioffset_key428=mpioffset_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpioffset_key.add(mpioffset_key428.getTree());
LPAREN429=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_mpi_expression7203); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN429);
pushFollow(FOLLOW_term_in_mpi_expression7207);
a=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(a.getTree());
COMMA430=(Token)match(input,COMMA,FOLLOW_COMMA_in_mpi_expression7209); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA430);
pushFollow(FOLLOW_term_in_mpi_expression7213);
b=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(b.getTree());
COMMA431=(Token)match(input,COMMA,FOLLOW_COMMA_in_mpi_expression7215); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA431);
pushFollow(FOLLOW_term_in_mpi_expression7219);
c=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(c.getTree());
RPAREN432=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_mpi_expression7221); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN432);
// AST REWRITE
// elements: mpioffset_key, c, a, b
// 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();
// 1008:9: -> ^( MPI_OFFSET mpioffset_key $a $b $c)
{
// AcslParser.g:1008:12: ^( MPI_OFFSET mpioffset_key $a $b $c)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_OFFSET, "MPI_OFFSET"), root_1);
adaptor.addChild(root_1, stream_mpioffset_key.nextTree());
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_1, stream_b.nextTree());
adaptor.addChild(root_1, stream_c.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 9 :
// AcslParser.g:1009:7: mpivalid_key LPAREN a= term COMMA b= term COMMA c= term RPAREN
{
pushFollow(FOLLOW_mpivalid_key_in_mpi_expression7254);
mpivalid_key433=mpivalid_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_mpivalid_key.add(mpivalid_key433.getTree());
LPAREN434=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_mpi_expression7256); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN434);
pushFollow(FOLLOW_term_in_mpi_expression7260);
a=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(a.getTree());
COMMA435=(Token)match(input,COMMA,FOLLOW_COMMA_in_mpi_expression7262); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA435);
pushFollow(FOLLOW_term_in_mpi_expression7266);
b=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(b.getTree());
COMMA436=(Token)match(input,COMMA,FOLLOW_COMMA_in_mpi_expression7268); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA436);
pushFollow(FOLLOW_term_in_mpi_expression7272);
c=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(c.getTree());
RPAREN437=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_mpi_expression7274); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN437);
// AST REWRITE
// elements: mpivalid_key, c, a, b
// 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();
// 1010:9: -> ^( MPI_VALID mpivalid_key $a $b $c)
{
// AcslParser.g:1010:12: ^( MPI_VALID mpivalid_key $a $b $c)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_VALID, "MPI_VALID"), root_1);
adaptor.addChild(root_1, stream_mpivalid_key.nextTree());
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_1, stream_b.nextTree());
adaptor.addChild(root_1, stream_c.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 10 :
// AcslParser.g:1011:7: absent_key a= absent_event after_key b= absent_event until_key c= absent_event
{
pushFollow(FOLLOW_absent_key_in_mpi_expression7307);
absent_key438=absent_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_absent_key.add(absent_key438.getTree());
pushFollow(FOLLOW_absent_event_in_mpi_expression7311);
a=absent_event();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_absent_event.add(a.getTree());
pushFollow(FOLLOW_after_key_in_mpi_expression7313);
after_key439=after_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_after_key.add(after_key439.getTree());
pushFollow(FOLLOW_absent_event_in_mpi_expression7317);
b=absent_event();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_absent_event.add(b.getTree());
pushFollow(FOLLOW_until_key_in_mpi_expression7319);
until_key440=until_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_until_key.add(until_key440.getTree());
pushFollow(FOLLOW_absent_event_in_mpi_expression7323);
c=absent_event();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_absent_event.add(c.getTree());
// AST REWRITE
// elements: a, b, c
// 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();
// 1012:7: -> ^( MPI_ABSENT $a $b $c)
{
// AcslParser.g:1012:10: ^( MPI_ABSENT $a $b $c)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_ABSENT, "MPI_ABSENT"), root_1);
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_1, stream_b.nextTree());
adaptor.addChild(root_1, stream_c.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 "mpi_expression"
public static class absent_event_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "absent_event"
// AcslParser.g:1015:1: absent_event : ( absent_event_sendto_key LPAREN a= term COMMA b= term RPAREN -> ^( ABSENT_EVENT_SENDTO $a $b) | absent_event_sendfrom_key LPAREN a= term COMMA b= term RPAREN -> ^( ABSENT_EVENT_SENDFROM $a $b) | absent_event_enter_key a= absent_event_optional_argument -> ^( ABSENT_EVENT_ENTER $a) | absent_event_exit_key a= absent_event_optional_argument -> ^( ABSENT_EVENT_EXIT $a) );
public final AcslParser.absent_event_return absent_event() throws RecognitionException {
AcslParser.absent_event_return retval = new AcslParser.absent_event_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN442=null;
Token COMMA443=null;
Token RPAREN444=null;
Token LPAREN446=null;
Token COMMA447=null;
Token RPAREN448=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope absent_event_sendto_key441 =null;
ParserRuleReturnScope absent_event_sendfrom_key445 =null;
ParserRuleReturnScope absent_event_enter_key449 =null;
ParserRuleReturnScope absent_event_exit_key450 =null;
Object LPAREN442_tree=null;
Object COMMA443_tree=null;
Object RPAREN444_tree=null;
Object LPAREN446_tree=null;
Object COMMA447_tree=null;
Object RPAREN448_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_absent_event_sendfrom_key=new RewriteRuleSubtreeStream(adaptor,"rule absent_event_sendfrom_key");
RewriteRuleSubtreeStream stream_absent_event_optional_argument=new RewriteRuleSubtreeStream(adaptor,"rule absent_event_optional_argument");
RewriteRuleSubtreeStream stream_absent_event_exit_key=new RewriteRuleSubtreeStream(adaptor,"rule absent_event_exit_key");
RewriteRuleSubtreeStream stream_absent_event_sendto_key=new RewriteRuleSubtreeStream(adaptor,"rule absent_event_sendto_key");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
RewriteRuleSubtreeStream stream_absent_event_enter_key=new RewriteRuleSubtreeStream(adaptor,"rule absent_event_enter_key");
try {
// AcslParser.g:1016:3: ( absent_event_sendto_key LPAREN a= term COMMA b= term RPAREN -> ^( ABSENT_EVENT_SENDTO $a $b) | absent_event_sendfrom_key LPAREN a= term COMMA b= term RPAREN -> ^( ABSENT_EVENT_SENDFROM $a $b) | absent_event_enter_key a= absent_event_optional_argument -> ^( ABSENT_EVENT_ENTER $a) | absent_event_exit_key a= absent_event_optional_argument -> ^( ABSENT_EVENT_EXIT $a) )
int alt91=4;
int LA91_0 = input.LA(1);
if ( (LA91_0==EXTENDED_IDENTIFIER) ) {
int LA91_1 = input.LA(2);
if ( ((synpred169_AcslParser()&&(input.LT(1).getText().equals("\\sendto")))) ) {
alt91=1;
}
else if ( (((input.LT(1).getText().equals("\\sendfrom"))&&synpred170_AcslParser())) ) {
alt91=2;
}
else if ( ((synpred171_AcslParser()&&(input.LT(1).getText().equals("\\enter")))) ) {
alt91=3;
}
else if ( ((input.LT(1).getText().equals("\\exit"))) ) {
alt91=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 91, 0, input);
throw nvae;
}
switch (alt91) {
case 1 :
// AcslParser.g:1016:3: absent_event_sendto_key LPAREN a= term COMMA b= term RPAREN
{
pushFollow(FOLLOW_absent_event_sendto_key_in_absent_event7357);
absent_event_sendto_key441=absent_event_sendto_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_absent_event_sendto_key.add(absent_event_sendto_key441.getTree());
LPAREN442=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_absent_event7359); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN442);
pushFollow(FOLLOW_term_in_absent_event7363);
a=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(a.getTree());
COMMA443=(Token)match(input,COMMA,FOLLOW_COMMA_in_absent_event7365); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA443);
pushFollow(FOLLOW_term_in_absent_event7369);
b=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(b.getTree());
RPAREN444=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_absent_event7371); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN444);
// AST REWRITE
// elements: b, a
// 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();
// 1017:3: -> ^( ABSENT_EVENT_SENDTO $a $b)
{
// AcslParser.g:1017:6: ^( ABSENT_EVENT_SENDTO $a $b)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ABSENT_EVENT_SENDTO, "ABSENT_EVENT_SENDTO"), root_1);
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_1, stream_b.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// AcslParser.g:1018:5: absent_event_sendfrom_key LPAREN a= term COMMA b= term RPAREN
{
pushFollow(FOLLOW_absent_event_sendfrom_key_in_absent_event7391);
absent_event_sendfrom_key445=absent_event_sendfrom_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_absent_event_sendfrom_key.add(absent_event_sendfrom_key445.getTree());
LPAREN446=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_absent_event7393); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN446);
pushFollow(FOLLOW_term_in_absent_event7397);
a=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(a.getTree());
COMMA447=(Token)match(input,COMMA,FOLLOW_COMMA_in_absent_event7399); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA447);
pushFollow(FOLLOW_term_in_absent_event7403);
b=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(b.getTree());
RPAREN448=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_absent_event7405); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN448);
// 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();
// 1019:3: -> ^( ABSENT_EVENT_SENDFROM $a $b)
{
// AcslParser.g:1019:6: ^( ABSENT_EVENT_SENDFROM $a $b)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ABSENT_EVENT_SENDFROM, "ABSENT_EVENT_SENDFROM"), root_1);
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_1, stream_b.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// AcslParser.g:1020:5: absent_event_enter_key a= absent_event_optional_argument
{
pushFollow(FOLLOW_absent_event_enter_key_in_absent_event7433);
absent_event_enter_key449=absent_event_enter_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_absent_event_enter_key.add(absent_event_enter_key449.getTree());
pushFollow(FOLLOW_absent_event_optional_argument_in_absent_event7437);
a=absent_event_optional_argument();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_absent_event_optional_argument.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();
// 1021:3: -> ^( ABSENT_EVENT_ENTER $a)
{
// AcslParser.g:1021:6: ^( ABSENT_EVENT_ENTER $a)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ABSENT_EVENT_ENTER, "ABSENT_EVENT_ENTER"), root_1);
adaptor.addChild(root_1, stream_a.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// AcslParser.g:1022:5: absent_event_exit_key a= absent_event_optional_argument
{
pushFollow(FOLLOW_absent_event_exit_key_in_absent_event7460);
absent_event_exit_key450=absent_event_exit_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_absent_event_exit_key.add(absent_event_exit_key450.getTree());
pushFollow(FOLLOW_absent_event_optional_argument_in_absent_event7464);
a=absent_event_optional_argument();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_absent_event_optional_argument.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();
// 1023:3: -> ^( ABSENT_EVENT_EXIT $a)
{
// AcslParser.g:1023:6: ^( ABSENT_EVENT_EXIT $a)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ABSENT_EVENT_EXIT, "ABSENT_EVENT_EXIT"), root_1);
adaptor.addChild(root_1, stream_a.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 "absent_event"
public static class absent_event_optional_argument_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "absent_event_optional_argument"
// AcslParser.g:1026:1: absent_event_optional_argument : ( LPAREN term RPAREN -> ^( TERM_PARENTHESIZED term ) | -> ABSENT );
public final AcslParser.absent_event_optional_argument_return absent_event_optional_argument() throws RecognitionException {
AcslParser.absent_event_optional_argument_return retval = new AcslParser.absent_event_optional_argument_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN451=null;
Token RPAREN453=null;
ParserRuleReturnScope term452 =null;
Object LPAREN451_tree=null;
Object RPAREN453_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
try {
// AcslParser.g:1027:5: ( LPAREN term RPAREN -> ^( TERM_PARENTHESIZED term ) | -> ABSENT )
int alt92=2;
int LA92_0 = input.LA(1);
if ( (LA92_0==LPAREN) ) {
alt92=1;
}
else if ( (LA92_0==EOF||(LA92_0 >= AMPERSAND && LA92_0 <= AND)||LA92_0==ASSIGN||LA92_0==BITOR||LA92_0==BITXOR||(LA92_0 >= COLON && LA92_0 <= COMMA)||LA92_0==DIV||LA92_0==DOTDOT||(LA92_0 >= EQUALS && LA92_0 <= EQUIV_ACSL)||LA92_0==EXTENDED_IDENTIFIER||(LA92_0 >= GT && LA92_0 <= HASH)||LA92_0==IDENTIFIER||(LA92_0 >= IMPLIES && LA92_0 <= IMPLIES_ACSL)||(LA92_0 >= LT && LA92_0 <= LTE)||(LA92_0 >= MINUSMINUS && LA92_0 <= MOD)||LA92_0==NEQ||LA92_0==OR||LA92_0==PLUS||(LA92_0 >= QMARK && LA92_0 <= RCURLY)||LA92_0==RPAREN||LA92_0==RSQUARE||(LA92_0 >= SEMI && LA92_0 <= SHIFTLEFT)||LA92_0==SHIFTRIGHT||LA92_0==STAR||LA92_0==SUB||LA92_0==XOR_ACSL||LA92_0==FOR) ) {
alt92=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 92, 0, input);
throw nvae;
}
switch (alt92) {
case 1 :
// AcslParser.g:1027:7: LPAREN term RPAREN
{
LPAREN451=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_absent_event_optional_argument7488); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN451);
pushFollow(FOLLOW_term_in_absent_event_optional_argument7490);
term452=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(term452.getTree());
RPAREN453=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_absent_event_optional_argument7492); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN453);
// 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();
// 1028:9: -> ^( TERM_PARENTHESIZED term )
{
// AcslParser.g:1028:12: ^( 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;
case 2 :
// AcslParser.g:1029: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();
// 1029: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 "absent_event_optional_argument"
public static class mpi_constant_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpi_constant"
// AcslParser.g:1032:1: mpi_constant : ( mpicommrank_key | mpicommsize_key );
public final AcslParser.mpi_constant_return mpi_constant() throws RecognitionException {
AcslParser.mpi_constant_return retval = new AcslParser.mpi_constant_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope mpicommrank_key454 =null;
ParserRuleReturnScope mpicommsize_key455 =null;
try {
// AcslParser.g:1033:5: ( mpicommrank_key | mpicommsize_key )
int alt93=2;
int LA93_0 = input.LA(1);
if ( (LA93_0==EXTENDED_IDENTIFIER) ) {
int LA93_1 = input.LA(2);
if ( ((synpred173_AcslParser()&&(input.LT(1).getText().equals("\\mpi_comm_rank")))) ) {
alt93=1;
}
else if ( ((input.LT(1).getText().equals("\\mpi_comm_size"))) ) {
alt93=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 93, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 93, 0, input);
throw nvae;
}
switch (alt93) {
case 1 :
// AcslParser.g:1033:7: mpicommrank_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_mpicommrank_key_in_mpi_constant7543);
mpicommrank_key454=mpicommrank_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, mpicommrank_key454.getTree());
}
break;
case 2 :
// AcslParser.g:1033:26: mpicommsize_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_mpicommsize_key_in_mpi_constant7548);
mpicommsize_key455=mpicommsize_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, mpicommsize_key455.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 "mpi_constant"
public static class mpi_collective_kind_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpi_collective_kind"
// AcslParser.g:1036:1: mpi_collective_kind : ( col_key | p2p_key | both_key );
public final AcslParser.mpi_collective_kind_return mpi_collective_kind() throws RecognitionException {
AcslParser.mpi_collective_kind_return retval = new AcslParser.mpi_collective_kind_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope col_key456 =null;
ParserRuleReturnScope p2p_key457 =null;
ParserRuleReturnScope both_key458 =null;
try {
// AcslParser.g:1037:5: ( col_key | p2p_key | both_key )
int alt94=3;
int LA94_0 = input.LA(1);
if ( (LA94_0==IDENTIFIER) ) {
int LA94_1 = input.LA(2);
if ( ((synpred174_AcslParser()&&(input.LT(1).getText().equals("COL")))) ) {
alt94=1;
}
else if ( (((input.LT(1).getText().equals("P2P"))&&synpred175_AcslParser())) ) {
alt94=2;
}
else if ( ((input.LT(1).getText().equals("BOTH"))) ) {
alt94=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 94, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 94, 0, input);
throw nvae;
}
switch (alt94) {
case 1 :
// AcslParser.g:1037:7: col_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_col_key_in_mpi_collective_kind7566);
col_key456=col_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, col_key456.getTree());
}
break;
case 2 :
// AcslParser.g:1037:17: p2p_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_p2p_key_in_mpi_collective_kind7570);
p2p_key457=p2p_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p2p_key457.getTree());
}
break;
case 3 :
// AcslParser.g:1037:27: both_key
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_both_key_in_mpi_collective_kind7574);
both_key458=both_key();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, both_key458.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 "mpi_collective_kind"
public static class bitimplies_op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "bitimplies_op"
// AcslParser.g:1040: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 MINUSMINUS459=null;
Token GT460=null;
Object MINUSMINUS459_tree=null;
Object GT460_tree=null;
try {
// AcslParser.g:1041:2: ( MINUSMINUS GT )
// AcslParser.g:1041:4: MINUSMINUS GT
{
root_0 = (Object)adaptor.nil();
MINUSMINUS459=(Token)match(input,MINUSMINUS,FOLLOW_MINUSMINUS_in_bitimplies_op7588); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MINUSMINUS459_tree = (Object)adaptor.create(MINUSMINUS459);
adaptor.addChild(root_0, MINUSMINUS459_tree);
}
GT460=(Token)match(input,GT,FOLLOW_GT_in_bitimplies_op7590); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GT460_tree = (Object)adaptor.create(GT460);
adaptor.addChild(root_0, GT460_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:1044: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 LT461=null;
Token MINUSMINUS462=null;
Token GT463=null;
Object LT461_tree=null;
Object MINUSMINUS462_tree=null;
Object GT463_tree=null;
try {
// AcslParser.g:1045:2: ( LT MINUSMINUS GT )
// AcslParser.g:1045:4: LT MINUSMINUS GT
{
root_0 = (Object)adaptor.nil();
LT461=(Token)match(input,LT,FOLLOW_LT_in_bitequiv_op7603); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LT461_tree = (Object)adaptor.create(LT461);
adaptor.addChild(root_0, LT461_tree);
}
MINUSMINUS462=(Token)match(input,MINUSMINUS,FOLLOW_MINUSMINUS_in_bitequiv_op7605); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MINUSMINUS462_tree = (Object)adaptor.create(MINUSMINUS462);
adaptor.addChild(root_0, MINUSMINUS462_tree);
}
GT463=(Token)match(input,GT,FOLLOW_GT_in_bitequiv_op7607); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GT463_tree = (Object)adaptor.create(GT463);
adaptor.addChild(root_0, GT463_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:1048: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 set464=null;
Object set464_tree=null;
try {
// AcslParser.g:1049:5: ( PLUS | SUB | NOT | TILDE | STAR | AMPERSAND )
// AcslParser.g:
{
root_0 = (Object)adaptor.nil();
set464=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(set464));
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:1053: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 IDENTIFIER465=null;
Object IDENTIFIER465_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:1054:5: ({...}? IDENTIFIER -> ^( BOOLEAN IDENTIFIER ) )
// AcslParser.g:1054: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\")");
}
IDENTIFIER465=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_boolean_type7667); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER465);
// 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();
// 1055:9: -> ^( BOOLEAN IDENTIFIER )
{
// AcslParser.g:1055: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:1058: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 IDENTIFIER466=null;
Object IDENTIFIER466_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:1059:5: ({...}? IDENTIFIER -> ^( INTEGER IDENTIFIER ) )
// AcslParser.g:1059: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\")");
}
IDENTIFIER466=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_integer_type7702); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER466);
// 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();
// 1060:9: -> ^( INTEGER IDENTIFIER )
{
// AcslParser.g:1060: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:1063: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 IDENTIFIER467=null;
Object IDENTIFIER467_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:1064:5: ({...}? IDENTIFIER -> ^( REAL_ACSL IDENTIFIER ) )
// AcslParser.g:1064: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\")");
}
IDENTIFIER467=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_real_type7737); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER467);
// 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();
// 1065:9: -> ^( REAL_ACSL IDENTIFIER )
{
// AcslParser.g:1065: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:1070: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 IDENTIFIER468=null;
Object IDENTIFIER468_tree=null;
try {
// AcslParser.g:1071:5: ({...}? IDENTIFIER )
// AcslParser.g:1071: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\")");
}
IDENTIFIER468=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_alloc_key7780); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER468_tree = (Object)adaptor.create(IDENTIFIER468);
adaptor.addChild(root_0, IDENTIFIER468_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:1074: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 IDENTIFIER469=null;
Object IDENTIFIER469_tree=null;
try {
// AcslParser.g:1075:5: ({...}? IDENTIFIER )
// AcslParser.g:1075: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\")");
}
IDENTIFIER469=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_assigns_key7801); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER469_tree = (Object)adaptor.create(IDENTIFIER469);
adaptor.addChild(root_0, IDENTIFIER469_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:1078: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 IDENTIFIER470=null;
Object IDENTIFIER470_tree=null;
try {
// AcslParser.g:1079:5: ({...}? IDENTIFIER )
// AcslParser.g:1079: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\")");
}
IDENTIFIER470=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_assumes_key7822); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER470_tree = (Object)adaptor.create(IDENTIFIER470);
adaptor.addChild(root_0, IDENTIFIER470_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:1082: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 IDENTIFIER471=null;
Object IDENTIFIER471_tree=null;
try {
// AcslParser.g:1083:5: ({...}? IDENTIFIER )
// AcslParser.g:1083: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\")");
}
IDENTIFIER471=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_assert_key7842); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER471_tree = (Object)adaptor.create(IDENTIFIER471);
adaptor.addChild(root_0, IDENTIFIER471_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:1086: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 IDENTIFIER472=null;
Object IDENTIFIER472_tree=null;
try {
// AcslParser.g:1087:5: ({...}? IDENTIFIER )
// AcslParser.g:1087: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\")");
}
IDENTIFIER472=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_behaviors_key7862); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER472_tree = (Object)adaptor.create(IDENTIFIER472);
adaptor.addChild(root_0, IDENTIFIER472_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:1090: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 IDENTIFIER473=null;
Object IDENTIFIER473_tree=null;
try {
// AcslParser.g:1091:5: ({...}? IDENTIFIER )
// AcslParser.g:1091: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\")");
}
IDENTIFIER473=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_behavior_key7883); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER473_tree = (Object)adaptor.create(IDENTIFIER473);
adaptor.addChild(root_0, IDENTIFIER473_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:1094: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 IDENTIFIER474=null;
Object IDENTIFIER474_tree=null;
try {
// AcslParser.g:1095:5: ({...}? IDENTIFIER )
// AcslParser.g:1095: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\")");
}
IDENTIFIER474=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_completes_key7904); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER474_tree = (Object)adaptor.create(IDENTIFIER474);
adaptor.addChild(root_0, IDENTIFIER474_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:1098: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 IDENTIFIER475=null;
Object IDENTIFIER475_tree=null;
try {
// AcslParser.g:1099:5: ({...}? IDENTIFIER )
// AcslParser.g:1099: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\")");
}
IDENTIFIER475=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_decreases_key7924); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER475_tree = (Object)adaptor.create(IDENTIFIER475);
adaptor.addChild(root_0, IDENTIFIER475_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:1102: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 IDENTIFIER476=null;
Object IDENTIFIER476_tree=null;
try {
// AcslParser.g:1103:5: ({...}? IDENTIFIER )
// AcslParser.g:1103: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\")");
}
IDENTIFIER476=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_disjoint_key7945); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER476_tree = (Object)adaptor.create(IDENTIFIER476);
adaptor.addChild(root_0, IDENTIFIER476_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:1106: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 IDENTIFIER477=null;
Object IDENTIFIER477_tree=null;
try {
// AcslParser.g:1107:5: ({...}? IDENTIFIER )
// AcslParser.g:1107: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\")");
}
IDENTIFIER477=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_ensures_key7966); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER477_tree = (Object)adaptor.create(IDENTIFIER477);
adaptor.addChild(root_0, IDENTIFIER477_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:1110: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 IDENTIFIER478=null;
Object IDENTIFIER478_tree=null;
try {
// AcslParser.g:1111:5: ({...}? IDENTIFIER )
// AcslParser.g:1111: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\")");
}
IDENTIFIER478=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_frees_key7991); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER478_tree = (Object)adaptor.create(IDENTIFIER478);
adaptor.addChild(root_0, IDENTIFIER478_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:1114: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 IDENTIFIER479=null;
Object IDENTIFIER479_tree=null;
try {
// AcslParser.g:1115:4: ({...}? IDENTIFIER )
// AcslParser.g:1115: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\")");
}
IDENTIFIER479=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_focus_key8012); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER479_tree = (Object)adaptor.create(IDENTIFIER479);
adaptor.addChild(root_0, IDENTIFIER479_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:1118: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 IDENTIFIER480=null;
Object IDENTIFIER480_tree=null;
try {
// AcslParser.g:1119:5: ({...}? IDENTIFIER )
// AcslParser.g:1119: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\")");
}
IDENTIFIER480=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_ordered_key8030); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER480_tree = (Object)adaptor.create(IDENTIFIER480);
adaptor.addChild(root_0, IDENTIFIER480_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:1122: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 IDENTIFIER481=null;
Object IDENTIFIER481_tree=null;
try {
// AcslParser.g:1123:5: ({...}? IDENTIFIER )
// AcslParser.g:1123: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\")");
}
IDENTIFIER481=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_invariant_key8049); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER481_tree = (Object)adaptor.create(IDENTIFIER481);
adaptor.addChild(root_0, IDENTIFIER481_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:1126: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 IDENTIFIER482=null;
Object IDENTIFIER482_tree=null;
try {
// AcslParser.g:1127:2: ({...}? IDENTIFIER )
// AcslParser.g:1127: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\")");
}
IDENTIFIER482=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_loop_key8066); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER482_tree = (Object)adaptor.create(IDENTIFIER482);
adaptor.addChild(root_0, IDENTIFIER482_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:1130: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 IDENTIFIER483=null;
Object IDENTIFIER483_tree=null;
try {
// AcslParser.g:1131:5: ({...}? IDENTIFIER )
// AcslParser.g:1131: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\")");
}
IDENTIFIER483=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_requires_key8086); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER483_tree = (Object)adaptor.create(IDENTIFIER483);
adaptor.addChild(root_0, IDENTIFIER483_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:1134: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 IDENTIFIER484=null;
Object IDENTIFIER484_tree=null;
try {
// AcslParser.g:1135:5: ({...}? IDENTIFIER )
// AcslParser.g:1135: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\")");
}
IDENTIFIER484=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_terminates_key8109); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER484_tree = (Object)adaptor.create(IDENTIFIER484);
adaptor.addChild(root_0, IDENTIFIER484_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:1138: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 IDENTIFIER485=null;
Object IDENTIFIER485_tree=null;
try {
// AcslParser.g:1139:5: ({...}? IDENTIFIER )
// AcslParser.g:1139: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\")");
}
IDENTIFIER485=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_variant_key8131); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER485_tree = (Object)adaptor.create(IDENTIFIER485);
adaptor.addChild(root_0, IDENTIFIER485_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 waitsfor_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "waitsfor_key"
// AcslParser.g:1142:1: waitsfor_key :{...}? IDENTIFIER ;
public final AcslParser.waitsfor_key_return waitsfor_key() throws RecognitionException {
AcslParser.waitsfor_key_return retval = new AcslParser.waitsfor_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER486=null;
Object IDENTIFIER486_tree=null;
try {
// AcslParser.g:1143:5: ({...}? IDENTIFIER )
// AcslParser.g:1143:7: {...}? IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("waitsfor"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "waitsfor_key", "input.LT(1).getText().equals(\"waitsfor\")");
}
IDENTIFIER486=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_waitsfor_key8150); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER486_tree = (Object)adaptor.create(IDENTIFIER486);
adaptor.addChild(root_0, IDENTIFIER486_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 "waitsfor_key"
public static class predicate_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "predicate_key"
// AcslParser.g:1146: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 IDENTIFIER487=null;
Object IDENTIFIER487_tree=null;
try {
// AcslParser.g:1147:2: ({...}? IDENTIFIER )
// AcslParser.g:1147: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\")");
}
IDENTIFIER487=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_predicate_key8166); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER487_tree = (Object)adaptor.create(IDENTIFIER487);
adaptor.addChild(root_0, IDENTIFIER487_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:1150: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 IDENTIFIER488=null;
Object IDENTIFIER488_tree=null;
try {
// AcslParser.g:1151:2: ({...}? IDENTIFIER )
// AcslParser.g:1151: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\")");
}
IDENTIFIER488=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_logic_specifier_key8179); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER488_tree = (Object)adaptor.create(IDENTIFIER488);
adaptor.addChild(root_0, IDENTIFIER488_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:1156: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_IDENTIFIER489=null;
Object EXTENDED_IDENTIFIER489_tree=null;
try {
// AcslParser.g:1157:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1157: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_IDENTIFIER489=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_empty_key8199); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER489_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER489);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER489_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:1160: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_IDENTIFIER490=null;
Object EXTENDED_IDENTIFIER490_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1161:5: ({...}? EXTENDED_IDENTIFIER -> ^( EXISTS_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1161: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_IDENTIFIER490=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_exists_key8218); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER490);
// 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();
// 1162:5: -> ^( EXISTS_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1162: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:1165: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_IDENTIFIER491=null;
Object EXTENDED_IDENTIFIER491_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1166:5: ({...}? EXTENDED_IDENTIFIER -> ^( FALSE_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1166: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_IDENTIFIER491=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_false_key8249); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER491);
// 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();
// 1167:5: -> ^( FALSE_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1167: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:1170: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_IDENTIFIER492=null;
Object EXTENDED_IDENTIFIER492_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1171:5: ({...}? EXTENDED_IDENTIFIER -> ^( FORALL_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1171: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_IDENTIFIER492=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_forall_key8280); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER492);
// 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();
// 1172:5: -> ^( FORALL_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1172: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:1175: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_IDENTIFIER493=null;
Object EXTENDED_IDENTIFIER493_tree=null;
try {
// AcslParser.g:1176:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1176: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_IDENTIFIER493=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_inter_key8311); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER493_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER493);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER493_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:1179: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_IDENTIFIER494=null;
Object EXTENDED_IDENTIFIER494_tree=null;
try {
// AcslParser.g:1180:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1180: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_IDENTIFIER494=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_let_key8330); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER494_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER494);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER494_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:1183: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_IDENTIFIER495=null;
Object EXTENDED_IDENTIFIER495_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1184:5: ({...}? EXTENDED_IDENTIFIER -> ^( NOTHING EXTENDED_IDENTIFIER ) )
// AcslParser.g:1184: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_IDENTIFIER495=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_nothing_key8349); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER495);
// 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();
// 1185:5: -> ^( NOTHING EXTENDED_IDENTIFIER )
{
// AcslParser.g:1185: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:1188: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_IDENTIFIER496=null;
Object EXTENDED_IDENTIFIER496_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1189:5: ({...}? EXTENDED_IDENTIFIER -> ^( NULL_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1189: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_IDENTIFIER496=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_null_key8380); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER496);
// 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();
// 1190:5: -> ^( NULL_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1190: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:1193: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_IDENTIFIER497=null;
Object EXTENDED_IDENTIFIER497_tree=null;
try {
// AcslParser.g:1194:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1194: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_IDENTIFIER497=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_old_key8411); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER497_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER497);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER497_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:1197: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_IDENTIFIER498=null;
Object EXTENDED_IDENTIFIER498_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1198:5: ({...}? EXTENDED_IDENTIFIER -> ^( RESULT_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1198: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_IDENTIFIER498=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_result_key8430); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER498);
// 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();
// 1199:5: -> ^( RESULT_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1199: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:1202: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_IDENTIFIER499=null;
Object EXTENDED_IDENTIFIER499_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1203:5: ({...}? EXTENDED_IDENTIFIER -> ^( TRUE_ACSL EXTENDED_IDENTIFIER ) )
// AcslParser.g:1203: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_IDENTIFIER499=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_true_key8461); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER499);
// 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();
// 1204:5: -> ^( TRUE_ACSL EXTENDED_IDENTIFIER )
{
// AcslParser.g:1204: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:1207: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_IDENTIFIER500=null;
Object EXTENDED_IDENTIFIER500_tree=null;
try {
// AcslParser.g:1208:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1208: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_IDENTIFIER500=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_union_key8492); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER500_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER500);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER500_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:1211: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_IDENTIFIER501=null;
Object EXTENDED_IDENTIFIER501_tree=null;
try {
// AcslParser.g:1212:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1212: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_IDENTIFIER501=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_valid_key8511); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER501_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER501);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER501_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:1215: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_IDENTIFIER502=null;
Object EXTENDED_IDENTIFIER502_tree=null;
try {
// AcslParser.g:1216:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1216: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_IDENTIFIER502=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_with_key8530); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER502_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER502);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER502_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:1220: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 IDENTIFIER503=null;
Object IDENTIFIER503_tree=null;
try {
// AcslParser.g:1221:5: ({...}? IDENTIFIER )
// AcslParser.g:1221: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\")");
}
IDENTIFIER503=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_executeswhen_key8551); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER503_tree = (Object)adaptor.create(IDENTIFIER503);
adaptor.addChild(root_0, IDENTIFIER503_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:1224: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 IDENTIFIER504=null;
Object IDENTIFIER504_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:1225:5: ({...}? IDENTIFIER -> ^( PURE IDENTIFIER ) )
// AcslParser.g:1225: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\")");
}
IDENTIFIER504=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_pure_key8571); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER504);
// 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();
// 1226:5: -> ^( PURE IDENTIFIER )
{
// AcslParser.g:1226: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:1229: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 IDENTIFIER505=null;
Object IDENTIFIER505_tree=null;
try {
// AcslParser.g:1230:5: ({...}? IDENTIFIER )
// AcslParser.g:1230: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\")");
}
IDENTIFIER505=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_reads_key8602); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER505_tree = (Object)adaptor.create(IDENTIFIER505);
adaptor.addChild(root_0, IDENTIFIER505_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 remote_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "remote_key"
// AcslParser.g:1233:1: remote_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.remote_key_return remote_key() throws RecognitionException {
AcslParser.remote_key_return retval = new AcslParser.remote_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER506=null;
Object EXTENDED_IDENTIFIER506_tree=null;
try {
// AcslParser.g:1234:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1234:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\on"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "remote_key", "input.LT(1).getText().equals(\"\\\\on\")");
}
EXTENDED_IDENTIFIER506=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_remote_key8625); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER506_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER506);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER506_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 "remote_key"
public static class access_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "access_key"
// AcslParser.g:1239: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_IDENTIFIER507=null;
Object EXTENDED_IDENTIFIER507_tree=null;
try {
// AcslParser.g:1240:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1240: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_IDENTIFIER507=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_access_key8647); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER507_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER507);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER507_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:1244: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_IDENTIFIER508=null;
Object EXTENDED_IDENTIFIER508_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1245:5: ({...}? EXTENDED_IDENTIFIER -> ^( ANYACT EXTENDED_IDENTIFIER ) )
// AcslParser.g:1245: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_IDENTIFIER508=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_anyact_key8667); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER508);
// 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();
// 1246:5: -> ^( ANYACT EXTENDED_IDENTIFIER )
{
// AcslParser.g:1246: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:1250: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_IDENTIFIER509=null;
Object EXTENDED_IDENTIFIER509_tree=null;
try {
// AcslParser.g:1251:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1251: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_IDENTIFIER509=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_call_key8699); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER509_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER509);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER509_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:1254: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 IDENTIFIER510=null;
Object IDENTIFIER510_tree=null;
try {
// AcslParser.g:1255:5: ({...}? IDENTIFIER )
// AcslParser.g:1255: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\")");
}
IDENTIFIER510=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_dependson_key8718); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER510_tree = (Object)adaptor.create(IDENTIFIER510);
adaptor.addChild(root_0, IDENTIFIER510_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:1258: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_IDENTIFIER511=null;
Object EXTENDED_IDENTIFIER511_tree=null;
try {
// AcslParser.g:1259:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1259: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_IDENTIFIER511=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_object_of_key8741); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER511_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER511);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER511_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:1262: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_IDENTIFIER512=null;
Object EXTENDED_IDENTIFIER512_tree=null;
try {
// AcslParser.g:1263:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1263: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_IDENTIFIER512=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_read_key8761); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER512_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER512);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER512_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:1267: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_IDENTIFIER513=null;
Object EXTENDED_IDENTIFIER513_tree=null;
try {
// AcslParser.g:1268:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1268: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_IDENTIFIER513=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_region_of_key8785); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER513_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER513);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER513_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:1271: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_IDENTIFIER514=null;
Object EXTENDED_IDENTIFIER514_tree=null;
try {
// AcslParser.g:1272:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1272: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_IDENTIFIER514=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_write_key8804); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER514_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER514);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER514_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 both_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "both_key"
// AcslParser.g:1278:1: both_key :{...}? IDENTIFIER -> ^( BOTH IDENTIFIER ) ;
public final AcslParser.both_key_return both_key() throws RecognitionException {
AcslParser.both_key_return retval = new AcslParser.both_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER515=null;
Object IDENTIFIER515_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:1279:5: ({...}? IDENTIFIER -> ^( BOTH IDENTIFIER ) )
// AcslParser.g:1279:7: {...}? IDENTIFIER
{
if ( !((input.LT(1).getText().equals("BOTH"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "both_key", "input.LT(1).getText().equals(\"BOTH\")");
}
IDENTIFIER515=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_both_key8831); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER515);
// 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();
// 1280:5: -> ^( BOTH IDENTIFIER )
{
// AcslParser.g:1280:8: ^( BOTH IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BOTH, "BOTH"), 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 "both_key"
public static class col_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "col_key"
// AcslParser.g:1283:1: col_key :{...}? IDENTIFIER -> ^( COL IDENTIFIER ) ;
public final AcslParser.col_key_return col_key() throws RecognitionException {
AcslParser.col_key_return retval = new AcslParser.col_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER516=null;
Object IDENTIFIER516_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:1284:5: ({...}? IDENTIFIER -> ^( COL IDENTIFIER ) )
// AcslParser.g:1284:7: {...}? IDENTIFIER
{
if ( !((input.LT(1).getText().equals("COL"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "col_key", "input.LT(1).getText().equals(\"COL\")");
}
IDENTIFIER516=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_col_key8862); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER516);
// 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();
// 1285:5: -> ^( COL IDENTIFIER )
{
// AcslParser.g:1285:8: ^( COL IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COL, "COL"), 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 "col_key"
public static class p2p_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "p2p_key"
// AcslParser.g:1288:1: p2p_key :{...}? IDENTIFIER -> ^( P2P IDENTIFIER ) ;
public final AcslParser.p2p_key_return p2p_key() throws RecognitionException {
AcslParser.p2p_key_return retval = new AcslParser.p2p_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER517=null;
Object IDENTIFIER517_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// AcslParser.g:1289:5: ({...}? IDENTIFIER -> ^( P2P IDENTIFIER ) )
// AcslParser.g:1289:7: {...}? IDENTIFIER
{
if ( !((input.LT(1).getText().equals("P2P"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "p2p_key", "input.LT(1).getText().equals(\"P2P\")");
}
IDENTIFIER517=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_p2p_key8893); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER517);
// 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();
// 1290:5: -> ^( P2P IDENTIFIER )
{
// AcslParser.g:1290:8: ^( P2P IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(P2P, "P2P"), 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 "p2p_key"
public static class mpiagree_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpiagree_key"
// AcslParser.g:1293:1: mpiagree_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.mpiagree_key_return mpiagree_key() throws RecognitionException {
AcslParser.mpiagree_key_return retval = new AcslParser.mpiagree_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER518=null;
Object EXTENDED_IDENTIFIER518_tree=null;
try {
// AcslParser.g:1294:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1294:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\mpi_agree"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpiagree_key", "input.LT(1).getText().equals(\"\\\\mpi_agree\")");
}
EXTENDED_IDENTIFIER518=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpiagree_key8924); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER518_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER518);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER518_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 "mpiagree_key"
public static class mpicollective_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpicollective_key"
// AcslParser.g:1298:1: mpicollective_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.mpicollective_key_return mpicollective_key() throws RecognitionException {
AcslParser.mpicollective_key_return retval = new AcslParser.mpicollective_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER519=null;
Object EXTENDED_IDENTIFIER519_tree=null;
try {
// AcslParser.g:1299:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1299:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\mpi_collective"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpicollective_key", "input.LT(1).getText().equals(\"\\\\mpi_collective\")");
}
EXTENDED_IDENTIFIER519=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpicollective_key8944); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER519_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER519);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER519_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 "mpicollective_key"
public static class mpicommsize_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpicommsize_key"
// AcslParser.g:1303:1: mpicommsize_key :{...}? EXTENDED_IDENTIFIER -> ^( MPI_COMM_SIZE EXTENDED_IDENTIFIER ) ;
public final AcslParser.mpicommsize_key_return mpicommsize_key() throws RecognitionException {
AcslParser.mpicommsize_key_return retval = new AcslParser.mpicommsize_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER520=null;
Object EXTENDED_IDENTIFIER520_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1304:5: ({...}? EXTENDED_IDENTIFIER -> ^( MPI_COMM_SIZE EXTENDED_IDENTIFIER ) )
// AcslParser.g:1304:7: {...}? EXTENDED_IDENTIFIER
{
if ( !((input.LT(1).getText().equals("\\mpi_comm_size"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpicommsize_key", "input.LT(1).getText().equals(\"\\\\mpi_comm_size\")");
}
EXTENDED_IDENTIFIER520=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpicommsize_key8964); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER520);
// 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();
// 1305:5: -> ^( MPI_COMM_SIZE EXTENDED_IDENTIFIER )
{
// AcslParser.g:1305:8: ^( MPI_COMM_SIZE EXTENDED_IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_COMM_SIZE, "MPI_COMM_SIZE"), 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 "mpicommsize_key"
public static class mpicommrank_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpicommrank_key"
// AcslParser.g:1308:1: mpicommrank_key :{...}? EXTENDED_IDENTIFIER -> ^( MPI_COMM_RANK EXTENDED_IDENTIFIER ) ;
public final AcslParser.mpicommrank_key_return mpicommrank_key() throws RecognitionException {
AcslParser.mpicommrank_key_return retval = new AcslParser.mpicommrank_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER521=null;
Object EXTENDED_IDENTIFIER521_tree=null;
RewriteRuleTokenStream stream_EXTENDED_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token EXTENDED_IDENTIFIER");
try {
// AcslParser.g:1309:5: ({...}? EXTENDED_IDENTIFIER -> ^( MPI_COMM_RANK EXTENDED_IDENTIFIER ) )
// AcslParser.g:1309:7: {...}? EXTENDED_IDENTIFIER
{
if ( !((input.LT(1).getText().equals("\\mpi_comm_rank"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpicommrank_key", "input.LT(1).getText().equals(\"\\\\mpi_comm_rank\")");
}
EXTENDED_IDENTIFIER521=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpicommrank_key8995); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXTENDED_IDENTIFIER.add(EXTENDED_IDENTIFIER521);
// 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();
// 1310:5: -> ^( MPI_COMM_RANK EXTENDED_IDENTIFIER )
{
// AcslParser.g:1310:8: ^( MPI_COMM_RANK EXTENDED_IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MPI_COMM_RANK, "MPI_COMM_RANK"), 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 "mpicommrank_key"
public static class mpiemptyin_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpiemptyin_key"
// AcslParser.g:1313:1: mpiemptyin_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.mpiemptyin_key_return mpiemptyin_key() throws RecognitionException {
AcslParser.mpiemptyin_key_return retval = new AcslParser.mpiemptyin_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER522=null;
Object EXTENDED_IDENTIFIER522_tree=null;
try {
// AcslParser.g:1314:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1314:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\mpi_empty_in"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpiemptyin_key", "input.LT(1).getText().equals(\"\\\\mpi_empty_in\")");
}
EXTENDED_IDENTIFIER522=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpiemptyin_key9026); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER522_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER522);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER522_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 "mpiemptyin_key"
public static class mpiemptyout_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpiemptyout_key"
// AcslParser.g:1318:1: mpiemptyout_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.mpiemptyout_key_return mpiemptyout_key() throws RecognitionException {
AcslParser.mpiemptyout_key_return retval = new AcslParser.mpiemptyout_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER523=null;
Object EXTENDED_IDENTIFIER523_tree=null;
try {
// AcslParser.g:1319:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1319:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\mpi_empty_out"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpiemptyout_key", "input.LT(1).getText().equals(\"\\\\mpi_empty_out\")");
}
EXTENDED_IDENTIFIER523=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpiemptyout_key9046); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER523_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER523);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER523_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 "mpiemptyout_key"
public static class mpiequals_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpiequals_key"
// AcslParser.g:1323:1: mpiequals_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.mpiequals_key_return mpiequals_key() throws RecognitionException {
AcslParser.mpiequals_key_return retval = new AcslParser.mpiequals_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER524=null;
Object EXTENDED_IDENTIFIER524_tree=null;
try {
// AcslParser.g:1324:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1324:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\mpi_equals"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpiequals_key", "input.LT(1).getText().equals(\"\\\\mpi_equals\")");
}
EXTENDED_IDENTIFIER524=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpiequals_key9066); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER524_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER524);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER524_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 "mpiequals_key"
public static class mpiextent_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpiextent_key"
// AcslParser.g:1328:1: mpiextent_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.mpiextent_key_return mpiextent_key() throws RecognitionException {
AcslParser.mpiextent_key_return retval = new AcslParser.mpiextent_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER525=null;
Object EXTENDED_IDENTIFIER525_tree=null;
try {
// AcslParser.g:1329:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1329:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\mpi_extent"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpiextent_key", "input.LT(1).getText().equals(\"\\\\mpi_extent\")");
}
EXTENDED_IDENTIFIER525=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpiextent_key9086); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER525_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER525);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER525_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 "mpiextent_key"
public static class mpioffset_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpioffset_key"
// AcslParser.g:1333:1: mpioffset_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.mpioffset_key_return mpioffset_key() throws RecognitionException {
AcslParser.mpioffset_key_return retval = new AcslParser.mpioffset_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER526=null;
Object EXTENDED_IDENTIFIER526_tree=null;
try {
// AcslParser.g:1334:5: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1334:7: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\mpi_offset"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpioffset_key", "input.LT(1).getText().equals(\"\\\\mpi_offset\")");
}
EXTENDED_IDENTIFIER526=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpioffset_key9106); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER526_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER526);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER526_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 "mpioffset_key"
public static class mpivalid_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpivalid_key"
// AcslParser.g:1338:1: mpivalid_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.mpivalid_key_return mpivalid_key() throws RecognitionException {
AcslParser.mpivalid_key_return retval = new AcslParser.mpivalid_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER527=null;
Object EXTENDED_IDENTIFIER527_tree=null;
try {
// AcslParser.g:1339:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1339:4: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\mpi_valid"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpivalid_key", "input.LT(1).getText().equals(\"\\\\mpi_valid\")");
}
EXTENDED_IDENTIFIER527=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpivalid_key9123); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER527_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER527);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER527_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 "mpivalid_key"
public static class mpiregion_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpiregion_key"
// AcslParser.g:1342:1: mpiregion_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.mpiregion_key_return mpiregion_key() throws RecognitionException {
AcslParser.mpiregion_key_return retval = new AcslParser.mpiregion_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER528=null;
Object EXTENDED_IDENTIFIER528_tree=null;
try {
// AcslParser.g:1343:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1343:4: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\mpi_region"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpiregion_key", "input.LT(1).getText().equals(\"\\\\mpi_region\")");
}
EXTENDED_IDENTIFIER528=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpiregion_key9143); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER528_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER528);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER528_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 "mpiregion_key"
public static class mpireduce_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "mpireduce_key"
// AcslParser.g:1346:1: mpireduce_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.mpireduce_key_return mpireduce_key() throws RecognitionException {
AcslParser.mpireduce_key_return retval = new AcslParser.mpireduce_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER529=null;
Object EXTENDED_IDENTIFIER529_tree=null;
try {
// AcslParser.g:1347:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1347:4: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\mpi_reduce"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "mpireduce_key", "input.LT(1).getText().equals(\"\\\\mpi_reduce\")");
}
EXTENDED_IDENTIFIER529=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_mpireduce_key9156); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER529_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER529);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER529_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 "mpireduce_key"
public static class absent_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "absent_key"
// AcslParser.g:1350:1: absent_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.absent_key_return absent_key() throws RecognitionException {
AcslParser.absent_key_return retval = new AcslParser.absent_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER530=null;
Object EXTENDED_IDENTIFIER530_tree=null;
try {
// AcslParser.g:1351:9: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1351:11: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\absentof"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "absent_key", "input.LT(1).getText().equals(\"\\\\absentof\")");
}
EXTENDED_IDENTIFIER530=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_absent_key9176); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER530_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER530);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER530_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 "absent_key"
public static class after_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "after_key"
// AcslParser.g:1354:1: after_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.after_key_return after_key() throws RecognitionException {
AcslParser.after_key_return retval = new AcslParser.after_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER531=null;
Object EXTENDED_IDENTIFIER531_tree=null;
try {
// AcslParser.g:1355:9: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1355:11: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\after"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "after_key", "input.LT(1).getText().equals(\"\\\\after\")");
}
EXTENDED_IDENTIFIER531=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_after_key9196); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER531_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER531);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER531_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 "after_key"
public static class until_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "until_key"
// AcslParser.g:1358:1: until_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.until_key_return until_key() throws RecognitionException {
AcslParser.until_key_return retval = new AcslParser.until_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER532=null;
Object EXTENDED_IDENTIFIER532_tree=null;
try {
// AcslParser.g:1359:9: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1359:11: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\until"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "until_key", "input.LT(1).getText().equals(\"\\\\until\")");
}
EXTENDED_IDENTIFIER532=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_until_key9216); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER532_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER532);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER532_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 "until_key"
public static class absent_event_sendto_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "absent_event_sendto_key"
// AcslParser.g:1362:1: absent_event_sendto_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.absent_event_sendto_key_return absent_event_sendto_key() throws RecognitionException {
AcslParser.absent_event_sendto_key_return retval = new AcslParser.absent_event_sendto_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER533=null;
Object EXTENDED_IDENTIFIER533_tree=null;
try {
// AcslParser.g:1363:9: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1363:11: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\sendto"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "absent_event_sendto_key", "input.LT(1).getText().equals(\"\\\\sendto\")");
}
EXTENDED_IDENTIFIER533=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_absent_event_sendto_key9236); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER533_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER533);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER533_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 "absent_event_sendto_key"
public static class absent_event_sendfrom_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "absent_event_sendfrom_key"
// AcslParser.g:1366:1: absent_event_sendfrom_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.absent_event_sendfrom_key_return absent_event_sendfrom_key() throws RecognitionException {
AcslParser.absent_event_sendfrom_key_return retval = new AcslParser.absent_event_sendfrom_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER534=null;
Object EXTENDED_IDENTIFIER534_tree=null;
try {
// AcslParser.g:1367:9: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1367:11: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\sendfrom"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "absent_event_sendfrom_key", "input.LT(1).getText().equals(\"\\\\sendfrom\")");
}
EXTENDED_IDENTIFIER534=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_absent_event_sendfrom_key9256); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER534_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER534);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER534_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 "absent_event_sendfrom_key"
public static class absent_event_enter_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "absent_event_enter_key"
// AcslParser.g:1370:1: absent_event_enter_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.absent_event_enter_key_return absent_event_enter_key() throws RecognitionException {
AcslParser.absent_event_enter_key_return retval = new AcslParser.absent_event_enter_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER535=null;
Object EXTENDED_IDENTIFIER535_tree=null;
try {
// AcslParser.g:1371:9: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1371:11: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\enter"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "absent_event_enter_key", "input.LT(1).getText().equals(\"\\\\enter\")");
}
EXTENDED_IDENTIFIER535=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_absent_event_enter_key9276); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER535_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER535);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER535_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 "absent_event_enter_key"
public static class absent_event_exit_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "absent_event_exit_key"
// AcslParser.g:1374:1: absent_event_exit_key :{...}? EXTENDED_IDENTIFIER ;
public final AcslParser.absent_event_exit_key_return absent_event_exit_key() throws RecognitionException {
AcslParser.absent_event_exit_key_return retval = new AcslParser.absent_event_exit_key_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EXTENDED_IDENTIFIER536=null;
Object EXTENDED_IDENTIFIER536_tree=null;
try {
// AcslParser.g:1375:9: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1375:11: {...}? EXTENDED_IDENTIFIER
{
root_0 = (Object)adaptor.nil();
if ( !((input.LT(1).getText().equals("\\exit"))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "absent_event_exit_key", "input.LT(1).getText().equals(\"\\\\exit\")");
}
EXTENDED_IDENTIFIER536=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_absent_event_exit_key9296); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER536_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER536);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER536_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 "absent_event_exit_key"
public static class lambda_key_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "lambda_key"
// AcslParser.g:1379: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_IDENTIFIER537=null;
Object EXTENDED_IDENTIFIER537_tree=null;
try {
// AcslParser.g:1380:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1380: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_IDENTIFIER537=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_lambda_key9311); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER537_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER537);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER537_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:1383: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_IDENTIFIER538=null;
Object EXTENDED_IDENTIFIER538_tree=null;
try {
// AcslParser.g:1384:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1384: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_IDENTIFIER538=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_sum_key9325); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER538_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER538);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER538_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:1387: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_IDENTIFIER539=null;
Object EXTENDED_IDENTIFIER539_tree=null;
try {
// AcslParser.g:1388:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1388: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_IDENTIFIER539=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_max_key9338); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER539_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER539);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER539_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:1391: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_IDENTIFIER540=null;
Object EXTENDED_IDENTIFIER540_tree=null;
try {
// AcslParser.g:1392:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1392: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_IDENTIFIER540=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_min_key9352); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER540_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER540);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER540_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:1395: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_IDENTIFIER541=null;
Object EXTENDED_IDENTIFIER541_tree=null;
try {
// AcslParser.g:1396:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1396: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_IDENTIFIER541=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_product_key9365); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER541_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER541);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER541_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:1399: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_IDENTIFIER542=null;
Object EXTENDED_IDENTIFIER542_tree=null;
try {
// AcslParser.g:1400:2: ({...}? EXTENDED_IDENTIFIER )
// AcslParser.g:1400: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_IDENTIFIER542=(Token)match(input,EXTENDED_IDENTIFIER,FOLLOW_EXTENDED_IDENTIFIER_in_numof_key9379); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXTENDED_IDENTIFIER542_tree = (Object)adaptor.create(EXTENDED_IDENTIFIER542);
adaptor.addChild(root_0, EXTENDED_IDENTIFIER542_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:164:7: ( loop_contract )
// AcslParser.g:164:7: loop_contract
{
pushFollow(FOLLOW_loop_contract_in_synpred1_AcslParser996);
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:165:7: ( function_contract )
// AcslParser.g:165:7: function_contract
{
pushFollow(FOLLOW_function_contract_in_synpred2_AcslParser1005);
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:166:7: ( logic_function_contract )
// AcslParser.g:166:7: logic_function_contract
{
pushFollow(FOLLOW_logic_function_contract_in_synpred3_AcslParser1014);
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:167:7: ( assert_contract )
// AcslParser.g:167:7: assert_contract
{
pushFollow(FOLLOW_assert_contract_in_synpred4_AcslParser1022);
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:168:7: ( ordered_contract )
// AcslParser.g:168:7: ordered_contract
{
pushFollow(FOLLOW_ordered_contract_in_synpred5_AcslParser1030);
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:179:9: (lc+= loop_clause )
// AcslParser.g:179:9: lc+= loop_clause
{
pushFollow(FOLLOW_loop_clause_in_synpred6_AcslParser1091);
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:179:45: (lv= loop_variant )
// AcslParser.g:179:45: lv= loop_variant
{
pushFollow(FOLLOW_loop_variant_in_synpred8_AcslParser1101);
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:184:7: ( loop_invariant SEMI )
// AcslParser.g:184:7: loop_invariant SEMI
{
pushFollow(FOLLOW_loop_invariant_in_synpred10_AcslParser1153);
loop_invariant();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred10_AcslParser1155); if (state.failed) return;
}
}
// $ANTLR end synpred10_AcslParser
// $ANTLR start synpred11_AcslParser
public final void synpred11_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:186:7: ( loop_assigns SEMI )
// AcslParser.g:186:7: loop_assigns SEMI
{
pushFollow(FOLLOW_loop_assigns_in_synpred11_AcslParser1178);
loop_assigns();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred11_AcslParser1180); if (state.failed) return;
}
}
// $ANTLR end synpred11_AcslParser
// $ANTLR start synpred13_AcslParser
public final void synpred13_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:203:7: ( loop_key alloc_key argumentExpressionList ( COMMA term )? )
// AcslParser.g:203:7: loop_key alloc_key argumentExpressionList ( COMMA term )?
{
pushFollow(FOLLOW_loop_key_in_synpred13_AcslParser1311);
loop_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_alloc_key_in_synpred13_AcslParser1313);
alloc_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred13_AcslParser1315);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
// AcslParser.g:203:49: ( COMMA term )?
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==COMMA) ) {
alt95=1;
}
switch (alt95) {
case 1 :
// AcslParser.g:203:50: COMMA term
{
match(input,COMMA,FOLLOW_COMMA_in_synpred13_AcslParser1318); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred13_AcslParser1320);
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:210:33: (lc+= loop_clause )
// AcslParser.g:210:33: lc+= loop_clause
{
pushFollow(FOLLOW_loop_clause_in_synpred14_AcslParser1394);
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:215:7: ( loop_key variant_key term )
// AcslParser.g:215:7: loop_key variant_key term
{
pushFollow(FOLLOW_loop_key_in_synpred15_AcslParser1432);
loop_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_variant_key_in_synpred15_AcslParser1434);
variant_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred15_AcslParser1436);
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:230:7: ( PLUS LCURLY rangeExpression RCURLY )
// AcslParser.g:230:7: PLUS LCURLY rangeExpression RCURLY
{
match(input,PLUS,FOLLOW_PLUS_in_synpred17_AcslParser1573); if (state.failed) return;
match(input,LCURLY,FOLLOW_LCURLY_in_synpred17_AcslParser1575); if (state.failed) return;
pushFollow(FOLLOW_rangeExpression_in_synpred17_AcslParser1577);
rangeExpression();
state._fsp--;
if (state.failed) return;
match(input,RCURLY,FOLLOW_RCURLY_in_synpred17_AcslParser1579); if (state.failed) return;
}
}
// $ANTLR end synpred17_AcslParser
// $ANTLR start synpred18_AcslParser
public final void synpred18_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:232:7: ( PLUS unaryExpression )
// AcslParser.g:232:7: PLUS unaryExpression
{
match(input,PLUS,FOLLOW_PLUS_in_synpred18_AcslParser1602); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_synpred18_AcslParser1604);
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:267:7: ( pure_function )
// AcslParser.g:267:7: pure_function
{
pushFollow(FOLLOW_pure_function_in_synpred21_AcslParser1870);
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:294:7: ( LPAREN binders RPAREN ASSIGN term )
// AcslParser.g:294:7: LPAREN binders RPAREN ASSIGN term
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred24_AcslParser2066); if (state.failed) return;
pushFollow(FOLLOW_binders_in_synpred24_AcslParser2068);
binders();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred24_AcslParser2070); if (state.failed) return;
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred24_AcslParser2072); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred24_AcslParser2074);
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:296:7: ( LPAREN binders RPAREN )
// AcslParser.g:296:7: LPAREN binders RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred25_AcslParser2100); if (state.failed) return;
pushFollow(FOLLOW_binders_in_synpred25_AcslParser2102);
binders();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred25_AcslParser2104); 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:309:8: (f+= function_clause )
// AcslParser.g:309:8: f+= function_clause
{
pushFollow(FOLLOW_function_clause_in_synpred26_AcslParser2190);
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 {
List<Object> list_f=null;
RuleReturnScope f = null;
// AcslParser.g:318:8: (f+= function_clause )
// AcslParser.g:318:8: f+= function_clause
{
pushFollow(FOLLOW_function_clause_in_synpred29_AcslParser2264);
f=function_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred29_AcslParser
// $ANTLR start synpred30_AcslParser
public final void synpred30_AcslParser_fragment() throws RecognitionException {
List<Object> list_b=null;
RuleReturnScope b = null;
// AcslParser.g:318:30: (b+= named_behavior_block )
// AcslParser.g:318:30: b+= named_behavior_block
{
pushFollow(FOLLOW_named_behavior_block_in_synpred30_AcslParser2271);
b=named_behavior_block();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred30_AcslParser
// $ANTLR start synpred31_AcslParser
public final void synpred31_AcslParser_fragment() throws RecognitionException {
List<Object> list_c=null;
RuleReturnScope c = null;
// AcslParser.g:319:10: (c+= completeness_clause_block )
// AcslParser.g:319:10: c+= completeness_clause_block
{
pushFollow(FOLLOW_completeness_clause_block_in_synpred31_AcslParser2287);
c=completeness_clause_block();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred31_AcslParser
// $ANTLR start synpred33_AcslParser
public final void synpred33_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:330:28: ( completeness_clause_block )
// AcslParser.g:330:28: completeness_clause_block
{
pushFollow(FOLLOW_completeness_clause_block_in_synpred33_AcslParser2346);
completeness_clause_block();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred33_AcslParser
// $ANTLR start synpred34_AcslParser
public final void synpred34_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:334:7: ( requires_clause SEMI )
// AcslParser.g:334:7: requires_clause SEMI
{
pushFollow(FOLLOW_requires_clause_in_synpred34_AcslParser2364);
requires_clause();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred34_AcslParser2366); if (state.failed) return;
}
}
// $ANTLR end synpred34_AcslParser
// $ANTLR start synpred35_AcslParser
public final void synpred35_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:335:7: ( terminates_clause SEMI )
// AcslParser.g:335:7: terminates_clause SEMI
{
pushFollow(FOLLOW_terminates_clause_in_synpred35_AcslParser2381);
terminates_clause();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred35_AcslParser2383); if (state.failed) return;
}
}
// $ANTLR end synpred35_AcslParser
// $ANTLR start synpred40_AcslParser
public final void synpred40_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:378:7: ( pointer )
// AcslParser.g:378:7: pointer
{
pushFollow(FOLLOW_pointer_in_synpred40_AcslParser2704);
pointer();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred40_AcslParser
// $ANTLR start synpred41_AcslParser
public final void synpred41_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:380:7: ( directAbstractDeclarator )
// AcslParser.g:380:7: directAbstractDeclarator
{
pushFollow(FOLLOW_directAbstractDeclarator_in_synpred41_AcslParser2728);
directAbstractDeclarator();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred41_AcslParser
// $ANTLR start synpred42_AcslParser
public final void synpred42_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:382:7: ( pointer directAbstractDeclarator )
// AcslParser.g:382:7: pointer directAbstractDeclarator
{
pushFollow(FOLLOW_pointer_in_synpred42_AcslParser2752);
pointer();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_directAbstractDeclarator_in_synpred42_AcslParser2754);
directAbstractDeclarator();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred42_AcslParser
// $ANTLR start synpred46_AcslParser
public final void synpred46_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:396:7: ( STAR )
// AcslParser.g:396:7: STAR
{
match(input,STAR,FOLLOW_STAR_in_synpred46_AcslParser2875); if (state.failed) return;
}
}
// $ANTLR end synpred46_AcslParser
// $ANTLR start synpred53_AcslParser
public final void synpred53_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:416:7: ( boolean_type )
// AcslParser.g:416:7: boolean_type
{
pushFollow(FOLLOW_boolean_type_in_synpred53_AcslParser3024);
boolean_type();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred53_AcslParser
// $ANTLR start synpred54_AcslParser
public final void synpred54_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:416:22: ( integer_type )
// AcslParser.g:416:22: integer_type
{
pushFollow(FOLLOW_integer_type_in_synpred54_AcslParser3028);
integer_type();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred54_AcslParser
// $ANTLR start synpred56_AcslParser
public final void synpred56_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:422:7: ( variable_ident_base LSQUARE RSQUARE )
// AcslParser.g:422:7: variable_ident_base LSQUARE RSQUARE
{
pushFollow(FOLLOW_variable_ident_base_in_synpred56_AcslParser3074);
variable_ident_base();
state._fsp--;
if (state.failed) return;
match(input,LSQUARE,FOLLOW_LSQUARE_in_synpred56_AcslParser3076); if (state.failed) return;
match(input,RSQUARE,FOLLOW_RSQUARE_in_synpred56_AcslParser3078); if (state.failed) return;
}
}
// $ANTLR end synpred56_AcslParser
// $ANTLR start synpred58_AcslParser
public final void synpred58_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:440:7: ( assigns_clause )
// AcslParser.g:440:7: assigns_clause
{
pushFollow(FOLLOW_assigns_clause_in_synpred58_AcslParser3214);
assigns_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:441:7: ( ensures_clause )
// AcslParser.g:441:7: ensures_clause
{
pushFollow(FOLLOW_ensures_clause_in_synpred59_AcslParser3222);
ensures_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred59_AcslParser
// $ANTLR start synpred60_AcslParser
public final void synpred60_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:442:7: ( allocation_clause )
// AcslParser.g:442:7: allocation_clause
{
pushFollow(FOLLOW_allocation_clause_in_synpred60_AcslParser3231);
allocation_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred60_AcslParser
// $ANTLR start synpred61_AcslParser
public final void synpred61_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:443:7: ( reads_clause )
// AcslParser.g:443:7: reads_clause
{
pushFollow(FOLLOW_reads_clause_in_synpred61_AcslParser3239);
reads_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred61_AcslParser
// $ANTLR start synpred62_AcslParser
public final void synpred62_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:444:7: ( depends_clause )
// AcslParser.g:444:7: depends_clause
{
pushFollow(FOLLOW_depends_clause_in_synpred62_AcslParser3247);
depends_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred62_AcslParser
// $ANTLR start synpred63_AcslParser
public final void synpred63_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:445:7: ( guards_clause )
// AcslParser.g:445:7: guards_clause
{
pushFollow(FOLLOW_guards_clause_in_synpred63_AcslParser3255);
guards_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred63_AcslParser
// $ANTLR start synpred64_AcslParser
public final void synpred64_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:458:7: ( alloc_key argumentExpressionList )
// AcslParser.g:458:7: alloc_key argumentExpressionList
{
pushFollow(FOLLOW_alloc_key_in_synpred64_AcslParser3336);
alloc_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred64_AcslParser3338);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred64_AcslParser
// $ANTLR start synpred66_AcslParser
public final void synpred66_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:479:7: ( event_base PLUS event_base )
// AcslParser.g:479:7: event_base PLUS event_base
{
pushFollow(FOLLOW_event_base_in_synpred66_AcslParser3501);
event_base();
state._fsp--;
if (state.failed) return;
match(input,PLUS,FOLLOW_PLUS_in_synpred66_AcslParser3503); if (state.failed) return;
pushFollow(FOLLOW_event_base_in_synpred66_AcslParser3505);
event_base();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred66_AcslParser
// $ANTLR start synpred67_AcslParser
public final void synpred67_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:481:7: ( event_base SUB event_base )
// AcslParser.g:481:7: event_base SUB event_base
{
pushFollow(FOLLOW_event_base_in_synpred67_AcslParser3531);
event_base();
state._fsp--;
if (state.failed) return;
match(input,SUB,FOLLOW_SUB_in_synpred67_AcslParser3533); if (state.failed) return;
pushFollow(FOLLOW_event_base_in_synpred67_AcslParser3535);
event_base();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred67_AcslParser
// $ANTLR start synpred68_AcslParser
public final void synpred68_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:483:7: ( event_base AMPERSAND event_base )
// AcslParser.g:483:7: event_base AMPERSAND event_base
{
pushFollow(FOLLOW_event_base_in_synpred68_AcslParser3561);
event_base();
state._fsp--;
if (state.failed) return;
match(input,AMPERSAND,FOLLOW_AMPERSAND_in_synpred68_AcslParser3563); if (state.failed) return;
pushFollow(FOLLOW_event_base_in_synpred68_AcslParser3565);
event_base();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred68_AcslParser
// $ANTLR start synpred69_AcslParser
public final void synpred69_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:490:7: ( read_key LPAREN argumentExpressionList RPAREN )
// AcslParser.g:490:7: read_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_read_key_in_synpred69_AcslParser3624);
read_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred69_AcslParser3626); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred69_AcslParser3628);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred69_AcslParser3630); if (state.failed) return;
}
}
// $ANTLR end synpred69_AcslParser
// $ANTLR start synpred70_AcslParser
public final void synpred70_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:492:7: ( write_key LPAREN argumentExpressionList RPAREN )
// AcslParser.g:492:7: write_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_write_key_in_synpred70_AcslParser3656);
write_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred70_AcslParser3658); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred70_AcslParser3660);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred70_AcslParser3662); if (state.failed) return;
}
}
// $ANTLR end synpred70_AcslParser
// $ANTLR start synpred71_AcslParser
public final void synpred71_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:494:7: ( access_key LPAREN argumentExpressionList RPAREN )
// AcslParser.g:494:7: access_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_access_key_in_synpred71_AcslParser3688);
access_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred71_AcslParser3690); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred71_AcslParser3692);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred71_AcslParser3694); if (state.failed) return;
}
}
// $ANTLR end synpred71_AcslParser
// $ANTLR start synpred73_AcslParser
public final void synpred73_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:496:7: ( call_key LPAREN IDENTIFIER ( COMMA argumentExpressionList )? RPAREN )
// AcslParser.g:496:7: call_key LPAREN IDENTIFIER ( COMMA argumentExpressionList )? RPAREN
{
pushFollow(FOLLOW_call_key_in_synpred73_AcslParser3720);
call_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred73_AcslParser3722); if (state.failed) return;
match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred73_AcslParser3724); if (state.failed) return;
// AcslParser.g:496:34: ( COMMA argumentExpressionList )?
int alt97=2;
int LA97_0 = input.LA(1);
if ( (LA97_0==COMMA) ) {
alt97=1;
}
switch (alt97) {
case 1 :
// AcslParser.g:496:35: COMMA argumentExpressionList
{
match(input,COMMA,FOLLOW_COMMA_in_synpred73_AcslParser3727); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred73_AcslParser3729);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_synpred73_AcslParser3733); if (state.failed) return;
}
}
// $ANTLR end synpred73_AcslParser
// $ANTLR start synpred74_AcslParser
public final void synpred74_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:498:7: ( nothing_key )
// AcslParser.g:498:7: nothing_key
{
pushFollow(FOLLOW_nothing_key_in_synpred74_AcslParser3762);
nothing_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred74_AcslParser
// $ANTLR start synpred75_AcslParser
public final void synpred75_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:499:7: ( anyact_key )
// AcslParser.g:499:7: anyact_key
{
pushFollow(FOLLOW_anyact_key_in_synpred75_AcslParser3770);
anyact_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred75_AcslParser
// $ANTLR start synpred76_AcslParser
public final void synpred76_AcslParser_fragment() throws RecognitionException {
List<Object> list_b=null;
RuleReturnScope b = null;
// AcslParser.g:519:8: (b+= behavior_clause SEMI )
// AcslParser.g:519:8: b+= behavior_clause SEMI
{
pushFollow(FOLLOW_behavior_clause_in_synpred76_AcslParser3925);
b=behavior_clause();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred76_AcslParser3927); if (state.failed) return;
}
}
// $ANTLR end synpred76_AcslParser
// $ANTLR start synpred77_AcslParser
public final void synpred77_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:523:7: ( assumes_clause )
// AcslParser.g:523:7: assumes_clause
{
pushFollow(FOLLOW_assumes_clause_in_synpred77_AcslParser3956);
assumes_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred77_AcslParser
// $ANTLR start synpred78_AcslParser
public final void synpred78_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:524:7: ( requires_clause )
// AcslParser.g:524:7: requires_clause
{
pushFollow(FOLLOW_requires_clause_in_synpred78_AcslParser3965);
requires_clause();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred78_AcslParser
// $ANTLR start synpred79_AcslParser
public final void synpred79_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:533:7: ( completes_key behaviors_key id_list )
// AcslParser.g:533:7: completes_key behaviors_key id_list
{
pushFollow(FOLLOW_completes_key_in_synpred79_AcslParser4018);
completes_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_behaviors_key_in_synpred79_AcslParser4020);
behaviors_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_id_list_in_synpred79_AcslParser4022);
id_list();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred79_AcslParser
// $ANTLR start synpred83_AcslParser
public final void synpred83_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:558:4: ( forall_key binders SEMI term )
// AcslParser.g:558:4: forall_key binders SEMI term
{
pushFollow(FOLLOW_forall_key_in_synpred83_AcslParser4162);
forall_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_binders_in_synpred83_AcslParser4164);
binders();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred83_AcslParser4166); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred83_AcslParser4168);
term();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred83_AcslParser
// $ANTLR start synpred84_AcslParser
public final void synpred84_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:560:7: ( exists_key binders SEMI term )
// AcslParser.g:560:7: exists_key binders SEMI term
{
pushFollow(FOLLOW_exists_key_in_synpred84_AcslParser4193);
exists_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_binders_in_synpred84_AcslParser4195);
binders();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred84_AcslParser4197); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred84_AcslParser4199);
term();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred84_AcslParser
// $ANTLR start synpred85_AcslParser
public final void synpred85_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:580:4: ( unaryExpression ASSIGN )
// AcslParser.g:580:5: unaryExpression ASSIGN
{
pushFollow(FOLLOW_unaryExpression_in_synpred85_AcslParser4260);
unaryExpression();
state._fsp--;
if (state.failed) return;
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred85_AcslParser4262); if (state.failed) return;
}
}
// $ANTLR end synpred85_AcslParser
// $ANTLR start synpred88_AcslParser
public final void synpred88_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope b =null;
ParserRuleReturnScope c =null;
// AcslParser.g:607:11: ( QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression ) )
// AcslParser.g:607:11: QMARK b= conditionalExpression COLON (c= quantifierExpression |c= conditionalExpression )
{
match(input,QMARK,FOLLOW_QMARK_in_synpred88_AcslParser4360); if (state.failed) return;
pushFollow(FOLLOW_conditionalExpression_in_synpred88_AcslParser4364);
b=conditionalExpression();
state._fsp--;
if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_synpred88_AcslParser4366); if (state.failed) return;
// AcslParser.g:608:13: (c= quantifierExpression |c= conditionalExpression )
int alt98=2;
int LA98_0 = input.LA(1);
if ( (LA98_0==EXTENDED_IDENTIFIER) ) {
int LA98_1 = input.LA(2);
if ( (LA98_1==IDENTIFIER||LA98_1==CHAR||LA98_1==DOUBLE||LA98_1==FLOAT||LA98_1==INT||LA98_1==LONG||LA98_1==SHORT||LA98_1==VOID) ) {
alt98=1;
}
else if ( (LA98_1==EOF||(LA98_1 >= AMPERSAND && LA98_1 <= AND)||LA98_1==ARROW||LA98_1==BITOR||LA98_1==BITXOR||LA98_1==DIV||(LA98_1 >= DOT && LA98_1 <= DOTDOT)||(LA98_1 >= EQUALS && LA98_1 <= EQUIV_ACSL)||LA98_1==EXTENDED_IDENTIFIER||(LA98_1 >= GT && LA98_1 <= GTE)||(LA98_1 >= IMPLIES && LA98_1 <= IMPLIES_ACSL)||LA98_1==LPAREN||(LA98_1 >= LSQUARE && LA98_1 <= LTE)||(LA98_1 >= MINUSMINUS && LA98_1 <= MOD)||LA98_1==NEQ||LA98_1==OR||LA98_1==PLUS||LA98_1==QMARK||LA98_1==SHIFTLEFT||LA98_1==SHIFTRIGHT||LA98_1==STAR||LA98_1==SUB||LA98_1==XOR_ACSL) ) {
alt98=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 98, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA98_0==AMPERSAND||LA98_0==CHARACTER_CONSTANT||LA98_0==ELLIPSIS||LA98_0==FLOATING_CONSTANT||LA98_0==IDENTIFIER||LA98_0==INTEGER_CONSTANT||LA98_0==LCURLY||LA98_0==LPAREN||LA98_0==NOT||LA98_0==PLUS||LA98_0==STAR||(LA98_0 >= STRING_LITERAL && LA98_0 <= SUB)||LA98_0==TILDE||LA98_0==SELF||LA98_0==SIZEOF) ) {
alt98=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 98, 0, input);
throw nvae;
}
switch (alt98) {
case 1 :
// AcslParser.g:608:14: c= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred88_AcslParser4384);
c=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:608:39: c= conditionalExpression
{
pushFollow(FOLLOW_conditionalExpression_in_synpred88_AcslParser4390);
c=conditionalExpression();
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:619:11: ( EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression ) )
// AcslParser.g:619:11: EQUIV_ACSL (b= quantifierExpression |b= logicalImpliesExpression )
{
match(input,EQUIV_ACSL,FOLLOW_EQUIV_ACSL_in_synpred90_AcslParser4480); if (state.failed) return;
// AcslParser.g:619:22: (b= quantifierExpression |b= logicalImpliesExpression )
int alt99=2;
int LA99_0 = input.LA(1);
if ( (LA99_0==EXTENDED_IDENTIFIER) ) {
int LA99_1 = input.LA(2);
if ( (LA99_1==IDENTIFIER||LA99_1==CHAR||LA99_1==DOUBLE||LA99_1==FLOAT||LA99_1==INT||LA99_1==LONG||LA99_1==SHORT||LA99_1==VOID) ) {
alt99=1;
}
else if ( (LA99_1==EOF||(LA99_1 >= AMPERSAND && LA99_1 <= AND)||LA99_1==ARROW||LA99_1==BITOR||LA99_1==BITXOR||LA99_1==DIV||(LA99_1 >= DOT && LA99_1 <= DOTDOT)||LA99_1==EQUALS||LA99_1==EXTENDED_IDENTIFIER||(LA99_1 >= GT && LA99_1 <= GTE)||(LA99_1 >= IMPLIES && LA99_1 <= IMPLIES_ACSL)||LA99_1==LPAREN||(LA99_1 >= LSQUARE && LA99_1 <= LTE)||(LA99_1 >= MINUSMINUS && LA99_1 <= MOD)||LA99_1==NEQ||LA99_1==OR||LA99_1==PLUS||LA99_1==SHIFTLEFT||LA99_1==SHIFTRIGHT||LA99_1==STAR||LA99_1==SUB||LA99_1==XOR_ACSL) ) {
alt99=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 99, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA99_0==AMPERSAND||LA99_0==CHARACTER_CONSTANT||LA99_0==ELLIPSIS||LA99_0==FLOATING_CONSTANT||LA99_0==IDENTIFIER||LA99_0==INTEGER_CONSTANT||LA99_0==LCURLY||LA99_0==LPAREN||LA99_0==NOT||LA99_0==PLUS||LA99_0==STAR||(LA99_0 >= STRING_LITERAL && LA99_0 <= SUB)||LA99_0==TILDE||LA99_0==SELF||LA99_0==SIZEOF) ) {
alt99=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 99, 0, input);
throw nvae;
}
switch (alt99) {
case 1 :
// AcslParser.g:619:23: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred90_AcslParser4485);
b=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:619:48: b= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_synpred90_AcslParser4491);
b=logicalImpliesExpression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred90_AcslParser
// $ANTLR start synpred93_AcslParser
public final void synpred93_AcslParser_fragment() throws RecognitionException {
Token op=null;
ParserRuleReturnScope b =null;
// AcslParser.g:629:11: (op= ( IMPLIES | IMPLIES_ACSL ) (b= quantifierExpression |b= logicalImpliesExpression ) )
// AcslParser.g:629: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:629:37: (b= quantifierExpression |b= logicalImpliesExpression )
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==EXTENDED_IDENTIFIER) ) {
int LA100_1 = input.LA(2);
if ( (LA100_1==IDENTIFIER||LA100_1==CHAR||LA100_1==DOUBLE||LA100_1==FLOAT||LA100_1==INT||LA100_1==LONG||LA100_1==SHORT||LA100_1==VOID) ) {
alt100=1;
}
else if ( (LA100_1==EOF||(LA100_1 >= AMPERSAND && LA100_1 <= AND)||LA100_1==ARROW||LA100_1==BITOR||LA100_1==BITXOR||LA100_1==DIV||(LA100_1 >= DOT && LA100_1 <= DOTDOT)||LA100_1==EQUALS||LA100_1==EXTENDED_IDENTIFIER||(LA100_1 >= GT && LA100_1 <= GTE)||(LA100_1 >= IMPLIES && LA100_1 <= IMPLIES_ACSL)||LA100_1==LPAREN||(LA100_1 >= LSQUARE && LA100_1 <= LTE)||(LA100_1 >= MINUSMINUS && LA100_1 <= MOD)||LA100_1==NEQ||LA100_1==OR||LA100_1==PLUS||LA100_1==SHIFTLEFT||LA100_1==SHIFTRIGHT||LA100_1==STAR||LA100_1==SUB||LA100_1==XOR_ACSL) ) {
alt100=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 100, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA100_0==AMPERSAND||LA100_0==CHARACTER_CONSTANT||LA100_0==ELLIPSIS||LA100_0==FLOATING_CONSTANT||LA100_0==IDENTIFIER||LA100_0==INTEGER_CONSTANT||LA100_0==LCURLY||LA100_0==LPAREN||LA100_0==NOT||LA100_0==PLUS||LA100_0==STAR||(LA100_0 >= STRING_LITERAL && LA100_0 <= SUB)||LA100_0==TILDE||LA100_0==SELF||LA100_0==SIZEOF) ) {
alt100=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 100, 0, input);
throw nvae;
}
switch (alt100) {
case 1 :
// AcslParser.g:629:38: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred93_AcslParser4574);
b=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:629:63: b= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_synpred93_AcslParser4580);
b=logicalImpliesExpression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred93_AcslParser
// $ANTLR start synpred95_AcslParser
public final void synpred95_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope b =null;
// AcslParser.g:640:11: ( OR (b= quantifierExpression |b= logicalXorExpression ) )
// AcslParser.g:640:11: OR (b= quantifierExpression |b= logicalXorExpression )
{
match(input,OR,FOLLOW_OR_in_synpred95_AcslParser4674); if (state.failed) return;
// AcslParser.g:640:14: (b= quantifierExpression |b= logicalXorExpression )
int alt101=2;
int LA101_0 = input.LA(1);
if ( (LA101_0==EXTENDED_IDENTIFIER) ) {
int LA101_1 = input.LA(2);
if ( (LA101_1==IDENTIFIER||LA101_1==CHAR||LA101_1==DOUBLE||LA101_1==FLOAT||LA101_1==INT||LA101_1==LONG||LA101_1==SHORT||LA101_1==VOID) ) {
alt101=1;
}
else if ( (LA101_1==EOF||(LA101_1 >= AMPERSAND && LA101_1 <= AND)||LA101_1==ARROW||LA101_1==BITOR||LA101_1==BITXOR||LA101_1==DIV||(LA101_1 >= DOT && LA101_1 <= DOTDOT)||LA101_1==EQUALS||LA101_1==EXTENDED_IDENTIFIER||(LA101_1 >= GT && LA101_1 <= GTE)||LA101_1==LPAREN||(LA101_1 >= LSQUARE && LA101_1 <= LTE)||(LA101_1 >= MINUSMINUS && LA101_1 <= MOD)||LA101_1==NEQ||LA101_1==PLUS||LA101_1==SHIFTLEFT||LA101_1==SHIFTRIGHT||LA101_1==STAR||LA101_1==SUB||LA101_1==XOR_ACSL) ) {
alt101=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 101, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA101_0==AMPERSAND||LA101_0==CHARACTER_CONSTANT||LA101_0==ELLIPSIS||LA101_0==FLOATING_CONSTANT||LA101_0==IDENTIFIER||LA101_0==INTEGER_CONSTANT||LA101_0==LCURLY||LA101_0==LPAREN||LA101_0==NOT||LA101_0==PLUS||LA101_0==STAR||(LA101_0 >= STRING_LITERAL && LA101_0 <= SUB)||LA101_0==TILDE||LA101_0==SELF||LA101_0==SIZEOF) ) {
alt101=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 101, 0, input);
throw nvae;
}
switch (alt101) {
case 1 :
// AcslParser.g:640:15: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred95_AcslParser4679);
b=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:640:40: b= logicalXorExpression
{
pushFollow(FOLLOW_logicalXorExpression_in_synpred95_AcslParser4685);
b=logicalXorExpression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred95_AcslParser
// $ANTLR start synpred97_AcslParser
public final void synpred97_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope b =null;
// AcslParser.g:650:11: ( XOR_ACSL (b= quantifierExpression |b= logicalAndExpression ) )
// AcslParser.g:650:11: XOR_ACSL (b= quantifierExpression |b= logicalAndExpression )
{
match(input,XOR_ACSL,FOLLOW_XOR_ACSL_in_synpred97_AcslParser4762); if (state.failed) return;
// AcslParser.g:650:20: (b= quantifierExpression |b= logicalAndExpression )
int alt102=2;
int LA102_0 = input.LA(1);
if ( (LA102_0==EXTENDED_IDENTIFIER) ) {
int LA102_1 = input.LA(2);
if ( (LA102_1==IDENTIFIER||LA102_1==CHAR||LA102_1==DOUBLE||LA102_1==FLOAT||LA102_1==INT||LA102_1==LONG||LA102_1==SHORT||LA102_1==VOID) ) {
alt102=1;
}
else if ( (LA102_1==EOF||(LA102_1 >= AMPERSAND && LA102_1 <= AND)||LA102_1==ARROW||LA102_1==BITOR||LA102_1==BITXOR||LA102_1==DIV||(LA102_1 >= DOT && LA102_1 <= DOTDOT)||LA102_1==EQUALS||LA102_1==EXTENDED_IDENTIFIER||(LA102_1 >= GT && LA102_1 <= GTE)||LA102_1==LPAREN||(LA102_1 >= LSQUARE && LA102_1 <= LTE)||(LA102_1 >= MINUSMINUS && LA102_1 <= MOD)||LA102_1==NEQ||LA102_1==PLUS||LA102_1==SHIFTLEFT||LA102_1==SHIFTRIGHT||LA102_1==STAR||LA102_1==SUB) ) {
alt102=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 102, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA102_0==AMPERSAND||LA102_0==CHARACTER_CONSTANT||LA102_0==ELLIPSIS||LA102_0==FLOATING_CONSTANT||LA102_0==IDENTIFIER||LA102_0==INTEGER_CONSTANT||LA102_0==LCURLY||LA102_0==LPAREN||LA102_0==NOT||LA102_0==PLUS||LA102_0==STAR||(LA102_0 >= STRING_LITERAL && LA102_0 <= SUB)||LA102_0==TILDE||LA102_0==SELF||LA102_0==SIZEOF) ) {
alt102=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 102, 0, input);
throw nvae;
}
switch (alt102) {
case 1 :
// AcslParser.g:650:21: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred97_AcslParser4767);
b=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:650:46: b= logicalAndExpression
{
pushFollow(FOLLOW_logicalAndExpression_in_synpred97_AcslParser4773);
b=logicalAndExpression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred97_AcslParser
// $ANTLR start synpred99_AcslParser
public final void synpred99_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope b =null;
// AcslParser.g:660:11: ( AND (b= quantifierExpression |b= bitwiseEquivExpression ) )
// AcslParser.g:660:11: AND (b= quantifierExpression |b= bitwiseEquivExpression )
{
match(input,AND,FOLLOW_AND_in_synpred99_AcslParser4849); if (state.failed) return;
// AcslParser.g:660:15: (b= quantifierExpression |b= bitwiseEquivExpression )
int alt103=2;
int LA103_0 = input.LA(1);
if ( (LA103_0==EXTENDED_IDENTIFIER) ) {
int LA103_1 = input.LA(2);
if ( (LA103_1==IDENTIFIER||LA103_1==CHAR||LA103_1==DOUBLE||LA103_1==FLOAT||LA103_1==INT||LA103_1==LONG||LA103_1==SHORT||LA103_1==VOID) ) {
alt103=1;
}
else if ( (LA103_1==EOF||LA103_1==AMPERSAND||LA103_1==ARROW||LA103_1==BITOR||LA103_1==BITXOR||LA103_1==DIV||(LA103_1 >= DOT && LA103_1 <= DOTDOT)||LA103_1==EQUALS||LA103_1==EXTENDED_IDENTIFIER||(LA103_1 >= GT && LA103_1 <= GTE)||LA103_1==LPAREN||(LA103_1 >= LSQUARE && LA103_1 <= LTE)||(LA103_1 >= MINUSMINUS && LA103_1 <= MOD)||LA103_1==NEQ||LA103_1==PLUS||LA103_1==SHIFTLEFT||LA103_1==SHIFTRIGHT||LA103_1==STAR||LA103_1==SUB) ) {
alt103=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 103, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA103_0==AMPERSAND||LA103_0==CHARACTER_CONSTANT||LA103_0==ELLIPSIS||LA103_0==FLOATING_CONSTANT||LA103_0==IDENTIFIER||LA103_0==INTEGER_CONSTANT||LA103_0==LCURLY||LA103_0==LPAREN||LA103_0==NOT||LA103_0==PLUS||LA103_0==STAR||(LA103_0 >= STRING_LITERAL && LA103_0 <= SUB)||LA103_0==TILDE||LA103_0==SELF||LA103_0==SIZEOF) ) {
alt103=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 103, 0, input);
throw nvae;
}
switch (alt103) {
case 1 :
// AcslParser.g:660:16: b= quantifierExpression
{
pushFollow(FOLLOW_quantifierExpression_in_synpred99_AcslParser4854);
b=quantifierExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// AcslParser.g:660:41: b= bitwiseEquivExpression
{
pushFollow(FOLLOW_bitwiseEquivExpression_in_synpred99_AcslParser4860);
b=bitwiseEquivExpression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred99_AcslParser
// $ANTLR start synpred100_AcslParser
public final void synpred100_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope b =null;
// AcslParser.g:670:11: ( bitequiv_op b= bitwiseImpliesExpression )
// AcslParser.g:670:11: bitequiv_op b= bitwiseImpliesExpression
{
pushFollow(FOLLOW_bitequiv_op_in_synpred100_AcslParser4936);
bitequiv_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_bitwiseImpliesExpression_in_synpred100_AcslParser4940);
b=bitwiseImpliesExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred100_AcslParser
// $ANTLR start synpred101_AcslParser
public final void synpred101_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope op =null;
ParserRuleReturnScope b =null;
// AcslParser.g:680:11: (op= bitimplies_op b= bitwiseImpliesExpression )
// AcslParser.g:680:11: op= bitimplies_op b= bitwiseImpliesExpression
{
pushFollow(FOLLOW_bitimplies_op_in_synpred101_AcslParser5010);
op=bitimplies_op();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_bitwiseImpliesExpression_in_synpred101_AcslParser5014);
b=bitwiseImpliesExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred101_AcslParser
// $ANTLR start synpred102_AcslParser
public final void synpred102_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:703:6: ({...}? BITOR y= exclusiveOrExpression )
// AcslParser.g:703: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, "synpred102_AcslParser", "!(input.LA(2)==IDENTIFIER && input.LA(3)==IDENTIFIER)");
}
match(input,BITOR,FOLLOW_BITOR_in_synpred102_AcslParser5099); if (state.failed) return;
pushFollow(FOLLOW_exclusiveOrExpression_in_synpred102_AcslParser5103);
y=exclusiveOrExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred102_AcslParser
// $ANTLR start synpred103_AcslParser
public final void synpred103_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:716:6: ( BITXOR y= andExpression )
// AcslParser.g:716:6: BITXOR y= andExpression
{
match(input,BITXOR,FOLLOW_BITXOR_in_synpred103_AcslParser5163); if (state.failed) return;
pushFollow(FOLLOW_andExpression_in_synpred103_AcslParser5167);
y=andExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred103_AcslParser
// $ANTLR start synpred104_AcslParser
public final void synpred104_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:729:6: ( AMPERSAND y= relationalExpression )
// AcslParser.g:729:6: AMPERSAND y= relationalExpression
{
match(input,AMPERSAND,FOLLOW_AMPERSAND_in_synpred104_AcslParser5224); if (state.failed) return;
pushFollow(FOLLOW_relationalExpression_in_synpred104_AcslParser5228);
y=relationalExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred104_AcslParser
// $ANTLR start synpred110_AcslParser
public final void synpred110_AcslParser_fragment() throws RecognitionException {
List<Object> list_s=null;
RuleReturnScope s = null;
// AcslParser.g:784:12: (s+= relOp s+= shiftExpression )
// AcslParser.g:784:12: s+= relOp s+= shiftExpression
{
pushFollow(FOLLOW_relOp_in_synpred110_AcslParser5324);
s=relOp();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_shiftExpression_in_synpred110_AcslParser5328);
s=shiftExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred110_AcslParser
// $ANTLR start synpred111_AcslParser
public final void synpred111_AcslParser_fragment() throws RecognitionException {
List<Object> list_s=null;
RuleReturnScope s = null;
// AcslParser.g:784:11: ( (s+= relOp s+= shiftExpression )+ )
// AcslParser.g:784:11: (s+= relOp s+= shiftExpression )+
{
// AcslParser.g:784:11: (s+= relOp s+= shiftExpression )+
int cnt104=0;
loop104:
while (true) {
int alt104=2;
int LA104_0 = input.LA(1);
if ( (LA104_0==EQUALS||(LA104_0 >= GT && LA104_0 <= GTE)||(LA104_0 >= LT && LA104_0 <= LTE)||LA104_0==NEQ) ) {
alt104=1;
}
switch (alt104) {
case 1 :
// AcslParser.g:784:12: s+= relOp s+= shiftExpression
{
pushFollow(FOLLOW_relOp_in_synpred111_AcslParser5324);
s=relOp();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_shiftExpression_in_synpred111_AcslParser5328);
s=shiftExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
if ( cnt104 >= 1 ) break loop104;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(104, input);
throw eee;
}
cnt104++;
}
}
}
// $ANTLR end synpred111_AcslParser
// $ANTLR start synpred112_AcslParser
public final void synpred112_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:803:11: ( SHIFTLEFT y= rangeExpression )
// AcslParser.g:803:11: SHIFTLEFT y= rangeExpression
{
match(input,SHIFTLEFT,FOLLOW_SHIFTLEFT_in_synpred112_AcslParser5403); if (state.failed) return;
pushFollow(FOLLOW_rangeExpression_in_synpred112_AcslParser5407);
y=rangeExpression();
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:805:11: ( SHIFTRIGHT y= rangeExpression )
// AcslParser.g:805:11: SHIFTRIGHT y= rangeExpression
{
match(input,SHIFTRIGHT,FOLLOW_SHIFTRIGHT_in_synpred113_AcslParser5447); if (state.failed) return;
pushFollow(FOLLOW_rangeExpression_in_synpred113_AcslParser5451);
y=rangeExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred113_AcslParser
// $ANTLR start synpred114_AcslParser
public final void synpred114_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope s =null;
// AcslParser.g:818:11: ( DOTDOT s= rangeSuffix )
// AcslParser.g:818:11: DOTDOT s= rangeSuffix
{
match(input,DOTDOT,FOLLOW_DOTDOT_in_synpred114_AcslParser5517); if (state.failed) return;
pushFollow(FOLLOW_rangeSuffix_in_synpred114_AcslParser5521);
s=rangeSuffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred114_AcslParser
// $ANTLR start synpred115_AcslParser
public final void synpred115_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:824:27: ( HASH additiveExpression )
// AcslParser.g:824:27: HASH additiveExpression
{
match(input,HASH,FOLLOW_HASH_in_synpred115_AcslParser5578); if (state.failed) return;
pushFollow(FOLLOW_additiveExpression_in_synpred115_AcslParser5581);
additiveExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred115_AcslParser
// $ANTLR start synpred116_AcslParser
public final void synpred116_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:834:11: ( PLUS y= multiplicativeExpression )
// AcslParser.g:834:11: PLUS y= multiplicativeExpression
{
match(input,PLUS,FOLLOW_PLUS_in_synpred116_AcslParser5617); if (state.failed) return;
pushFollow(FOLLOW_multiplicativeExpression_in_synpred116_AcslParser5621);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred116_AcslParser
// $ANTLR start synpred117_AcslParser
public final void synpred117_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:836:11: ( SUB y= multiplicativeExpression )
// AcslParser.g:836:11: SUB y= multiplicativeExpression
{
match(input,SUB,FOLLOW_SUB_in_synpred117_AcslParser5661); if (state.failed) return;
pushFollow(FOLLOW_multiplicativeExpression_in_synpred117_AcslParser5665);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred117_AcslParser
// $ANTLR start synpred118_AcslParser
public final void synpred118_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:849:4: ( STAR y= castExpression )
// AcslParser.g:849:4: STAR y= castExpression
{
match(input,STAR,FOLLOW_STAR_in_synpred118_AcslParser5728); if (state.failed) return;
pushFollow(FOLLOW_castExpression_in_synpred118_AcslParser5732);
y=castExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred118_AcslParser
// $ANTLR start synpred119_AcslParser
public final void synpred119_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:851:4: ( DIV y= castExpression )
// AcslParser.g:851:4: DIV y= castExpression
{
match(input,DIV,FOLLOW_DIV_in_synpred119_AcslParser5758); if (state.failed) return;
pushFollow(FOLLOW_castExpression_in_synpred119_AcslParser5762);
y=castExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred119_AcslParser
// $ANTLR start synpred120_AcslParser
public final void synpred120_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope y =null;
// AcslParser.g:853:7: ( MOD y= castExpression )
// AcslParser.g:853:7: MOD y= castExpression
{
match(input,MOD,FOLLOW_MOD_in_synpred120_AcslParser5791); if (state.failed) return;
pushFollow(FOLLOW_castExpression_in_synpred120_AcslParser5795);
y=castExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred120_AcslParser
// $ANTLR start synpred121_AcslParser
public final void synpred121_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:867:4: ( LPAREN type_expr RPAREN )
// AcslParser.g:867:5: LPAREN type_expr RPAREN
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred121_AcslParser5839); if (state.failed) return;
pushFollow(FOLLOW_type_expr_in_synpred121_AcslParser5841);
type_expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred121_AcslParser5843); if (state.failed) return;
}
}
// $ANTLR end synpred121_AcslParser
// $ANTLR start synpred122_AcslParser
public final void synpred122_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:880:4: ( postfixExpression )
// AcslParser.g:880:4: postfixExpression
{
pushFollow(FOLLOW_postfixExpression_in_synpred122_AcslParser5886);
postfixExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred122_AcslParser
// $ANTLR start synpred125_AcslParser
public final void synpred125_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:883:4: ( SIZEOF LPAREN type_expr )
// AcslParser.g:883:5: SIZEOF LPAREN type_expr
{
match(input,SIZEOF,FOLLOW_SIZEOF_in_synpred125_AcslParser5932); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred125_AcslParser5934); if (state.failed) return;
pushFollow(FOLLOW_type_expr_in_synpred125_AcslParser5936);
type_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred125_AcslParser
// $ANTLR start synpred126_AcslParser
public final void synpred126_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:885:4: ( SIZEOF unaryExpression )
// AcslParser.g:885:4: SIZEOF unaryExpression
{
match(input,SIZEOF,FOLLOW_SIZEOF_in_synpred126_AcslParser5967); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_synpred126_AcslParser5969);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred126_AcslParser
// $ANTLR start synpred127_AcslParser
public final void synpred127_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:887:7: ( union_key LPAREN argumentExpressionList RPAREN )
// AcslParser.g:887:7: union_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_union_key_in_synpred127_AcslParser5993);
union_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred127_AcslParser5995); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred127_AcslParser5997);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred127_AcslParser5999); if (state.failed) return;
}
}
// $ANTLR end synpred127_AcslParser
// $ANTLR start synpred128_AcslParser
public final void synpred128_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:889:7: ( inter_key LPAREN argumentExpressionList RPAREN )
// AcslParser.g:889:7: inter_key LPAREN argumentExpressionList RPAREN
{
pushFollow(FOLLOW_inter_key_in_synpred128_AcslParser6027);
inter_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred128_AcslParser6029); if (state.failed) return;
pushFollow(FOLLOW_argumentExpressionList_in_synpred128_AcslParser6031);
argumentExpressionList();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred128_AcslParser6033); if (state.failed) return;
}
}
// $ANTLR end synpred128_AcslParser
// $ANTLR start synpred129_AcslParser
public final void synpred129_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:891:7: ( valid_key LPAREN term RPAREN )
// AcslParser.g:891:7: valid_key LPAREN term RPAREN
{
pushFollow(FOLLOW_valid_key_in_synpred129_AcslParser6061);
valid_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred129_AcslParser6063); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred129_AcslParser6065);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred129_AcslParser6067); if (state.failed) return;
}
}
// $ANTLR end synpred129_AcslParser
// $ANTLR start synpred130_AcslParser
public final void synpred130_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:893:7: ( extendedQuantification )
// AcslParser.g:893:7: extendedQuantification
{
pushFollow(FOLLOW_extendedQuantification_in_synpred130_AcslParser6095);
extendedQuantification();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred130_AcslParser
// $ANTLR start synpred131_AcslParser
public final void synpred131_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:894:7: ( object_of_key LPAREN term RPAREN )
// AcslParser.g:894:7: object_of_key LPAREN term RPAREN
{
pushFollow(FOLLOW_object_of_key_in_synpred131_AcslParser6110);
object_of_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred131_AcslParser6112); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred131_AcslParser6114);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred131_AcslParser6116); if (state.failed) return;
}
}
// $ANTLR end synpred131_AcslParser
// $ANTLR start synpred132_AcslParser
public final void synpred132_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:895:7: ( mpi_expression )
// AcslParser.g:895:7: mpi_expression
{
pushFollow(FOLLOW_mpi_expression_in_synpred132_AcslParser6138);
mpi_expression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred132_AcslParser
// $ANTLR start synpred133_AcslParser
public final void synpred133_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:901:4: ( sum_key LPAREN term COMMA term COMMA term RPAREN )
// AcslParser.g:901:4: sum_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_sum_key_in_synpred133_AcslParser6192);
sum_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred133_AcslParser6194); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred133_AcslParser6196);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred133_AcslParser6198); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred133_AcslParser6200);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred133_AcslParser6202); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred133_AcslParser6204);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred133_AcslParser6206); if (state.failed) return;
}
}
// $ANTLR end synpred133_AcslParser
// $ANTLR start synpred134_AcslParser
public final void synpred134_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:903:7: ( max_key LPAREN term COMMA term COMMA term RPAREN )
// AcslParser.g:903:7: max_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_max_key_in_synpred134_AcslParser6233);
max_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred134_AcslParser6235); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred134_AcslParser6237);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred134_AcslParser6239); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred134_AcslParser6241);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred134_AcslParser6243); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred134_AcslParser6245);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred134_AcslParser6247); if (state.failed) return;
}
}
// $ANTLR end synpred134_AcslParser
// $ANTLR start synpred135_AcslParser
public final void synpred135_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:905:7: ( min_key LPAREN term COMMA term COMMA term RPAREN )
// AcslParser.g:905:7: min_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_min_key_in_synpred135_AcslParser6274);
min_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred135_AcslParser6276); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred135_AcslParser6278);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred135_AcslParser6280); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred135_AcslParser6282);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred135_AcslParser6284); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred135_AcslParser6286);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred135_AcslParser6288); if (state.failed) return;
}
}
// $ANTLR end synpred135_AcslParser
// $ANTLR start synpred136_AcslParser
public final void synpred136_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:907:7: ( product_key LPAREN term COMMA term COMMA term RPAREN )
// AcslParser.g:907:7: product_key LPAREN term COMMA term COMMA term RPAREN
{
pushFollow(FOLLOW_product_key_in_synpred136_AcslParser6315);
product_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred136_AcslParser6317); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred136_AcslParser6319);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred136_AcslParser6321); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred136_AcslParser6323);
term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred136_AcslParser6325); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred136_AcslParser6327);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred136_AcslParser6329); if (state.failed) return;
}
}
// $ANTLR end synpred136_AcslParser
// $ANTLR start synpred142_AcslParser
public final void synpred142_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:947:26: ( COMMA assignmentExpression )
// AcslParser.g:947:26: COMMA assignmentExpression
{
match(input,COMMA,FOLLOW_COMMA_in_synpred142_AcslParser6608); if (state.failed) return;
pushFollow(FOLLOW_assignmentExpression_in_synpred142_AcslParser6610);
assignmentExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred142_AcslParser
// $ANTLR start synpred143_AcslParser
public final void synpred143_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:953:4: ( constant )
// AcslParser.g:953:4: constant
{
pushFollow(FOLLOW_constant_in_synpred143_AcslParser6637);
constant();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred143_AcslParser
// $ANTLR start synpred147_AcslParser
public final void synpred147_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:956:7: ( LCURLY term BITOR binders ( SEMI term )? RCURLY )
// AcslParser.g:956:7: LCURLY term BITOR binders ( SEMI term )? RCURLY
{
match(input,LCURLY,FOLLOW_LCURLY_in_synpred147_AcslParser6658); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred147_AcslParser6660);
term();
state._fsp--;
if (state.failed) return;
match(input,BITOR,FOLLOW_BITOR_in_synpred147_AcslParser6662); if (state.failed) return;
pushFollow(FOLLOW_binders_in_synpred147_AcslParser6664);
binders();
state._fsp--;
if (state.failed) return;
// AcslParser.g:956:33: ( SEMI term )?
int alt106=2;
int LA106_0 = input.LA(1);
if ( (LA106_0==SEMI) ) {
alt106=1;
}
switch (alt106) {
case 1 :
// AcslParser.g:956:34: SEMI term
{
match(input,SEMI,FOLLOW_SEMI_in_synpred147_AcslParser6667); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred147_AcslParser6669);
term();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,RCURLY,FOLLOW_RCURLY_in_synpred147_AcslParser6673); if (state.failed) return;
}
}
// $ANTLR end synpred147_AcslParser
// $ANTLR start synpred148_AcslParser
public final void synpred148_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:958:7: ( LCURLY term RCURLY )
// AcslParser.g:958:7: LCURLY term RCURLY
{
match(input,LCURLY,FOLLOW_LCURLY_in_synpred148_AcslParser6701); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred148_AcslParser6703);
term();
state._fsp--;
if (state.failed) return;
match(input,RCURLY,FOLLOW_RCURLY_in_synpred148_AcslParser6705); if (state.failed) return;
}
}
// $ANTLR end synpred148_AcslParser
// $ANTLR start synpred153_AcslParser
public final void synpred153_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:986:4: ( true_key )
// AcslParser.g:986:4: true_key
{
pushFollow(FOLLOW_true_key_in_synpred153_AcslParser6845);
true_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred153_AcslParser
// $ANTLR start synpred154_AcslParser
public final void synpred154_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:986:15: ( false_key )
// AcslParser.g:986:15: false_key
{
pushFollow(FOLLOW_false_key_in_synpred154_AcslParser6849);
false_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred154_AcslParser
// $ANTLR start synpred155_AcslParser
public final void synpred155_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:986:28: ( result_key )
// AcslParser.g:986:28: result_key
{
pushFollow(FOLLOW_result_key_in_synpred155_AcslParser6854);
result_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred155_AcslParser
// $ANTLR start synpred156_AcslParser
public final void synpred156_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:986:41: ( nothing_key )
// AcslParser.g:986:41: nothing_key
{
pushFollow(FOLLOW_nothing_key_in_synpred156_AcslParser6858);
nothing_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred156_AcslParser
// $ANTLR start synpred159_AcslParser
public final void synpred159_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:987:14: ( null_key )
// AcslParser.g:987:14: null_key
{
pushFollow(FOLLOW_null_key_in_synpred159_AcslParser6874);
null_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred159_AcslParser
// $ANTLR start synpred160_AcslParser
public final void synpred160_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:993:7: ( mpiemptyin_key LPAREN term RPAREN )
// AcslParser.g:993:7: mpiemptyin_key LPAREN term RPAREN
{
pushFollow(FOLLOW_mpiemptyin_key_in_synpred160_AcslParser6906);
mpiemptyin_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred160_AcslParser6908); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred160_AcslParser6910);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred160_AcslParser6912); if (state.failed) return;
}
}
// $ANTLR end synpred160_AcslParser
// $ANTLR start synpred161_AcslParser
public final void synpred161_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:995:7: ( mpiemptyout_key LPAREN term RPAREN )
// AcslParser.g:995:7: mpiemptyout_key LPAREN term RPAREN
{
pushFollow(FOLLOW_mpiemptyout_key_in_synpred161_AcslParser6938);
mpiemptyout_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred161_AcslParser6940); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred161_AcslParser6942);
term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred161_AcslParser6944); if (state.failed) return;
}
}
// $ANTLR end synpred161_AcslParser
// $ANTLR start synpred162_AcslParser
public final void synpred162_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope a =null;
// AcslParser.g:997:7: ( mpiagree_key LPAREN a= term RPAREN )
// AcslParser.g:997:7: mpiagree_key LPAREN a= term RPAREN
{
pushFollow(FOLLOW_mpiagree_key_in_synpred162_AcslParser6970);
mpiagree_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred162_AcslParser6972); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred162_AcslParser6976);
a=term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred162_AcslParser6978); if (state.failed) return;
}
}
// $ANTLR end synpred162_AcslParser
// $ANTLR start synpred163_AcslParser
public final void synpred163_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope c =null;
// AcslParser.g:999:7: ( mpiregion_key LPAREN a= term COMMA b= term COMMA c= term RPAREN )
// AcslParser.g:999:7: mpiregion_key LPAREN a= term COMMA b= term COMMA c= term RPAREN
{
pushFollow(FOLLOW_mpiregion_key_in_synpred163_AcslParser7007);
mpiregion_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred163_AcslParser7009); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred163_AcslParser7013);
a=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred163_AcslParser7015); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred163_AcslParser7019);
b=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred163_AcslParser7021); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred163_AcslParser7025);
c=term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred163_AcslParser7027); if (state.failed) return;
}
}
// $ANTLR end synpred163_AcslParser
// $ANTLR start synpred164_AcslParser
public final void synpred164_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope c =null;
ParserRuleReturnScope d =null;
// AcslParser.g:1001:7: ( mpireduce_key LPAREN a= term COMMA b= term COMMA c= term COMMA d= term RPAREN )
// AcslParser.g:1001:7: mpireduce_key LPAREN a= term COMMA b= term COMMA c= term COMMA d= term RPAREN
{
pushFollow(FOLLOW_mpireduce_key_in_synpred164_AcslParser7060);
mpireduce_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred164_AcslParser7062); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred164_AcslParser7066);
a=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred164_AcslParser7068); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred164_AcslParser7072);
b=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred164_AcslParser7074); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred164_AcslParser7078);
c=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred164_AcslParser7080); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred164_AcslParser7084);
d=term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred164_AcslParser7086); if (state.failed) return;
}
}
// $ANTLR end synpred164_AcslParser
// $ANTLR start synpred165_AcslParser
public final void synpred165_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
// AcslParser.g:1003:7: ( mpiequals_key LPAREN a= term COMMA b= term RPAREN )
// AcslParser.g:1003:7: mpiequals_key LPAREN a= term COMMA b= term RPAREN
{
pushFollow(FOLLOW_mpiequals_key_in_synpred165_AcslParser7122);
mpiequals_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred165_AcslParser7124); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred165_AcslParser7128);
a=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred165_AcslParser7130); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred165_AcslParser7134);
b=term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred165_AcslParser7136); if (state.failed) return;
}
}
// $ANTLR end synpred165_AcslParser
// $ANTLR start synpred166_AcslParser
public final void synpred166_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope a =null;
// AcslParser.g:1005:7: ( mpiextent_key LPAREN a= primaryExpression RPAREN )
// AcslParser.g:1005:7: mpiextent_key LPAREN a= primaryExpression RPAREN
{
pushFollow(FOLLOW_mpiextent_key_in_synpred166_AcslParser7166);
mpiextent_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred166_AcslParser7168); if (state.failed) return;
pushFollow(FOLLOW_primaryExpression_in_synpred166_AcslParser7172);
a=primaryExpression();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred166_AcslParser7174); if (state.failed) return;
}
}
// $ANTLR end synpred166_AcslParser
// $ANTLR start synpred167_AcslParser
public final void synpred167_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope c =null;
// AcslParser.g:1007:7: ( mpioffset_key LPAREN a= term COMMA b= term COMMA c= term RPAREN )
// AcslParser.g:1007:7: mpioffset_key LPAREN a= term COMMA b= term COMMA c= term RPAREN
{
pushFollow(FOLLOW_mpioffset_key_in_synpred167_AcslParser7201);
mpioffset_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred167_AcslParser7203); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred167_AcslParser7207);
a=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred167_AcslParser7209); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred167_AcslParser7213);
b=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred167_AcslParser7215); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred167_AcslParser7219);
c=term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred167_AcslParser7221); if (state.failed) return;
}
}
// $ANTLR end synpred167_AcslParser
// $ANTLR start synpred168_AcslParser
public final void synpred168_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
ParserRuleReturnScope c =null;
// AcslParser.g:1009:7: ( mpivalid_key LPAREN a= term COMMA b= term COMMA c= term RPAREN )
// AcslParser.g:1009:7: mpivalid_key LPAREN a= term COMMA b= term COMMA c= term RPAREN
{
pushFollow(FOLLOW_mpivalid_key_in_synpred168_AcslParser7254);
mpivalid_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred168_AcslParser7256); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred168_AcslParser7260);
a=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred168_AcslParser7262); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred168_AcslParser7266);
b=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred168_AcslParser7268); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred168_AcslParser7272);
c=term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred168_AcslParser7274); if (state.failed) return;
}
}
// $ANTLR end synpred168_AcslParser
// $ANTLR start synpred169_AcslParser
public final void synpred169_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
// AcslParser.g:1016:3: ( absent_event_sendto_key LPAREN a= term COMMA b= term RPAREN )
// AcslParser.g:1016:3: absent_event_sendto_key LPAREN a= term COMMA b= term RPAREN
{
pushFollow(FOLLOW_absent_event_sendto_key_in_synpred169_AcslParser7357);
absent_event_sendto_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred169_AcslParser7359); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred169_AcslParser7363);
a=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred169_AcslParser7365); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred169_AcslParser7369);
b=term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred169_AcslParser7371); if (state.failed) return;
}
}
// $ANTLR end synpred169_AcslParser
// $ANTLR start synpred170_AcslParser
public final void synpred170_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope a =null;
ParserRuleReturnScope b =null;
// AcslParser.g:1018:5: ( absent_event_sendfrom_key LPAREN a= term COMMA b= term RPAREN )
// AcslParser.g:1018:5: absent_event_sendfrom_key LPAREN a= term COMMA b= term RPAREN
{
pushFollow(FOLLOW_absent_event_sendfrom_key_in_synpred170_AcslParser7391);
absent_event_sendfrom_key();
state._fsp--;
if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred170_AcslParser7393); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred170_AcslParser7397);
a=term();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred170_AcslParser7399); if (state.failed) return;
pushFollow(FOLLOW_term_in_synpred170_AcslParser7403);
b=term();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred170_AcslParser7405); if (state.failed) return;
}
}
// $ANTLR end synpred170_AcslParser
// $ANTLR start synpred171_AcslParser
public final void synpred171_AcslParser_fragment() throws RecognitionException {
ParserRuleReturnScope a =null;
// AcslParser.g:1020:5: ( absent_event_enter_key a= absent_event_optional_argument )
// AcslParser.g:1020:5: absent_event_enter_key a= absent_event_optional_argument
{
pushFollow(FOLLOW_absent_event_enter_key_in_synpred171_AcslParser7433);
absent_event_enter_key();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_absent_event_optional_argument_in_synpred171_AcslParser7437);
a=absent_event_optional_argument();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred171_AcslParser
// $ANTLR start synpred173_AcslParser
public final void synpred173_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:1033:7: ( mpicommrank_key )
// AcslParser.g:1033:7: mpicommrank_key
{
pushFollow(FOLLOW_mpicommrank_key_in_synpred173_AcslParser7543);
mpicommrank_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred173_AcslParser
// $ANTLR start synpred174_AcslParser
public final void synpred174_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:1037:7: ( col_key )
// AcslParser.g:1037:7: col_key
{
pushFollow(FOLLOW_col_key_in_synpred174_AcslParser7566);
col_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred174_AcslParser
// $ANTLR start synpred175_AcslParser
public final void synpred175_AcslParser_fragment() throws RecognitionException {
// AcslParser.g:1037:17: ( p2p_key )
// AcslParser.g:1037:17: p2p_key
{
pushFollow(FOLLOW_p2p_key_in_synpred175_AcslParser7570);
p2p_key();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred175_AcslParser
// Delegated rules
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 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 synpred118_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred118_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 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 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 synpred102_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred102_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 synpred33_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred33_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 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 synpred132_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred132_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 synpred168_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred168_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 synpred171_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred171_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 synpred53_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred53_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 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 synpred131_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred131_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 synpred161_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred161_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 synpred167_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred167_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 synpred134_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred134_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 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 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 synpred93_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred93_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 synpred162_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred162_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 synpred35_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred35_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 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 synpred104_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred104_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 synpred46_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred46_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 synpred135_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred135_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 synpred155_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred155_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 synpred76_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred76_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 synpred165_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred165_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 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 synpred175_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred175_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 synpred154_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred154_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 synpred174_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred174_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 synpred75_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred75_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 synpred164_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred164_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 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;
}
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 synpred173_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred173_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 synpred84_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred84_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 synpred41_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred41_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 synpred163_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred163_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 synpred34_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred34_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 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 synpred67_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred67_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 synpred160_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred160_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 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 synpred103_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred103_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 synpred156_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred156_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 synpred166_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred166_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 synpred77_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred77_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 synpred133_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred133_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 synpred100_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred100_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 synpred153_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred153_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 synpred143_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred143_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 synpred119_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred119_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 synpred169_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred169_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 synpred159_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred159_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 synpred170_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred170_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 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 synpred101_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred101_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 synpred40_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred40_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 synpred60_AcslParser() {
state.backtracking++;
int start = input.mark();
try {
synpred60_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;
}
protected DFA24 dfa24 = new DFA24(this);
protected DFA25 dfa25 = new DFA25(this);
static final String DFA24_eotS =
"\13\uffff";
static final String DFA24_eofS =
"\1\2\12\uffff";
static final String DFA24_minS =
"\1\50\1\71\1\uffff\1\25\1\0\1\26\1\uffff\1\71\1\0\1\26\1\0";
static final String DFA24_maxS =
"\2\71\1\uffff\1\151\1\0\1\151\1\uffff\1\71\1\0\1\151\1\0";
static final String DFA24_acceptS =
"\2\uffff\1\2\3\uffff\1\1\4\uffff";
static final String DFA24_specialS =
"\4\uffff\1\0\3\uffff\1\1\1\uffff\1\2}>";
static final String[] DFA24_transitionS = {
"\1\2\20\uffff\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[] DFA24_eot = DFA.unpackEncodedString(DFA24_eotS);
static final short[] DFA24_eof = DFA.unpackEncodedString(DFA24_eofS);
static final char[] DFA24_min = DFA.unpackEncodedStringToUnsignedChars(DFA24_minS);
static final char[] DFA24_max = DFA.unpackEncodedStringToUnsignedChars(DFA24_maxS);
static final short[] DFA24_accept = DFA.unpackEncodedString(DFA24_acceptS);
static final short[] DFA24_special = DFA.unpackEncodedString(DFA24_specialS);
static final short[][] DFA24_transition;
static {
int numStates = DFA24_transitionS.length;
DFA24_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA24_transition[i] = DFA.unpackEncodedString(DFA24_transitionS[i]);
}
}
protected class DFA24 extends DFA {
public DFA24(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 24;
this.eot = DFA24_eot;
this.eof = DFA24_eof;
this.min = DFA24_min;
this.max = DFA24_max;
this.accept = DFA24_accept;
this.special = DFA24_special;
this.transition = DFA24_transition;
}
@Override
public String getDescription() {
return "()* loopback of 319:9: (c+= 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 LA24_4 = input.LA(1);
int index24_4 = input.index();
input.rewind();
s = -1;
if ( ((synpred31_AcslParser()&&((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint"))))) ) {s = 6;}
else if ( (((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))) ) {s = 2;}
input.seek(index24_4);
if ( s>=0 ) return s;
break;
case 1 :
int LA24_8 = input.LA(1);
int index24_8 = input.index();
input.rewind();
s = -1;
if ( ((synpred31_AcslParser()&&((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint"))))) ) {s = 6;}
else if ( (((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))) ) {s = 2;}
input.seek(index24_8);
if ( s>=0 ) return s;
break;
case 2 :
int LA24_10 = input.LA(1);
int index24_10 = input.index();
input.rewind();
s = -1;
if ( ((synpred31_AcslParser()&&((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint"))))) ) {s = 6;}
else if ( (((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))) ) {s = 2;}
input.seek(index24_10);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 24, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA25_eotS =
"\13\uffff";
static final String DFA25_eofS =
"\1\2\12\uffff";
static final String DFA25_minS =
"\1\50\1\71\1\uffff\1\25\1\0\1\26\1\uffff\1\71\1\0\1\26\1\0";
static final String DFA25_maxS =
"\2\71\1\uffff\1\151\1\0\1\151\1\uffff\1\71\1\0\1\151\1\0";
static final String DFA25_acceptS =
"\2\uffff\1\2\3\uffff\1\1\4\uffff";
static final String DFA25_specialS =
"\4\uffff\1\0\3\uffff\1\1\1\uffff\1\2}>";
static final String[] DFA25_transitionS = {
"\1\2\20\uffff\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[] DFA25_eot = DFA.unpackEncodedString(DFA25_eotS);
static final short[] DFA25_eof = DFA.unpackEncodedString(DFA25_eofS);
static final char[] DFA25_min = DFA.unpackEncodedStringToUnsignedChars(DFA25_minS);
static final char[] DFA25_max = DFA.unpackEncodedStringToUnsignedChars(DFA25_maxS);
static final short[] DFA25_accept = DFA.unpackEncodedString(DFA25_acceptS);
static final short[] DFA25_special = DFA.unpackEncodedString(DFA25_specialS);
static final short[][] DFA25_transition;
static {
int numStates = DFA25_transitionS.length;
DFA25_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA25_transition[i] = DFA.unpackEncodedString(DFA25_transitionS[i]);
}
}
protected class DFA25 extends DFA {
public DFA25(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 25;
this.eot = DFA25_eot;
this.eof = DFA25_eof;
this.min = DFA25_min;
this.max = DFA25_max;
this.accept = DFA25_accept;
this.special = DFA25_special;
this.transition = DFA25_transition;
}
@Override
public String getDescription() {
return "330: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 LA25_4 = input.LA(1);
int index25_4 = input.index();
input.rewind();
s = -1;
if ( ((((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))&&synpred33_AcslParser())) ) {s = 6;}
else if ( (((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))) ) {s = 2;}
input.seek(index25_4);
if ( s>=0 ) return s;
break;
case 1 :
int LA25_8 = input.LA(1);
int index25_8 = input.index();
input.rewind();
s = -1;
if ( ((((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))&&synpred33_AcslParser())) ) {s = 6;}
else if ( (((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))) ) {s = 2;}
input.seek(index25_8);
if ( s>=0 ) return s;
break;
case 2 :
int LA25_10 = input.LA(1);
int index25_10 = input.index();
input.rewind();
s = -1;
if ( ((((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))&&synpred33_AcslParser())) ) {s = 6;}
else if ( (((input.LT(1).getText().equals("complete"))||(input.LT(1).getText().equals("disjoint")))) ) {s = 2;}
input.seek(index25_10);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 25, _s, input);
error(nvae);
throw nvae;
}
}
public static final BitSet FOLLOW_loop_contract_in_contract996 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_contract_in_contract1005 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logic_function_contract_in_contract1014 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assert_contract_in_contract1022 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ordered_contract_in_contract1030 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_transform_contract_in_contract1038 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_contract_block_in_loop_contract1057 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_clause_in_loop_contract_block1091 = new BitSet(new long[]{0x0200000000000002L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_loop_behavior_in_loop_contract_block1096 = new BitSet(new long[]{0x0200000000000002L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_loop_variant_in_loop_contract_block1101 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_loop_focus_in_loop_contract_block1106 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_invariant_in_loop_clause1153 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_loop_clause1155 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_assigns_in_loop_clause1178 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_loop_clause1180 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_allocation_in_loop_clause1203 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_loop_clause1205 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_invariant1237 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_invariant_key_in_loop_invariant1239 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_loop_invariant1241 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_assigns1273 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_assigns_key_in_loop_assigns1275 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_loop_assigns1277 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_allocation1311 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_alloc_key_in_loop_allocation1313 = new BitSet(new long[]{0x0200090400500010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_loop_allocation1315 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_loop_allocation1318 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_loop_allocation1320 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_allocation1348 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_frees_key_in_loop_allocation1350 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_loop_allocation1352 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_loop_behavior1384 = new BitSet(new long[]{0x0200000000200000L});
public static final BitSet FOLLOW_id_list_in_loop_behavior1388 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_loop_behavior1390 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_loop_clause_in_loop_behavior1394 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_variant1432 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_variant_key_in_loop_variant1434 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_loop_variant1436 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_loop_variant1459 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_variant_key_in_loop_variant1461 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_loop_variant1463 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_FOR_in_loop_variant1465 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_loop_variant1467 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_focus_key_in_loop_focus1505 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_loop_focus_head_in_loop_focus1507 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_loop_focus1509 = new BitSet(new long[]{0x0200090400100010L,0x000B420020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_loop_focus1511 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_loop_focus1513 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_loop_focus_head1539 = new BitSet(new long[]{0x0000000000000002L,0x0002000020000000L});
public static final BitSet FOLLOW_loop_focus_window_in_loop_focus_head1541 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_loop_focus_window1573 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_loop_focus_window1575 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_loop_focus_window1577 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_loop_focus_window1579 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_loop_focus_window1602 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_unaryExpression_in_loop_focus_window1604 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUB_in_loop_focus_window1619 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_unaryExpression_in_loop_focus_window1621 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_transform_contract_block_in_transform_contract1645 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_transform_in_transform_contract_block1679 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_transform_spec_in_transform1706 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_transform1708 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_focus_assert_spec_in_transform_spec1732 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_focus_key_in_focus_assert_spec1753 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_focus_assert_spec1755 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_focus_key_in_ordered_contract1781 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_ordered_key_in_ordered_contract1783 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_ordered_contract1793 = new BitSet(new long[]{0x0000C02000000000L,0x0000000000083000L});
public static final BitSet FOLLOW_relOp_in_ordered_contract1795 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_ordered_contract1797 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_ordered_contract1807 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_ordered_contract1809 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_ordered_contract1811 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_ordered_contract1825 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_assignmentExpression_in_ordered_contract1827 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_ordered_contract1829 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_ordered_contract1831 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pure_function_in_function_contract1870 = new BitSet(new long[]{0x0200010000000000L});
public static final BitSet FOLLOW_full_contract_block_in_function_contract1873 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logic_function_clause_in_logic_function_contract1912 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_logic_specifier_key_in_logic_function_clause1941 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_type_expr_in_logic_function_clause1943 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_logic_function_clause1947 = new BitSet(new long[]{0x0000000000000200L,0x0000000000000200L});
public static final BitSet FOLLOW_logic_function_body_in_logic_function_clause1951 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_logic_function_clause1953 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_predicate_key_in_logic_function_clause1983 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_logic_function_clause1987 = new BitSet(new long[]{0x0000000000000200L,0x0000000000000200L});
public static final BitSet FOLLOW_logic_function_body_in_logic_function_clause1991 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_logic_function_clause1993 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assert_key_in_assert_contract2033 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_assert_contract2035 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_assert_contract2037 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_logic_function_body2066 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binders_in_logic_function_body2068 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_logic_function_body2070 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_ASSIGN_in_logic_function_body2072 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_logic_function_body2074 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_logic_function_body2100 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binders_in_logic_function_body2102 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_logic_function_body2104 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSIGN_in_logic_function_body2129 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_logic_function_body2131 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pure_key_in_pure_function2166 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_pure_function2168 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_clause_in_full_contract_block2190 = new BitSet(new long[]{0x0200010000000002L});
public static final BitSet FOLLOW_contract_block_in_full_contract_block2197 = new BitSet(new long[]{0x0200010000000002L});
public static final BitSet FOLLOW_completeness_clause_block_in_full_contract_block2212 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_function_clause_in_partial_contract_block2264 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_named_behavior_block_in_partial_contract_block2271 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_completeness_clause_block_in_partial_contract_block2287 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_mpi_collective_block_in_contract_block2336 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_named_behavior_block_in_contract_block2344 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_completeness_clause_block_in_contract_block2346 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_requires_clause_in_function_clause2364 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_function_clause2366 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_terminates_clause_in_function_clause2381 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_function_clause2383 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simple_clause_in_function_clause2398 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_function_clause2400 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_named_behavior_in_named_behavior_block2425 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_completeness_clause_in_completeness_clause_block2450 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_completeness_clause_block2452 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_requires_key_in_requires_clause2477 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_requires_clause2479 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_terminates_key_in_terminates_clause2506 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_terminates_clause2508 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_binder_in_binders2535 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_binders2538 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binder_in_binders2540 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_type_expr_in_binder2575 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000200L});
public static final BitSet FOLLOW_variable_ident_in_binder2577 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_binder2580 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000200L});
public static final BitSet FOLLOW_variable_ident_in_binder2582 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_logic_type_expr_in_type_expr2619 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_specifierQualifierList_in_type_expr2634 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000A00L});
public static final BitSet FOLLOW_abstractDeclarator_in_type_expr2636 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_c_basic_type_in_specifierQualifierList2671 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_pointer_in_abstractDeclarator2704 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2728 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_abstractDeclarator2752 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000A00L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2754 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_directAbstractDeclarator2797 = new BitSet(new long[]{0x0000000000000000L,0x0000402000000A00L});
public static final BitSet FOLLOW_abstractDeclarator_in_directAbstractDeclarator2799 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclarator2801 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
public static final BitSet FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator2803 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
public static final BitSet FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator2840 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
public static final BitSet FOLLOW_STAR_in_pointer2875 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
public static final BitSet FOLLOW_LSQUARE_in_directAbstractDeclaratorSuffix2902 = new BitSet(new long[]{0x0200090400100010L,0x000B408020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_assignmentExpression_opt_in_directAbstractDeclaratorSuffix2904 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix2906 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_built_in_logic_type_in_logic_type_expr2959 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_boolean_type_in_built_in_logic_type3024 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_type_in_built_in_logic_type3028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_real_type_in_built_in_logic_type3032 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_variable_ident3049 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_variable_ident_base_in_variable_ident3051 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_ident_base_in_variable_ident3074 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_LSQUARE_in_variable_ident3076 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_variable_ident3078 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_ident_base_in_variable_ident3101 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_variable_ident_base3133 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_variable_ident_base3152 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000200L});
public static final BitSet FOLLOW_variable_ident_in_variable_ident_base3154 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_variable_ident_base3156 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_executeswhen_key_in_guards_clause3186 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_guards_clause3188 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assigns_clause_in_simple_clause3214 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ensures_clause_in_simple_clause3222 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocation_clause_in_simple_clause3231 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reads_clause_in_simple_clause3239 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_depends_clause_in_simple_clause3247 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_guards_clause_in_simple_clause3255 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_waitsfor_clause_in_simple_clause3263 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assigns_key_in_assigns_clause3280 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_assigns_clause3282 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ensures_key_in_ensures_clause3308 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_ensures_clause3310 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_alloc_key_in_allocation_clause3336 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_allocation_clause3338 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_frees_key_in_allocation_clause3355 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_allocation_clause3357 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reads_key_in_reads_clause3383 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_reads_clause3385 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_waitsfor_key_in_waitsfor_clause3411 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_waitsfor_clause3413 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dependson_key_in_depends_clause3440 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_list_in_depends_clause3442 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_in_event_list3468 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_event_list3471 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_in_event_list3473 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_event_base_in_event3501 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
public static final BitSet FOLLOW_PLUS_in_event3503 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_event3505 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_event3531 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_SUB_in_event3533 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_event3535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_event3561 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_AMPERSAND_in_event3563 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_event3565 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_event3591 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_read_key_in_event_base3624 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_event_base3626 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_event_base3628 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_event_base3630 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_write_key_in_event_base3656 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_event_base3658 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_event_base3660 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_event_base3662 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_key_in_event_base3688 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_event_base3690 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_event_base3692 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_event_base3694 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_call_key_in_event_base3720 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_event_base3722 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_event_base3724 = new BitSet(new long[]{0x0000000000400000L,0x0000002000000000L});
public static final BitSet FOLLOW_COMMA_in_event_base3727 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_event_base3729 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_event_base3733 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nothing_key_in_event_base3762 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_anyact_key_in_event_base3770 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_event_base3778 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_in_event_base3780 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_event_base3782 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpicollective_key_in_mpi_collective_block3817 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_mpi_collective_block3819 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_mpi_collective_block3821 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_mpi_collective_block3823 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_mpi_collective_kind_in_mpi_collective_block3827 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_mpi_collective_block3830 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_mpi_collective_block3832 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_partial_contract_block_in_mpi_collective_block3842 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_behavior_key_in_named_behavior3879 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_named_behavior3881 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_named_behavior3883 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_behavior_body_in_named_behavior3885 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_behavior_clause_in_behavior_body3925 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_behavior_body3927 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_assumes_clause_in_behavior_clause3956 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_requires_clause_in_behavior_clause3965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simple_clause_in_behavior_clause3973 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assumes_key_in_assumes_clause3990 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_assumes_clause3992 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_completes_key_in_completeness_clause4018 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_behaviors_key_in_completeness_clause4020 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_id_list_in_completeness_clause4022 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_disjoint_key_in_completeness_clause4050 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_behaviors_key_in_completeness_clause4052 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_id_list_in_completeness_clause4054 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_id_list4097 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_id_list4100 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_id_list4102 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_quantifierExpression_in_term4139 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_term4143 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forall_key_in_quantifierExpression4162 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binders_in_quantifierExpression4164 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_quantifierExpression4166 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_quantifierExpression4168 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_exists_key_in_quantifierExpression4193 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binders_in_quantifierExpression4195 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_quantifierExpression4197 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_quantifierExpression4199 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lambda_key_in_quantifierExpression4224 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binders_in_quantifierExpression4226 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_quantifierExpression4228 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_quantifierExpression4230 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_assignmentExpression4266 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_ASSIGN_in_assignmentExpression4268 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression4270 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_assignmentExpression4306 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression_opt4330 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalEquivExpression_in_conditionalExpression4348 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
public static final BitSet FOLLOW_QMARK_in_conditionalExpression4360 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_conditionalExpression_in_conditionalExpression4364 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_conditionalExpression4366 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_conditionalExpression4384 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_conditionalExpression4390 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_logicalEquivExpression4462 = new BitSet(new long[]{0x0000004000000002L});
public static final BitSet FOLLOW_EQUIV_ACSL_in_logicalEquivExpression4480 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_logicalEquivExpression4485 = new BitSet(new long[]{0x0000004000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_logicalEquivExpression4491 = new BitSet(new long[]{0x0000004000000002L});
public static final BitSet FOLLOW_logicalOrExpression_in_logicalImpliesExpression4551 = new BitSet(new long[]{0x6000000000000002L});
public static final BitSet FOLLOW_IMPLIES_in_logicalImpliesExpression4566 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_IMPLIES_ACSL_in_logicalImpliesExpression4568 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_logicalImpliesExpression4574 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_logicalImpliesExpression4580 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalXorExpression_in_logicalOrExpression4656 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
public static final BitSet FOLLOW_OR_in_logicalOrExpression4674 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_logicalOrExpression4679 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
public static final BitSet FOLLOW_logicalXorExpression_in_logicalOrExpression4685 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
public static final BitSet FOLLOW_logicalAndExpression_in_logicalXorExpression4744 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
public static final BitSet FOLLOW_XOR_ACSL_in_logicalXorExpression4762 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_logicalXorExpression4767 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
public static final BitSet FOLLOW_logicalAndExpression_in_logicalXorExpression4773 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
public static final BitSet FOLLOW_bitwiseEquivExpression_in_logicalAndExpression4831 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_AND_in_logicalAndExpression4849 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_logicalAndExpression4854 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_bitwiseEquivExpression_in_logicalAndExpression4860 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_bitwiseImpliesExpression_in_bitwiseEquivExpression4918 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
public static final BitSet FOLLOW_bitequiv_op_in_bitwiseEquivExpression4936 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_bitwiseImpliesExpression_in_bitwiseEquivExpression4940 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
public static final BitSet FOLLOW_inclusiveOrExpression_in_bitwiseImpliesExpression4996 = new BitSet(new long[]{0x0000000000000002L,0x0000000000010000L});
public static final BitSet FOLLOW_bitimplies_op_in_bitwiseImpliesExpression5010 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_bitwiseImpliesExpression_in_bitwiseImpliesExpression5014 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression5085 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_BITOR_in_inclusiveOrExpression5099 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression5103 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression5150 = new BitSet(new long[]{0x0000000000004002L});
public static final BitSet FOLLOW_BITXOR_in_exclusiveOrExpression5163 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression5167 = new BitSet(new long[]{0x0000000000004002L});
public static final BitSet FOLLOW_relationalExpression_in_andExpression5211 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_AMPERSAND_in_andExpression5224 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_relationalExpression_in_andExpression5228 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression5309 = new BitSet(new long[]{0x0000C02000000002L,0x0000000000083000L});
public static final BitSet FOLLOW_relOp_in_relationalExpression5324 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression5328 = new BitSet(new long[]{0x0000C02000000002L,0x0000000000083000L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression5386 = new BitSet(new long[]{0x0000000000000002L,0x0000140000000000L});
public static final BitSet FOLLOW_SHIFTLEFT_in_shiftExpression5403 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression5407 = new BitSet(new long[]{0x0000000000000002L,0x0000140000000000L});
public static final BitSet FOLLOW_SHIFTRIGHT_in_shiftExpression5447 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression5451 = new BitSet(new long[]{0x0000000000000002L,0x0000140000000000L});
public static final BitSet FOLLOW_additiveExpression_in_rangeExpression5505 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_DOTDOT_in_rangeExpression5517 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeSuffix_in_rangeExpression5521 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_additiveExpression_in_rangeSuffix5575 = new BitSet(new long[]{0x0001000000000002L});
public static final BitSet FOLLOW_HASH_in_rangeSuffix5578 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_additiveExpression_in_rangeSuffix5581 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression5600 = new BitSet(new long[]{0x0000000000000002L,0x0002000020000000L});
public static final BitSet FOLLOW_PLUS_in_additiveExpression5617 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression5621 = new BitSet(new long[]{0x0000000000000002L,0x0002000020000000L});
public static final BitSet FOLLOW_SUB_in_additiveExpression5661 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression5665 = new BitSet(new long[]{0x0000000000000002L,0x0002000020000000L});
public static final BitSet FOLLOW_castExpression_in_multiplicativeExpression5718 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_STAR_in_multiplicativeExpression5728 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_multiplicativeExpression5732 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_DIV_in_multiplicativeExpression5758 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_multiplicativeExpression5762 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_MOD_in_multiplicativeExpression5791 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_multiplicativeExpression5795 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_LPAREN_in_castExpression5849 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_type_expr_in_castExpression5851 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_castExpression5853 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_castExpression5855 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_castExpression5873 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfixExpression_in_unaryExpression5886 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_op_in_unaryExpression5891 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_unaryExpression5896 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifierExpression_in_unaryExpression5902 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unaryExpression5940 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression5942 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_type_expr_in_unaryExpression5944 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression5946 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unaryExpression5967 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression5969 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_union_key_in_unaryExpression5993 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression5995 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_unaryExpression5997 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression5999 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_inter_key_in_unaryExpression6027 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression6029 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_unaryExpression6031 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression6033 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_valid_key_in_unaryExpression6061 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression6063 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_unaryExpression6065 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression6067 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_extendedQuantification_in_unaryExpression6095 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_object_of_key_in_unaryExpression6110 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression6112 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_unaryExpression6114 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression6116 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpi_expression_in_unaryExpression6138 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_old_key_in_unaryExpression6154 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression6156 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_unaryExpression6158 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression6160 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sum_key_in_extendedQuantification6192 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_extendedQuantification6194 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6196 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6198 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6200 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6202 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6204 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_extendedQuantification6206 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_max_key_in_extendedQuantification6233 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_extendedQuantification6235 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6237 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6239 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6241 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6243 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6245 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_extendedQuantification6247 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_min_key_in_extendedQuantification6274 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_extendedQuantification6276 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6278 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6280 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6282 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6284 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6286 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_extendedQuantification6288 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_product_key_in_extendedQuantification6315 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_extendedQuantification6317 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6319 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6321 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6323 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6325 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6327 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_extendedQuantification6329 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_numof_key_in_extendedQuantification6356 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_extendedQuantification6358 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6360 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6362 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6364 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_extendedQuantification6366 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_extendedQuantification6368 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_extendedQuantification6370 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primaryExpression_in_postfixExpression6403 = new BitSet(new long[]{0x0000000010000102L,0x0000000000000A00L});
public static final BitSet FOLLOW_LSQUARE_in_postfixExpression6420 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_postfixExpression6422 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_postfixExpression6424 = new BitSet(new long[]{0x0000000010000102L,0x0000000000000A00L});
public static final BitSet FOLLOW_LPAREN_in_postfixExpression6498 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_postfixExpression6500 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_postfixExpression6502 = new BitSet(new long[]{0x0000000010000102L,0x0000000000000A00L});
public static final BitSet FOLLOW_DOT_in_postfixExpression6533 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfixExpression6535 = new BitSet(new long[]{0x0000000010000102L,0x0000000000000A00L});
public static final BitSet FOLLOW_ARROW_in_postfixExpression6558 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfixExpression6560 = new BitSet(new long[]{0x0000000010000102L,0x0000000000000A00L});
public static final BitSet FOLLOW_assignmentExpression_in_argumentExpressionList6605 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_argumentExpressionList6608 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_assignmentExpression_in_argumentExpressionList6610 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_constant_in_primaryExpression6637 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_primaryExpression6645 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_LITERAL_in_primaryExpression6650 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_primaryExpression6658 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_primaryExpression6660 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_primaryExpression6662 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binders_in_primaryExpression6664 = new BitSet(new long[]{0x0000000000000000L,0x0000020800000000L});
public static final BitSet FOLLOW_SEMI_in_primaryExpression6667 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_primaryExpression6669 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_primaryExpression6673 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_primaryExpression6701 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_primaryExpression6703 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_primaryExpression6705 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_primaryExpression6725 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_primaryExpression6727 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_primaryExpression6729 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_remoteExpression_in_primaryExpression6747 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_remote_key_in_remoteExpression6764 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_remoteExpression6766 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_shiftExpression_in_remoteExpression6770 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_remoteExpression6772 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_remoteExpression6776 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_remoteExpression6778 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_constantExpression6818 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_constant6830 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOATING_CONSTANT_in_constant6835 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHARACTER_CONSTANT_in_constant6840 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_true_key_in_constant6845 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_false_key_in_constant6849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_result_key_in_constant6854 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nothing_key_in_constant6858 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELLIPSIS_in_constant6862 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SELF_in_constant6870 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_null_key_in_constant6874 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpi_constant_in_constant6882 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiemptyin_key_in_mpi_expression6906 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_mpi_expression6908 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression6910 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_mpi_expression6912 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiemptyout_key_in_mpi_expression6938 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_mpi_expression6940 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression6942 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_mpi_expression6944 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiagree_key_in_mpi_expression6970 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_mpi_expression6972 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression6976 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_mpi_expression6978 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiregion_key_in_mpi_expression7007 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_mpi_expression7009 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7013 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_mpi_expression7015 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7019 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_mpi_expression7021 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7025 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_mpi_expression7027 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpireduce_key_in_mpi_expression7060 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_mpi_expression7062 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7066 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_mpi_expression7068 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7072 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_mpi_expression7074 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7078 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_mpi_expression7080 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7084 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_mpi_expression7086 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiequals_key_in_mpi_expression7122 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_mpi_expression7124 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7128 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_mpi_expression7130 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7134 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_mpi_expression7136 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiextent_key_in_mpi_expression7166 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_mpi_expression7168 = new BitSet(new long[]{0x0200090400100000L,0x0001000000000248L,0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_primaryExpression_in_mpi_expression7172 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_mpi_expression7174 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpioffset_key_in_mpi_expression7201 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_mpi_expression7203 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7207 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_mpi_expression7209 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7213 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_mpi_expression7215 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7219 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_mpi_expression7221 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpivalid_key_in_mpi_expression7254 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_mpi_expression7256 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7260 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_mpi_expression7262 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7266 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_mpi_expression7268 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_mpi_expression7272 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_mpi_expression7274 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_absent_key_in_mpi_expression7307 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_absent_event_in_mpi_expression7311 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_after_key_in_mpi_expression7313 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_absent_event_in_mpi_expression7317 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_until_key_in_mpi_expression7319 = new BitSet(new long[]{0x0000010000000000L});
public static final BitSet FOLLOW_absent_event_in_mpi_expression7323 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_absent_event_sendto_key_in_absent_event7357 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_absent_event7359 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_absent_event7363 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_absent_event7365 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_absent_event7369 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_absent_event7371 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_absent_event_sendfrom_key_in_absent_event7391 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_absent_event7393 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_absent_event7397 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_absent_event7399 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_absent_event7403 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_absent_event7405 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_absent_event_enter_key_in_absent_event7433 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_absent_event_optional_argument_in_absent_event7437 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_absent_event_exit_key_in_absent_event7460 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_absent_event_optional_argument_in_absent_event7464 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_absent_event_optional_argument7488 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_absent_event_optional_argument7490 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_absent_event_optional_argument7492 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpicommrank_key_in_mpi_constant7543 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpicommsize_key_in_mpi_constant7548 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_col_key_in_mpi_collective_kind7566 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p2p_key_in_mpi_collective_kind7570 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_both_key_in_mpi_collective_kind7574 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUSMINUS_in_bitimplies_op7588 = new BitSet(new long[]{0x0000400000000000L});
public static final BitSet FOLLOW_GT_in_bitimplies_op7590 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LT_in_bitequiv_op7603 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_MINUSMINUS_in_bitequiv_op7605 = new BitSet(new long[]{0x0000400000000000L});
public static final BitSet FOLLOW_GT_in_bitequiv_op7607 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_boolean_type7667 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_integer_type7702 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_real_type7737 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_alloc_key7780 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_assigns_key7801 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_assumes_key7822 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_assert_key7842 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_behaviors_key7862 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_behavior_key7883 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_completes_key7904 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_decreases_key7924 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_disjoint_key7945 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_ensures_key7966 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_frees_key7991 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_focus_key8012 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_ordered_key8030 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_invariant_key8049 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_loop_key8066 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_requires_key8086 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_terminates_key8109 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_variant_key8131 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_waitsfor_key8150 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_predicate_key8166 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_logic_specifier_key8179 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_empty_key8199 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_exists_key8218 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_false_key8249 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_forall_key8280 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_inter_key8311 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_let_key8330 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_nothing_key8349 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_null_key8380 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_old_key8411 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_result_key8430 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_true_key8461 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_union_key8492 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_valid_key8511 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_with_key8530 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_executeswhen_key8551 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_pure_key8571 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_reads_key8602 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_remote_key8625 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_access_key8647 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_anyact_key8667 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_call_key8699 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_dependson_key8718 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_object_of_key8741 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_read_key8761 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_region_of_key8785 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_write_key8804 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_both_key8831 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_col_key8862 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_p2p_key8893 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpiagree_key8924 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpicollective_key8944 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpicommsize_key8964 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpicommrank_key8995 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpiemptyin_key9026 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpiemptyout_key9046 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpiequals_key9066 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpiextent_key9086 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpioffset_key9106 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpivalid_key9123 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpiregion_key9143 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_mpireduce_key9156 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_absent_key9176 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_after_key9196 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_until_key9216 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_absent_event_sendto_key9236 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_absent_event_sendfrom_key9256 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_absent_event_enter_key9276 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_absent_event_exit_key9296 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_lambda_key9311 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_sum_key9325 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_max_key9338 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_min_key9352 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_product_key9365 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXTENDED_IDENTIFIER_in_numof_key9379 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_contract_in_synpred1_AcslParser996 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_contract_in_synpred2_AcslParser1005 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logic_function_contract_in_synpred3_AcslParser1014 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assert_contract_in_synpred4_AcslParser1022 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ordered_contract_in_synpred5_AcslParser1030 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_clause_in_synpred6_AcslParser1091 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_variant_in_synpred8_AcslParser1101 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_invariant_in_synpred10_AcslParser1153 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred10_AcslParser1155 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_assigns_in_synpred11_AcslParser1178 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred11_AcslParser1180 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_synpred13_AcslParser1311 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_alloc_key_in_synpred13_AcslParser1313 = new BitSet(new long[]{0x0200090400500010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred13_AcslParser1315 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_synpred13_AcslParser1318 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred13_AcslParser1320 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_clause_in_synpred14_AcslParser1394 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_key_in_synpred15_AcslParser1432 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_variant_key_in_synpred15_AcslParser1434 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred15_AcslParser1436 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_synpred17_AcslParser1573 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_synpred17_AcslParser1575 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_synpred17_AcslParser1577 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_synpred17_AcslParser1579 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_synpred18_AcslParser1602 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_unaryExpression_in_synpred18_AcslParser1604 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pure_function_in_synpred21_AcslParser1870 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred24_AcslParser2066 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binders_in_synpred24_AcslParser2068 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred24_AcslParser2070 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_ASSIGN_in_synpred24_AcslParser2072 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred24_AcslParser2074 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred25_AcslParser2100 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binders_in_synpred25_AcslParser2102 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred25_AcslParser2104 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_clause_in_synpred26_AcslParser2190 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_clause_in_synpred29_AcslParser2264 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_named_behavior_block_in_synpred30_AcslParser2271 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_completeness_clause_block_in_synpred31_AcslParser2287 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_completeness_clause_block_in_synpred33_AcslParser2346 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_requires_clause_in_synpred34_AcslParser2364 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred34_AcslParser2366 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_terminates_clause_in_synpred35_AcslParser2381 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred35_AcslParser2383 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_synpred40_AcslParser2704 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_synpred41_AcslParser2728 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_synpred42_AcslParser2752 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000A00L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_synpred42_AcslParser2754 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_synpred46_AcslParser2875 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_boolean_type_in_synpred53_AcslParser3024 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_type_in_synpred54_AcslParser3028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variable_ident_base_in_synpred56_AcslParser3074 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_LSQUARE_in_synpred56_AcslParser3076 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_synpred56_AcslParser3078 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assigns_clause_in_synpred58_AcslParser3214 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ensures_clause_in_synpred59_AcslParser3222 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocation_clause_in_synpred60_AcslParser3231 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reads_clause_in_synpred61_AcslParser3239 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_depends_clause_in_synpred62_AcslParser3247 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_guards_clause_in_synpred63_AcslParser3255 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_alloc_key_in_synpred64_AcslParser3336 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred64_AcslParser3338 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_synpred66_AcslParser3501 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
public static final BitSet FOLLOW_PLUS_in_synpred66_AcslParser3503 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_synpred66_AcslParser3505 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_synpred67_AcslParser3531 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_SUB_in_synpred67_AcslParser3533 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_synpred67_AcslParser3535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_event_base_in_synpred68_AcslParser3561 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_AMPERSAND_in_synpred68_AcslParser3563 = new BitSet(new long[]{0x0000010000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_event_base_in_synpred68_AcslParser3565 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_read_key_in_synpred69_AcslParser3624 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred69_AcslParser3626 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred69_AcslParser3628 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred69_AcslParser3630 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_write_key_in_synpred70_AcslParser3656 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred70_AcslParser3658 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred70_AcslParser3660 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred70_AcslParser3662 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_access_key_in_synpred71_AcslParser3688 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred71_AcslParser3690 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred71_AcslParser3692 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred71_AcslParser3694 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_call_key_in_synpred73_AcslParser3720 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred73_AcslParser3722 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_synpred73_AcslParser3724 = new BitSet(new long[]{0x0000000000400000L,0x0000002000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred73_AcslParser3727 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred73_AcslParser3729 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred73_AcslParser3733 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nothing_key_in_synpred74_AcslParser3762 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_anyact_key_in_synpred75_AcslParser3770 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_behavior_clause_in_synpred76_AcslParser3925 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred76_AcslParser3927 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assumes_clause_in_synpred77_AcslParser3956 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_requires_clause_in_synpred78_AcslParser3965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_completes_key_in_synpred79_AcslParser4018 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_behaviors_key_in_synpred79_AcslParser4020 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_id_list_in_synpred79_AcslParser4022 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forall_key_in_synpred83_AcslParser4162 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binders_in_synpred83_AcslParser4164 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred83_AcslParser4166 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred83_AcslParser4168 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_exists_key_in_synpred84_AcslParser4193 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binders_in_synpred84_AcslParser4195 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_synpred84_AcslParser4197 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred84_AcslParser4199 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_synpred85_AcslParser4260 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_ASSIGN_in_synpred85_AcslParser4262 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_QMARK_in_synpred88_AcslParser4360 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_conditionalExpression_in_synpred88_AcslParser4364 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_synpred88_AcslParser4366 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred88_AcslParser4384 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_synpred88_AcslParser4390 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQUIV_ACSL_in_synpred90_AcslParser4480 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred90_AcslParser4485 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_synpred90_AcslParser4491 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_synpred93_AcslParser4565 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred93_AcslParser4574 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_synpred93_AcslParser4580 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OR_in_synpred95_AcslParser4674 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred95_AcslParser4679 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalXorExpression_in_synpred95_AcslParser4685 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_XOR_ACSL_in_synpred97_AcslParser4762 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred97_AcslParser4767 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalAndExpression_in_synpred97_AcslParser4773 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AND_in_synpred99_AcslParser4849 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_quantifierExpression_in_synpred99_AcslParser4854 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bitwiseEquivExpression_in_synpred99_AcslParser4860 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bitequiv_op_in_synpred100_AcslParser4936 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_bitwiseImpliesExpression_in_synpred100_AcslParser4940 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bitimplies_op_in_synpred101_AcslParser5010 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_bitwiseImpliesExpression_in_synpred101_AcslParser5014 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BITOR_in_synpred102_AcslParser5099 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_synpred102_AcslParser5103 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BITXOR_in_synpred103_AcslParser5163 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_andExpression_in_synpred103_AcslParser5167 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AMPERSAND_in_synpred104_AcslParser5224 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_relationalExpression_in_synpred104_AcslParser5228 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_relOp_in_synpred110_AcslParser5324 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_shiftExpression_in_synpred110_AcslParser5328 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_relOp_in_synpred111_AcslParser5324 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_shiftExpression_in_synpred111_AcslParser5328 = new BitSet(new long[]{0x0000C02000000002L,0x0000000000083000L});
public static final BitSet FOLLOW_SHIFTLEFT_in_synpred112_AcslParser5403 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_synpred112_AcslParser5407 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHIFTRIGHT_in_synpred113_AcslParser5447 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeExpression_in_synpred113_AcslParser5451 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOTDOT_in_synpred114_AcslParser5517 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_rangeSuffix_in_synpred114_AcslParser5521 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HASH_in_synpred115_AcslParser5578 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_additiveExpression_in_synpred115_AcslParser5581 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_synpred116_AcslParser5617 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_multiplicativeExpression_in_synpred116_AcslParser5621 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUB_in_synpred117_AcslParser5661 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_multiplicativeExpression_in_synpred117_AcslParser5665 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_synpred118_AcslParser5728 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_synpred118_AcslParser5732 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIV_in_synpred119_AcslParser5758 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_synpred119_AcslParser5762 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MOD_in_synpred120_AcslParser5791 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_castExpression_in_synpred120_AcslParser5795 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred121_AcslParser5839 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_type_expr_in_synpred121_AcslParser5841 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred121_AcslParser5843 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfixExpression_in_synpred122_AcslParser5886 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_synpred125_AcslParser5932 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred125_AcslParser5934 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_type_expr_in_synpred125_AcslParser5936 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_synpred126_AcslParser5967 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_unaryExpression_in_synpred126_AcslParser5969 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_union_key_in_synpred127_AcslParser5993 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred127_AcslParser5995 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred127_AcslParser5997 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred127_AcslParser5999 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_inter_key_in_synpred128_AcslParser6027 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred128_AcslParser6029 = new BitSet(new long[]{0x0200090400100010L,0x000B402020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_argumentExpressionList_in_synpred128_AcslParser6031 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred128_AcslParser6033 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_valid_key_in_synpred129_AcslParser6061 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred129_AcslParser6063 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred129_AcslParser6065 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred129_AcslParser6067 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_extendedQuantification_in_synpred130_AcslParser6095 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_object_of_key_in_synpred131_AcslParser6110 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred131_AcslParser6112 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred131_AcslParser6114 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred131_AcslParser6116 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpi_expression_in_synpred132_AcslParser6138 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sum_key_in_synpred133_AcslParser6192 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred133_AcslParser6194 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred133_AcslParser6196 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred133_AcslParser6198 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred133_AcslParser6200 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred133_AcslParser6202 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred133_AcslParser6204 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred133_AcslParser6206 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_max_key_in_synpred134_AcslParser6233 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred134_AcslParser6235 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred134_AcslParser6237 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred134_AcslParser6239 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred134_AcslParser6241 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred134_AcslParser6243 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred134_AcslParser6245 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred134_AcslParser6247 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_min_key_in_synpred135_AcslParser6274 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred135_AcslParser6276 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred135_AcslParser6278 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred135_AcslParser6280 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred135_AcslParser6282 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred135_AcslParser6284 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred135_AcslParser6286 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred135_AcslParser6288 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_product_key_in_synpred136_AcslParser6315 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred136_AcslParser6317 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred136_AcslParser6319 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred136_AcslParser6321 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred136_AcslParser6323 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred136_AcslParser6325 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred136_AcslParser6327 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred136_AcslParser6329 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_synpred142_AcslParser6608 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_assignmentExpression_in_synpred142_AcslParser6610 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constant_in_synpred143_AcslParser6637 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_synpred147_AcslParser6658 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred147_AcslParser6660 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_synpred147_AcslParser6662 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000000L,0x0000480101000100L,0x0000000008000080L});
public static final BitSet FOLLOW_binders_in_synpred147_AcslParser6664 = new BitSet(new long[]{0x0000000000000000L,0x0000020800000000L});
public static final BitSet FOLLOW_SEMI_in_synpred147_AcslParser6667 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred147_AcslParser6669 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_synpred147_AcslParser6673 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_synpred148_AcslParser6701 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred148_AcslParser6703 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_synpred148_AcslParser6705 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_true_key_in_synpred153_AcslParser6845 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_false_key_in_synpred154_AcslParser6849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_result_key_in_synpred155_AcslParser6854 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nothing_key_in_synpred156_AcslParser6858 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_null_key_in_synpred159_AcslParser6874 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiemptyin_key_in_synpred160_AcslParser6906 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred160_AcslParser6908 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred160_AcslParser6910 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred160_AcslParser6912 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiemptyout_key_in_synpred161_AcslParser6938 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred161_AcslParser6940 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred161_AcslParser6942 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred161_AcslParser6944 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiagree_key_in_synpred162_AcslParser6970 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred162_AcslParser6972 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred162_AcslParser6976 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred162_AcslParser6978 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiregion_key_in_synpred163_AcslParser7007 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred163_AcslParser7009 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred163_AcslParser7013 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred163_AcslParser7015 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred163_AcslParser7019 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred163_AcslParser7021 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred163_AcslParser7025 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred163_AcslParser7027 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpireduce_key_in_synpred164_AcslParser7060 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred164_AcslParser7062 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred164_AcslParser7066 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred164_AcslParser7068 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred164_AcslParser7072 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred164_AcslParser7074 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred164_AcslParser7078 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred164_AcslParser7080 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred164_AcslParser7084 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred164_AcslParser7086 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiequals_key_in_synpred165_AcslParser7122 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred165_AcslParser7124 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred165_AcslParser7128 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred165_AcslParser7130 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred165_AcslParser7134 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred165_AcslParser7136 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpiextent_key_in_synpred166_AcslParser7166 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred166_AcslParser7168 = new BitSet(new long[]{0x0200090400100000L,0x0001000000000248L,0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_primaryExpression_in_synpred166_AcslParser7172 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred166_AcslParser7174 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpioffset_key_in_synpred167_AcslParser7201 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred167_AcslParser7203 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred167_AcslParser7207 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred167_AcslParser7209 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred167_AcslParser7213 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred167_AcslParser7215 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred167_AcslParser7219 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred167_AcslParser7221 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpivalid_key_in_synpred168_AcslParser7254 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred168_AcslParser7256 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred168_AcslParser7260 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred168_AcslParser7262 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred168_AcslParser7266 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred168_AcslParser7268 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred168_AcslParser7272 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred168_AcslParser7274 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_absent_event_sendto_key_in_synpred169_AcslParser7357 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred169_AcslParser7359 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred169_AcslParser7363 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred169_AcslParser7365 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred169_AcslParser7369 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred169_AcslParser7371 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_absent_event_sendfrom_key_in_synpred170_AcslParser7391 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred170_AcslParser7393 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred170_AcslParser7397 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_synpred170_AcslParser7399 = new BitSet(new long[]{0x0200090400100010L,0x000B400020200248L,0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_term_in_synpred170_AcslParser7403 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred170_AcslParser7405 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_absent_event_enter_key_in_synpred171_AcslParser7433 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_absent_event_optional_argument_in_synpred171_AcslParser7437 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_mpicommrank_key_in_synpred173_AcslParser7543 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_col_key_in_synpred174_AcslParser7566 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_p2p_key_in_synpred175_AcslParser7570 = new BitSet(new long[]{0x0000000000000002L});
}