OmpParser_CivlCParser.java
// $ANTLR 3.5.2 CivlCParser.g 2026-06-29 15:03:34
package dev.civl.abc.front.c.parse;
import java.util.Set;
import java.util.HashSet;
import dev.civl.abc.front.IF.RuntimeParseException;
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 OmpParser_CivlCParser extends Parser {
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 ABSTRACT_DECLARATOR=225;
public static final int ANNOTATION=226;
public static final int ARGUMENT_LIST=227;
public static final int ARRAY_ELEMENT_DESIGNATOR=228;
public static final int ARRAY_SUFFIX=229;
public static final int BLOCK_ITEM_LIST=230;
public static final int BOUND_VARIABLE_DECLARATION=231;
public static final int BOUND_VARIABLE_DECLARATION_LIST=232;
public static final int BOUND_VARIABLE_NAME_LIST=233;
public static final int BOUND_VARIABLE_RANGE=234;
public static final int BOUND_VARIABLE_RANGE_LIST=235;
public static final int CALL=236;
public static final int CASE_LABELED_STATEMENT=237;
public static final int CAST=238;
public static final int COMPOUND_LITERAL=239;
public static final int COMPOUND_STATEMENT=240;
public static final int CONTRACT=241;
public static final int DECLARATION=242;
public static final int DECLARATION_LIST=243;
public static final int DECLARATION_SPECIFIERS=244;
public static final int DECLARATOR=245;
public static final int DEFAULT_LABELED_STATEMENT=246;
public static final int DERIVATIVE_EXPRESSION=247;
public static final int DESIGNATED_INITIALIZER=248;
public static final int DESIGNATION=249;
public static final int DIRECT_ABSTRACT_DECLARATOR=250;
public static final int DIRECT_DECLARATOR=251;
public static final int ENUMERATION_CONSTANT=252;
public static final int ENUMERATOR=253;
public static final int ENUMERATOR_LIST=254;
public static final int EXPRESSION_STATEMENT=255;
public static final int FIELD_DESIGNATOR=256;
public static final int FUNCTION_DEFINITION=257;
public static final int FUNCTION_SUFFIX=258;
public static final int GENERIC_ASSOCIATION=259;
public static final int GENERIC_ASSOC_LIST=260;
public static final int IDENTIFIER_LABELED_STATEMENT=261;
public static final int IDENTIFIER_LIST=262;
public static final int INDEX=263;
public static final int INITIALIZER_LIST=264;
public static final int INIT_DECLARATOR=265;
public static final int INIT_DECLARATOR_LIST=266;
public static final int INTERVAL=267;
public static final int INTERVAL_SEQ=268;
public static final int LIB_NAME=269;
public static final int OPERATOR=270;
public static final int PARAMETER_DECLARATION=271;
public static final int PARAMETER_LIST=272;
public static final int PARAMETER_TYPE_LIST=273;
public static final int PARENTHESIZED_EXPRESSION=274;
public static final int PARTIAL=275;
public static final int PARTIAL_LIST=276;
public static final int POINTER=277;
public static final int POST_DECREMENT=278;
public static final int POST_INCREMENT=279;
public static final int PRE_DECREMENT=280;
public static final int PRE_INCREMENT=281;
public static final int PROGRAM=282;
public static final int QUANTIFIED=283;
public static final int SCALAR_INITIALIZER=284;
public static final int SPECIFIER_QUALIFIER_LIST=285;
public static final int STATEMENT=286;
public static final int STATEMENT_EXPRESSION=287;
public static final int STRUCT_DECLARATION=288;
public static final int STRUCT_DECLARATION_LIST=289;
public static final int STRUCT_DECLARATOR=290;
public static final int STRUCT_DECLARATOR_LIST=291;
public static final int SUM=292;
public static final int TOKEN_LIST=293;
public static final int TRANSLATION_UNIT=294;
public static final int TYPE=295;
public static final int TYPEDEF_NAME=296;
public static final int TYPEOF_EXPRESSION=297;
public static final int TYPEOF_TYPE=298;
public static final int TYPE_NAME=299;
public static final int TYPE_QUALIFIER_LIST=300;
public static final int BARRIER=301;
public static final int CAPTURE=302;
public static final int COLLAPSE=303;
public static final int COPYIN=304;
public static final int COPYPRIVATE=305;
public static final int CRITICAL=306;
public static final int DYNAMIC=307;
public static final int FLUSH=308;
public static final int FST_PRIVATE=309;
public static final int GUIDED=310;
public static final int LST_PRIVATE=311;
public static final int MASTER=312;
public static final int NONE=313;
public static final int NOWAIT=314;
public static final int NUM_THREADS=315;
public static final int OMPATOMIC=316;
public static final int ORDERED=317;
public static final int PARALLEL=318;
public static final int PRIVATE=319;
public static final int READ=320;
public static final int REDUCTION=321;
public static final int RUNTIME=322;
public static final int SAFELEN=323;
public static final int SCHEDULE=324;
public static final int SECTION=325;
public static final int SECTIONS=326;
public static final int SEQ_CST=327;
public static final int SIMD=328;
public static final int SIMDLEN=329;
public static final int SINGLE=330;
public static final int THD_PRIVATE=331;
public static final int WRITE=332;
public static final int DATA_CLAUSE=386;
public static final int FOR_CLAUSE=427;
public static final int PARALLEL_FOR=477;
public static final int PARALLEL_SECTIONS=478;
public static final int UNIQUE_FOR=560;
public static final int UNIQUE_PARALLEL=561;
// delegates
public Parser[] getDelegates() {
return new Parser[] {};
}
// delegators
public OmpParser gOmpParser;
public OmpParser gParent;
protected static class Symbols_scope {
Set<String> types;
Set<String> enumerationConstants;
boolean isFunctionDefinition;
}
protected Stack<Symbols_scope> Symbols_stack = new Stack<Symbols_scope>();
protected static class DeclarationScope_scope {
boolean isTypedef;
boolean hasTypeSpec;
}
protected Stack<DeclarationScope_scope> DeclarationScope_stack = new Stack<DeclarationScope_scope>();
public OmpParser_CivlCParser(TokenStream input, OmpParser gOmpParser) {
this(input, new RecognizerSharedState(), gOmpParser);
}
public OmpParser_CivlCParser(TokenStream input, RecognizerSharedState state, OmpParser gOmpParser) {
super(input, state);
this.gOmpParser = gOmpParser;
gParent = gOmpParser;
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
@Override public String[] getTokenNames() { return OmpParser.tokenNames; }
@Override public String getGrammarFileName() { return "CivlCParser.g"; }
public void setSymbols_stack(Stack<ScopeSymbols> symbols){
this.Symbols_stack = new Stack();
while(!symbols.isEmpty()){
ScopeSymbols current = symbols.pop();
Symbols_scope mySymbols = new Symbols_scope();
mySymbols.types = current.types;
mySymbols.enumerationConstants = current.enumerationConstants;
Symbols_stack.add(mySymbols);
}
}
@Override
public String getSourceName() { return null; }
@Override
public void displayRecognitionError(String[] tokenNames, RecognitionException e) {
String hdr = getErrorHeader(e);
String msg = getErrorMessage(e, tokenNames);
throw new RuntimeParseException(hdr+" "+msg, e.token);
}
@Override
public void emitErrorMessage(String msg) { // don't try to recover!
throw new RuntimeParseException(msg);
}
// Is name the name of a type defined by an earlier typedef?
// Look through the symbol stack to find out.
boolean isTypeName(String name) {
for (Object scope : Symbols_stack)
if (((Symbols_scope)scope).types.contains(name)) {
return true;
}
return false;
}
// Looks in the symbol stack to determine whether name is the name
// of an enumeration constant.
boolean isEnumerationConstant(String name) {
boolean answer = false;
for (Object scope : Symbols_stack) {
if (((Symbols_scope)scope).enumerationConstants.contains(name)) {
answer=true;
break;
}
}
return answer;
}
/* This function returns true iff the current token is
the first token X in the init-declarator-list of a
declaration. This holds iff (1) X is '*', '(', or an identifier,
and (2) if X is an identifier then a type specifier has already
been encountered in this declaration.
Rationale: a declaration must have at least one type specifier,
and that must occur before the init-declarator list.
*/
boolean indicatesDeclarator() {
Token token1 = input.LT(1);
int type1 = token1.getType();
if (type1 == STAR || type1 == LPAREN) return true;
if (type1 != IDENTIFIER) return false;
return DeclarationScope_stack.peek().hasTypeSpec;
}
public static class quantifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "quantifier"
// CivlCParser.g:219:1: quantifier : ( FORALL | EXISTS | UNIFORM );
public final OmpParser_CivlCParser.quantifier_return quantifier() throws RecognitionException {
OmpParser_CivlCParser.quantifier_return retval = new OmpParser_CivlCParser.quantifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set1=null;
Object set1_tree=null;
try {
// CivlCParser.g:220:2: ( FORALL | EXISTS | UNIFORM )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set1=input.LT(1);
if ( input.LA(1)==EXISTS||input.LA(1)==FORALL||input.LA(1)==UNIFORM ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set1));
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 "quantifier"
public static class quantifiedExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "quantifiedExpression"
// CivlCParser.g:230:1: quantifiedExpression : quantifier intervalSeq LPAREN boundVariableDeclarationList ( BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN body1= expression -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body1 $restrict intervalSeq ) | RPAREN body2= expression -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body2 ABSENT intervalSeq ) ) ;
public final OmpParser_CivlCParser.quantifiedExpression_return quantifiedExpression() throws RecognitionException {
OmpParser_CivlCParser.quantifiedExpression_return retval = new OmpParser_CivlCParser.quantifiedExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN4=null;
Token BITOR6=null;
Token RPAREN7=null;
Token RPAREN8=null;
ParserRuleReturnScope restrict =null;
ParserRuleReturnScope body1 =null;
ParserRuleReturnScope body2 =null;
ParserRuleReturnScope quantifier2 =null;
ParserRuleReturnScope intervalSeq3 =null;
ParserRuleReturnScope boundVariableDeclarationList5 =null;
Object LPAREN4_tree=null;
Object BITOR6_tree=null;
Object RPAREN7_tree=null;
Object RPAREN8_tree=null;
RewriteRuleTokenStream stream_BITOR=new RewriteRuleTokenStream(adaptor,"token BITOR");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_boundVariableDeclarationList=new RewriteRuleSubtreeStream(adaptor,"rule boundVariableDeclarationList");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_conditionalExpression=new RewriteRuleSubtreeStream(adaptor,"rule conditionalExpression");
RewriteRuleSubtreeStream stream_intervalSeq=new RewriteRuleSubtreeStream(adaptor,"rule intervalSeq");
RewriteRuleSubtreeStream stream_quantifier=new RewriteRuleSubtreeStream(adaptor,"rule quantifier");
RewriteRuleSubtreeStream stream_quantifiedExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifiedExpression");
try {
// CivlCParser.g:231:2: ( quantifier intervalSeq LPAREN boundVariableDeclarationList ( BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN body1= expression -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body1 $restrict intervalSeq ) | RPAREN body2= expression -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body2 ABSENT intervalSeq ) ) )
// CivlCParser.g:231:4: quantifier intervalSeq LPAREN boundVariableDeclarationList ( BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN body1= expression -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body1 $restrict intervalSeq ) | RPAREN body2= expression -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body2 ABSENT intervalSeq ) )
{
pushFollow(FOLLOW_quantifier_in_quantifiedExpression1161);
quantifier2=quantifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifier.add(quantifier2.getTree());
pushFollow(FOLLOW_intervalSeq_in_quantifiedExpression1163);
intervalSeq3=intervalSeq();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_intervalSeq.add(intervalSeq3.getTree());
LPAREN4=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_quantifiedExpression1165); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN4);
pushFollow(FOLLOW_boundVariableDeclarationList_in_quantifiedExpression1167);
boundVariableDeclarationList5=boundVariableDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_boundVariableDeclarationList.add(boundVariableDeclarationList5.getTree());
// CivlCParser.g:232:9: ( BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN body1= expression -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body1 $restrict intervalSeq ) | RPAREN body2= expression -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body2 ABSENT intervalSeq ) )
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==BITOR) ) {
alt2=1;
}
else if ( (LA2_0==RPAREN) ) {
alt2=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 2, 0, input);
throw nvae;
}
switch (alt2) {
case 1 :
// CivlCParser.g:232:11: BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN body1= expression
{
BITOR6=(Token)match(input,BITOR,FOLLOW_BITOR_in_quantifiedExpression1179); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR6);
// CivlCParser.g:233:13: (restrict= conditionalExpression |restrict= quantifiedExpression )
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==AMPERSAND||LA1_0==CHARACTER_CONSTANT||LA1_0==ELLIPSIS||LA1_0==FLOATING_CONSTANT||LA1_0==IDENTIFIER||LA1_0==INTEGER_CONSTANT||LA1_0==LPAREN||LA1_0==MINUSMINUS||LA1_0==NOT||LA1_0==PLUS||LA1_0==PLUSPLUS||LA1_0==STAR||(LA1_0 >= STRING_LITERAL && LA1_0 <= SUB)||LA1_0==TILDE||LA1_0==ALIGNOF||LA1_0==BIG_O||LA1_0==CALLS||LA1_0==DERIV||LA1_0==GENERIC||LA1_0==HERE||LA1_0==PROCNULL||LA1_0==RESULT||(LA1_0 >= SCOPEOF && LA1_0 <= SELF)||(LA1_0 >= SIZEOF && LA1_0 <= SPAWN)||LA1_0==STATE_NULL||LA1_0==VALUE_AT||LA1_0==SUM) ) {
alt1=1;
}
else if ( (LA1_0==EXISTS||LA1_0==FORALL||LA1_0==UNIFORM) ) {
alt1=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 1, 0, input);
throw nvae;
}
switch (alt1) {
case 1 :
// CivlCParser.g:233:14: restrict= conditionalExpression
{
pushFollow(FOLLOW_conditionalExpression_in_quantifiedExpression1196);
restrict=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(restrict.getTree());
}
break;
case 2 :
// CivlCParser.g:233:47: restrict= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_quantifiedExpression1202);
restrict=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(restrict.getTree());
}
break;
}
RPAREN7=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_quantifiedExpression1217); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN7);
pushFollow(FOLLOW_expression_in_quantifiedExpression1233);
body1=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(body1.getTree());
// AST REWRITE
// elements: restrict, intervalSeq, body1, boundVariableDeclarationList, quantifier
// token labels:
// rule labels: body1, restrict, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_body1=new RewriteRuleSubtreeStream(adaptor,"rule body1",body1!=null?body1.getTree():null);
RewriteRuleSubtreeStream stream_restrict=new RewriteRuleSubtreeStream(adaptor,"rule restrict",restrict!=null?restrict.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 236:13: -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body1 $restrict intervalSeq )
{
// CivlCParser.g:236:16: ^( QUANTIFIED quantifier boundVariableDeclarationList $body1 $restrict intervalSeq )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QUANTIFIED, "QUANTIFIED"), root_1);
adaptor.addChild(root_1, stream_quantifier.nextTree());
adaptor.addChild(root_1, stream_boundVariableDeclarationList.nextTree());
adaptor.addChild(root_1, stream_body1.nextTree());
adaptor.addChild(root_1, stream_restrict.nextTree());
adaptor.addChild(root_1, stream_intervalSeq.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:238:11: RPAREN body2= expression
{
RPAREN8=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_quantifiedExpression1291); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN8);
pushFollow(FOLLOW_expression_in_quantifiedExpression1307);
body2=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(body2.getTree());
// AST REWRITE
// elements: intervalSeq, quantifier, boundVariableDeclarationList, body2
// token labels:
// rule labels: body2, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_body2=new RewriteRuleSubtreeStream(adaptor,"rule body2",body2!=null?body2.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 240:13: -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body2 ABSENT intervalSeq )
{
// CivlCParser.g:240:16: ^( QUANTIFIED quantifier boundVariableDeclarationList $body2 ABSENT intervalSeq )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QUANTIFIED, "QUANTIFIED"), root_1);
adaptor.addChild(root_1, stream_quantifier.nextTree());
adaptor.addChild(root_1, stream_boundVariableDeclarationList.nextTree());
adaptor.addChild(root_1, stream_body2.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_intervalSeq.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 "quantifiedExpression"
public static class constant_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "constant"
// CivlCParser.g:250:1: constant : ( enumerationConstant | INTEGER_CONSTANT | FLOATING_CONSTANT | CHARACTER_CONSTANT | SELF | PROCNULL | STATE_NULL | RESULT | HERE | ELLIPSIS );
public final OmpParser_CivlCParser.constant_return constant() throws RecognitionException {
OmpParser_CivlCParser.constant_return retval = new OmpParser_CivlCParser.constant_return();
retval.start = input.LT(1);
Object root_0 = null;
Token INTEGER_CONSTANT10=null;
Token FLOATING_CONSTANT11=null;
Token CHARACTER_CONSTANT12=null;
Token SELF13=null;
Token PROCNULL14=null;
Token STATE_NULL15=null;
Token RESULT16=null;
Token HERE17=null;
Token ELLIPSIS18=null;
ParserRuleReturnScope enumerationConstant9 =null;
Object INTEGER_CONSTANT10_tree=null;
Object FLOATING_CONSTANT11_tree=null;
Object CHARACTER_CONSTANT12_tree=null;
Object SELF13_tree=null;
Object PROCNULL14_tree=null;
Object STATE_NULL15_tree=null;
Object RESULT16_tree=null;
Object HERE17_tree=null;
Object ELLIPSIS18_tree=null;
try {
// CivlCParser.g:251:2: ( enumerationConstant | INTEGER_CONSTANT | FLOATING_CONSTANT | CHARACTER_CONSTANT | SELF | PROCNULL | STATE_NULL | RESULT | HERE | ELLIPSIS )
int alt3=10;
switch ( input.LA(1) ) {
case IDENTIFIER:
{
alt3=1;
}
break;
case INTEGER_CONSTANT:
{
alt3=2;
}
break;
case FLOATING_CONSTANT:
{
alt3=3;
}
break;
case CHARACTER_CONSTANT:
{
alt3=4;
}
break;
case SELF:
{
alt3=5;
}
break;
case PROCNULL:
{
alt3=6;
}
break;
case STATE_NULL:
{
alt3=7;
}
break;
case RESULT:
{
alt3=8;
}
break;
case HERE:
{
alt3=9;
}
break;
case ELLIPSIS:
{
alt3=10;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 3, 0, input);
throw nvae;
}
switch (alt3) {
case 1 :
// CivlCParser.g:251:4: enumerationConstant
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_enumerationConstant_in_constant1375);
enumerationConstant9=enumerationConstant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, enumerationConstant9.getTree());
}
break;
case 2 :
// CivlCParser.g:252:4: INTEGER_CONSTANT
{
root_0 = (Object)adaptor.nil();
INTEGER_CONSTANT10=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_constant1380); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INTEGER_CONSTANT10_tree = (Object)adaptor.create(INTEGER_CONSTANT10);
adaptor.addChild(root_0, INTEGER_CONSTANT10_tree);
}
}
break;
case 3 :
// CivlCParser.g:253:4: FLOATING_CONSTANT
{
root_0 = (Object)adaptor.nil();
FLOATING_CONSTANT11=(Token)match(input,FLOATING_CONSTANT,FOLLOW_FLOATING_CONSTANT_in_constant1385); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FLOATING_CONSTANT11_tree = (Object)adaptor.create(FLOATING_CONSTANT11);
adaptor.addChild(root_0, FLOATING_CONSTANT11_tree);
}
}
break;
case 4 :
// CivlCParser.g:254:4: CHARACTER_CONSTANT
{
root_0 = (Object)adaptor.nil();
CHARACTER_CONSTANT12=(Token)match(input,CHARACTER_CONSTANT,FOLLOW_CHARACTER_CONSTANT_in_constant1390); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CHARACTER_CONSTANT12_tree = (Object)adaptor.create(CHARACTER_CONSTANT12);
adaptor.addChild(root_0, CHARACTER_CONSTANT12_tree);
}
}
break;
case 5 :
// CivlCParser.g:255:4: SELF
{
root_0 = (Object)adaptor.nil();
SELF13=(Token)match(input,SELF,FOLLOW_SELF_in_constant1395); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SELF13_tree = (Object)adaptor.create(SELF13);
adaptor.addChild(root_0, SELF13_tree);
}
}
break;
case 6 :
// CivlCParser.g:256:7: PROCNULL
{
root_0 = (Object)adaptor.nil();
PROCNULL14=(Token)match(input,PROCNULL,FOLLOW_PROCNULL_in_constant1403); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PROCNULL14_tree = (Object)adaptor.create(PROCNULL14);
adaptor.addChild(root_0, PROCNULL14_tree);
}
}
break;
case 7 :
// CivlCParser.g:257:7: STATE_NULL
{
root_0 = (Object)adaptor.nil();
STATE_NULL15=(Token)match(input,STATE_NULL,FOLLOW_STATE_NULL_in_constant1411); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STATE_NULL15_tree = (Object)adaptor.create(STATE_NULL15);
adaptor.addChild(root_0, STATE_NULL15_tree);
}
}
break;
case 8 :
// CivlCParser.g:258:4: RESULT
{
root_0 = (Object)adaptor.nil();
RESULT16=(Token)match(input,RESULT,FOLLOW_RESULT_in_constant1416); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RESULT16_tree = (Object)adaptor.create(RESULT16);
adaptor.addChild(root_0, RESULT16_tree);
}
}
break;
case 9 :
// CivlCParser.g:259:4: HERE
{
root_0 = (Object)adaptor.nil();
HERE17=(Token)match(input,HERE,FOLLOW_HERE_in_constant1421); if (state.failed) return retval;
if ( state.backtracking==0 ) {
HERE17_tree = (Object)adaptor.create(HERE17);
adaptor.addChild(root_0, HERE17_tree);
}
}
break;
case 10 :
// CivlCParser.g:260:7: ELLIPSIS
{
root_0 = (Object)adaptor.nil();
ELLIPSIS18=(Token)match(input,ELLIPSIS,FOLLOW_ELLIPSIS_in_constant1429); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ELLIPSIS18_tree = (Object)adaptor.create(ELLIPSIS18);
adaptor.addChild(root_0, ELLIPSIS18_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "constant"
public static class enumerationConstant_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "enumerationConstant"
// CivlCParser.g:265:1: enumerationConstant :{...}? IDENTIFIER -> ^( ENUMERATION_CONSTANT IDENTIFIER ) ;
public final OmpParser_CivlCParser.enumerationConstant_return enumerationConstant() throws RecognitionException {
OmpParser_CivlCParser.enumerationConstant_return retval = new OmpParser_CivlCParser.enumerationConstant_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER19=null;
Object IDENTIFIER19_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// CivlCParser.g:266:2: ({...}? IDENTIFIER -> ^( ENUMERATION_CONSTANT IDENTIFIER ) )
// CivlCParser.g:266:4: {...}? IDENTIFIER
{
if ( !((isEnumerationConstant(input.LT(1).getText()))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "enumerationConstant", "isEnumerationConstant(input.LT(1).getText())");
}
IDENTIFIER19=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumerationConstant1444); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER19);
// 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();
// 267:4: -> ^( ENUMERATION_CONSTANT IDENTIFIER )
{
// CivlCParser.g:267:7: ^( ENUMERATION_CONSTANT IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ENUMERATION_CONSTANT, "ENUMERATION_CONSTANT"), 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 "enumerationConstant"
public static class primaryExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "primaryExpression"
// CivlCParser.g:271:1: primaryExpression : ( constant | IDENTIFIER | STRING_LITERAL | LPAREN compoundStatement RPAREN -> ^( STATEMENT_EXPRESSION LPAREN compoundStatement RPAREN ) | LPAREN expression RPAREN -> ^( PARENTHESIZED_EXPRESSION LPAREN expression RPAREN ) | genericSelection | derivativeExpression );
public final OmpParser_CivlCParser.primaryExpression_return primaryExpression() throws RecognitionException {
OmpParser_CivlCParser.primaryExpression_return retval = new OmpParser_CivlCParser.primaryExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER21=null;
Token STRING_LITERAL22=null;
Token LPAREN23=null;
Token RPAREN25=null;
Token LPAREN26=null;
Token RPAREN28=null;
ParserRuleReturnScope constant20 =null;
ParserRuleReturnScope compoundStatement24 =null;
ParserRuleReturnScope expression27 =null;
ParserRuleReturnScope genericSelection29 =null;
ParserRuleReturnScope derivativeExpression30 =null;
Object IDENTIFIER21_tree=null;
Object STRING_LITERAL22_tree=null;
Object LPAREN23_tree=null;
Object RPAREN25_tree=null;
Object LPAREN26_tree=null;
Object RPAREN28_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_compoundStatement=new RewriteRuleSubtreeStream(adaptor,"rule compoundStatement");
try {
// CivlCParser.g:272:2: ( constant | IDENTIFIER | STRING_LITERAL | LPAREN compoundStatement RPAREN -> ^( STATEMENT_EXPRESSION LPAREN compoundStatement RPAREN ) | LPAREN expression RPAREN -> ^( PARENTHESIZED_EXPRESSION LPAREN expression RPAREN ) | genericSelection | derivativeExpression )
int alt4=7;
switch ( input.LA(1) ) {
case IDENTIFIER:
{
int LA4_1 = input.LA(2);
if ( ((isEnumerationConstant(input.LT(1).getText()))) ) {
alt4=1;
}
else if ( (true) ) {
alt4=2;
}
}
break;
case CHARACTER_CONSTANT:
case ELLIPSIS:
case FLOATING_CONSTANT:
case INTEGER_CONSTANT:
case HERE:
case PROCNULL:
case RESULT:
case SELF:
case STATE_NULL:
{
alt4=1;
}
break;
case STRING_LITERAL:
{
alt4=3;
}
break;
case LPAREN:
{
int LA4_4 = input.LA(2);
if ( (LA4_4==LCURLY) ) {
alt4=4;
}
else if ( (LA4_4==AMPERSAND||LA4_4==CHARACTER_CONSTANT||LA4_4==ELLIPSIS||LA4_4==FLOATING_CONSTANT||LA4_4==IDENTIFIER||LA4_4==INTEGER_CONSTANT||LA4_4==LPAREN||LA4_4==MINUSMINUS||LA4_4==NOT||LA4_4==PLUS||LA4_4==PLUSPLUS||LA4_4==STAR||(LA4_4 >= STRING_LITERAL && LA4_4 <= SUB)||LA4_4==TILDE||LA4_4==ALIGNOF||LA4_4==BIG_O||LA4_4==CALLS||LA4_4==DERIV||LA4_4==EXISTS||(LA4_4 >= FORALL && LA4_4 <= GENERIC)||LA4_4==HERE||LA4_4==PROCNULL||LA4_4==RESULT||(LA4_4 >= SCOPEOF && LA4_4 <= SELF)||(LA4_4 >= SIZEOF && LA4_4 <= SPAWN)||LA4_4==STATE_NULL||LA4_4==UNIFORM||LA4_4==VALUE_AT||LA4_4==SUM) ) {
alt4=5;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 4, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case GENERIC:
{
alt4=6;
}
break;
case DERIV:
{
alt4=7;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 4, 0, input);
throw nvae;
}
switch (alt4) {
case 1 :
// CivlCParser.g:272:4: constant
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_constant_in_primaryExpression1469);
constant20=constant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, constant20.getTree());
}
break;
case 2 :
// CivlCParser.g:273:4: IDENTIFIER
{
root_0 = (Object)adaptor.nil();
IDENTIFIER21=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_primaryExpression1474); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER21_tree = (Object)adaptor.create(IDENTIFIER21);
adaptor.addChild(root_0, IDENTIFIER21_tree);
}
}
break;
case 3 :
// CivlCParser.g:274:4: STRING_LITERAL
{
root_0 = (Object)adaptor.nil();
STRING_LITERAL22=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_primaryExpression1479); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STRING_LITERAL22_tree = (Object)adaptor.create(STRING_LITERAL22);
adaptor.addChild(root_0, STRING_LITERAL22_tree);
}
}
break;
case 4 :
// CivlCParser.g:275:7: LPAREN compoundStatement RPAREN
{
LPAREN23=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_primaryExpression1487); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN23);
pushFollow(FOLLOW_compoundStatement_in_primaryExpression1489);
compoundStatement24=compoundStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_compoundStatement.add(compoundStatement24.getTree());
RPAREN25=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_primaryExpression1491); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN25);
// AST REWRITE
// elements: compoundStatement, LPAREN, 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();
// 276:9: -> ^( STATEMENT_EXPRESSION LPAREN compoundStatement RPAREN )
{
// CivlCParser.g:276:12: ^( STATEMENT_EXPRESSION LPAREN compoundStatement RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT_EXPRESSION, "STATEMENT_EXPRESSION"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_compoundStatement.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// CivlCParser.g:277:4: LPAREN expression RPAREN
{
LPAREN26=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_primaryExpression1516); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN26);
pushFollow(FOLLOW_expression_in_primaryExpression1518);
expression27=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression27.getTree());
RPAREN28=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_primaryExpression1520); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN28);
// AST REWRITE
// elements: RPAREN, expression, 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();
// 278:9: -> ^( PARENTHESIZED_EXPRESSION LPAREN expression RPAREN )
{
// CivlCParser.g:278:12: ^( PARENTHESIZED_EXPRESSION LPAREN expression RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARENTHESIZED_EXPRESSION, "PARENTHESIZED_EXPRESSION"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// CivlCParser.g:279:4: genericSelection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_genericSelection_in_primaryExpression1545);
genericSelection29=genericSelection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, genericSelection29.getTree());
}
break;
case 7 :
// CivlCParser.g:280:4: derivativeExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_derivativeExpression_in_primaryExpression1550);
derivativeExpression30=derivativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, derivativeExpression30.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 genericSelection_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "genericSelection"
// CivlCParser.g:284:1: genericSelection : GENERIC LPAREN assignmentExpression COMMA genericAssocList RPAREN -> ^( GENERIC assignmentExpression genericAssocList ) ;
public final OmpParser_CivlCParser.genericSelection_return genericSelection() throws RecognitionException {
OmpParser_CivlCParser.genericSelection_return retval = new OmpParser_CivlCParser.genericSelection_return();
retval.start = input.LT(1);
Object root_0 = null;
Token GENERIC31=null;
Token LPAREN32=null;
Token COMMA34=null;
Token RPAREN36=null;
ParserRuleReturnScope assignmentExpression33 =null;
ParserRuleReturnScope genericAssocList35 =null;
Object GENERIC31_tree=null;
Object LPAREN32_tree=null;
Object COMMA34_tree=null;
Object RPAREN36_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_GENERIC=new RewriteRuleTokenStream(adaptor,"token GENERIC");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_genericAssocList=new RewriteRuleSubtreeStream(adaptor,"rule genericAssocList");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// CivlCParser.g:285:2: ( GENERIC LPAREN assignmentExpression COMMA genericAssocList RPAREN -> ^( GENERIC assignmentExpression genericAssocList ) )
// CivlCParser.g:285:4: GENERIC LPAREN assignmentExpression COMMA genericAssocList RPAREN
{
GENERIC31=(Token)match(input,GENERIC,FOLLOW_GENERIC_in_genericSelection1563); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GENERIC.add(GENERIC31);
LPAREN32=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_genericSelection1565); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN32);
pushFollow(FOLLOW_assignmentExpression_in_genericSelection1567);
assignmentExpression33=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression33.getTree());
COMMA34=(Token)match(input,COMMA,FOLLOW_COMMA_in_genericSelection1569); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA34);
pushFollow(FOLLOW_genericAssocList_in_genericSelection1571);
genericAssocList35=genericAssocList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_genericAssocList.add(genericAssocList35.getTree());
RPAREN36=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_genericSelection1573); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN36);
// AST REWRITE
// elements: GENERIC, genericAssocList, 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();
// 286:9: -> ^( GENERIC assignmentExpression genericAssocList )
{
// CivlCParser.g:286:12: ^( GENERIC assignmentExpression genericAssocList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_GENERIC.nextNode(), root_1);
adaptor.addChild(root_1, stream_assignmentExpression.nextTree());
adaptor.addChild(root_1, stream_genericAssocList.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 "genericSelection"
public static class derivativeExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "derivativeExpression"
// CivlCParser.g:292:1: derivativeExpression : DERIV LSQUARE IDENTIFIER COMMA partialList RSQUARE LPAREN argumentExpressionList RPAREN -> ^( DERIVATIVE_EXPRESSION IDENTIFIER partialList argumentExpressionList RPAREN ) ;
public final OmpParser_CivlCParser.derivativeExpression_return derivativeExpression() throws RecognitionException {
OmpParser_CivlCParser.derivativeExpression_return retval = new OmpParser_CivlCParser.derivativeExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DERIV37=null;
Token LSQUARE38=null;
Token IDENTIFIER39=null;
Token COMMA40=null;
Token RSQUARE42=null;
Token LPAREN43=null;
Token RPAREN45=null;
ParserRuleReturnScope partialList41 =null;
ParserRuleReturnScope argumentExpressionList44 =null;
Object DERIV37_tree=null;
Object LSQUARE38_tree=null;
Object IDENTIFIER39_tree=null;
Object COMMA40_tree=null;
Object RSQUARE42_tree=null;
Object LPAREN43_tree=null;
Object RPAREN45_tree=null;
RewriteRuleTokenStream stream_DERIV=new RewriteRuleTokenStream(adaptor,"token DERIV");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LSQUARE=new RewriteRuleTokenStream(adaptor,"token LSQUARE");
RewriteRuleTokenStream stream_RSQUARE=new RewriteRuleTokenStream(adaptor,"token RSQUARE");
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_partialList=new RewriteRuleSubtreeStream(adaptor,"rule partialList");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
try {
// CivlCParser.g:293:2: ( DERIV LSQUARE IDENTIFIER COMMA partialList RSQUARE LPAREN argumentExpressionList RPAREN -> ^( DERIVATIVE_EXPRESSION IDENTIFIER partialList argumentExpressionList RPAREN ) )
// CivlCParser.g:293:4: DERIV LSQUARE IDENTIFIER COMMA partialList RSQUARE LPAREN argumentExpressionList RPAREN
{
DERIV37=(Token)match(input,DERIV,FOLLOW_DERIV_in_derivativeExpression1604); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DERIV.add(DERIV37);
LSQUARE38=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_derivativeExpression1606); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE38);
IDENTIFIER39=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_derivativeExpression1608); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER39);
COMMA40=(Token)match(input,COMMA,FOLLOW_COMMA_in_derivativeExpression1610); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA40);
pushFollow(FOLLOW_partialList_in_derivativeExpression1612);
partialList41=partialList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_partialList.add(partialList41.getTree());
RSQUARE42=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_derivativeExpression1614); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE42);
LPAREN43=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_derivativeExpression1622); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN43);
pushFollow(FOLLOW_argumentExpressionList_in_derivativeExpression1624);
argumentExpressionList44=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList44.getTree());
RPAREN45=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_derivativeExpression1626); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN45);
// AST REWRITE
// elements: RPAREN, argumentExpressionList, IDENTIFIER, partialList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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: -> ^( DERIVATIVE_EXPRESSION IDENTIFIER partialList argumentExpressionList RPAREN )
{
// CivlCParser.g:295:10: ^( DERIVATIVE_EXPRESSION IDENTIFIER partialList argumentExpressionList RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DERIVATIVE_EXPRESSION, "DERIVATIVE_EXPRESSION"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_partialList.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;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "derivativeExpression"
public static class partialList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "partialList"
// CivlCParser.g:301:1: partialList : partial ( COMMA partial )* -> ^( PARTIAL_LIST ( partial )+ ) ;
public final OmpParser_CivlCParser.partialList_return partialList() throws RecognitionException {
OmpParser_CivlCParser.partialList_return retval = new OmpParser_CivlCParser.partialList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA47=null;
ParserRuleReturnScope partial46 =null;
ParserRuleReturnScope partial48 =null;
Object COMMA47_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_partial=new RewriteRuleSubtreeStream(adaptor,"rule partial");
try {
// CivlCParser.g:302:2: ( partial ( COMMA partial )* -> ^( PARTIAL_LIST ( partial )+ ) )
// CivlCParser.g:302:4: partial ( COMMA partial )*
{
pushFollow(FOLLOW_partial_in_partialList1670);
partial46=partial();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_partial.add(partial46.getTree());
// CivlCParser.g:302:12: ( COMMA partial )*
loop5:
while (true) {
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==COMMA) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// CivlCParser.g:302:13: COMMA partial
{
COMMA47=(Token)match(input,COMMA,FOLLOW_COMMA_in_partialList1673); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA47);
pushFollow(FOLLOW_partial_in_partialList1675);
partial48=partial();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_partial.add(partial48.getTree());
}
break;
default :
break loop5;
}
}
// AST REWRITE
// elements: partial
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 302:29: -> ^( PARTIAL_LIST ( partial )+ )
{
// CivlCParser.g:302:32: ^( PARTIAL_LIST ( partial )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARTIAL_LIST, "PARTIAL_LIST"), root_1);
if ( !(stream_partial.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_partial.hasNext() ) {
adaptor.addChild(root_1, stream_partial.nextTree());
}
stream_partial.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 "partialList"
public static class partial_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "partial"
// CivlCParser.g:306:1: partial : LCURLY IDENTIFIER COMMA INTEGER_CONSTANT RCURLY -> ^( PARTIAL IDENTIFIER INTEGER_CONSTANT ) ;
public final OmpParser_CivlCParser.partial_return partial() throws RecognitionException {
OmpParser_CivlCParser.partial_return retval = new OmpParser_CivlCParser.partial_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY49=null;
Token IDENTIFIER50=null;
Token COMMA51=null;
Token INTEGER_CONSTANT52=null;
Token RCURLY53=null;
Object LCURLY49_tree=null;
Object IDENTIFIER50_tree=null;
Object COMMA51_tree=null;
Object INTEGER_CONSTANT52_tree=null;
Object RCURLY53_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_INTEGER_CONSTANT=new RewriteRuleTokenStream(adaptor,"token INTEGER_CONSTANT");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
try {
// CivlCParser.g:307:2: ( LCURLY IDENTIFIER COMMA INTEGER_CONSTANT RCURLY -> ^( PARTIAL IDENTIFIER INTEGER_CONSTANT ) )
// CivlCParser.g:307:4: LCURLY IDENTIFIER COMMA INTEGER_CONSTANT RCURLY
{
LCURLY49=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_partial1699); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY49);
IDENTIFIER50=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_partial1701); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER50);
COMMA51=(Token)match(input,COMMA,FOLLOW_COMMA_in_partial1703); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA51);
INTEGER_CONSTANT52=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_partial1705); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INTEGER_CONSTANT.add(INTEGER_CONSTANT52);
RCURLY53=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_partial1707); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY53);
// AST REWRITE
// elements: INTEGER_CONSTANT, 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();
// 308:9: -> ^( PARTIAL IDENTIFIER INTEGER_CONSTANT )
{
// CivlCParser.g:308:12: ^( PARTIAL IDENTIFIER INTEGER_CONSTANT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARTIAL, "PARTIAL"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_INTEGER_CONSTANT.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 "partial"
public static class genericAssocList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "genericAssocList"
// CivlCParser.g:312:1: genericAssocList : genericAssociation ( COMMA genericAssociation )* -> ^( GENERIC_ASSOC_LIST ( genericAssociation )+ ) ;
public final OmpParser_CivlCParser.genericAssocList_return genericAssocList() throws RecognitionException {
OmpParser_CivlCParser.genericAssocList_return retval = new OmpParser_CivlCParser.genericAssocList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA55=null;
ParserRuleReturnScope genericAssociation54 =null;
ParserRuleReturnScope genericAssociation56 =null;
Object COMMA55_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_genericAssociation=new RewriteRuleSubtreeStream(adaptor,"rule genericAssociation");
try {
// CivlCParser.g:313:2: ( genericAssociation ( COMMA genericAssociation )* -> ^( GENERIC_ASSOC_LIST ( genericAssociation )+ ) )
// CivlCParser.g:313:4: genericAssociation ( COMMA genericAssociation )*
{
pushFollow(FOLLOW_genericAssociation_in_genericAssocList1738);
genericAssociation54=genericAssociation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_genericAssociation.add(genericAssociation54.getTree());
// CivlCParser.g:313:23: ( COMMA genericAssociation )*
loop6:
while (true) {
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==COMMA) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// CivlCParser.g:313:24: COMMA genericAssociation
{
COMMA55=(Token)match(input,COMMA,FOLLOW_COMMA_in_genericAssocList1741); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA55);
pushFollow(FOLLOW_genericAssociation_in_genericAssocList1743);
genericAssociation56=genericAssociation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_genericAssociation.add(genericAssociation56.getTree());
}
break;
default :
break loop6;
}
}
// AST REWRITE
// elements: genericAssociation
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 314:9: -> ^( GENERIC_ASSOC_LIST ( genericAssociation )+ )
{
// CivlCParser.g:314:12: ^( GENERIC_ASSOC_LIST ( genericAssociation )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(GENERIC_ASSOC_LIST, "GENERIC_ASSOC_LIST"), root_1);
if ( !(stream_genericAssociation.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_genericAssociation.hasNext() ) {
adaptor.addChild(root_1, stream_genericAssociation.nextTree());
}
stream_genericAssociation.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 "genericAssocList"
public static class genericAssociation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "genericAssociation"
// CivlCParser.g:318:1: genericAssociation : ( typeName COLON assignmentExpression -> ^( GENERIC_ASSOCIATION typeName assignmentExpression ) | DEFAULT COLON assignmentExpression -> ^( GENERIC_ASSOCIATION DEFAULT assignmentExpression ) );
public final OmpParser_CivlCParser.genericAssociation_return genericAssociation() throws RecognitionException {
OmpParser_CivlCParser.genericAssociation_return retval = new OmpParser_CivlCParser.genericAssociation_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COLON58=null;
Token DEFAULT60=null;
Token COLON61=null;
ParserRuleReturnScope typeName57 =null;
ParserRuleReturnScope assignmentExpression59 =null;
ParserRuleReturnScope assignmentExpression62 =null;
Object COLON58_tree=null;
Object DEFAULT60_tree=null;
Object COLON61_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_DEFAULT=new RewriteRuleTokenStream(adaptor,"token DEFAULT");
RewriteRuleSubtreeStream stream_typeName=new RewriteRuleSubtreeStream(adaptor,"rule typeName");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// CivlCParser.g:319:2: ( typeName COLON assignmentExpression -> ^( GENERIC_ASSOCIATION typeName assignmentExpression ) | DEFAULT COLON assignmentExpression -> ^( GENERIC_ASSOCIATION DEFAULT assignmentExpression ) )
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==IDENTIFIER||LA7_0==ATOMIC||LA7_0==BOOL||LA7_0==CHAR||(LA7_0 >= COMPLEX && LA7_0 <= CONST)||(LA7_0 >= DOMAIN && LA7_0 <= DOUBLE)||LA7_0==ENUM||LA7_0==FLOAT||(LA7_0 >= INPUT && LA7_0 <= INT)||(LA7_0 >= LONG && LA7_0 <= MEM_TYPE)||LA7_0==OUTPUT||LA7_0==RANGE||LA7_0==REAL||LA7_0==RESTRICT||(LA7_0 >= SHORT && LA7_0 <= SIGNED)||LA7_0==STRUCT||LA7_0==TYPEOF||(LA7_0 >= UNION && LA7_0 <= UNSIGNED)||(LA7_0 >= VOID && LA7_0 <= VOLATILE)) ) {
alt7=1;
}
else if ( (LA7_0==DEFAULT) ) {
alt7=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 7, 0, input);
throw nvae;
}
switch (alt7) {
case 1 :
// CivlCParser.g:319:4: typeName COLON assignmentExpression
{
pushFollow(FOLLOW_typeName_in_genericAssociation1775);
typeName57=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName57.getTree());
COLON58=(Token)match(input,COLON,FOLLOW_COLON_in_genericAssociation1777); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON58);
pushFollow(FOLLOW_assignmentExpression_in_genericAssociation1779);
assignmentExpression59=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression59.getTree());
// AST REWRITE
// elements: assignmentExpression, typeName
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 320:9: -> ^( GENERIC_ASSOCIATION typeName assignmentExpression )
{
// CivlCParser.g:320:12: ^( GENERIC_ASSOCIATION typeName assignmentExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(GENERIC_ASSOCIATION, "GENERIC_ASSOCIATION"), root_1);
adaptor.addChild(root_1, stream_typeName.nextTree());
adaptor.addChild(root_1, stream_assignmentExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:321:4: DEFAULT COLON assignmentExpression
{
DEFAULT60=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_genericAssociation1802); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DEFAULT.add(DEFAULT60);
COLON61=(Token)match(input,COLON,FOLLOW_COLON_in_genericAssociation1804); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON61);
pushFollow(FOLLOW_assignmentExpression_in_genericAssociation1806);
assignmentExpression62=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression62.getTree());
// AST REWRITE
// elements: assignmentExpression, DEFAULT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 322:9: -> ^( GENERIC_ASSOCIATION DEFAULT assignmentExpression )
{
// CivlCParser.g:322:12: ^( GENERIC_ASSOCIATION DEFAULT assignmentExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(GENERIC_ASSOCIATION, "GENERIC_ASSOCIATION"), root_1);
adaptor.addChild(root_1, stream_DEFAULT.nextNode());
adaptor.addChild(root_1, stream_assignmentExpression.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 "genericAssociation"
public static class postfixExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "postfixExpression"
// CivlCParser.g:326:1: postfixExpression : ( postfixExpressionRoot -> postfixExpressionRoot ) (l= LSQUARE expression RSQUARE -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression expression ) RSQUARE ) | LPAREN argumentExpressionList RPAREN -> ^( CALL LPAREN $postfixExpression ABSENT argumentExpressionList RPAREN ABSENT ) | LEXCON args1= argumentExpressionList REXCON LPAREN args2= argumentExpressionList RPAREN -> ^( CALL LPAREN $postfixExpression $args1 $args2 RPAREN ABSENT ) | DOT IDENTIFIER -> ^( DOT $postfixExpression IDENTIFIER ) | ARROW IDENTIFIER -> ^( ARROW $postfixExpression IDENTIFIER ) |p= PLUSPLUS -> ^( OPERATOR POST_INCREMENT[$p] ^( ARGUMENT_LIST $postfixExpression) ) |m= MINUSMINUS -> ^( OPERATOR POST_DECREMENT[$m] ^( ARGUMENT_LIST $postfixExpression) ) )* ;
public final OmpParser_CivlCParser.postfixExpression_return postfixExpression() throws RecognitionException {
OmpParser_CivlCParser.postfixExpression_return retval = new OmpParser_CivlCParser.postfixExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token l=null;
Token p=null;
Token m=null;
Token RSQUARE65=null;
Token LPAREN66=null;
Token RPAREN68=null;
Token LEXCON69=null;
Token REXCON70=null;
Token LPAREN71=null;
Token RPAREN72=null;
Token DOT73=null;
Token IDENTIFIER74=null;
Token ARROW75=null;
Token IDENTIFIER76=null;
ParserRuleReturnScope args1 =null;
ParserRuleReturnScope args2 =null;
ParserRuleReturnScope postfixExpressionRoot63 =null;
ParserRuleReturnScope expression64 =null;
ParserRuleReturnScope argumentExpressionList67 =null;
Object l_tree=null;
Object p_tree=null;
Object m_tree=null;
Object RSQUARE65_tree=null;
Object LPAREN66_tree=null;
Object RPAREN68_tree=null;
Object LEXCON69_tree=null;
Object REXCON70_tree=null;
Object LPAREN71_tree=null;
Object RPAREN72_tree=null;
Object DOT73_tree=null;
Object IDENTIFIER74_tree=null;
Object ARROW75_tree=null;
Object IDENTIFIER76_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_LEXCON=new RewriteRuleTokenStream(adaptor,"token LEXCON");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleTokenStream stream_MINUSMINUS=new RewriteRuleTokenStream(adaptor,"token MINUSMINUS");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_PLUSPLUS=new RewriteRuleTokenStream(adaptor,"token PLUSPLUS");
RewriteRuleTokenStream stream_REXCON=new RewriteRuleTokenStream(adaptor,"token REXCON");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_postfixExpressionRoot=new RewriteRuleSubtreeStream(adaptor,"rule postfixExpressionRoot");
try {
// CivlCParser.g:327:2: ( ( postfixExpressionRoot -> postfixExpressionRoot ) (l= LSQUARE expression RSQUARE -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression expression ) RSQUARE ) | LPAREN argumentExpressionList RPAREN -> ^( CALL LPAREN $postfixExpression ABSENT argumentExpressionList RPAREN ABSENT ) | LEXCON args1= argumentExpressionList REXCON LPAREN args2= argumentExpressionList RPAREN -> ^( CALL LPAREN $postfixExpression $args1 $args2 RPAREN ABSENT ) | DOT IDENTIFIER -> ^( DOT $postfixExpression IDENTIFIER ) | ARROW IDENTIFIER -> ^( ARROW $postfixExpression IDENTIFIER ) |p= PLUSPLUS -> ^( OPERATOR POST_INCREMENT[$p] ^( ARGUMENT_LIST $postfixExpression) ) |m= MINUSMINUS -> ^( OPERATOR POST_DECREMENT[$m] ^( ARGUMENT_LIST $postfixExpression) ) )* )
// CivlCParser.g:327:4: ( postfixExpressionRoot -> postfixExpressionRoot ) (l= LSQUARE expression RSQUARE -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression expression ) RSQUARE ) | LPAREN argumentExpressionList RPAREN -> ^( CALL LPAREN $postfixExpression ABSENT argumentExpressionList RPAREN ABSENT ) | LEXCON args1= argumentExpressionList REXCON LPAREN args2= argumentExpressionList RPAREN -> ^( CALL LPAREN $postfixExpression $args1 $args2 RPAREN ABSENT ) | DOT IDENTIFIER -> ^( DOT $postfixExpression IDENTIFIER ) | ARROW IDENTIFIER -> ^( ARROW $postfixExpression IDENTIFIER ) |p= PLUSPLUS -> ^( OPERATOR POST_INCREMENT[$p] ^( ARGUMENT_LIST $postfixExpression) ) |m= MINUSMINUS -> ^( OPERATOR POST_DECREMENT[$m] ^( ARGUMENT_LIST $postfixExpression) ) )*
{
// CivlCParser.g:327:4: ( postfixExpressionRoot -> postfixExpressionRoot )
// CivlCParser.g:327:5: postfixExpressionRoot
{
pushFollow(FOLLOW_postfixExpressionRoot_in_postfixExpression1838);
postfixExpressionRoot63=postfixExpressionRoot();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfixExpressionRoot.add(postfixExpressionRoot63.getTree());
// AST REWRITE
// elements: postfixExpressionRoot
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 327:27: -> postfixExpressionRoot
{
adaptor.addChild(root_0, stream_postfixExpressionRoot.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:328:9: (l= LSQUARE expression RSQUARE -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression expression ) RSQUARE ) | LPAREN argumentExpressionList RPAREN -> ^( CALL LPAREN $postfixExpression ABSENT argumentExpressionList RPAREN ABSENT ) | LEXCON args1= argumentExpressionList REXCON LPAREN args2= argumentExpressionList RPAREN -> ^( CALL LPAREN $postfixExpression $args1 $args2 RPAREN ABSENT ) | DOT IDENTIFIER -> ^( DOT $postfixExpression IDENTIFIER ) | ARROW IDENTIFIER -> ^( ARROW $postfixExpression IDENTIFIER ) |p= PLUSPLUS -> ^( OPERATOR POST_INCREMENT[$p] ^( ARGUMENT_LIST $postfixExpression) ) |m= MINUSMINUS -> ^( OPERATOR POST_DECREMENT[$m] ^( ARGUMENT_LIST $postfixExpression) ) )*
loop8:
while (true) {
int alt8=8;
switch ( input.LA(1) ) {
case LSQUARE:
{
alt8=1;
}
break;
case LPAREN:
{
alt8=2;
}
break;
case LEXCON:
{
alt8=3;
}
break;
case DOT:
{
alt8=4;
}
break;
case ARROW:
{
alt8=5;
}
break;
case PLUSPLUS:
{
alt8=6;
}
break;
case MINUSMINUS:
{
alt8=7;
}
break;
}
switch (alt8) {
case 1 :
// CivlCParser.g:329:13: l= LSQUARE expression RSQUARE
{
l=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_postfixExpression1870); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(l);
pushFollow(FOLLOW_expression_in_postfixExpression1872);
expression64=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression64.getTree());
RSQUARE65=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_postfixExpression1874); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE65);
// AST REWRITE
// elements: expression, RSQUARE, postfixExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 330:13: -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression expression ) RSQUARE )
{
// CivlCParser.g:330:16: ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression expression ) 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));
// CivlCParser.g:332:17: ^( ARGUMENT_LIST $postfixExpression expression )
{
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_expression.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 :
// CivlCParser.g:335:13: LPAREN argumentExpressionList RPAREN
{
LPAREN66=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_postfixExpression1979); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN66);
pushFollow(FOLLOW_argumentExpressionList_in_postfixExpression1981);
argumentExpressionList67=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList67.getTree());
RPAREN68=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_postfixExpression1983); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN68);
// AST REWRITE
// elements: LPAREN, postfixExpression, RPAREN, argumentExpressionList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 336:13: -> ^( CALL LPAREN $postfixExpression ABSENT argumentExpressionList RPAREN ABSENT )
{
// CivlCParser.g:336:16: ^( CALL LPAREN $postfixExpression ABSENT argumentExpressionList RPAREN ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CALL, "CALL"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_retval.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:339:13: LEXCON args1= argumentExpressionList REXCON LPAREN args2= argumentExpressionList RPAREN
{
LEXCON69=(Token)match(input,LEXCON,FOLLOW_LEXCON_in_postfixExpression2055); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LEXCON.add(LEXCON69);
pushFollow(FOLLOW_argumentExpressionList_in_postfixExpression2059);
args1=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(args1.getTree());
REXCON70=(Token)match(input,REXCON,FOLLOW_REXCON_in_postfixExpression2061); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_REXCON.add(REXCON70);
LPAREN71=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_postfixExpression2075); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN71);
pushFollow(FOLLOW_argumentExpressionList_in_postfixExpression2079);
args2=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(args2.getTree());
RPAREN72=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_postfixExpression2081); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN72);
// AST REWRITE
// elements: RPAREN, args1, LPAREN, postfixExpression, args2
// token labels:
// rule labels: args1, args2, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_args1=new RewriteRuleSubtreeStream(adaptor,"rule args1",args1!=null?args1.getTree():null);
RewriteRuleSubtreeStream stream_args2=new RewriteRuleSubtreeStream(adaptor,"rule args2",args2!=null?args2.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 341:13: -> ^( CALL LPAREN $postfixExpression $args1 $args2 RPAREN ABSENT )
{
// CivlCParser.g:341:16: ^( CALL LPAREN $postfixExpression $args1 $args2 RPAREN ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CALL, "CALL"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_retval.nextTree());
adaptor.addChild(root_1, stream_args1.nextTree());
adaptor.addChild(root_1, stream_args2.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// CivlCParser.g:342:11: DOT IDENTIFIER
{
DOT73=(Token)match(input,DOT,FOLLOW_DOT_in_postfixExpression2126); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT73);
IDENTIFIER74=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfixExpression2128); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER74);
// AST REWRITE
// elements: DOT, IDENTIFIER, 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();
// 343:13: -> ^( DOT $postfixExpression IDENTIFIER )
{
// CivlCParser.g:343:16: ^( 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 5 :
// CivlCParser.g:344:11: ARROW IDENTIFIER
{
ARROW75=(Token)match(input,ARROW,FOLLOW_ARROW_in_postfixExpression2163); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ARROW.add(ARROW75);
IDENTIFIER76=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfixExpression2165); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER76);
// AST REWRITE
// elements: ARROW, postfixExpression, 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();
// 345:13: -> ^( ARROW $postfixExpression IDENTIFIER )
{
// CivlCParser.g:345:16: ^( 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;
case 6 :
// CivlCParser.g:346:11: p= PLUSPLUS
{
p=(Token)match(input,PLUSPLUS,FOLLOW_PLUSPLUS_in_postfixExpression2202); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUSPLUS.add(p);
// AST REWRITE
// elements: 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();
// 347:13: -> ^( OPERATOR POST_INCREMENT[$p] ^( ARGUMENT_LIST $postfixExpression) )
{
// CivlCParser.g:347:16: ^( OPERATOR POST_INCREMENT[$p] ^( ARGUMENT_LIST $postfixExpression) )
{
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(POST_INCREMENT, p));
// CivlCParser.g:348:17: ^( ARGUMENT_LIST $postfixExpression)
{
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_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 7 :
// CivlCParser.g:349:11: m= MINUSMINUS
{
m=(Token)match(input,MINUSMINUS,FOLLOW_MINUSMINUS_in_postfixExpression2260); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MINUSMINUS.add(m);
// AST REWRITE
// elements: 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();
// 350:13: -> ^( OPERATOR POST_DECREMENT[$m] ^( ARGUMENT_LIST $postfixExpression) )
{
// CivlCParser.g:350:16: ^( OPERATOR POST_DECREMENT[$m] ^( ARGUMENT_LIST $postfixExpression) )
{
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(POST_DECREMENT, m));
// CivlCParser.g:351:17: ^( ARGUMENT_LIST $postfixExpression)
{
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_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
default :
break loop8;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 postfixExpressionRoot_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "postfixExpressionRoot"
// CivlCParser.g:368:1: postfixExpressionRoot : ( ( LPAREN typeName RPAREN LCURLY )=> LPAREN typeName RPAREN LCURLY initializerList ( RCURLY | COMMA RCURLY ) -> ^( COMPOUND_LITERAL LPAREN typeName initializerList RCURLY ) | primaryExpression );
public final OmpParser_CivlCParser.postfixExpressionRoot_return postfixExpressionRoot() throws RecognitionException {
OmpParser_CivlCParser.postfixExpressionRoot_return retval = new OmpParser_CivlCParser.postfixExpressionRoot_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN77=null;
Token RPAREN79=null;
Token LCURLY80=null;
Token RCURLY82=null;
Token COMMA83=null;
Token RCURLY84=null;
ParserRuleReturnScope typeName78 =null;
ParserRuleReturnScope initializerList81 =null;
ParserRuleReturnScope primaryExpression85 =null;
Object LPAREN77_tree=null;
Object RPAREN79_tree=null;
Object LCURLY80_tree=null;
Object RCURLY82_tree=null;
Object COMMA83_tree=null;
Object RCURLY84_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
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_typeName=new RewriteRuleSubtreeStream(adaptor,"rule typeName");
RewriteRuleSubtreeStream stream_initializerList=new RewriteRuleSubtreeStream(adaptor,"rule initializerList");
try {
// CivlCParser.g:369:2: ( ( LPAREN typeName RPAREN LCURLY )=> LPAREN typeName RPAREN LCURLY initializerList ( RCURLY | COMMA RCURLY ) -> ^( COMPOUND_LITERAL LPAREN typeName initializerList RCURLY ) | primaryExpression )
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==LPAREN) ) {
int LA10_1 = input.LA(2);
if ( (synpred1_CivlCParser()) ) {
alt10=1;
}
else if ( (true) ) {
alt10=2;
}
}
else if ( (LA10_0==CHARACTER_CONSTANT||LA10_0==ELLIPSIS||LA10_0==FLOATING_CONSTANT||LA10_0==IDENTIFIER||LA10_0==INTEGER_CONSTANT||LA10_0==STRING_LITERAL||LA10_0==DERIV||LA10_0==GENERIC||LA10_0==HERE||LA10_0==PROCNULL||LA10_0==RESULT||LA10_0==SELF||LA10_0==STATE_NULL) ) {
alt10=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 10, 0, input);
throw nvae;
}
switch (alt10) {
case 1 :
// CivlCParser.g:369:4: ( LPAREN typeName RPAREN LCURLY )=> LPAREN typeName RPAREN LCURLY initializerList ( RCURLY | COMMA RCURLY )
{
LPAREN77=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_postfixExpressionRoot2347); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN77);
pushFollow(FOLLOW_typeName_in_postfixExpressionRoot2349);
typeName78=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName78.getTree());
RPAREN79=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_postfixExpressionRoot2351); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN79);
LCURLY80=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_postfixExpressionRoot2353); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY80);
pushFollow(FOLLOW_initializerList_in_postfixExpressionRoot2355);
initializerList81=initializerList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializerList.add(initializerList81.getTree());
// CivlCParser.g:371:3: ( RCURLY | COMMA RCURLY )
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==RCURLY) ) {
alt9=1;
}
else if ( (LA9_0==COMMA) ) {
alt9=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 9, 0, input);
throw nvae;
}
switch (alt9) {
case 1 :
// CivlCParser.g:371:5: RCURLY
{
RCURLY82=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_postfixExpressionRoot2361); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY82);
}
break;
case 2 :
// CivlCParser.g:372:5: COMMA RCURLY
{
COMMA83=(Token)match(input,COMMA,FOLLOW_COMMA_in_postfixExpressionRoot2367); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA83);
RCURLY84=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_postfixExpressionRoot2369); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY84);
}
break;
}
// AST REWRITE
// elements: LPAREN, RCURLY, initializerList, typeName
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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:9: -> ^( COMPOUND_LITERAL LPAREN typeName initializerList RCURLY )
{
// CivlCParser.g:374:12: ^( COMPOUND_LITERAL LPAREN typeName initializerList RCURLY )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COMPOUND_LITERAL, "COMPOUND_LITERAL"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_typeName.nextTree());
adaptor.addChild(root_1, stream_initializerList.nextTree());
adaptor.addChild(root_1, stream_RCURLY.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:375:4: primaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_primaryExpression_in_postfixExpressionRoot2400);
primaryExpression85=primaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, primaryExpression85.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 "postfixExpressionRoot"
public static class argumentExpressionList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "argumentExpressionList"
// CivlCParser.g:379:1: argumentExpressionList : ( (a+= assignmentExpression |a+= quantifiedExpression ) ( COMMA (a+= assignmentExpression |a+= quantifiedExpression ) )* -> ^( ARGUMENT_LIST ( $a)+ ) | -> ^( ARGUMENT_LIST ) );
public final OmpParser_CivlCParser.argumentExpressionList_return argumentExpressionList() throws RecognitionException {
OmpParser_CivlCParser.argumentExpressionList_return retval = new OmpParser_CivlCParser.argumentExpressionList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA86=null;
List<Object> list_a=null;
RuleReturnScope a = null;
Object COMMA86_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_quantifiedExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifiedExpression");
try {
// CivlCParser.g:380:2: ( (a+= assignmentExpression |a+= quantifiedExpression ) ( COMMA (a+= assignmentExpression |a+= quantifiedExpression ) )* -> ^( ARGUMENT_LIST ( $a)+ ) | -> ^( ARGUMENT_LIST ) )
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==AMPERSAND||LA14_0==CHARACTER_CONSTANT||LA14_0==ELLIPSIS||LA14_0==FLOATING_CONSTANT||LA14_0==IDENTIFIER||LA14_0==INTEGER_CONSTANT||LA14_0==LPAREN||LA14_0==MINUSMINUS||LA14_0==NOT||LA14_0==PLUS||LA14_0==PLUSPLUS||LA14_0==STAR||(LA14_0 >= STRING_LITERAL && LA14_0 <= SUB)||LA14_0==TILDE||LA14_0==ALIGNOF||LA14_0==BIG_O||LA14_0==CALLS||LA14_0==DERIV||LA14_0==EXISTS||(LA14_0 >= FORALL && LA14_0 <= GENERIC)||LA14_0==HERE||LA14_0==PROCNULL||LA14_0==RESULT||(LA14_0 >= SCOPEOF && LA14_0 <= SELF)||(LA14_0 >= SIZEOF && LA14_0 <= SPAWN)||LA14_0==STATE_NULL||LA14_0==UNIFORM||LA14_0==VALUE_AT||LA14_0==SUM) ) {
alt14=1;
}
else if ( ((LA14_0 >= RCURLY && LA14_0 <= RPAREN)) ) {
alt14=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 14, 0, input);
throw nvae;
}
switch (alt14) {
case 1 :
// CivlCParser.g:380:4: (a+= assignmentExpression |a+= quantifiedExpression ) ( COMMA (a+= assignmentExpression |a+= quantifiedExpression ) )*
{
// CivlCParser.g:380:4: (a+= assignmentExpression |a+= quantifiedExpression )
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==AMPERSAND||LA11_0==CHARACTER_CONSTANT||LA11_0==ELLIPSIS||LA11_0==FLOATING_CONSTANT||LA11_0==IDENTIFIER||LA11_0==INTEGER_CONSTANT||LA11_0==LPAREN||LA11_0==MINUSMINUS||LA11_0==NOT||LA11_0==PLUS||LA11_0==PLUSPLUS||LA11_0==STAR||(LA11_0 >= STRING_LITERAL && LA11_0 <= SUB)||LA11_0==TILDE||LA11_0==ALIGNOF||LA11_0==BIG_O||LA11_0==CALLS||LA11_0==DERIV||LA11_0==GENERIC||LA11_0==HERE||LA11_0==PROCNULL||LA11_0==RESULT||(LA11_0 >= SCOPEOF && LA11_0 <= SELF)||(LA11_0 >= SIZEOF && LA11_0 <= SPAWN)||LA11_0==STATE_NULL||LA11_0==VALUE_AT||LA11_0==SUM) ) {
alt11=1;
}
else if ( (LA11_0==EXISTS||LA11_0==FORALL||LA11_0==UNIFORM) ) {
alt11=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 11, 0, input);
throw nvae;
}
switch (alt11) {
case 1 :
// CivlCParser.g:380:5: a+= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_argumentExpressionList2416);
a=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(a.getTree());
if (list_a==null) list_a=new ArrayList<Object>();
list_a.add(a.getTree());
}
break;
case 2 :
// CivlCParser.g:380:31: a+= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_argumentExpressionList2422);
a=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(a.getTree());
if (list_a==null) list_a=new ArrayList<Object>();
list_a.add(a.getTree());
}
break;
}
// CivlCParser.g:381:9: ( COMMA (a+= assignmentExpression |a+= quantifiedExpression ) )*
loop13:
while (true) {
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==COMMA) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// CivlCParser.g:381:10: COMMA (a+= assignmentExpression |a+= quantifiedExpression )
{
COMMA86=(Token)match(input,COMMA,FOLLOW_COMMA_in_argumentExpressionList2434); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA86);
// CivlCParser.g:381:16: (a+= assignmentExpression |a+= quantifiedExpression )
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==AMPERSAND||LA12_0==CHARACTER_CONSTANT||LA12_0==ELLIPSIS||LA12_0==FLOATING_CONSTANT||LA12_0==IDENTIFIER||LA12_0==INTEGER_CONSTANT||LA12_0==LPAREN||LA12_0==MINUSMINUS||LA12_0==NOT||LA12_0==PLUS||LA12_0==PLUSPLUS||LA12_0==STAR||(LA12_0 >= STRING_LITERAL && LA12_0 <= SUB)||LA12_0==TILDE||LA12_0==ALIGNOF||LA12_0==BIG_O||LA12_0==CALLS||LA12_0==DERIV||LA12_0==GENERIC||LA12_0==HERE||LA12_0==PROCNULL||LA12_0==RESULT||(LA12_0 >= SCOPEOF && LA12_0 <= SELF)||(LA12_0 >= SIZEOF && LA12_0 <= SPAWN)||LA12_0==STATE_NULL||LA12_0==VALUE_AT||LA12_0==SUM) ) {
alt12=1;
}
else if ( (LA12_0==EXISTS||LA12_0==FORALL||LA12_0==UNIFORM) ) {
alt12=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
// CivlCParser.g:381:17: a+= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_argumentExpressionList2439);
a=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(a.getTree());
if (list_a==null) list_a=new ArrayList<Object>();
list_a.add(a.getTree());
}
break;
case 2 :
// CivlCParser.g:381:43: a+= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_argumentExpressionList2445);
a=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(a.getTree());
if (list_a==null) list_a=new ArrayList<Object>();
list_a.add(a.getTree());
}
break;
}
}
break;
default :
break loop13;
}
}
// 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();
// 382:9: -> ^( ARGUMENT_LIST ( $a)+ )
{
// CivlCParser.g:382:12: ^( ARGUMENT_LIST ( $a)+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_1);
if ( !(stream_a.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_a.hasNext() ) {
adaptor.addChild(root_1, stream_a.nextTree());
}
stream_a.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:383: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();
// 383:7: -> ^( ARGUMENT_LIST )
{
// CivlCParser.g:383:10: ^( 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;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 unaryExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unaryExpression"
// CivlCParser.g:387:1: unaryExpression : ( postfixExpression |p= PLUSPLUS unaryExpression -> ^( OPERATOR PRE_INCREMENT[$p] ^( ARGUMENT_LIST unaryExpression ) ) |m= MINUSMINUS unaryExpression -> ^( OPERATOR PRE_DECREMENT[$m] ^( ARGUMENT_LIST unaryExpression ) ) | unaryOperator (a= castExpression |a= quantifiedExpression ) -> ^( OPERATOR unaryOperator ^( ARGUMENT_LIST $a) ) | ( SIZEOF LPAREN typeName )=> SIZEOF LPAREN typeName RPAREN -> ^( SIZEOF TYPE typeName ) | SIZEOF unaryExpression -> ^( SIZEOF EXPR unaryExpression ) | SCOPEOF unaryExpression -> ^( SCOPEOF unaryExpression ) | ALIGNOF LPAREN typeName RPAREN -> ^( ALIGNOF typeName ) | VALUE_AT LPAREN b+= assignmentExpression COMMA b+= assignmentExpression COMMA (b+= assignmentExpression |b+= quantifiedExpression ) RPAREN -> ^( VALUE_AT ( $b)+ RPAREN ) | spawnExpression | callsExpression | sumExpression );
public final OmpParser_CivlCParser.unaryExpression_return unaryExpression() throws RecognitionException {
DeclarationScope_stack.push(new DeclarationScope_scope());
OmpParser_CivlCParser.unaryExpression_return retval = new OmpParser_CivlCParser.unaryExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token p=null;
Token m=null;
Token SIZEOF91=null;
Token LPAREN92=null;
Token RPAREN94=null;
Token SIZEOF95=null;
Token SCOPEOF97=null;
Token ALIGNOF99=null;
Token LPAREN100=null;
Token RPAREN102=null;
Token VALUE_AT103=null;
Token LPAREN104=null;
Token COMMA105=null;
Token COMMA106=null;
Token RPAREN107=null;
List<Object> list_b=null;
ParserRuleReturnScope a =null;
ParserRuleReturnScope postfixExpression87 =null;
ParserRuleReturnScope unaryExpression88 =null;
ParserRuleReturnScope unaryExpression89 =null;
ParserRuleReturnScope unaryOperator90 =null;
ParserRuleReturnScope typeName93 =null;
ParserRuleReturnScope unaryExpression96 =null;
ParserRuleReturnScope unaryExpression98 =null;
ParserRuleReturnScope typeName101 =null;
ParserRuleReturnScope spawnExpression108 =null;
ParserRuleReturnScope callsExpression109 =null;
ParserRuleReturnScope sumExpression110 =null;
RuleReturnScope b = null;
Object p_tree=null;
Object m_tree=null;
Object SIZEOF91_tree=null;
Object LPAREN92_tree=null;
Object RPAREN94_tree=null;
Object SIZEOF95_tree=null;
Object SCOPEOF97_tree=null;
Object ALIGNOF99_tree=null;
Object LPAREN100_tree=null;
Object RPAREN102_tree=null;
Object VALUE_AT103_tree=null;
Object LPAREN104_tree=null;
Object COMMA105_tree=null;
Object COMMA106_tree=null;
Object RPAREN107_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_SCOPEOF=new RewriteRuleTokenStream(adaptor,"token SCOPEOF");
RewriteRuleTokenStream stream_ALIGNOF=new RewriteRuleTokenStream(adaptor,"token ALIGNOF");
RewriteRuleTokenStream stream_SIZEOF=new RewriteRuleTokenStream(adaptor,"token SIZEOF");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_VALUE_AT=new RewriteRuleTokenStream(adaptor,"token VALUE_AT");
RewriteRuleTokenStream stream_MINUSMINUS=new RewriteRuleTokenStream(adaptor,"token MINUSMINUS");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_PLUSPLUS=new RewriteRuleTokenStream(adaptor,"token PLUSPLUS");
RewriteRuleSubtreeStream stream_castExpression=new RewriteRuleSubtreeStream(adaptor,"rule castExpression");
RewriteRuleSubtreeStream stream_unaryOperator=new RewriteRuleSubtreeStream(adaptor,"rule unaryOperator");
RewriteRuleSubtreeStream stream_typeName=new RewriteRuleSubtreeStream(adaptor,"rule typeName");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression");
RewriteRuleSubtreeStream stream_quantifiedExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifiedExpression");
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().hasTypeSpec = false;
try {
// CivlCParser.g:393:2: ( postfixExpression |p= PLUSPLUS unaryExpression -> ^( OPERATOR PRE_INCREMENT[$p] ^( ARGUMENT_LIST unaryExpression ) ) |m= MINUSMINUS unaryExpression -> ^( OPERATOR PRE_DECREMENT[$m] ^( ARGUMENT_LIST unaryExpression ) ) | unaryOperator (a= castExpression |a= quantifiedExpression ) -> ^( OPERATOR unaryOperator ^( ARGUMENT_LIST $a) ) | ( SIZEOF LPAREN typeName )=> SIZEOF LPAREN typeName RPAREN -> ^( SIZEOF TYPE typeName ) | SIZEOF unaryExpression -> ^( SIZEOF EXPR unaryExpression ) | SCOPEOF unaryExpression -> ^( SCOPEOF unaryExpression ) | ALIGNOF LPAREN typeName RPAREN -> ^( ALIGNOF typeName ) | VALUE_AT LPAREN b+= assignmentExpression COMMA b+= assignmentExpression COMMA (b+= assignmentExpression |b+= quantifiedExpression ) RPAREN -> ^( VALUE_AT ( $b)+ RPAREN ) | spawnExpression | callsExpression | sumExpression )
int alt17=12;
switch ( input.LA(1) ) {
case CHARACTER_CONSTANT:
case ELLIPSIS:
case FLOATING_CONSTANT:
case IDENTIFIER:
case INTEGER_CONSTANT:
case LPAREN:
case STRING_LITERAL:
case DERIV:
case GENERIC:
case HERE:
case PROCNULL:
case RESULT:
case SELF:
case STATE_NULL:
{
alt17=1;
}
break;
case PLUSPLUS:
{
alt17=2;
}
break;
case MINUSMINUS:
{
alt17=3;
}
break;
case AMPERSAND:
case NOT:
case PLUS:
case STAR:
case SUB:
case TILDE:
case BIG_O:
{
alt17=4;
}
break;
case SIZEOF:
{
int LA17_18 = input.LA(2);
if ( (synpred2_CivlCParser()) ) {
alt17=5;
}
else if ( (true) ) {
alt17=6;
}
}
break;
case SCOPEOF:
{
alt17=7;
}
break;
case ALIGNOF:
{
alt17=8;
}
break;
case VALUE_AT:
{
alt17=9;
}
break;
case SPAWN:
{
alt17=10;
}
break;
case CALLS:
{
alt17=11;
}
break;
case SUM:
{
alt17=12;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 17, 0, input);
throw nvae;
}
switch (alt17) {
case 1 :
// CivlCParser.g:393:4: postfixExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_postfixExpression_in_unaryExpression2504);
postfixExpression87=postfixExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, postfixExpression87.getTree());
}
break;
case 2 :
// CivlCParser.g:394:4: p= PLUSPLUS unaryExpression
{
p=(Token)match(input,PLUSPLUS,FOLLOW_PLUSPLUS_in_unaryExpression2511); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUSPLUS.add(p);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression2513);
unaryExpression88=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression88.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();
// 395:9: -> ^( OPERATOR PRE_INCREMENT[$p] ^( ARGUMENT_LIST unaryExpression ) )
{
// CivlCParser.g:395:12: ^( OPERATOR PRE_INCREMENT[$p] ^( ARGUMENT_LIST unaryExpression ) )
{
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(PRE_INCREMENT, p));
// CivlCParser.g:396:13: ^( ARGUMENT_LIST unaryExpression )
{
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_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:397:4: m= MINUSMINUS unaryExpression
{
m=(Token)match(input,MINUSMINUS,FOLLOW_MINUSMINUS_in_unaryExpression2555); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MINUSMINUS.add(m);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression2557);
unaryExpression89=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression89.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();
// 398:9: -> ^( OPERATOR PRE_DECREMENT[$m] ^( ARGUMENT_LIST unaryExpression ) )
{
// CivlCParser.g:398:12: ^( OPERATOR PRE_DECREMENT[$m] ^( ARGUMENT_LIST unaryExpression ) )
{
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(PRE_DECREMENT, m));
// CivlCParser.g:399:13: ^( ARGUMENT_LIST unaryExpression )
{
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_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// CivlCParser.g:400:4: unaryOperator (a= castExpression |a= quantifiedExpression )
{
pushFollow(FOLLOW_unaryOperator_in_unaryExpression2597);
unaryOperator90=unaryOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryOperator.add(unaryOperator90.getTree());
// CivlCParser.g:400:18: (a= castExpression |a= quantifiedExpression )
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==AMPERSAND||LA15_0==CHARACTER_CONSTANT||LA15_0==ELLIPSIS||LA15_0==FLOATING_CONSTANT||LA15_0==IDENTIFIER||LA15_0==INTEGER_CONSTANT||LA15_0==LPAREN||LA15_0==MINUSMINUS||LA15_0==NOT||LA15_0==PLUS||LA15_0==PLUSPLUS||LA15_0==STAR||(LA15_0 >= STRING_LITERAL && LA15_0 <= SUB)||LA15_0==TILDE||LA15_0==ALIGNOF||LA15_0==BIG_O||LA15_0==CALLS||LA15_0==DERIV||LA15_0==GENERIC||LA15_0==HERE||LA15_0==PROCNULL||LA15_0==RESULT||(LA15_0 >= SCOPEOF && LA15_0 <= SELF)||(LA15_0 >= SIZEOF && LA15_0 <= SPAWN)||LA15_0==STATE_NULL||LA15_0==VALUE_AT||LA15_0==SUM) ) {
alt15=1;
}
else if ( (LA15_0==EXISTS||LA15_0==FORALL||LA15_0==UNIFORM) ) {
alt15=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 15, 0, input);
throw nvae;
}
switch (alt15) {
case 1 :
// CivlCParser.g:400:19: a= castExpression
{
pushFollow(FOLLOW_castExpression_in_unaryExpression2602);
a=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(a.getTree());
}
break;
case 2 :
// CivlCParser.g:400:38: a= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_unaryExpression2608);
a=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(a.getTree());
}
break;
}
// AST REWRITE
// elements: unaryOperator, 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();
// 401:9: -> ^( OPERATOR unaryOperator ^( ARGUMENT_LIST $a) )
{
// CivlCParser.g:401:12: ^( OPERATOR unaryOperator ^( ARGUMENT_LIST $a) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_unaryOperator.nextTree());
// CivlCParser.g:401:37: ^( ARGUMENT_LIST $a)
{
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_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// CivlCParser.g:402:4: ( SIZEOF LPAREN typeName )=> SIZEOF LPAREN typeName RPAREN
{
SIZEOF91=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unaryExpression2646); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF91);
LPAREN92=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression2648); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN92);
pushFollow(FOLLOW_typeName_in_unaryExpression2650);
typeName93=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName93.getTree());
RPAREN94=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression2652); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN94);
// AST REWRITE
// elements: typeName, SIZEOF
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 403:9: -> ^( SIZEOF TYPE typeName )
{
// CivlCParser.g:403:12: ^( SIZEOF TYPE typeName )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_SIZEOF.nextNode(), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(TYPE, "TYPE"));
adaptor.addChild(root_1, stream_typeName.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// CivlCParser.g:404:4: SIZEOF unaryExpression
{
SIZEOF95=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unaryExpression2675); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF95);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression2677);
unaryExpression96=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression96.getTree());
// AST REWRITE
// elements: unaryExpression, SIZEOF
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 405:9: -> ^( SIZEOF EXPR unaryExpression )
{
// CivlCParser.g:405:12: ^( SIZEOF EXPR unaryExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_SIZEOF.nextNode(), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(EXPR, "EXPR"));
adaptor.addChild(root_1, stream_unaryExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 7 :
// CivlCParser.g:406:4: SCOPEOF unaryExpression
{
SCOPEOF97=(Token)match(input,SCOPEOF,FOLLOW_SCOPEOF_in_unaryExpression2700); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SCOPEOF.add(SCOPEOF97);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression2702);
unaryExpression98=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression98.getTree());
// AST REWRITE
// elements: unaryExpression, SCOPEOF
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 407:9: -> ^( SCOPEOF unaryExpression )
{
// CivlCParser.g:407:12: ^( SCOPEOF unaryExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_SCOPEOF.nextNode(), root_1);
adaptor.addChild(root_1, stream_unaryExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 8 :
// CivlCParser.g:408:4: ALIGNOF LPAREN typeName RPAREN
{
ALIGNOF99=(Token)match(input,ALIGNOF,FOLLOW_ALIGNOF_in_unaryExpression2723); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ALIGNOF.add(ALIGNOF99);
LPAREN100=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression2725); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN100);
pushFollow(FOLLOW_typeName_in_unaryExpression2727);
typeName101=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName101.getTree());
RPAREN102=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression2729); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN102);
// AST REWRITE
// elements: ALIGNOF, typeName
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 409:9: -> ^( ALIGNOF typeName )
{
// CivlCParser.g:409:12: ^( ALIGNOF typeName )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ALIGNOF.nextNode(), root_1);
adaptor.addChild(root_1, stream_typeName.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 9 :
// CivlCParser.g:410:4: VALUE_AT LPAREN b+= assignmentExpression COMMA b+= assignmentExpression COMMA (b+= assignmentExpression |b+= quantifiedExpression ) RPAREN
{
VALUE_AT103=(Token)match(input,VALUE_AT,FOLLOW_VALUE_AT_in_unaryExpression2750); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_VALUE_AT.add(VALUE_AT103);
LPAREN104=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression2752); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN104);
pushFollow(FOLLOW_assignmentExpression_in_unaryExpression2764);
b=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(b.getTree());
if (list_b==null) list_b=new ArrayList<Object>();
list_b.add(b.getTree());
COMMA105=(Token)match(input,COMMA,FOLLOW_COMMA_in_unaryExpression2766); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA105);
pushFollow(FOLLOW_assignmentExpression_in_unaryExpression2778);
b=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(b.getTree());
if (list_b==null) list_b=new ArrayList<Object>();
list_b.add(b.getTree());
COMMA106=(Token)match(input,COMMA,FOLLOW_COMMA_in_unaryExpression2780); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA106);
// CivlCParser.g:413:9: (b+= assignmentExpression |b+= quantifiedExpression )
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==AMPERSAND||LA16_0==CHARACTER_CONSTANT||LA16_0==ELLIPSIS||LA16_0==FLOATING_CONSTANT||LA16_0==IDENTIFIER||LA16_0==INTEGER_CONSTANT||LA16_0==LPAREN||LA16_0==MINUSMINUS||LA16_0==NOT||LA16_0==PLUS||LA16_0==PLUSPLUS||LA16_0==STAR||(LA16_0 >= STRING_LITERAL && LA16_0 <= SUB)||LA16_0==TILDE||LA16_0==ALIGNOF||LA16_0==BIG_O||LA16_0==CALLS||LA16_0==DERIV||LA16_0==GENERIC||LA16_0==HERE||LA16_0==PROCNULL||LA16_0==RESULT||(LA16_0 >= SCOPEOF && LA16_0 <= SELF)||(LA16_0 >= SIZEOF && LA16_0 <= SPAWN)||LA16_0==STATE_NULL||LA16_0==VALUE_AT||LA16_0==SUM) ) {
alt16=1;
}
else if ( (LA16_0==EXISTS||LA16_0==FORALL||LA16_0==UNIFORM) ) {
alt16=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 16, 0, input);
throw nvae;
}
switch (alt16) {
case 1 :
// CivlCParser.g:413:10: b+= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_unaryExpression2793);
b=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(b.getTree());
if (list_b==null) list_b=new ArrayList<Object>();
list_b.add(b.getTree());
}
break;
case 2 :
// CivlCParser.g:413:36: b+= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_unaryExpression2799);
b=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(b.getTree());
if (list_b==null) list_b=new ArrayList<Object>();
list_b.add(b.getTree());
}
break;
}
RPAREN107=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpression2802); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN107);
// AST REWRITE
// elements: VALUE_AT, RPAREN, 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();
// 414:9: -> ^( VALUE_AT ( $b)+ RPAREN )
{
// CivlCParser.g:414:12: ^( VALUE_AT ( $b)+ RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_VALUE_AT.nextNode(), 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_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 10 :
// CivlCParser.g:415:4: spawnExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_spawnExpression_in_unaryExpression2827);
spawnExpression108=spawnExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, spawnExpression108.getTree());
}
break;
case 11 :
// CivlCParser.g:416:7: callsExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_callsExpression_in_unaryExpression2835);
callsExpression109=callsExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, callsExpression109.getTree());
}
break;
case 12 :
// CivlCParser.g:417:4: sumExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_sumExpression_in_unaryExpression2840);
sumExpression110=sumExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, sumExpression110.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
DeclarationScope_stack.pop();
}
return retval;
}
// $ANTLR end "unaryExpression"
public static class spawnExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "spawnExpression"
// CivlCParser.g:421:1: spawnExpression : SPAWN postfixExpressionRoot LPAREN argumentExpressionList RPAREN -> ^( SPAWN LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) ;
public final OmpParser_CivlCParser.spawnExpression_return spawnExpression() throws RecognitionException {
OmpParser_CivlCParser.spawnExpression_return retval = new OmpParser_CivlCParser.spawnExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SPAWN111=null;
Token LPAREN113=null;
Token RPAREN115=null;
ParserRuleReturnScope postfixExpressionRoot112 =null;
ParserRuleReturnScope argumentExpressionList114 =null;
Object SPAWN111_tree=null;
Object LPAREN113_tree=null;
Object RPAREN115_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_SPAWN=new RewriteRuleTokenStream(adaptor,"token SPAWN");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_postfixExpressionRoot=new RewriteRuleSubtreeStream(adaptor,"rule postfixExpressionRoot");
try {
// CivlCParser.g:422:2: ( SPAWN postfixExpressionRoot LPAREN argumentExpressionList RPAREN -> ^( SPAWN LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) )
// CivlCParser.g:422:4: SPAWN postfixExpressionRoot LPAREN argumentExpressionList RPAREN
{
SPAWN111=(Token)match(input,SPAWN,FOLLOW_SPAWN_in_spawnExpression2853); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SPAWN.add(SPAWN111);
pushFollow(FOLLOW_postfixExpressionRoot_in_spawnExpression2855);
postfixExpressionRoot112=postfixExpressionRoot();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfixExpressionRoot.add(postfixExpressionRoot112.getTree());
LPAREN113=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_spawnExpression2857); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN113);
pushFollow(FOLLOW_argumentExpressionList_in_spawnExpression2859);
argumentExpressionList114=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList114.getTree());
RPAREN115=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_spawnExpression2861); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN115);
// AST REWRITE
// elements: postfixExpressionRoot, RPAREN, argumentExpressionList, SPAWN, 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();
// 423:9: -> ^( SPAWN LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN )
{
// CivlCParser.g:423:12: ^( SPAWN LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_SPAWN.nextNode(), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_postfixExpressionRoot.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_1, stream_RPAREN.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 "spawnExpression"
public static class callsExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "callsExpression"
// CivlCParser.g:428:1: callsExpression : CALLS LPAREN postfixExpressionRoot LPAREN argumentExpressionList RPAREN RPAREN -> ^( CALLS LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) ;
public final OmpParser_CivlCParser.callsExpression_return callsExpression() throws RecognitionException {
OmpParser_CivlCParser.callsExpression_return retval = new OmpParser_CivlCParser.callsExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token CALLS116=null;
Token LPAREN117=null;
Token LPAREN119=null;
Token RPAREN121=null;
Token RPAREN122=null;
ParserRuleReturnScope postfixExpressionRoot118 =null;
ParserRuleReturnScope argumentExpressionList120 =null;
Object CALLS116_tree=null;
Object LPAREN117_tree=null;
Object LPAREN119_tree=null;
Object RPAREN121_tree=null;
Object RPAREN122_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_CALLS=new RewriteRuleTokenStream(adaptor,"token CALLS");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_postfixExpressionRoot=new RewriteRuleSubtreeStream(adaptor,"rule postfixExpressionRoot");
try {
// CivlCParser.g:429:2: ( CALLS LPAREN postfixExpressionRoot LPAREN argumentExpressionList RPAREN RPAREN -> ^( CALLS LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) )
// CivlCParser.g:429:4: CALLS LPAREN postfixExpressionRoot LPAREN argumentExpressionList RPAREN RPAREN
{
CALLS116=(Token)match(input,CALLS,FOLLOW_CALLS_in_callsExpression2910); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CALLS.add(CALLS116);
LPAREN117=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_callsExpression2912); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN117);
pushFollow(FOLLOW_postfixExpressionRoot_in_callsExpression2914);
postfixExpressionRoot118=postfixExpressionRoot();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfixExpressionRoot.add(postfixExpressionRoot118.getTree());
LPAREN119=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_callsExpression2916); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN119);
pushFollow(FOLLOW_argumentExpressionList_in_callsExpression2926);
argumentExpressionList120=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList120.getTree());
RPAREN121=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_callsExpression2928); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN121);
RPAREN122=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_callsExpression2930); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN122);
// AST REWRITE
// elements: RPAREN, postfixExpressionRoot, CALLS, argumentExpressionList, 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();
// 431:9: -> ^( CALLS LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN )
{
// CivlCParser.g:431:12: ^( CALLS LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_CALLS.nextNode(), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_postfixExpressionRoot.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_1, stream_RPAREN.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 "callsExpression"
public static class sumExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "sumExpression"
// CivlCParser.g:436:1: sumExpression : SUM LPAREN boundVariableDeclarationList RPAREN (body= assignmentExpression |body= quantifiedExpression ) -> ^( SUM boundVariableDeclarationList $body) ;
public final OmpParser_CivlCParser.sumExpression_return sumExpression() throws RecognitionException {
DeclarationScope_stack.push(new DeclarationScope_scope());
OmpParser_CivlCParser.sumExpression_return retval = new OmpParser_CivlCParser.sumExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SUM123=null;
Token LPAREN124=null;
Token RPAREN126=null;
ParserRuleReturnScope body =null;
ParserRuleReturnScope boundVariableDeclarationList125 =null;
Object SUM123_tree=null;
Object LPAREN124_tree=null;
Object RPAREN126_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_SUM=new RewriteRuleTokenStream(adaptor,"token SUM");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_boundVariableDeclarationList=new RewriteRuleSubtreeStream(adaptor,"rule boundVariableDeclarationList");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_quantifiedExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifiedExpression");
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().hasTypeSpec = false;
try {
// CivlCParser.g:442:2: ( SUM LPAREN boundVariableDeclarationList RPAREN (body= assignmentExpression |body= quantifiedExpression ) -> ^( SUM boundVariableDeclarationList $body) )
// CivlCParser.g:442:4: SUM LPAREN boundVariableDeclarationList RPAREN (body= assignmentExpression |body= quantifiedExpression )
{
SUM123=(Token)match(input,SUM,FOLLOW_SUM_in_sumExpression2988); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUM.add(SUM123);
LPAREN124=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_sumExpression2990); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN124);
pushFollow(FOLLOW_boundVariableDeclarationList_in_sumExpression2992);
boundVariableDeclarationList125=boundVariableDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_boundVariableDeclarationList.add(boundVariableDeclarationList125.getTree());
RPAREN126=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_sumExpression2994); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN126);
// CivlCParser.g:443:6: (body= assignmentExpression |body= quantifiedExpression )
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==AMPERSAND||LA18_0==CHARACTER_CONSTANT||LA18_0==ELLIPSIS||LA18_0==FLOATING_CONSTANT||LA18_0==IDENTIFIER||LA18_0==INTEGER_CONSTANT||LA18_0==LPAREN||LA18_0==MINUSMINUS||LA18_0==NOT||LA18_0==PLUS||LA18_0==PLUSPLUS||LA18_0==STAR||(LA18_0 >= STRING_LITERAL && LA18_0 <= SUB)||LA18_0==TILDE||LA18_0==ALIGNOF||LA18_0==BIG_O||LA18_0==CALLS||LA18_0==DERIV||LA18_0==GENERIC||LA18_0==HERE||LA18_0==PROCNULL||LA18_0==RESULT||(LA18_0 >= SCOPEOF && LA18_0 <= SELF)||(LA18_0 >= SIZEOF && LA18_0 <= SPAWN)||LA18_0==STATE_NULL||LA18_0==VALUE_AT||LA18_0==SUM) ) {
alt18=1;
}
else if ( (LA18_0==EXISTS||LA18_0==FORALL||LA18_0==UNIFORM) ) {
alt18=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 18, 0, input);
throw nvae;
}
switch (alt18) {
case 1 :
// CivlCParser.g:443:7: body= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_sumExpression3004);
body=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(body.getTree());
}
break;
case 2 :
// CivlCParser.g:443:35: body= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_sumExpression3010);
body=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(body.getTree());
}
break;
}
// AST REWRITE
// elements: body, SUM, boundVariableDeclarationList
// token labels:
// rule labels: body, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_body=new RewriteRuleSubtreeStream(adaptor,"rule body",body!=null?body.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 444:6: -> ^( SUM boundVariableDeclarationList $body)
{
// CivlCParser.g:444:9: ^( SUM boundVariableDeclarationList $body)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_SUM.nextNode(), root_1);
adaptor.addChild(root_1, stream_boundVariableDeclarationList.nextTree());
adaptor.addChild(root_1, stream_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
DeclarationScope_stack.pop();
}
return retval;
}
// $ANTLR end "sumExpression"
public static class unaryOperator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unaryOperator"
// CivlCParser.g:449:1: unaryOperator : ( AMPERSAND | STAR | PLUS | SUB | TILDE | NOT | BIG_O );
public final OmpParser_CivlCParser.unaryOperator_return unaryOperator() throws RecognitionException {
OmpParser_CivlCParser.unaryOperator_return retval = new OmpParser_CivlCParser.unaryOperator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set127=null;
Object set127_tree=null;
try {
// CivlCParser.g:450:2: ( AMPERSAND | STAR | PLUS | SUB | TILDE | NOT | BIG_O )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set127=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.LA(1)==BIG_O ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set127));
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 "unaryOperator"
public static class castExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "castExpression"
// CivlCParser.g:459:1: castExpression : ( ( LPAREN typeName RPAREN ~ LCURLY )=>l= LPAREN typeName RPAREN castExpression -> ^( CAST typeName castExpression $l) | unaryExpression );
public final OmpParser_CivlCParser.castExpression_return castExpression() throws RecognitionException {
DeclarationScope_stack.push(new DeclarationScope_scope());
OmpParser_CivlCParser.castExpression_return retval = new OmpParser_CivlCParser.castExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token l=null;
Token RPAREN129=null;
ParserRuleReturnScope typeName128 =null;
ParserRuleReturnScope castExpression130 =null;
ParserRuleReturnScope unaryExpression131 =null;
Object l_tree=null;
Object RPAREN129_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_typeName=new RewriteRuleSubtreeStream(adaptor,"rule typeName");
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().hasTypeSpec = false;
try {
// CivlCParser.g:465:2: ( ( LPAREN typeName RPAREN ~ LCURLY )=>l= LPAREN typeName RPAREN castExpression -> ^( CAST typeName castExpression $l) | unaryExpression )
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==LPAREN) ) {
int LA19_1 = input.LA(2);
if ( (synpred3_CivlCParser()) ) {
alt19=1;
}
else if ( (true) ) {
alt19=2;
}
}
else if ( (LA19_0==AMPERSAND||LA19_0==CHARACTER_CONSTANT||LA19_0==ELLIPSIS||LA19_0==FLOATING_CONSTANT||LA19_0==IDENTIFIER||LA19_0==INTEGER_CONSTANT||LA19_0==MINUSMINUS||LA19_0==NOT||LA19_0==PLUS||LA19_0==PLUSPLUS||LA19_0==STAR||(LA19_0 >= STRING_LITERAL && LA19_0 <= SUB)||LA19_0==TILDE||LA19_0==ALIGNOF||LA19_0==BIG_O||LA19_0==CALLS||LA19_0==DERIV||LA19_0==GENERIC||LA19_0==HERE||LA19_0==PROCNULL||LA19_0==RESULT||(LA19_0 >= SCOPEOF && LA19_0 <= SELF)||(LA19_0 >= SIZEOF && LA19_0 <= SPAWN)||LA19_0==STATE_NULL||LA19_0==VALUE_AT||LA19_0==SUM) ) {
alt19=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 19, 0, input);
throw nvae;
}
switch (alt19) {
case 1 :
// CivlCParser.g:465:4: ( LPAREN typeName RPAREN ~ LCURLY )=>l= LPAREN typeName RPAREN castExpression
{
l=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_castExpression3108); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(l);
pushFollow(FOLLOW_typeName_in_castExpression3110);
typeName128=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName128.getTree());
RPAREN129=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_castExpression3112); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN129);
pushFollow(FOLLOW_castExpression_in_castExpression3114);
castExpression130=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(castExpression130.getTree());
// AST REWRITE
// elements: l, typeName, castExpression
// token labels: l
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleTokenStream stream_l=new RewriteRuleTokenStream(adaptor,"token l",l);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 467:9: -> ^( CAST typeName castExpression $l)
{
// CivlCParser.g:467:12: ^( CAST typeName castExpression $l)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CAST, "CAST"), root_1);
adaptor.addChild(root_1, stream_typeName.nextTree());
adaptor.addChild(root_1, stream_castExpression.nextTree());
adaptor.addChild(root_1, stream_l.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:468:4: unaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unaryExpression_in_castExpression3140);
unaryExpression131=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression131.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
DeclarationScope_stack.pop();
}
return retval;
}
// $ANTLR end "castExpression"
public static class remoteExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "remoteExpression"
// CivlCParser.g:473:1: remoteExpression : ( castExpression -> castExpression ) ( ( AT )=> AT y= castExpression -> ^( OPERATOR AT ^( ARGUMENT_LIST $remoteExpression $y) ) )* ;
public final OmpParser_CivlCParser.remoteExpression_return remoteExpression() throws RecognitionException {
OmpParser_CivlCParser.remoteExpression_return retval = new OmpParser_CivlCParser.remoteExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AT133=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope castExpression132 =null;
Object AT133_tree=null;
RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT");
RewriteRuleSubtreeStream stream_castExpression=new RewriteRuleSubtreeStream(adaptor,"rule castExpression");
try {
// CivlCParser.g:474:2: ( ( castExpression -> castExpression ) ( ( AT )=> AT y= castExpression -> ^( OPERATOR AT ^( ARGUMENT_LIST $remoteExpression $y) ) )* )
// CivlCParser.g:474:4: ( castExpression -> castExpression ) ( ( AT )=> AT y= castExpression -> ^( OPERATOR AT ^( ARGUMENT_LIST $remoteExpression $y) ) )*
{
// CivlCParser.g:474:4: ( castExpression -> castExpression )
// CivlCParser.g:474:5: castExpression
{
pushFollow(FOLLOW_castExpression_in_remoteExpression3154);
castExpression132=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(castExpression132.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();
// 474:20: -> castExpression
{
adaptor.addChild(root_0, stream_castExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:475:9: ( ( AT )=> AT y= castExpression -> ^( OPERATOR AT ^( ARGUMENT_LIST $remoteExpression $y) ) )*
loop20:
while (true) {
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==AT) ) {
int LA20_2 = input.LA(2);
if ( (synpred4_CivlCParser()) ) {
alt20=1;
}
}
switch (alt20) {
case 1 :
// CivlCParser.g:475:11: ( AT )=> AT y= castExpression
{
AT133=(Token)match(input,AT,FOLLOW_AT_in_remoteExpression3176); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AT.add(AT133);
pushFollow(FOLLOW_castExpression_in_remoteExpression3180);
y=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(y.getTree());
// AST REWRITE
// elements: AT, y, remoteExpression
// 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();
// 476:13: -> ^( OPERATOR AT ^( ARGUMENT_LIST $remoteExpression $y) )
{
// CivlCParser.g:476:16: ^( OPERATOR AT ^( ARGUMENT_LIST $remoteExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_AT.nextNode());
// CivlCParser.g:476:30: ^( ARGUMENT_LIST $remoteExpression $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 loop20;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 multiplicativeExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "multiplicativeExpression"
// CivlCParser.g:481:1: multiplicativeExpression : ( remoteExpression -> remoteExpression ) ( ( STAR )=> STAR y= remoteExpression -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | ( DIV )=> DIV y= remoteExpression -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | ( MOD )=> MOD y= remoteExpression -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) ) )* ;
public final OmpParser_CivlCParser.multiplicativeExpression_return multiplicativeExpression() throws RecognitionException {
OmpParser_CivlCParser.multiplicativeExpression_return retval = new OmpParser_CivlCParser.multiplicativeExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STAR135=null;
Token DIV136=null;
Token MOD137=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope remoteExpression134 =null;
Object STAR135_tree=null;
Object DIV136_tree=null;
Object MOD137_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_remoteExpression=new RewriteRuleSubtreeStream(adaptor,"rule remoteExpression");
try {
// CivlCParser.g:482:2: ( ( remoteExpression -> remoteExpression ) ( ( STAR )=> STAR y= remoteExpression -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | ( DIV )=> DIV y= remoteExpression -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | ( MOD )=> MOD y= remoteExpression -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) ) )* )
// CivlCParser.g:482:4: ( remoteExpression -> remoteExpression ) ( ( STAR )=> STAR y= remoteExpression -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | ( DIV )=> DIV y= remoteExpression -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | ( MOD )=> MOD y= remoteExpression -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) ) )*
{
// CivlCParser.g:482:4: ( remoteExpression -> remoteExpression )
// CivlCParser.g:482:5: remoteExpression
{
pushFollow(FOLLOW_remoteExpression_in_multiplicativeExpression3235);
remoteExpression134=remoteExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_remoteExpression.add(remoteExpression134.getTree());
// AST REWRITE
// elements: remoteExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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:22: -> remoteExpression
{
adaptor.addChild(root_0, stream_remoteExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:483:9: ( ( STAR )=> STAR y= remoteExpression -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | ( DIV )=> DIV y= remoteExpression -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) ) | ( MOD )=> MOD y= remoteExpression -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) ) )*
loop21:
while (true) {
int alt21=4;
switch ( input.LA(1) ) {
case STAR:
{
int LA21_2 = input.LA(2);
if ( (synpred5_CivlCParser()) ) {
alt21=1;
}
}
break;
case DIV:
{
int LA21_3 = input.LA(2);
if ( (synpred6_CivlCParser()) ) {
alt21=2;
}
}
break;
case MOD:
{
int LA21_4 = input.LA(2);
if ( (synpred7_CivlCParser()) ) {
alt21=3;
}
}
break;
}
switch (alt21) {
case 1 :
// CivlCParser.g:483:11: ( STAR )=> STAR y= remoteExpression
{
STAR135=(Token)match(input,STAR,FOLLOW_STAR_in_multiplicativeExpression3257); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR135);
pushFollow(FOLLOW_remoteExpression_in_multiplicativeExpression3261);
y=remoteExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_remoteExpression.add(y.getTree());
// AST REWRITE
// elements: multiplicativeExpression, STAR, 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();
// 484:13: -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// CivlCParser.g:484:16: ^( 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());
// CivlCParser.g:484:32: ^( 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 :
// CivlCParser.g:485:11: ( DIV )=> DIV y= remoteExpression
{
DIV136=(Token)match(input,DIV,FOLLOW_DIV_in_multiplicativeExpression3308); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DIV.add(DIV136);
pushFollow(FOLLOW_remoteExpression_in_multiplicativeExpression3312);
y=remoteExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_remoteExpression.add(y.getTree());
// AST REWRITE
// elements: multiplicativeExpression, y, DIV
// 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();
// 486:13: -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// CivlCParser.g:486:16: ^( 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());
// CivlCParser.g:486:31: ^( 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 :
// CivlCParser.g:487:11: ( MOD )=> MOD y= remoteExpression
{
MOD137=(Token)match(input,MOD,FOLLOW_MOD_in_multiplicativeExpression3359); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MOD.add(MOD137);
pushFollow(FOLLOW_remoteExpression_in_multiplicativeExpression3363);
y=remoteExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_remoteExpression.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();
// 488:13: -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// CivlCParser.g:488:16: ^( 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());
// CivlCParser.g:488:31: ^( 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 loop21;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 additiveExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "additiveExpression"
// CivlCParser.g:493:1: additiveExpression : ( multiplicativeExpression -> multiplicativeExpression ) ( ( PLUS )=> PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | ( SUB )=> SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )* ;
public final OmpParser_CivlCParser.additiveExpression_return additiveExpression() throws RecognitionException {
OmpParser_CivlCParser.additiveExpression_return retval = new OmpParser_CivlCParser.additiveExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PLUS139=null;
Token SUB140=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope multiplicativeExpression138 =null;
Object PLUS139_tree=null;
Object SUB140_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 {
// CivlCParser.g:494:2: ( ( multiplicativeExpression -> multiplicativeExpression ) ( ( PLUS )=> PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | ( SUB )=> SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )* )
// CivlCParser.g:494:4: ( multiplicativeExpression -> multiplicativeExpression ) ( ( PLUS )=> PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | ( SUB )=> SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )*
{
// CivlCParser.g:494:4: ( multiplicativeExpression -> multiplicativeExpression )
// CivlCParser.g:494:5: multiplicativeExpression
{
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression3418);
multiplicativeExpression138=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(multiplicativeExpression138.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();
// 494:30: -> multiplicativeExpression
{
adaptor.addChild(root_0, stream_multiplicativeExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:495:9: ( ( PLUS )=> PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | ( SUB )=> SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )*
loop22:
while (true) {
int alt22=3;
int LA22_0 = input.LA(1);
if ( (LA22_0==PLUS) ) {
int LA22_2 = input.LA(2);
if ( (synpred8_CivlCParser()) ) {
alt22=1;
}
}
else if ( (LA22_0==SUB) ) {
int LA22_3 = input.LA(2);
if ( (synpred9_CivlCParser()) ) {
alt22=2;
}
}
switch (alt22) {
case 1 :
// CivlCParser.g:495:11: ( PLUS )=> PLUS y= multiplicativeExpression
{
PLUS139=(Token)match(input,PLUS,FOLLOW_PLUS_in_additiveExpression3440); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS139);
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression3444);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(y.getTree());
// AST REWRITE
// elements: PLUS, additiveExpression, 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();
// 496:11: -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) )
{
// CivlCParser.g:496: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());
// CivlCParser.g:496: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 :
// CivlCParser.g:497:11: ( SUB )=> SUB y= multiplicativeExpression
{
SUB140=(Token)match(input,SUB,FOLLOW_SUB_in_additiveExpression3489); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUB.add(SUB140);
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression3493);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(y.getTree());
// AST REWRITE
// elements: additiveExpression, y, SUB
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 498:11: -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) )
{
// CivlCParser.g:498: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());
// CivlCParser.g:498: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 loop22;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 rangeExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "rangeExpression"
// CivlCParser.g:504:1: rangeExpression : x= additiveExpression ( ( DOTDOT )=> DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x) ;
public final OmpParser_CivlCParser.rangeExpression_return rangeExpression() throws RecognitionException {
OmpParser_CivlCParser.rangeExpression_return retval = new OmpParser_CivlCParser.rangeExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DOTDOT141=null;
ParserRuleReturnScope x =null;
ParserRuleReturnScope s =null;
Object DOTDOT141_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 {
// CivlCParser.g:505:2: (x= additiveExpression ( ( DOTDOT )=> DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x) )
// CivlCParser.g:505:4: x= additiveExpression ( ( DOTDOT )=> DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x)
{
pushFollow(FOLLOW_additiveExpression_in_rangeExpression3547);
x=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additiveExpression.add(x.getTree());
// CivlCParser.g:506:9: ( ( DOTDOT )=> DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x)
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==DOTDOT) ) {
int LA23_1 = input.LA(2);
if ( (synpred10_CivlCParser()) ) {
alt23=1;
}
else if ( (true) ) {
alt23=2;
}
}
else if ( (LA23_0==EOF||(LA23_0 >= AMPERSAND && LA23_0 <= AND)||(LA23_0 >= ASSIGN && LA23_0 <= BITXOREQ)||(LA23_0 >= COLON && LA23_0 <= COMMA)||(LA23_0 >= DIV && LA23_0 <= DIVEQ)||LA23_0==EQUALS||(LA23_0 >= GT && LA23_0 <= HASH)||LA23_0==IMPLIES||(LA23_0 >= LT && LA23_0 <= LTE)||(LA23_0 >= MOD && LA23_0 <= NEQ)||LA23_0==OR||(LA23_0 >= PLUS && LA23_0 <= PLUSEQ)||(LA23_0 >= QMARK && LA23_0 <= RPAREN)||LA23_0==RSQUARE||(LA23_0 >= SEMI && LA23_0 <= STAREQ)||(LA23_0 >= SUB && LA23_0 <= SUBEQ)||LA23_0==ASSIGNS||LA23_0==DEPENDS||LA23_0==ENSURES||LA23_0==GUARD||LA23_0==READS||LA23_0==REQUIRES) ) {
alt23=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 23, 0, input);
throw nvae;
}
switch (alt23) {
case 1 :
// CivlCParser.g:506:11: ( DOTDOT )=> DOTDOT s= rangeSuffix
{
DOTDOT141=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_rangeExpression3564); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOTDOT.add(DOTDOT141);
pushFollow(FOLLOW_rangeSuffix_in_rangeExpression3568);
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();
// 506:43: -> ^( DOTDOT $x $s)
{
// CivlCParser.g:506:46: ^( 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 :
// CivlCParser.g:507: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();
// 507: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"
// CivlCParser.g:511:1: rangeSuffix : x= additiveExpression ( ( HASH )=> HASH y= additiveExpression -> $x $y| -> $x) ;
public final OmpParser_CivlCParser.rangeSuffix_return rangeSuffix() throws RecognitionException {
OmpParser_CivlCParser.rangeSuffix_return retval = new OmpParser_CivlCParser.rangeSuffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token HASH142=null;
ParserRuleReturnScope x =null;
ParserRuleReturnScope y =null;
Object HASH142_tree=null;
RewriteRuleTokenStream stream_HASH=new RewriteRuleTokenStream(adaptor,"token HASH");
RewriteRuleSubtreeStream stream_additiveExpression=new RewriteRuleSubtreeStream(adaptor,"rule additiveExpression");
try {
// CivlCParser.g:512:5: (x= additiveExpression ( ( HASH )=> HASH y= additiveExpression -> $x $y| -> $x) )
// CivlCParser.g:512:7: x= additiveExpression ( ( HASH )=> HASH y= additiveExpression -> $x $y| -> $x)
{
pushFollow(FOLLOW_additiveExpression_in_rangeSuffix3624);
x=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additiveExpression.add(x.getTree());
// CivlCParser.g:513:9: ( ( HASH )=> HASH y= additiveExpression -> $x $y| -> $x)
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==HASH) ) {
int LA24_1 = input.LA(2);
if ( (synpred11_CivlCParser()) ) {
alt24=1;
}
else if ( (true) ) {
alt24=2;
}
}
else if ( (LA24_0==EOF||(LA24_0 >= AMPERSAND && LA24_0 <= AND)||(LA24_0 >= ASSIGN && LA24_0 <= BITXOREQ)||(LA24_0 >= COLON && LA24_0 <= COMMA)||(LA24_0 >= DIV && LA24_0 <= DIVEQ)||LA24_0==DOTDOT||LA24_0==EQUALS||(LA24_0 >= GT && LA24_0 <= GTE)||LA24_0==IMPLIES||(LA24_0 >= LT && LA24_0 <= LTE)||(LA24_0 >= MOD && LA24_0 <= NEQ)||LA24_0==OR||(LA24_0 >= PLUS && LA24_0 <= PLUSEQ)||(LA24_0 >= QMARK && LA24_0 <= RPAREN)||LA24_0==RSQUARE||(LA24_0 >= SEMI && LA24_0 <= STAREQ)||(LA24_0 >= SUB && LA24_0 <= SUBEQ)||LA24_0==ASSIGNS||LA24_0==DEPENDS||LA24_0==ENSURES||LA24_0==GUARD||LA24_0==READS||LA24_0==REQUIRES) ) {
alt24=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 24, 0, input);
throw nvae;
}
switch (alt24) {
case 1 :
// CivlCParser.g:513:11: ( HASH )=> HASH y= additiveExpression
{
HASH142=(Token)match(input,HASH,FOLLOW_HASH_in_rangeSuffix3641); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_HASH.add(HASH142);
pushFollow(FOLLOW_additiveExpression_in_rangeSuffix3645);
y=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additiveExpression.add(y.getTree());
// AST REWRITE
// elements: y, x
// token labels:
// rule labels: x, y, 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_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();
// 513:46: -> $x $y
{
adaptor.addChild(root_0, stream_x.nextTree());
adaptor.addChild(root_0, stream_y.nextTree());
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:514: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();
// 514: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 "rangeSuffix"
public static class shiftExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "shiftExpression"
// CivlCParser.g:519:1: shiftExpression : ( rangeExpression -> rangeExpression ) ( ( SHIFTLEFT )=> SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | ( SHIFTRIGHT )=> SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )* ;
public final OmpParser_CivlCParser.shiftExpression_return shiftExpression() throws RecognitionException {
OmpParser_CivlCParser.shiftExpression_return retval = new OmpParser_CivlCParser.shiftExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SHIFTLEFT144=null;
Token SHIFTRIGHT145=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope rangeExpression143 =null;
Object SHIFTLEFT144_tree=null;
Object SHIFTRIGHT145_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 {
// CivlCParser.g:520:2: ( ( rangeExpression -> rangeExpression ) ( ( SHIFTLEFT )=> SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | ( SHIFTRIGHT )=> SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )* )
// CivlCParser.g:520:4: ( rangeExpression -> rangeExpression ) ( ( SHIFTLEFT )=> SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | ( SHIFTRIGHT )=> SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )*
{
// CivlCParser.g:520:4: ( rangeExpression -> rangeExpression )
// CivlCParser.g:520:5: rangeExpression
{
pushFollow(FOLLOW_rangeExpression_in_shiftExpression3695);
rangeExpression143=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(rangeExpression143.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();
// 520:21: -> rangeExpression
{
adaptor.addChild(root_0, stream_rangeExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:521:9: ( ( SHIFTLEFT )=> SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | ( SHIFTRIGHT )=> SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )*
loop25:
while (true) {
int alt25=3;
int LA25_0 = input.LA(1);
if ( (LA25_0==SHIFTLEFT) ) {
int LA25_2 = input.LA(2);
if ( (synpred12_CivlCParser()) ) {
alt25=1;
}
}
else if ( (LA25_0==SHIFTRIGHT) ) {
int LA25_3 = input.LA(2);
if ( (synpred13_CivlCParser()) ) {
alt25=2;
}
}
switch (alt25) {
case 1 :
// CivlCParser.g:521:11: ( SHIFTLEFT )=> SHIFTLEFT y= rangeExpression
{
SHIFTLEFT144=(Token)match(input,SHIFTLEFT,FOLLOW_SHIFTLEFT_in_shiftExpression3717); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SHIFTLEFT.add(SHIFTLEFT144);
pushFollow(FOLLOW_rangeExpression_in_shiftExpression3721);
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();
// 522:11: -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) )
{
// CivlCParser.g:522: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());
// CivlCParser.g:522: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 :
// CivlCParser.g:523:11: ( SHIFTRIGHT )=> SHIFTRIGHT y= rangeExpression
{
SHIFTRIGHT145=(Token)match(input,SHIFTRIGHT,FOLLOW_SHIFTRIGHT_in_shiftExpression3766); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SHIFTRIGHT.add(SHIFTRIGHT145);
pushFollow(FOLLOW_rangeExpression_in_shiftExpression3770);
y=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(y.getTree());
// AST REWRITE
// elements: shiftExpression, y, SHIFTRIGHT
// 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();
// 524:11: -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) )
{
// CivlCParser.g:524: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());
// CivlCParser.g:524: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 loop25;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 relationalExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "relationalExpression"
// CivlCParser.g:529:1: relationalExpression : ( shiftExpression -> shiftExpression ) ( ( relationalOperator )=> relationalOperator (y= shiftExpression ) -> ^( OPERATOR relationalOperator ^( ARGUMENT_LIST $relationalExpression $y) ) )* ;
public final OmpParser_CivlCParser.relationalExpression_return relationalExpression() throws RecognitionException {
OmpParser_CivlCParser.relationalExpression_return retval = new OmpParser_CivlCParser.relationalExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope shiftExpression146 =null;
ParserRuleReturnScope relationalOperator147 =null;
RewriteRuleSubtreeStream stream_shiftExpression=new RewriteRuleSubtreeStream(adaptor,"rule shiftExpression");
RewriteRuleSubtreeStream stream_relationalOperator=new RewriteRuleSubtreeStream(adaptor,"rule relationalOperator");
try {
// CivlCParser.g:530:2: ( ( shiftExpression -> shiftExpression ) ( ( relationalOperator )=> relationalOperator (y= shiftExpression ) -> ^( OPERATOR relationalOperator ^( ARGUMENT_LIST $relationalExpression $y) ) )* )
// CivlCParser.g:530:4: ( shiftExpression -> shiftExpression ) ( ( relationalOperator )=> relationalOperator (y= shiftExpression ) -> ^( OPERATOR relationalOperator ^( ARGUMENT_LIST $relationalExpression $y) ) )*
{
// CivlCParser.g:530:4: ( shiftExpression -> shiftExpression )
// CivlCParser.g:530:6: shiftExpression
{
pushFollow(FOLLOW_shiftExpression_in_relationalExpression3824);
shiftExpression146=shiftExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_shiftExpression.add(shiftExpression146.getTree());
// AST REWRITE
// elements: shiftExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 530:22: -> shiftExpression
{
adaptor.addChild(root_0, stream_shiftExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:531:9: ( ( relationalOperator )=> relationalOperator (y= shiftExpression ) -> ^( OPERATOR relationalOperator ^( ARGUMENT_LIST $relationalExpression $y) ) )*
loop26:
while (true) {
int alt26=2;
int LA26_0 = input.LA(1);
if ( ((LA26_0 >= GT && LA26_0 <= GTE)||(LA26_0 >= LT && LA26_0 <= LTE)) ) {
int LA26_2 = input.LA(2);
if ( (synpred14_CivlCParser()) ) {
alt26=1;
}
}
switch (alt26) {
case 1 :
// CivlCParser.g:531:11: ( relationalOperator )=> relationalOperator (y= shiftExpression )
{
pushFollow(FOLLOW_relationalOperator_in_relationalExpression3847);
relationalOperator147=relationalOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relationalOperator.add(relationalOperator147.getTree());
// CivlCParser.g:532:13: (y= shiftExpression )
// CivlCParser.g:532:14: y= shiftExpression
{
pushFollow(FOLLOW_shiftExpression_in_relationalExpression3864);
y=shiftExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_shiftExpression.add(y.getTree());
}
// AST REWRITE
// elements: y, relationalExpression, relationalOperator
// 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();
// 533:13: -> ^( OPERATOR relationalOperator ^( ARGUMENT_LIST $relationalExpression $y) )
{
// CivlCParser.g:533:16: ^( OPERATOR relationalOperator ^( ARGUMENT_LIST $relationalExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_relationalOperator.nextTree());
// CivlCParser.g:534:17: ^( ARGUMENT_LIST $relationalExpression $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 loop26;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 relationalOperator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "relationalOperator"
// CivlCParser.g:539:1: relationalOperator : ( LT | GT | LTE | GTE );
public final OmpParser_CivlCParser.relationalOperator_return relationalOperator() throws RecognitionException {
OmpParser_CivlCParser.relationalOperator_return retval = new OmpParser_CivlCParser.relationalOperator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set148=null;
Object set148_tree=null;
try {
// CivlCParser.g:540:2: ( LT | GT | LTE | GTE )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set148=input.LT(1);
if ( (input.LA(1) >= GT && input.LA(1) <= GTE)||(input.LA(1) >= LT && input.LA(1) <= LTE) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set148));
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 "relationalOperator"
public static class equalityExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "equalityExpression"
// CivlCParser.g:544:1: equalityExpression : ( relationalExpression -> relationalExpression ) ( ( equalityOperator )=> equalityOperator (y= relationalExpression |y= quantifiedExpression ) -> ^( OPERATOR equalityOperator ^( ARGUMENT_LIST $equalityExpression $y) ) )* ;
public final OmpParser_CivlCParser.equalityExpression_return equalityExpression() throws RecognitionException {
OmpParser_CivlCParser.equalityExpression_return retval = new OmpParser_CivlCParser.equalityExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope relationalExpression149 =null;
ParserRuleReturnScope equalityOperator150 =null;
RewriteRuleSubtreeStream stream_equalityOperator=new RewriteRuleSubtreeStream(adaptor,"rule equalityOperator");
RewriteRuleSubtreeStream stream_relationalExpression=new RewriteRuleSubtreeStream(adaptor,"rule relationalExpression");
RewriteRuleSubtreeStream stream_quantifiedExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifiedExpression");
try {
// CivlCParser.g:545:2: ( ( relationalExpression -> relationalExpression ) ( ( equalityOperator )=> equalityOperator (y= relationalExpression |y= quantifiedExpression ) -> ^( OPERATOR equalityOperator ^( ARGUMENT_LIST $equalityExpression $y) ) )* )
// CivlCParser.g:545:4: ( relationalExpression -> relationalExpression ) ( ( equalityOperator )=> equalityOperator (y= relationalExpression |y= quantifiedExpression ) -> ^( OPERATOR equalityOperator ^( ARGUMENT_LIST $equalityExpression $y) ) )*
{
// CivlCParser.g:545:4: ( relationalExpression -> relationalExpression )
// CivlCParser.g:545:6: relationalExpression
{
pushFollow(FOLLOW_relationalExpression_in_equalityExpression3962);
relationalExpression149=relationalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relationalExpression.add(relationalExpression149.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();
// 545:27: -> relationalExpression
{
adaptor.addChild(root_0, stream_relationalExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:546:9: ( ( equalityOperator )=> equalityOperator (y= relationalExpression |y= quantifiedExpression ) -> ^( OPERATOR equalityOperator ^( ARGUMENT_LIST $equalityExpression $y) ) )*
loop28:
while (true) {
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==EQUALS||LA28_0==NEQ) ) {
int LA28_2 = input.LA(2);
if ( (synpred15_CivlCParser()) ) {
alt28=1;
}
}
switch (alt28) {
case 1 :
// CivlCParser.g:546:11: ( equalityOperator )=> equalityOperator (y= relationalExpression |y= quantifiedExpression )
{
pushFollow(FOLLOW_equalityOperator_in_equalityExpression3984);
equalityOperator150=equalityOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equalityOperator.add(equalityOperator150.getTree());
// CivlCParser.g:547:13: (y= relationalExpression |y= quantifiedExpression )
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==AMPERSAND||LA27_0==CHARACTER_CONSTANT||LA27_0==ELLIPSIS||LA27_0==FLOATING_CONSTANT||LA27_0==IDENTIFIER||LA27_0==INTEGER_CONSTANT||LA27_0==LPAREN||LA27_0==MINUSMINUS||LA27_0==NOT||LA27_0==PLUS||LA27_0==PLUSPLUS||LA27_0==STAR||(LA27_0 >= STRING_LITERAL && LA27_0 <= SUB)||LA27_0==TILDE||LA27_0==ALIGNOF||LA27_0==BIG_O||LA27_0==CALLS||LA27_0==DERIV||LA27_0==GENERIC||LA27_0==HERE||LA27_0==PROCNULL||LA27_0==RESULT||(LA27_0 >= SCOPEOF && LA27_0 <= SELF)||(LA27_0 >= SIZEOF && LA27_0 <= SPAWN)||LA27_0==STATE_NULL||LA27_0==VALUE_AT||LA27_0==SUM) ) {
alt27=1;
}
else if ( (LA27_0==EXISTS||LA27_0==FORALL||LA27_0==UNIFORM) ) {
alt27=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 27, 0, input);
throw nvae;
}
switch (alt27) {
case 1 :
// CivlCParser.g:547:14: y= relationalExpression
{
pushFollow(FOLLOW_relationalExpression_in_equalityExpression4001);
y=relationalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relationalExpression.add(y.getTree());
}
break;
case 2 :
// CivlCParser.g:547:39: y= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_equalityExpression4007);
y=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(y.getTree());
}
break;
}
// AST REWRITE
// elements: y, equalityOperator, equalityExpression
// 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();
// 548:13: -> ^( OPERATOR equalityOperator ^( ARGUMENT_LIST $equalityExpression $y) )
{
// CivlCParser.g:548:16: ^( OPERATOR equalityOperator ^( ARGUMENT_LIST $equalityExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_equalityOperator.nextTree());
// CivlCParser.g:549:17: ^( ARGUMENT_LIST $equalityExpression $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 loop28;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "equalityExpression"
public static class equalityOperator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "equalityOperator"
// CivlCParser.g:554:1: equalityOperator : ( EQUALS | NEQ );
public final OmpParser_CivlCParser.equalityOperator_return equalityOperator() throws RecognitionException {
OmpParser_CivlCParser.equalityOperator_return retval = new OmpParser_CivlCParser.equalityOperator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set151=null;
Object set151_tree=null;
try {
// CivlCParser.g:555:2: ( EQUALS | NEQ )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set151=input.LT(1);
if ( input.LA(1)==EQUALS||input.LA(1)==NEQ ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set151));
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 "equalityOperator"
public static class andExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "andExpression"
// CivlCParser.g:559:1: andExpression : ( equalityExpression -> equalityExpression ) ( ( AMPERSAND )=> AMPERSAND y= equalityExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )* ;
public final OmpParser_CivlCParser.andExpression_return andExpression() throws RecognitionException {
OmpParser_CivlCParser.andExpression_return retval = new OmpParser_CivlCParser.andExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AMPERSAND153=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope equalityExpression152 =null;
Object AMPERSAND153_tree=null;
RewriteRuleTokenStream stream_AMPERSAND=new RewriteRuleTokenStream(adaptor,"token AMPERSAND");
RewriteRuleSubtreeStream stream_equalityExpression=new RewriteRuleSubtreeStream(adaptor,"rule equalityExpression");
try {
// CivlCParser.g:560:2: ( ( equalityExpression -> equalityExpression ) ( ( AMPERSAND )=> AMPERSAND y= equalityExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )* )
// CivlCParser.g:560:4: ( equalityExpression -> equalityExpression ) ( ( AMPERSAND )=> AMPERSAND y= equalityExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )*
{
// CivlCParser.g:560:4: ( equalityExpression -> equalityExpression )
// CivlCParser.g:560:6: equalityExpression
{
pushFollow(FOLLOW_equalityExpression_in_andExpression4097);
equalityExpression152=equalityExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equalityExpression.add(equalityExpression152.getTree());
// AST REWRITE
// elements: equalityExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 560:25: -> equalityExpression
{
adaptor.addChild(root_0, stream_equalityExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:561:9: ( ( AMPERSAND )=> AMPERSAND y= equalityExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )*
loop29:
while (true) {
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==AMPERSAND) ) {
int LA29_2 = input.LA(2);
if ( (synpred16_CivlCParser()) ) {
alt29=1;
}
}
switch (alt29) {
case 1 :
// CivlCParser.g:561:11: ( AMPERSAND )=> AMPERSAND y= equalityExpression
{
AMPERSAND153=(Token)match(input,AMPERSAND,FOLLOW_AMPERSAND_in_andExpression4120); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AMPERSAND.add(AMPERSAND153);
pushFollow(FOLLOW_equalityExpression_in_andExpression4124);
y=equalityExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equalityExpression.add(y.getTree());
// AST REWRITE
// elements: y, AMPERSAND, andExpression
// 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();
// 562:13: -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) )
{
// CivlCParser.g:562:16: ^( 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());
// CivlCParser.g:562:37: ^( 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 loop29;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 exclusiveOrExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "exclusiveOrExpression"
// CivlCParser.g:567:1: exclusiveOrExpression : ( andExpression -> andExpression ) ( ( BITXOR )=> BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )* ;
public final OmpParser_CivlCParser.exclusiveOrExpression_return exclusiveOrExpression() throws RecognitionException {
OmpParser_CivlCParser.exclusiveOrExpression_return retval = new OmpParser_CivlCParser.exclusiveOrExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token BITXOR155=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope andExpression154 =null;
Object BITXOR155_tree=null;
RewriteRuleTokenStream stream_BITXOR=new RewriteRuleTokenStream(adaptor,"token BITXOR");
RewriteRuleSubtreeStream stream_andExpression=new RewriteRuleSubtreeStream(adaptor,"rule andExpression");
try {
// CivlCParser.g:568:2: ( ( andExpression -> andExpression ) ( ( BITXOR )=> BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )* )
// CivlCParser.g:568:4: ( andExpression -> andExpression ) ( ( BITXOR )=> BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )*
{
// CivlCParser.g:568:4: ( andExpression -> andExpression )
// CivlCParser.g:568:6: andExpression
{
pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression4180);
andExpression154=andExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_andExpression.add(andExpression154.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();
// 568:20: -> andExpression
{
adaptor.addChild(root_0, stream_andExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:569:9: ( ( BITXOR )=> BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )*
loop30:
while (true) {
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==BITXOR) ) {
int LA30_2 = input.LA(2);
if ( (synpred17_CivlCParser()) ) {
alt30=1;
}
}
switch (alt30) {
case 1 :
// CivlCParser.g:569:11: ( BITXOR )=> BITXOR y= andExpression
{
BITXOR155=(Token)match(input,BITXOR,FOLLOW_BITXOR_in_exclusiveOrExpression4203); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITXOR.add(BITXOR155);
pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression4207);
y=andExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_andExpression.add(y.getTree());
// AST REWRITE
// elements: BITXOR, y, exclusiveOrExpression
// 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();
// 570:13: -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) )
{
// CivlCParser.g:570:16: ^( 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());
// CivlCParser.g:570:34: ^( 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 loop30;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 inclusiveOrExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "inclusiveOrExpression"
// CivlCParser.g:575:1: inclusiveOrExpression : ( exclusiveOrExpression -> exclusiveOrExpression ) ( ( BITOR )=> BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )* ;
public final OmpParser_CivlCParser.inclusiveOrExpression_return inclusiveOrExpression() throws RecognitionException {
OmpParser_CivlCParser.inclusiveOrExpression_return retval = new OmpParser_CivlCParser.inclusiveOrExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token BITOR157=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope exclusiveOrExpression156 =null;
Object BITOR157_tree=null;
RewriteRuleTokenStream stream_BITOR=new RewriteRuleTokenStream(adaptor,"token BITOR");
RewriteRuleSubtreeStream stream_exclusiveOrExpression=new RewriteRuleSubtreeStream(adaptor,"rule exclusiveOrExpression");
try {
// CivlCParser.g:576:2: ( ( exclusiveOrExpression -> exclusiveOrExpression ) ( ( BITOR )=> BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )* )
// CivlCParser.g:576:4: ( exclusiveOrExpression -> exclusiveOrExpression ) ( ( BITOR )=> BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )*
{
// CivlCParser.g:576:4: ( exclusiveOrExpression -> exclusiveOrExpression )
// CivlCParser.g:576:6: exclusiveOrExpression
{
pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4263);
exclusiveOrExpression156=exclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_exclusiveOrExpression.add(exclusiveOrExpression156.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();
// 576:28: -> exclusiveOrExpression
{
adaptor.addChild(root_0, stream_exclusiveOrExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:577:9: ( ( BITOR )=> BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )*
loop31:
while (true) {
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==BITOR) ) {
int LA31_2 = input.LA(2);
if ( (synpred18_CivlCParser()) ) {
alt31=1;
}
}
switch (alt31) {
case 1 :
// CivlCParser.g:577:11: ( BITOR )=> BITOR y= exclusiveOrExpression
{
BITOR157=(Token)match(input,BITOR,FOLLOW_BITOR_in_inclusiveOrExpression4286); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR157);
pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4290);
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();
// 578:13: -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) )
{
// CivlCParser.g:578:16: ^( 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());
// CivlCParser.g:578:33: ^( 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 loop31;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 logicalAndExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logicalAndExpression"
// CivlCParser.g:583:1: logicalAndExpression : ( inclusiveOrExpression -> inclusiveOrExpression ) ( ( AND )=> AND (y= inclusiveOrExpression |y= quantifiedExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $y) ) )* ;
public final OmpParser_CivlCParser.logicalAndExpression_return logicalAndExpression() throws RecognitionException {
OmpParser_CivlCParser.logicalAndExpression_return retval = new OmpParser_CivlCParser.logicalAndExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AND159=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope inclusiveOrExpression158 =null;
Object AND159_tree=null;
RewriteRuleTokenStream stream_AND=new RewriteRuleTokenStream(adaptor,"token AND");
RewriteRuleSubtreeStream stream_inclusiveOrExpression=new RewriteRuleSubtreeStream(adaptor,"rule inclusiveOrExpression");
RewriteRuleSubtreeStream stream_quantifiedExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifiedExpression");
try {
// CivlCParser.g:584:2: ( ( inclusiveOrExpression -> inclusiveOrExpression ) ( ( AND )=> AND (y= inclusiveOrExpression |y= quantifiedExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $y) ) )* )
// CivlCParser.g:584:4: ( inclusiveOrExpression -> inclusiveOrExpression ) ( ( AND )=> AND (y= inclusiveOrExpression |y= quantifiedExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $y) ) )*
{
// CivlCParser.g:584:4: ( inclusiveOrExpression -> inclusiveOrExpression )
// CivlCParser.g:584:6: inclusiveOrExpression
{
pushFollow(FOLLOW_inclusiveOrExpression_in_logicalAndExpression4346);
inclusiveOrExpression158=inclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inclusiveOrExpression.add(inclusiveOrExpression158.getTree());
// AST REWRITE
// elements: inclusiveOrExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 584:28: -> inclusiveOrExpression
{
adaptor.addChild(root_0, stream_inclusiveOrExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:585:9: ( ( AND )=> AND (y= inclusiveOrExpression |y= quantifiedExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $y) ) )*
loop33:
while (true) {
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==AND) ) {
int LA33_2 = input.LA(2);
if ( (synpred19_CivlCParser()) ) {
alt33=1;
}
}
switch (alt33) {
case 1 :
// CivlCParser.g:585:11: ( AND )=> AND (y= inclusiveOrExpression |y= quantifiedExpression )
{
AND159=(Token)match(input,AND,FOLLOW_AND_in_logicalAndExpression4369); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AND.add(AND159);
// CivlCParser.g:585:23: (y= inclusiveOrExpression |y= quantifiedExpression )
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==AMPERSAND||LA32_0==CHARACTER_CONSTANT||LA32_0==ELLIPSIS||LA32_0==FLOATING_CONSTANT||LA32_0==IDENTIFIER||LA32_0==INTEGER_CONSTANT||LA32_0==LPAREN||LA32_0==MINUSMINUS||LA32_0==NOT||LA32_0==PLUS||LA32_0==PLUSPLUS||LA32_0==STAR||(LA32_0 >= STRING_LITERAL && LA32_0 <= SUB)||LA32_0==TILDE||LA32_0==ALIGNOF||LA32_0==BIG_O||LA32_0==CALLS||LA32_0==DERIV||LA32_0==GENERIC||LA32_0==HERE||LA32_0==PROCNULL||LA32_0==RESULT||(LA32_0 >= SCOPEOF && LA32_0 <= SELF)||(LA32_0 >= SIZEOF && LA32_0 <= SPAWN)||LA32_0==STATE_NULL||LA32_0==VALUE_AT||LA32_0==SUM) ) {
alt32=1;
}
else if ( (LA32_0==EXISTS||LA32_0==FORALL||LA32_0==UNIFORM) ) {
alt32=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 32, 0, input);
throw nvae;
}
switch (alt32) {
case 1 :
// CivlCParser.g:585:24: y= inclusiveOrExpression
{
pushFollow(FOLLOW_inclusiveOrExpression_in_logicalAndExpression4374);
y=inclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inclusiveOrExpression.add(y.getTree());
}
break;
case 2 :
// CivlCParser.g:585:50: y= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_logicalAndExpression4380);
y=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(y.getTree());
}
break;
}
// AST REWRITE
// elements: AND, y, logicalAndExpression
// 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();
// 586:13: -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $y) )
{
// CivlCParser.g:586:16: ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $y) )
{
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());
// CivlCParser.g:586:31: ^( ARGUMENT_LIST $logicalAndExpression $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 loop33;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "logicalAndExpression"
public static class logicalOrExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logicalOrExpression"
// CivlCParser.g:591:1: logicalOrExpression : ( logicalAndExpression -> logicalAndExpression ) ( ( OR )=> OR (y= logicalAndExpression |y= quantifiedExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $y) ) )* ;
public final OmpParser_CivlCParser.logicalOrExpression_return logicalOrExpression() throws RecognitionException {
OmpParser_CivlCParser.logicalOrExpression_return retval = new OmpParser_CivlCParser.logicalOrExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token OR161=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope logicalAndExpression160 =null;
Object OR161_tree=null;
RewriteRuleTokenStream stream_OR=new RewriteRuleTokenStream(adaptor,"token OR");
RewriteRuleSubtreeStream stream_logicalAndExpression=new RewriteRuleSubtreeStream(adaptor,"rule logicalAndExpression");
RewriteRuleSubtreeStream stream_quantifiedExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifiedExpression");
try {
// CivlCParser.g:592:2: ( ( logicalAndExpression -> logicalAndExpression ) ( ( OR )=> OR (y= logicalAndExpression |y= quantifiedExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $y) ) )* )
// CivlCParser.g:592:4: ( logicalAndExpression -> logicalAndExpression ) ( ( OR )=> OR (y= logicalAndExpression |y= quantifiedExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $y) ) )*
{
// CivlCParser.g:592:4: ( logicalAndExpression -> logicalAndExpression )
// CivlCParser.g:592:6: logicalAndExpression
{
pushFollow(FOLLOW_logicalAndExpression_in_logicalOrExpression4437);
logicalAndExpression160=logicalAndExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalAndExpression.add(logicalAndExpression160.getTree());
// AST REWRITE
// elements: logicalAndExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 592:27: -> logicalAndExpression
{
adaptor.addChild(root_0, stream_logicalAndExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:593:9: ( ( OR )=> OR (y= logicalAndExpression |y= quantifiedExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $y) ) )*
loop35:
while (true) {
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==OR) ) {
int LA35_2 = input.LA(2);
if ( (synpred20_CivlCParser()) ) {
alt35=1;
}
}
switch (alt35) {
case 1 :
// CivlCParser.g:593:11: ( OR )=> OR (y= logicalAndExpression |y= quantifiedExpression )
{
OR161=(Token)match(input,OR,FOLLOW_OR_in_logicalOrExpression4460); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_OR.add(OR161);
// CivlCParser.g:593:21: (y= logicalAndExpression |y= quantifiedExpression )
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==AMPERSAND||LA34_0==CHARACTER_CONSTANT||LA34_0==ELLIPSIS||LA34_0==FLOATING_CONSTANT||LA34_0==IDENTIFIER||LA34_0==INTEGER_CONSTANT||LA34_0==LPAREN||LA34_0==MINUSMINUS||LA34_0==NOT||LA34_0==PLUS||LA34_0==PLUSPLUS||LA34_0==STAR||(LA34_0 >= STRING_LITERAL && LA34_0 <= SUB)||LA34_0==TILDE||LA34_0==ALIGNOF||LA34_0==BIG_O||LA34_0==CALLS||LA34_0==DERIV||LA34_0==GENERIC||LA34_0==HERE||LA34_0==PROCNULL||LA34_0==RESULT||(LA34_0 >= SCOPEOF && LA34_0 <= SELF)||(LA34_0 >= SIZEOF && LA34_0 <= SPAWN)||LA34_0==STATE_NULL||LA34_0==VALUE_AT||LA34_0==SUM) ) {
alt34=1;
}
else if ( (LA34_0==EXISTS||LA34_0==FORALL||LA34_0==UNIFORM) ) {
alt34=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 34, 0, input);
throw nvae;
}
switch (alt34) {
case 1 :
// CivlCParser.g:593:22: y= logicalAndExpression
{
pushFollow(FOLLOW_logicalAndExpression_in_logicalOrExpression4465);
y=logicalAndExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalAndExpression.add(y.getTree());
}
break;
case 2 :
// CivlCParser.g:593:47: y= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_logicalOrExpression4471);
y=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(y.getTree());
}
break;
}
// AST REWRITE
// elements: y, OR, logicalOrExpression
// 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();
// 594:13: -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $y) )
{
// CivlCParser.g:594:16: ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $y) )
{
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());
// CivlCParser.g:594:30: ^( ARGUMENT_LIST $logicalOrExpression $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 loop35;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 logicalImpliesExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logicalImpliesExpression"
// CivlCParser.g:600:1: logicalImpliesExpression : (x= logicalOrExpression -> $x) ( ( IMPLIES )=> IMPLIES (y= logicalImpliesExpression |y= quantifiedExpression ) -> ^( OPERATOR IMPLIES ^( ARGUMENT_LIST $x $y) ) )? ;
public final OmpParser_CivlCParser.logicalImpliesExpression_return logicalImpliesExpression() throws RecognitionException {
OmpParser_CivlCParser.logicalImpliesExpression_return retval = new OmpParser_CivlCParser.logicalImpliesExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IMPLIES162=null;
ParserRuleReturnScope x =null;
ParserRuleReturnScope y =null;
Object IMPLIES162_tree=null;
RewriteRuleTokenStream stream_IMPLIES=new RewriteRuleTokenStream(adaptor,"token IMPLIES");
RewriteRuleSubtreeStream stream_logicalOrExpression=new RewriteRuleSubtreeStream(adaptor,"rule logicalOrExpression");
RewriteRuleSubtreeStream stream_logicalImpliesExpression=new RewriteRuleSubtreeStream(adaptor,"rule logicalImpliesExpression");
RewriteRuleSubtreeStream stream_quantifiedExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifiedExpression");
try {
// CivlCParser.g:601:2: ( (x= logicalOrExpression -> $x) ( ( IMPLIES )=> IMPLIES (y= logicalImpliesExpression |y= quantifiedExpression ) -> ^( OPERATOR IMPLIES ^( ARGUMENT_LIST $x $y) ) )? )
// CivlCParser.g:601:4: (x= logicalOrExpression -> $x) ( ( IMPLIES )=> IMPLIES (y= logicalImpliesExpression |y= quantifiedExpression ) -> ^( OPERATOR IMPLIES ^( ARGUMENT_LIST $x $y) ) )?
{
// CivlCParser.g:601:4: (x= logicalOrExpression -> $x)
// CivlCParser.g:601:6: x= logicalOrExpression
{
pushFollow(FOLLOW_logicalOrExpression_in_logicalImpliesExpression4530);
x=logicalOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalOrExpression.add(x.getTree());
// 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();
// 601:28: -> $x
{
adaptor.addChild(root_0, stream_x.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:602:9: ( ( IMPLIES )=> IMPLIES (y= logicalImpliesExpression |y= quantifiedExpression ) -> ^( OPERATOR IMPLIES ^( ARGUMENT_LIST $x $y) ) )?
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==IMPLIES) ) {
int LA37_1 = input.LA(2);
if ( (synpred21_CivlCParser()) ) {
alt37=1;
}
}
switch (alt37) {
case 1 :
// CivlCParser.g:602:11: ( IMPLIES )=> IMPLIES (y= logicalImpliesExpression |y= quantifiedExpression )
{
IMPLIES162=(Token)match(input,IMPLIES,FOLLOW_IMPLIES_in_logicalImpliesExpression4554); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IMPLIES.add(IMPLIES162);
// CivlCParser.g:602:31: (y= logicalImpliesExpression |y= quantifiedExpression )
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==AMPERSAND||LA36_0==CHARACTER_CONSTANT||LA36_0==ELLIPSIS||LA36_0==FLOATING_CONSTANT||LA36_0==IDENTIFIER||LA36_0==INTEGER_CONSTANT||LA36_0==LPAREN||LA36_0==MINUSMINUS||LA36_0==NOT||LA36_0==PLUS||LA36_0==PLUSPLUS||LA36_0==STAR||(LA36_0 >= STRING_LITERAL && LA36_0 <= SUB)||LA36_0==TILDE||LA36_0==ALIGNOF||LA36_0==BIG_O||LA36_0==CALLS||LA36_0==DERIV||LA36_0==GENERIC||LA36_0==HERE||LA36_0==PROCNULL||LA36_0==RESULT||(LA36_0 >= SCOPEOF && LA36_0 <= SELF)||(LA36_0 >= SIZEOF && LA36_0 <= SPAWN)||LA36_0==STATE_NULL||LA36_0==VALUE_AT||LA36_0==SUM) ) {
alt36=1;
}
else if ( (LA36_0==EXISTS||LA36_0==FORALL||LA36_0==UNIFORM) ) {
alt36=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 36, 0, input);
throw nvae;
}
switch (alt36) {
case 1 :
// CivlCParser.g:602:32: y= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_logicalImpliesExpression4559);
y=logicalImpliesExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalImpliesExpression.add(y.getTree());
}
break;
case 2 :
// CivlCParser.g:602:61: y= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_logicalImpliesExpression4565);
y=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(y.getTree());
}
break;
}
// AST REWRITE
// elements: IMPLIES, y, x
// token labels:
// rule labels: x, y, 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_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();
// 603:13: -> ^( OPERATOR IMPLIES ^( ARGUMENT_LIST $x $y) )
{
// CivlCParser.g:603:16: ^( OPERATOR IMPLIES ^( ARGUMENT_LIST $x $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_IMPLIES.nextNode());
// CivlCParser.g:603:35: ^( ARGUMENT_LIST $x $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_x.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;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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 conditionalExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "conditionalExpression"
// CivlCParser.g:609:1: conditionalExpression : logicalImpliesExpression ( ( QMARK )=> QMARK expression COLON (y= conditionalExpression |y= quantifiedExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST logicalImpliesExpression expression $y) ) | -> logicalImpliesExpression ) ;
public final OmpParser_CivlCParser.conditionalExpression_return conditionalExpression() throws RecognitionException {
OmpParser_CivlCParser.conditionalExpression_return retval = new OmpParser_CivlCParser.conditionalExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token QMARK164=null;
Token COLON166=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope logicalImpliesExpression163 =null;
ParserRuleReturnScope expression165 =null;
Object QMARK164_tree=null;
Object COLON166_tree=null;
RewriteRuleTokenStream stream_QMARK=new RewriteRuleTokenStream(adaptor,"token QMARK");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_conditionalExpression=new RewriteRuleSubtreeStream(adaptor,"rule conditionalExpression");
RewriteRuleSubtreeStream stream_logicalImpliesExpression=new RewriteRuleSubtreeStream(adaptor,"rule logicalImpliesExpression");
RewriteRuleSubtreeStream stream_quantifiedExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifiedExpression");
try {
// CivlCParser.g:610:2: ( logicalImpliesExpression ( ( QMARK )=> QMARK expression COLON (y= conditionalExpression |y= quantifiedExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST logicalImpliesExpression expression $y) ) | -> logicalImpliesExpression ) )
// CivlCParser.g:610:4: logicalImpliesExpression ( ( QMARK )=> QMARK expression COLON (y= conditionalExpression |y= quantifiedExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST logicalImpliesExpression expression $y) ) | -> logicalImpliesExpression )
{
pushFollow(FOLLOW_logicalImpliesExpression_in_conditionalExpression4623);
logicalImpliesExpression163=logicalImpliesExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalImpliesExpression.add(logicalImpliesExpression163.getTree());
// CivlCParser.g:611:9: ( ( QMARK )=> QMARK expression COLON (y= conditionalExpression |y= quantifiedExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST logicalImpliesExpression expression $y) ) | -> logicalImpliesExpression )
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==QMARK) ) {
int LA39_1 = input.LA(2);
if ( (synpred22_CivlCParser()) ) {
alt39=1;
}
else if ( (true) ) {
alt39=2;
}
}
else if ( (LA39_0==EOF||(LA39_0 >= AMPERSAND && LA39_0 <= AND)||(LA39_0 >= ASSIGN && LA39_0 <= BITXOREQ)||(LA39_0 >= COLON && LA39_0 <= COMMA)||(LA39_0 >= DIV && LA39_0 <= DIVEQ)||LA39_0==DOTDOT||LA39_0==EQUALS||(LA39_0 >= GT && LA39_0 <= HASH)||LA39_0==IMPLIES||(LA39_0 >= LT && LA39_0 <= LTE)||(LA39_0 >= MOD && LA39_0 <= NEQ)||LA39_0==OR||(LA39_0 >= PLUS && LA39_0 <= PLUSEQ)||(LA39_0 >= RCURLY && LA39_0 <= RPAREN)||LA39_0==RSQUARE||(LA39_0 >= SEMI && LA39_0 <= STAREQ)||(LA39_0 >= SUB && LA39_0 <= SUBEQ)||LA39_0==ASSIGNS||LA39_0==DEPENDS||LA39_0==ENSURES||LA39_0==GUARD||LA39_0==READS||LA39_0==REQUIRES) ) {
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 :
// CivlCParser.g:611:11: ( QMARK )=> QMARK expression COLON (y= conditionalExpression |y= quantifiedExpression )
{
QMARK164=(Token)match(input,QMARK,FOLLOW_QMARK_in_conditionalExpression4640); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_QMARK.add(QMARK164);
pushFollow(FOLLOW_expression_in_conditionalExpression4642);
expression165=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression165.getTree());
COLON166=(Token)match(input,COLON,FOLLOW_COLON_in_conditionalExpression4644); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON166);
// CivlCParser.g:612:13: (y= conditionalExpression |y= quantifiedExpression )
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==AMPERSAND||LA38_0==CHARACTER_CONSTANT||LA38_0==ELLIPSIS||LA38_0==FLOATING_CONSTANT||LA38_0==IDENTIFIER||LA38_0==INTEGER_CONSTANT||LA38_0==LPAREN||LA38_0==MINUSMINUS||LA38_0==NOT||LA38_0==PLUS||LA38_0==PLUSPLUS||LA38_0==STAR||(LA38_0 >= STRING_LITERAL && LA38_0 <= SUB)||LA38_0==TILDE||LA38_0==ALIGNOF||LA38_0==BIG_O||LA38_0==CALLS||LA38_0==DERIV||LA38_0==GENERIC||LA38_0==HERE||LA38_0==PROCNULL||LA38_0==RESULT||(LA38_0 >= SCOPEOF && LA38_0 <= SELF)||(LA38_0 >= SIZEOF && LA38_0 <= SPAWN)||LA38_0==STATE_NULL||LA38_0==VALUE_AT||LA38_0==SUM) ) {
alt38=1;
}
else if ( (LA38_0==EXISTS||LA38_0==FORALL||LA38_0==UNIFORM) ) {
alt38=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 38, 0, input);
throw nvae;
}
switch (alt38) {
case 1 :
// CivlCParser.g:612:14: y= conditionalExpression
{
pushFollow(FOLLOW_conditionalExpression_in_conditionalExpression4661);
y=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(y.getTree());
}
break;
case 2 :
// CivlCParser.g:612:40: y= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_conditionalExpression4667);
y=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(y.getTree());
}
break;
}
// AST REWRITE
// elements: y, logicalImpliesExpression, QMARK, expression
// 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();
// 613:13: -> ^( OPERATOR QMARK ^( ARGUMENT_LIST logicalImpliesExpression expression $y) )
{
// CivlCParser.g:613:16: ^( OPERATOR QMARK ^( ARGUMENT_LIST logicalImpliesExpression expression $y) )
{
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());
// CivlCParser.g:614:17: ^( ARGUMENT_LIST logicalImpliesExpression expression $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_logicalImpliesExpression.nextTree());
adaptor.addChild(root_2, stream_expression.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 :
// CivlCParser.g:618:11:
{
// AST REWRITE
// elements: logicalImpliesExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 618:11: -> logicalImpliesExpression
{
adaptor.addChild(root_0, stream_logicalImpliesExpression.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 interval_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "interval"
// CivlCParser.g:623:1: interval : LSQUARE conditionalExpression COMMA conditionalExpression RSQUARE -> ^( INTERVAL conditionalExpression conditionalExpression ) ;
public final OmpParser_CivlCParser.interval_return interval() throws RecognitionException {
OmpParser_CivlCParser.interval_return retval = new OmpParser_CivlCParser.interval_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LSQUARE167=null;
Token COMMA169=null;
Token RSQUARE171=null;
ParserRuleReturnScope conditionalExpression168 =null;
ParserRuleReturnScope conditionalExpression170 =null;
Object LSQUARE167_tree=null;
Object COMMA169_tree=null;
Object RSQUARE171_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LSQUARE=new RewriteRuleTokenStream(adaptor,"token LSQUARE");
RewriteRuleTokenStream stream_RSQUARE=new RewriteRuleTokenStream(adaptor,"token RSQUARE");
RewriteRuleSubtreeStream stream_conditionalExpression=new RewriteRuleSubtreeStream(adaptor,"rule conditionalExpression");
try {
// CivlCParser.g:624:5: ( LSQUARE conditionalExpression COMMA conditionalExpression RSQUARE -> ^( INTERVAL conditionalExpression conditionalExpression ) )
// CivlCParser.g:624:7: LSQUARE conditionalExpression COMMA conditionalExpression RSQUARE
{
LSQUARE167=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_interval4812); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE167);
pushFollow(FOLLOW_conditionalExpression_in_interval4814);
conditionalExpression168=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(conditionalExpression168.getTree());
COMMA169=(Token)match(input,COMMA,FOLLOW_COMMA_in_interval4816); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA169);
pushFollow(FOLLOW_conditionalExpression_in_interval4818);
conditionalExpression170=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(conditionalExpression170.getTree());
RSQUARE171=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_interval4820); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE171);
// AST REWRITE
// elements: conditionalExpression, conditionalExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 625:9: -> ^( INTERVAL conditionalExpression conditionalExpression )
{
// CivlCParser.g:625:12: ^( INTERVAL conditionalExpression conditionalExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INTERVAL, "INTERVAL"), root_1);
adaptor.addChild(root_1, stream_conditionalExpression.nextTree());
adaptor.addChild(root_1, stream_conditionalExpression.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 "interval"
public static class intervalSeq_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "intervalSeq"
// CivlCParser.g:629:1: intervalSeq : (i+= interval (i+= interval )* -> ^( INTERVAL_SEQ ( $i)+ ) | -> ABSENT );
public final OmpParser_CivlCParser.intervalSeq_return intervalSeq() throws RecognitionException {
OmpParser_CivlCParser.intervalSeq_return retval = new OmpParser_CivlCParser.intervalSeq_return();
retval.start = input.LT(1);
Object root_0 = null;
List<Object> list_i=null;
RuleReturnScope i = null;
RewriteRuleSubtreeStream stream_interval=new RewriteRuleSubtreeStream(adaptor,"rule interval");
try {
// CivlCParser.g:630:5: (i+= interval (i+= interval )* -> ^( INTERVAL_SEQ ( $i)+ ) | -> ABSENT )
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==LSQUARE) ) {
alt41=1;
}
else if ( (LA41_0==LPAREN||LA41_0==RPAREN) ) {
alt41=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 41, 0, input);
throw nvae;
}
switch (alt41) {
case 1 :
// CivlCParser.g:630:7: i+= interval (i+= interval )*
{
pushFollow(FOLLOW_interval_in_intervalSeq4860);
i=interval();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_interval.add(i.getTree());
if (list_i==null) list_i=new ArrayList<Object>();
list_i.add(i.getTree());
// CivlCParser.g:630:21: (i+= interval )*
loop40:
while (true) {
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==LSQUARE) ) {
alt40=1;
}
switch (alt40) {
case 1 :
// CivlCParser.g:630:21: i+= interval
{
pushFollow(FOLLOW_interval_in_intervalSeq4865);
i=interval();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_interval.add(i.getTree());
if (list_i==null) list_i=new ArrayList<Object>();
list_i.add(i.getTree());
}
break;
default :
break loop40;
}
}
// AST REWRITE
// elements: i
// token labels:
// rule labels: retval
// token list labels:
// rule list labels: i
// 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_i=new RewriteRuleSubtreeStream(adaptor,"token i",list_i);
root_0 = (Object)adaptor.nil();
// 630:34: -> ^( INTERVAL_SEQ ( $i)+ )
{
// CivlCParser.g:630:37: ^( INTERVAL_SEQ ( $i)+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INTERVAL_SEQ, "INTERVAL_SEQ"), root_1);
if ( !(stream_i.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_i.hasNext() ) {
adaptor.addChild(root_1, stream_i.nextTree());
}
stream_i.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:631: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();
// 631: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 "intervalSeq"
public static class arrayLambdaExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "arrayLambdaExpression"
// CivlCParser.g:638:1: arrayLambdaExpression : ( ( ( LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR )=> LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN (cond1= assignmentExpression |cond1= quantifiedExpression ) ) -> ^( LAMBDA typeName boundVariableDeclarationList $cond1 $restrict) | LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList RPAREN (cond2= assignmentExpression |cond2= quantifiedExpression ) -> ^( LAMBDA typeName boundVariableDeclarationList $cond2) );
public final OmpParser_CivlCParser.arrayLambdaExpression_return arrayLambdaExpression() throws RecognitionException {
OmpParser_CivlCParser.arrayLambdaExpression_return retval = new OmpParser_CivlCParser.arrayLambdaExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN172=null;
Token RPAREN174=null;
Token LAMBDA175=null;
Token LPAREN176=null;
Token BITOR178=null;
Token RPAREN179=null;
Token LPAREN180=null;
Token RPAREN182=null;
Token LAMBDA183=null;
Token LPAREN184=null;
Token RPAREN186=null;
ParserRuleReturnScope restrict =null;
ParserRuleReturnScope cond1 =null;
ParserRuleReturnScope cond2 =null;
ParserRuleReturnScope typeName173 =null;
ParserRuleReturnScope boundVariableDeclarationList177 =null;
ParserRuleReturnScope typeName181 =null;
ParserRuleReturnScope boundVariableDeclarationList185 =null;
Object LPAREN172_tree=null;
Object RPAREN174_tree=null;
Object LAMBDA175_tree=null;
Object LPAREN176_tree=null;
Object BITOR178_tree=null;
Object RPAREN179_tree=null;
Object LPAREN180_tree=null;
Object RPAREN182_tree=null;
Object LAMBDA183_tree=null;
Object LPAREN184_tree=null;
Object RPAREN186_tree=null;
RewriteRuleTokenStream stream_BITOR=new RewriteRuleTokenStream(adaptor,"token BITOR");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LAMBDA=new RewriteRuleTokenStream(adaptor,"token LAMBDA");
RewriteRuleSubtreeStream stream_boundVariableDeclarationList=new RewriteRuleSubtreeStream(adaptor,"rule boundVariableDeclarationList");
RewriteRuleSubtreeStream stream_conditionalExpression=new RewriteRuleSubtreeStream(adaptor,"rule conditionalExpression");
RewriteRuleSubtreeStream stream_typeName=new RewriteRuleSubtreeStream(adaptor,"rule typeName");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_quantifiedExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifiedExpression");
try {
// CivlCParser.g:639:2: ( ( ( LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR )=> LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN (cond1= assignmentExpression |cond1= quantifiedExpression ) ) -> ^( LAMBDA typeName boundVariableDeclarationList $cond1 $restrict) | LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList RPAREN (cond2= assignmentExpression |cond2= quantifiedExpression ) -> ^( LAMBDA typeName boundVariableDeclarationList $cond2) )
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==LPAREN) ) {
int LA45_1 = input.LA(2);
if ( (synpred23_CivlCParser()) ) {
alt45=1;
}
else if ( (true) ) {
alt45=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 45, 0, input);
throw nvae;
}
switch (alt45) {
case 1 :
// CivlCParser.g:639:4: ( ( LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR )=> LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN (cond1= assignmentExpression |cond1= quantifiedExpression ) )
{
// CivlCParser.g:639:4: ( ( LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR )=> LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN (cond1= assignmentExpression |cond1= quantifiedExpression ) )
// CivlCParser.g:639:5: ( LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR )=> LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN (cond1= assignmentExpression |cond1= quantifiedExpression )
{
LPAREN172=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_arrayLambdaExpression4949); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN172);
pushFollow(FOLLOW_typeName_in_arrayLambdaExpression4951);
typeName173=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName173.getTree());
RPAREN174=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_arrayLambdaExpression4953); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN174);
LAMBDA175=(Token)match(input,LAMBDA,FOLLOW_LAMBDA_in_arrayLambdaExpression4955); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LAMBDA.add(LAMBDA175);
LPAREN176=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_arrayLambdaExpression4957); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN176);
pushFollow(FOLLOW_boundVariableDeclarationList_in_arrayLambdaExpression4971);
boundVariableDeclarationList177=boundVariableDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_boundVariableDeclarationList.add(boundVariableDeclarationList177.getTree());
BITOR178=(Token)match(input,BITOR,FOLLOW_BITOR_in_arrayLambdaExpression4973); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR178);
// CivlCParser.g:643:13: (restrict= conditionalExpression |restrict= quantifiedExpression )
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==AMPERSAND||LA42_0==CHARACTER_CONSTANT||LA42_0==ELLIPSIS||LA42_0==FLOATING_CONSTANT||LA42_0==IDENTIFIER||LA42_0==INTEGER_CONSTANT||LA42_0==LPAREN||LA42_0==MINUSMINUS||LA42_0==NOT||LA42_0==PLUS||LA42_0==PLUSPLUS||LA42_0==STAR||(LA42_0 >= STRING_LITERAL && LA42_0 <= SUB)||LA42_0==TILDE||LA42_0==ALIGNOF||LA42_0==BIG_O||LA42_0==CALLS||LA42_0==DERIV||LA42_0==GENERIC||LA42_0==HERE||LA42_0==PROCNULL||LA42_0==RESULT||(LA42_0 >= SCOPEOF && LA42_0 <= SELF)||(LA42_0 >= SIZEOF && LA42_0 <= SPAWN)||LA42_0==STATE_NULL||LA42_0==VALUE_AT||LA42_0==SUM) ) {
alt42=1;
}
else if ( (LA42_0==EXISTS||LA42_0==FORALL||LA42_0==UNIFORM) ) {
alt42=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 42, 0, input);
throw nvae;
}
switch (alt42) {
case 1 :
// CivlCParser.g:643:14: restrict= conditionalExpression
{
pushFollow(FOLLOW_conditionalExpression_in_arrayLambdaExpression4990);
restrict=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(restrict.getTree());
}
break;
case 2 :
// CivlCParser.g:643:47: restrict= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_arrayLambdaExpression4996);
restrict=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(restrict.getTree());
}
break;
}
RPAREN179=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_arrayLambdaExpression5011); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN179);
// CivlCParser.g:645:13: (cond1= assignmentExpression |cond1= quantifiedExpression )
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==AMPERSAND||LA43_0==CHARACTER_CONSTANT||LA43_0==ELLIPSIS||LA43_0==FLOATING_CONSTANT||LA43_0==IDENTIFIER||LA43_0==INTEGER_CONSTANT||LA43_0==LPAREN||LA43_0==MINUSMINUS||LA43_0==NOT||LA43_0==PLUS||LA43_0==PLUSPLUS||LA43_0==STAR||(LA43_0 >= STRING_LITERAL && LA43_0 <= SUB)||LA43_0==TILDE||LA43_0==ALIGNOF||LA43_0==BIG_O||LA43_0==CALLS||LA43_0==DERIV||LA43_0==GENERIC||LA43_0==HERE||LA43_0==PROCNULL||LA43_0==RESULT||(LA43_0 >= SCOPEOF && LA43_0 <= SELF)||(LA43_0 >= SIZEOF && LA43_0 <= SPAWN)||LA43_0==STATE_NULL||LA43_0==VALUE_AT||LA43_0==SUM) ) {
alt43=1;
}
else if ( (LA43_0==EXISTS||LA43_0==FORALL||LA43_0==UNIFORM) ) {
alt43=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 43, 0, input);
throw nvae;
}
switch (alt43) {
case 1 :
// CivlCParser.g:645:14: cond1= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_arrayLambdaExpression5028);
cond1=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(cond1.getTree());
}
break;
case 2 :
// CivlCParser.g:645:43: cond1= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_arrayLambdaExpression5034);
cond1=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(cond1.getTree());
}
break;
}
}
// AST REWRITE
// elements: cond1, restrict, typeName, boundVariableDeclarationList, LAMBDA
// token labels:
// rule labels: cond1, restrict, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_cond1=new RewriteRuleSubtreeStream(adaptor,"rule cond1",cond1!=null?cond1.getTree():null);
RewriteRuleSubtreeStream stream_restrict=new RewriteRuleSubtreeStream(adaptor,"rule restrict",restrict!=null?restrict.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 646:9: -> ^( LAMBDA typeName boundVariableDeclarationList $cond1 $restrict)
{
// CivlCParser.g:646:12: ^( LAMBDA typeName boundVariableDeclarationList $cond1 $restrict)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_LAMBDA.nextNode(), root_1);
adaptor.addChild(root_1, stream_typeName.nextTree());
adaptor.addChild(root_1, stream_boundVariableDeclarationList.nextTree());
adaptor.addChild(root_1, stream_cond1.nextTree());
adaptor.addChild(root_1, stream_restrict.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:647:7: LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList RPAREN (cond2= assignmentExpression |cond2= quantifiedExpression )
{
LPAREN180=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_arrayLambdaExpression5068); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN180);
pushFollow(FOLLOW_typeName_in_arrayLambdaExpression5070);
typeName181=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName181.getTree());
RPAREN182=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_arrayLambdaExpression5072); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN182);
LAMBDA183=(Token)match(input,LAMBDA,FOLLOW_LAMBDA_in_arrayLambdaExpression5074); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LAMBDA.add(LAMBDA183);
LPAREN184=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_arrayLambdaExpression5076); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN184);
pushFollow(FOLLOW_boundVariableDeclarationList_in_arrayLambdaExpression5086);
boundVariableDeclarationList185=boundVariableDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_boundVariableDeclarationList.add(boundVariableDeclarationList185.getTree());
RPAREN186=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_arrayLambdaExpression5088); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN186);
// CivlCParser.g:649:9: (cond2= assignmentExpression |cond2= quantifiedExpression )
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==AMPERSAND||LA44_0==CHARACTER_CONSTANT||LA44_0==ELLIPSIS||LA44_0==FLOATING_CONSTANT||LA44_0==IDENTIFIER||LA44_0==INTEGER_CONSTANT||LA44_0==LPAREN||LA44_0==MINUSMINUS||LA44_0==NOT||LA44_0==PLUS||LA44_0==PLUSPLUS||LA44_0==STAR||(LA44_0 >= STRING_LITERAL && LA44_0 <= SUB)||LA44_0==TILDE||LA44_0==ALIGNOF||LA44_0==BIG_O||LA44_0==CALLS||LA44_0==DERIV||LA44_0==GENERIC||LA44_0==HERE||LA44_0==PROCNULL||LA44_0==RESULT||(LA44_0 >= SCOPEOF && LA44_0 <= SELF)||(LA44_0 >= SIZEOF && LA44_0 <= SPAWN)||LA44_0==STATE_NULL||LA44_0==VALUE_AT||LA44_0==SUM) ) {
alt44=1;
}
else if ( (LA44_0==EXISTS||LA44_0==FORALL||LA44_0==UNIFORM) ) {
alt44=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 44, 0, input);
throw nvae;
}
switch (alt44) {
case 1 :
// CivlCParser.g:649:10: cond2= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_arrayLambdaExpression5101);
cond2=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(cond2.getTree());
}
break;
case 2 :
// CivlCParser.g:649:39: cond2= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_arrayLambdaExpression5107);
cond2=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(cond2.getTree());
}
break;
}
// AST REWRITE
// elements: typeName, cond2, boundVariableDeclarationList, LAMBDA
// token labels:
// rule labels: cond2, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_cond2=new RewriteRuleSubtreeStream(adaptor,"rule cond2",cond2!=null?cond2.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 650:9: -> ^( LAMBDA typeName boundVariableDeclarationList $cond2)
{
// CivlCParser.g:650:12: ^( LAMBDA typeName boundVariableDeclarationList $cond2)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_LAMBDA.nextNode(), root_1);
adaptor.addChild(root_1, stream_typeName.nextTree());
adaptor.addChild(root_1, stream_boundVariableDeclarationList.nextTree());
adaptor.addChild(root_1, stream_cond2.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 "arrayLambdaExpression"
public static class boundVariableDeclarationSubList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "boundVariableDeclarationSubList"
// CivlCParser.g:653:1: boundVariableDeclarationSubList : typeName IDENTIFIER ( COMMA IDENTIFIER )* ( COLON rangeExpression )? -> ^( BOUND_VARIABLE_DECLARATION typeName ^( BOUND_VARIABLE_NAME_LIST ( IDENTIFIER )+ ) ( rangeExpression )? ) ;
public final OmpParser_CivlCParser.boundVariableDeclarationSubList_return boundVariableDeclarationSubList() throws RecognitionException {
OmpParser_CivlCParser.boundVariableDeclarationSubList_return retval = new OmpParser_CivlCParser.boundVariableDeclarationSubList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER188=null;
Token COMMA189=null;
Token IDENTIFIER190=null;
Token COLON191=null;
ParserRuleReturnScope typeName187 =null;
ParserRuleReturnScope rangeExpression192 =null;
Object IDENTIFIER188_tree=null;
Object COMMA189_tree=null;
Object IDENTIFIER190_tree=null;
Object COLON191_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_typeName=new RewriteRuleSubtreeStream(adaptor,"rule typeName");
RewriteRuleSubtreeStream stream_rangeExpression=new RewriteRuleSubtreeStream(adaptor,"rule rangeExpression");
try {
// CivlCParser.g:654:2: ( typeName IDENTIFIER ( COMMA IDENTIFIER )* ( COLON rangeExpression )? -> ^( BOUND_VARIABLE_DECLARATION typeName ^( BOUND_VARIABLE_NAME_LIST ( IDENTIFIER )+ ) ( rangeExpression )? ) )
// CivlCParser.g:654:4: typeName IDENTIFIER ( COMMA IDENTIFIER )* ( COLON rangeExpression )?
{
pushFollow(FOLLOW_typeName_in_boundVariableDeclarationSubList5140);
typeName187=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName187.getTree());
IDENTIFIER188=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_boundVariableDeclarationSubList5142); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER188);
// CivlCParser.g:654:24: ( COMMA IDENTIFIER )*
loop46:
while (true) {
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==COMMA) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// CivlCParser.g:654:25: COMMA IDENTIFIER
{
COMMA189=(Token)match(input,COMMA,FOLLOW_COMMA_in_boundVariableDeclarationSubList5145); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA189);
IDENTIFIER190=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_boundVariableDeclarationSubList5147); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER190);
}
break;
default :
break loop46;
}
}
// CivlCParser.g:654:44: ( COLON rangeExpression )?
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==COLON) ) {
alt47=1;
}
switch (alt47) {
case 1 :
// CivlCParser.g:654:45: COLON rangeExpression
{
COLON191=(Token)match(input,COLON,FOLLOW_COLON_in_boundVariableDeclarationSubList5152); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON191);
pushFollow(FOLLOW_rangeExpression_in_boundVariableDeclarationSubList5154);
rangeExpression192=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(rangeExpression192.getTree());
}
break;
}
// AST REWRITE
// elements: IDENTIFIER, typeName, 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();
// 655:9: -> ^( BOUND_VARIABLE_DECLARATION typeName ^( BOUND_VARIABLE_NAME_LIST ( IDENTIFIER )+ ) ( rangeExpression )? )
{
// CivlCParser.g:655:12: ^( BOUND_VARIABLE_DECLARATION typeName ^( BOUND_VARIABLE_NAME_LIST ( IDENTIFIER )+ ) ( rangeExpression )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BOUND_VARIABLE_DECLARATION, "BOUND_VARIABLE_DECLARATION"), root_1);
adaptor.addChild(root_1, stream_typeName.nextTree());
// CivlCParser.g:656:13: ^( BOUND_VARIABLE_NAME_LIST ( IDENTIFIER )+ )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(BOUND_VARIABLE_NAME_LIST, "BOUND_VARIABLE_NAME_LIST"), root_2);
if ( !(stream_IDENTIFIER.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_IDENTIFIER.hasNext() ) {
adaptor.addChild(root_2, stream_IDENTIFIER.nextNode());
}
stream_IDENTIFIER.reset();
adaptor.addChild(root_1, root_2);
}
// CivlCParser.g:656:53: ( rangeExpression )?
if ( stream_rangeExpression.hasNext() ) {
adaptor.addChild(root_1, stream_rangeExpression.nextTree());
}
stream_rangeExpression.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 "boundVariableDeclarationSubList"
public static class boundVariableDeclarationList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "boundVariableDeclarationList"
// CivlCParser.g:659:1: boundVariableDeclarationList : boundVariableDeclarationSubList ( SEMI boundVariableDeclarationSubList )* -> ^( BOUND_VARIABLE_DECLARATION_LIST ( boundVariableDeclarationSubList )+ ) ;
public final OmpParser_CivlCParser.boundVariableDeclarationList_return boundVariableDeclarationList() throws RecognitionException {
OmpParser_CivlCParser.boundVariableDeclarationList_return retval = new OmpParser_CivlCParser.boundVariableDeclarationList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI194=null;
ParserRuleReturnScope boundVariableDeclarationSubList193 =null;
ParserRuleReturnScope boundVariableDeclarationSubList195 =null;
Object SEMI194_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_boundVariableDeclarationSubList=new RewriteRuleSubtreeStream(adaptor,"rule boundVariableDeclarationSubList");
try {
// CivlCParser.g:660:2: ( boundVariableDeclarationSubList ( SEMI boundVariableDeclarationSubList )* -> ^( BOUND_VARIABLE_DECLARATION_LIST ( boundVariableDeclarationSubList )+ ) )
// CivlCParser.g:660:4: boundVariableDeclarationSubList ( SEMI boundVariableDeclarationSubList )*
{
pushFollow(FOLLOW_boundVariableDeclarationSubList_in_boundVariableDeclarationList5205);
boundVariableDeclarationSubList193=boundVariableDeclarationSubList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_boundVariableDeclarationSubList.add(boundVariableDeclarationSubList193.getTree());
// CivlCParser.g:660:36: ( SEMI boundVariableDeclarationSubList )*
loop48:
while (true) {
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==SEMI) ) {
alt48=1;
}
switch (alt48) {
case 1 :
// CivlCParser.g:660:37: SEMI boundVariableDeclarationSubList
{
SEMI194=(Token)match(input,SEMI,FOLLOW_SEMI_in_boundVariableDeclarationList5208); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI194);
pushFollow(FOLLOW_boundVariableDeclarationSubList_in_boundVariableDeclarationList5210);
boundVariableDeclarationSubList195=boundVariableDeclarationSubList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_boundVariableDeclarationSubList.add(boundVariableDeclarationSubList195.getTree());
}
break;
default :
break loop48;
}
}
// AST REWRITE
// elements: boundVariableDeclarationSubList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 661:9: -> ^( BOUND_VARIABLE_DECLARATION_LIST ( boundVariableDeclarationSubList )+ )
{
// CivlCParser.g:661:12: ^( BOUND_VARIABLE_DECLARATION_LIST ( boundVariableDeclarationSubList )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BOUND_VARIABLE_DECLARATION_LIST, "BOUND_VARIABLE_DECLARATION_LIST"), root_1);
if ( !(stream_boundVariableDeclarationSubList.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_boundVariableDeclarationSubList.hasNext() ) {
adaptor.addChild(root_1, stream_boundVariableDeclarationSubList.nextTree());
}
stream_boundVariableDeclarationSubList.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 "boundVariableDeclarationList"
public static class assignmentExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assignmentExpression"
// CivlCParser.g:674:1: assignmentExpression : ( ( arrayLambdaExpression )=> arrayLambdaExpression | ( unaryExpression assignmentOperator )=>lhs= unaryExpression op= assignmentOperator (rhs= assignmentExpression |rhs= quantifiedExpression ) -> ^( OPERATOR $op ^( ARGUMENT_LIST $lhs $rhs) ) | conditionalExpression );
public final OmpParser_CivlCParser.assignmentExpression_return assignmentExpression() throws RecognitionException {
OmpParser_CivlCParser.assignmentExpression_return retval = new OmpParser_CivlCParser.assignmentExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope lhs =null;
ParserRuleReturnScope op =null;
ParserRuleReturnScope rhs =null;
ParserRuleReturnScope arrayLambdaExpression196 =null;
ParserRuleReturnScope conditionalExpression197 =null;
RewriteRuleSubtreeStream stream_assignmentOperator=new RewriteRuleSubtreeStream(adaptor,"rule assignmentOperator");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression");
RewriteRuleSubtreeStream stream_quantifiedExpression=new RewriteRuleSubtreeStream(adaptor,"rule quantifiedExpression");
try {
// CivlCParser.g:675:2: ( ( arrayLambdaExpression )=> arrayLambdaExpression | ( unaryExpression assignmentOperator )=>lhs= unaryExpression op= assignmentOperator (rhs= assignmentExpression |rhs= quantifiedExpression ) -> ^( OPERATOR $op ^( ARGUMENT_LIST $lhs $rhs) ) | conditionalExpression )
int alt50=3;
switch ( input.LA(1) ) {
case LPAREN:
{
int LA50_1 = input.LA(2);
if ( (synpred24_CivlCParser()) ) {
alt50=1;
}
else if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case IDENTIFIER:
{
int LA50_2 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case INTEGER_CONSTANT:
{
int LA50_3 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case FLOATING_CONSTANT:
{
int LA50_4 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case CHARACTER_CONSTANT:
{
int LA50_5 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case SELF:
{
int LA50_6 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case PROCNULL:
{
int LA50_7 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case STATE_NULL:
{
int LA50_8 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case RESULT:
{
int LA50_9 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case HERE:
{
int LA50_10 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case ELLIPSIS:
{
int LA50_11 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case STRING_LITERAL:
{
int LA50_12 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case GENERIC:
{
int LA50_13 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case DERIV:
{
int LA50_14 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case PLUSPLUS:
{
int LA50_15 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case MINUSMINUS:
{
int LA50_16 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case AMPERSAND:
case NOT:
case PLUS:
case STAR:
case SUB:
case TILDE:
case BIG_O:
{
int LA50_17 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case SIZEOF:
{
int LA50_18 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case SCOPEOF:
{
int LA50_19 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case ALIGNOF:
{
int LA50_20 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case VALUE_AT:
{
int LA50_21 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case SPAWN:
{
int LA50_22 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case CALLS:
{
int LA50_23 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
case SUM:
{
int LA50_24 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt50=2;
}
else if ( (true) ) {
alt50=3;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 50, 0, input);
throw nvae;
}
switch (alt50) {
case 1 :
// CivlCParser.g:675:4: ( arrayLambdaExpression )=> arrayLambdaExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_arrayLambdaExpression_in_assignmentExpression5249);
arrayLambdaExpression196=arrayLambdaExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arrayLambdaExpression196.getTree());
}
break;
case 2 :
// CivlCParser.g:676:4: ( unaryExpression assignmentOperator )=>lhs= unaryExpression op= assignmentOperator (rhs= assignmentExpression |rhs= quantifiedExpression )
{
pushFollow(FOLLOW_unaryExpression_in_assignmentExpression5271);
lhs=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(lhs.getTree());
pushFollow(FOLLOW_assignmentOperator_in_assignmentExpression5283);
op=assignmentOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentOperator.add(op.getTree());
// CivlCParser.g:679:9: (rhs= assignmentExpression |rhs= quantifiedExpression )
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==AMPERSAND||LA49_0==CHARACTER_CONSTANT||LA49_0==ELLIPSIS||LA49_0==FLOATING_CONSTANT||LA49_0==IDENTIFIER||LA49_0==INTEGER_CONSTANT||LA49_0==LPAREN||LA49_0==MINUSMINUS||LA49_0==NOT||LA49_0==PLUS||LA49_0==PLUSPLUS||LA49_0==STAR||(LA49_0 >= STRING_LITERAL && LA49_0 <= SUB)||LA49_0==TILDE||LA49_0==ALIGNOF||LA49_0==BIG_O||LA49_0==CALLS||LA49_0==DERIV||LA49_0==GENERIC||LA49_0==HERE||LA49_0==PROCNULL||LA49_0==RESULT||(LA49_0 >= SCOPEOF && LA49_0 <= SELF)||(LA49_0 >= SIZEOF && LA49_0 <= SPAWN)||LA49_0==STATE_NULL||LA49_0==VALUE_AT||LA49_0==SUM) ) {
alt49=1;
}
else if ( (LA49_0==EXISTS||LA49_0==FORALL||LA49_0==UNIFORM) ) {
alt49=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 49, 0, input);
throw nvae;
}
switch (alt49) {
case 1 :
// CivlCParser.g:679:10: rhs= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression5296);
rhs=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(rhs.getTree());
}
break;
case 2 :
// CivlCParser.g:679:37: rhs= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_assignmentExpression5302);
rhs=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(rhs.getTree());
}
break;
}
// AST REWRITE
// elements: op, rhs, lhs
// token labels:
// rule labels: op, lhs, rhs, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_op=new RewriteRuleSubtreeStream(adaptor,"rule op",op!=null?op.getTree():null);
RewriteRuleSubtreeStream stream_lhs=new RewriteRuleSubtreeStream(adaptor,"rule lhs",lhs!=null?lhs.getTree():null);
RewriteRuleSubtreeStream stream_rhs=new RewriteRuleSubtreeStream(adaptor,"rule rhs",rhs!=null?rhs.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 680:9: -> ^( OPERATOR $op ^( ARGUMENT_LIST $lhs $rhs) )
{
// CivlCParser.g:680:12: ^( OPERATOR $op ^( ARGUMENT_LIST $lhs $rhs) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_op.nextTree());
// CivlCParser.g:680:27: ^( ARGUMENT_LIST $lhs $rhs)
{
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_lhs.nextTree());
adaptor.addChild(root_2, stream_rhs.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:681:4: conditionalExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpression_in_assignmentExpression5335);
conditionalExpression197=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, conditionalExpression197.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 assignmentOperator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assignmentOperator"
// CivlCParser.g:685:1: assignmentOperator : ( ASSIGN | STAREQ | DIVEQ | MODEQ | PLUSEQ | SUBEQ | SHIFTLEFTEQ | SHIFTRIGHTEQ | BITANDEQ | BITXOREQ | BITOREQ );
public final OmpParser_CivlCParser.assignmentOperator_return assignmentOperator() throws RecognitionException {
OmpParser_CivlCParser.assignmentOperator_return retval = new OmpParser_CivlCParser.assignmentOperator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set198=null;
Object set198_tree=null;
try {
// CivlCParser.g:686:2: ( ASSIGN | STAREQ | DIVEQ | MODEQ | PLUSEQ | SUBEQ | SHIFTLEFTEQ | SHIFTRIGHTEQ | BITANDEQ | BITXOREQ | BITOREQ )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set198=input.LT(1);
if ( input.LA(1)==ASSIGN||input.LA(1)==BITANDEQ||input.LA(1)==BITOREQ||input.LA(1)==BITXOREQ||input.LA(1)==DIVEQ||input.LA(1)==MODEQ||input.LA(1)==PLUSEQ||input.LA(1)==SHIFTLEFTEQ||input.LA(1)==SHIFTRIGHTEQ||input.LA(1)==STAREQ||input.LA(1)==SUBEQ ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set198));
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 "assignmentOperator"
public static class commaExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "commaExpression"
// CivlCParser.g:698:1: commaExpression : ( assignmentExpression -> assignmentExpression ) ( ( COMMA )=> COMMA y= assignmentExpression -> ^( OPERATOR COMMA ^( ARGUMENT_LIST $commaExpression $y) ) )* ;
public final OmpParser_CivlCParser.commaExpression_return commaExpression() throws RecognitionException {
OmpParser_CivlCParser.commaExpression_return retval = new OmpParser_CivlCParser.commaExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA200=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope assignmentExpression199 =null;
Object COMMA200_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// CivlCParser.g:699:2: ( ( assignmentExpression -> assignmentExpression ) ( ( COMMA )=> COMMA y= assignmentExpression -> ^( OPERATOR COMMA ^( ARGUMENT_LIST $commaExpression $y) ) )* )
// CivlCParser.g:699:4: ( assignmentExpression -> assignmentExpression ) ( ( COMMA )=> COMMA y= assignmentExpression -> ^( OPERATOR COMMA ^( ARGUMENT_LIST $commaExpression $y) ) )*
{
// CivlCParser.g:699:4: ( assignmentExpression -> assignmentExpression )
// CivlCParser.g:699:6: assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_commaExpression5404);
assignmentExpression199=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression199.getTree());
// 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();
// 699:27: -> assignmentExpression
{
adaptor.addChild(root_0, stream_assignmentExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:700:4: ( ( COMMA )=> COMMA y= assignmentExpression -> ^( OPERATOR COMMA ^( ARGUMENT_LIST $commaExpression $y) ) )*
loop51:
while (true) {
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==COMMA) ) {
int LA51_2 = input.LA(2);
if ( (synpred26_CivlCParser()) ) {
alt51=1;
}
}
switch (alt51) {
case 1 :
// CivlCParser.g:700:6: ( COMMA )=> COMMA y= assignmentExpression
{
COMMA200=(Token)match(input,COMMA,FOLLOW_COMMA_in_commaExpression5422); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA200);
pushFollow(FOLLOW_assignmentExpression_in_commaExpression5426);
y=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(y.getTree());
// AST REWRITE
// elements: y, COMMA, commaExpression
// 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();
// 701:6: -> ^( OPERATOR COMMA ^( ARGUMENT_LIST $commaExpression $y) )
{
// CivlCParser.g:701:9: ^( OPERATOR COMMA ^( ARGUMENT_LIST $commaExpression $y) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OPERATOR, "OPERATOR"), root_1);
adaptor.addChild(root_1, stream_COMMA.nextNode());
// CivlCParser.g:701:26: ^( ARGUMENT_LIST $commaExpression $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 loop51;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "commaExpression"
public static class expression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "expression"
// CivlCParser.g:706:1: expression : ( quantifiedExpression | commaExpression );
public final OmpParser_CivlCParser.expression_return expression() throws RecognitionException {
OmpParser_CivlCParser.expression_return retval = new OmpParser_CivlCParser.expression_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope quantifiedExpression201 =null;
ParserRuleReturnScope commaExpression202 =null;
try {
// CivlCParser.g:707:5: ( quantifiedExpression | commaExpression )
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==EXISTS||LA52_0==FORALL||LA52_0==UNIFORM) ) {
alt52=1;
}
else if ( (LA52_0==AMPERSAND||LA52_0==CHARACTER_CONSTANT||LA52_0==ELLIPSIS||LA52_0==FLOATING_CONSTANT||LA52_0==IDENTIFIER||LA52_0==INTEGER_CONSTANT||LA52_0==LPAREN||LA52_0==MINUSMINUS||LA52_0==NOT||LA52_0==PLUS||LA52_0==PLUSPLUS||LA52_0==STAR||(LA52_0 >= STRING_LITERAL && LA52_0 <= SUB)||LA52_0==TILDE||LA52_0==ALIGNOF||LA52_0==BIG_O||LA52_0==CALLS||LA52_0==DERIV||LA52_0==GENERIC||LA52_0==HERE||LA52_0==PROCNULL||LA52_0==RESULT||(LA52_0 >= SCOPEOF && LA52_0 <= SELF)||(LA52_0 >= SIZEOF && LA52_0 <= SPAWN)||LA52_0==STATE_NULL||LA52_0==VALUE_AT||LA52_0==SUM) ) {
alt52=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 52, 0, input);
throw nvae;
}
switch (alt52) {
case 1 :
// CivlCParser.g:707:7: quantifiedExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_quantifiedExpression_in_expression5471);
quantifiedExpression201=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, quantifiedExpression201.getTree());
}
break;
case 2 :
// CivlCParser.g:707:30: commaExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_commaExpression_in_expression5475);
commaExpression202=commaExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, commaExpression202.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 "expression"
public static class constantExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "constantExpression"
// CivlCParser.g:715:1: constantExpression : conditionalExpression ;
public final OmpParser_CivlCParser.constantExpression_return constantExpression() throws RecognitionException {
OmpParser_CivlCParser.constantExpression_return retval = new OmpParser_CivlCParser.constantExpression_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope conditionalExpression203 =null;
try {
// CivlCParser.g:716:2: ( conditionalExpression )
// CivlCParser.g:716:4: conditionalExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpression_in_constantExpression5488);
conditionalExpression203=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, conditionalExpression203.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 declaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declaration"
// CivlCParser.g:742:1: declaration : (d= declarationSpecifiers (i= initDeclaratorList contract SEMI -> ^( DECLARATION $d $i contract ) | SEMI -> ^( DECLARATION $d ABSENT ABSENT ) ) | staticAssertDeclaration );
public final OmpParser_CivlCParser.declaration_return declaration() throws RecognitionException {
DeclarationScope_stack.push(new DeclarationScope_scope());
OmpParser_CivlCParser.declaration_return retval = new OmpParser_CivlCParser.declaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI205=null;
Token SEMI206=null;
ParserRuleReturnScope d =null;
ParserRuleReturnScope i =null;
ParserRuleReturnScope contract204 =null;
ParserRuleReturnScope staticAssertDeclaration207 =null;
Object SEMI205_tree=null;
Object SEMI206_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_contract=new RewriteRuleSubtreeStream(adaptor,"rule contract");
RewriteRuleSubtreeStream stream_initDeclaratorList=new RewriteRuleSubtreeStream(adaptor,"rule initDeclaratorList");
RewriteRuleSubtreeStream stream_declarationSpecifiers=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifiers");
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().hasTypeSpec = false;
try {
// CivlCParser.g:748:2: (d= declarationSpecifiers (i= initDeclaratorList contract SEMI -> ^( DECLARATION $d $i contract ) | SEMI -> ^( DECLARATION $d ABSENT ABSENT ) ) | staticAssertDeclaration )
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==IDENTIFIER||(LA54_0 >= ABSTRACT && LA54_0 <= ALIGNAS)||(LA54_0 >= ATOMIC && LA54_0 <= AUTO)||LA54_0==BOOL||LA54_0==CHAR||(LA54_0 >= COMPLEX && LA54_0 <= CONST)||(LA54_0 >= DEVICE && LA54_0 <= DIFFERENTIABLE)||(LA54_0 >= DOMAIN && LA54_0 <= DOUBLE)||LA54_0==ENUM||(LA54_0 >= EXTERN && LA54_0 <= FATOMIC)||LA54_0==FLOAT||LA54_0==GLOBAL||(LA54_0 >= INLINE && LA54_0 <= INT)||(LA54_0 >= LONG && LA54_0 <= NORETURN)||LA54_0==OUTPUT||(LA54_0 >= PURE && LA54_0 <= RANGE)||(LA54_0 >= REAL && LA54_0 <= REGISTER)||LA54_0==RESTRICT||(LA54_0 >= SHARED && LA54_0 <= SIGNED)||LA54_0==STATE_F||LA54_0==STATIC||LA54_0==STRUCT||LA54_0==SYSTEM||(LA54_0 >= THREADLOCAL && LA54_0 <= TYPEOF)||(LA54_0 >= UNION && LA54_0 <= UNSIGNED)||(LA54_0 >= VOID && LA54_0 <= VOLATILE)) ) {
alt54=1;
}
else if ( (LA54_0==STATICASSERT) ) {
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 :
// CivlCParser.g:748:4: d= declarationSpecifiers (i= initDeclaratorList contract SEMI -> ^( DECLARATION $d $i contract ) | SEMI -> ^( DECLARATION $d ABSENT ABSENT ) )
{
pushFollow(FOLLOW_declarationSpecifiers_in_declaration5517);
d=declarationSpecifiers();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationSpecifiers.add(d.getTree());
// CivlCParser.g:749:4: (i= initDeclaratorList contract SEMI -> ^( DECLARATION $d $i contract ) | SEMI -> ^( DECLARATION $d ABSENT ABSENT ) )
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==IDENTIFIER||LA53_0==LPAREN||LA53_0==STAR) ) {
alt53=1;
}
else if ( (LA53_0==SEMI) ) {
alt53=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 53, 0, input);
throw nvae;
}
switch (alt53) {
case 1 :
// CivlCParser.g:750:6: i= initDeclaratorList contract SEMI
{
pushFollow(FOLLOW_initDeclaratorList_in_declaration5531);
i=initDeclaratorList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initDeclaratorList.add(i.getTree());
pushFollow(FOLLOW_contract_in_declaration5533);
contract204=contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_contract.add(contract204.getTree());
SEMI205=(Token)match(input,SEMI,FOLLOW_SEMI_in_declaration5535); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI205);
// AST REWRITE
// elements: d, contract, i
// token labels:
// rule labels: d, i, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.getTree():null);
RewriteRuleSubtreeStream stream_i=new RewriteRuleSubtreeStream(adaptor,"rule i",i!=null?i.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 751:6: -> ^( DECLARATION $d $i contract )
{
// CivlCParser.g:751:9: ^( DECLARATION $d $i contract )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATION, "DECLARATION"), root_1);
adaptor.addChild(root_1, stream_d.nextTree());
adaptor.addChild(root_1, stream_i.nextTree());
adaptor.addChild(root_1, stream_contract.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:752:6: SEMI
{
SEMI206=(Token)match(input,SEMI,FOLLOW_SEMI_in_declaration5561); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI206);
// AST REWRITE
// elements: d
// token labels:
// rule labels: d, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
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();
// 753:6: -> ^( DECLARATION $d ABSENT ABSENT )
{
// CivlCParser.g:753:9: ^( DECLARATION $d ABSENT ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATION, "DECLARATION"), root_1);
adaptor.addChild(root_1, stream_d.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
}
break;
case 2 :
// CivlCParser.g:755:4: staticAssertDeclaration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_staticAssertDeclaration_in_declaration5589);
staticAssertDeclaration207=staticAssertDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, staticAssertDeclaration207.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
DeclarationScope_stack.pop();
}
return retval;
}
// $ANTLR end "declaration"
public static class declarationSpecifiers_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declarationSpecifiers"
// CivlCParser.g:765:1: declarationSpecifiers : declarationSpecifierList -> ^( DECLARATION_SPECIFIERS declarationSpecifierList ) ;
public final OmpParser_CivlCParser.declarationSpecifiers_return declarationSpecifiers() throws RecognitionException {
OmpParser_CivlCParser.declarationSpecifiers_return retval = new OmpParser_CivlCParser.declarationSpecifiers_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope declarationSpecifierList208 =null;
RewriteRuleSubtreeStream stream_declarationSpecifierList=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifierList");
try {
// CivlCParser.g:766:2: ( declarationSpecifierList -> ^( DECLARATION_SPECIFIERS declarationSpecifierList ) )
// CivlCParser.g:766:4: declarationSpecifierList
{
pushFollow(FOLLOW_declarationSpecifierList_in_declarationSpecifiers5603);
declarationSpecifierList208=declarationSpecifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationSpecifierList.add(declarationSpecifierList208.getTree());
// AST REWRITE
// elements: declarationSpecifierList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 767:4: -> ^( DECLARATION_SPECIFIERS declarationSpecifierList )
{
// CivlCParser.g:767:7: ^( DECLARATION_SPECIFIERS declarationSpecifierList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATION_SPECIFIERS, "DECLARATION_SPECIFIERS"), root_1);
adaptor.addChild(root_1, stream_declarationSpecifierList.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 "declarationSpecifiers"
public static class declarationSpecifierList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declarationSpecifierList"
// CivlCParser.g:772:1: declarationSpecifierList : declarationSpecifier ({...}? declarationSpecifier )* ;
public final OmpParser_CivlCParser.declarationSpecifierList_return declarationSpecifierList() throws RecognitionException {
OmpParser_CivlCParser.declarationSpecifierList_return retval = new OmpParser_CivlCParser.declarationSpecifierList_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope declarationSpecifier209 =null;
ParserRuleReturnScope declarationSpecifier210 =null;
try {
// CivlCParser.g:773:2: ( declarationSpecifier ({...}? declarationSpecifier )* )
// CivlCParser.g:773:4: declarationSpecifier ({...}? declarationSpecifier )*
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_declarationSpecifier_in_declarationSpecifierList5628);
declarationSpecifier209=declarationSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declarationSpecifier209.getTree());
// CivlCParser.g:774:7: ({...}? declarationSpecifier )*
loop55:
while (true) {
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==IDENTIFIER) ) {
int LA55_1 = input.LA(2);
if ( (((isTypeName(input.LT(1).getText()))&&( !indicatesDeclarator() ))) ) {
alt55=1;
}
}
else if ( ((LA55_0 >= ABSTRACT && LA55_0 <= ALIGNAS)||(LA55_0 >= ATOMIC && LA55_0 <= AUTO)||LA55_0==BOOL||LA55_0==CHAR||(LA55_0 >= COMPLEX && LA55_0 <= CONST)||(LA55_0 >= DEVICE && LA55_0 <= DIFFERENTIABLE)||(LA55_0 >= DOMAIN && LA55_0 <= DOUBLE)||LA55_0==ENUM||(LA55_0 >= EXTERN && LA55_0 <= FATOMIC)||LA55_0==FLOAT||LA55_0==GLOBAL||(LA55_0 >= INLINE && LA55_0 <= INT)||(LA55_0 >= LONG && LA55_0 <= NORETURN)||LA55_0==OUTPUT||(LA55_0 >= PURE && LA55_0 <= RANGE)||(LA55_0 >= REAL && LA55_0 <= REGISTER)||LA55_0==RESTRICT||(LA55_0 >= SHARED && LA55_0 <= SIGNED)||LA55_0==STATE_F||LA55_0==STATIC||LA55_0==STRUCT||LA55_0==SYSTEM||(LA55_0 >= THREADLOCAL && LA55_0 <= TYPEOF)||(LA55_0 >= UNION && LA55_0 <= UNSIGNED)||(LA55_0 >= VOID && LA55_0 <= VOLATILE)) ) {
alt55=1;
}
switch (alt55) {
case 1 :
// CivlCParser.g:774:9: {...}? declarationSpecifier
{
if ( !(( !indicatesDeclarator() )) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "declarationSpecifierList", " !indicatesDeclarator() ");
}
pushFollow(FOLLOW_declarationSpecifier_in_declarationSpecifierList5640);
declarationSpecifier210=declarationSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declarationSpecifier210.getTree());
}
break;
default :
break loop55;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "declarationSpecifierList"
public static class declarationSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declarationSpecifier"
// CivlCParser.g:777:1: declarationSpecifier : ( storageClassSpecifier | typeSpecifierOrQualifier | functionSpecifier | alignmentSpecifier );
public final OmpParser_CivlCParser.declarationSpecifier_return declarationSpecifier() throws RecognitionException {
OmpParser_CivlCParser.declarationSpecifier_return retval = new OmpParser_CivlCParser.declarationSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope storageClassSpecifier211 =null;
ParserRuleReturnScope typeSpecifierOrQualifier212 =null;
ParserRuleReturnScope functionSpecifier213 =null;
ParserRuleReturnScope alignmentSpecifier214 =null;
try {
// CivlCParser.g:778:2: ( storageClassSpecifier | typeSpecifierOrQualifier | functionSpecifier | alignmentSpecifier )
int alt56=4;
switch ( input.LA(1) ) {
case AUTO:
case EXTERN:
case REGISTER:
case SHARED:
case STATIC:
case THREADLOCAL:
case TYPEDEF:
{
alt56=1;
}
break;
case IDENTIFIER:
case ATOMIC:
case BOOL:
case CHAR:
case COMPLEX:
case CONST:
case DOMAIN:
case DOUBLE:
case ENUM:
case FLOAT:
case INPUT:
case INT:
case LONG:
case MEM_TYPE:
case OUTPUT:
case RANGE:
case REAL:
case RESTRICT:
case SHORT:
case SIGNED:
case STRUCT:
case TYPEOF:
case UNION:
case UNSIGNED:
case VOID:
case VOLATILE:
{
alt56=2;
}
break;
case ABSTRACT:
case DEVICE:
case DIFFERENTIABLE:
case FATOMIC:
case GLOBAL:
case INLINE:
case NORETURN:
case PURE:
case STATE_F:
case SYSTEM:
{
alt56=3;
}
break;
case ALIGNAS:
{
alt56=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 56, 0, input);
throw nvae;
}
switch (alt56) {
case 1 :
// CivlCParser.g:778:4: storageClassSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_storageClassSpecifier_in_declarationSpecifier5654);
storageClassSpecifier211=storageClassSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, storageClassSpecifier211.getTree());
}
break;
case 2 :
// CivlCParser.g:779:4: typeSpecifierOrQualifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeSpecifierOrQualifier_in_declarationSpecifier5659);
typeSpecifierOrQualifier212=typeSpecifierOrQualifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeSpecifierOrQualifier212.getTree());
}
break;
case 3 :
// CivlCParser.g:780:4: functionSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_functionSpecifier_in_declarationSpecifier5664);
functionSpecifier213=functionSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, functionSpecifier213.getTree());
}
break;
case 4 :
// CivlCParser.g:781:4: alignmentSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_alignmentSpecifier_in_declarationSpecifier5669);
alignmentSpecifier214=alignmentSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, alignmentSpecifier214.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 "declarationSpecifier"
public static class typeSpecifierOrQualifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeSpecifierOrQualifier"
// CivlCParser.g:792:1: typeSpecifierOrQualifier : ( ( typeSpecifier )=> typeSpecifier | typeQualifier );
public final OmpParser_CivlCParser.typeSpecifierOrQualifier_return typeSpecifierOrQualifier() throws RecognitionException {
OmpParser_CivlCParser.typeSpecifierOrQualifier_return retval = new OmpParser_CivlCParser.typeSpecifierOrQualifier_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope typeSpecifier215 =null;
ParserRuleReturnScope typeQualifier216 =null;
try {
// CivlCParser.g:793:2: ( ( typeSpecifier )=> typeSpecifier | typeQualifier )
int alt57=2;
int LA57_0 = input.LA(1);
if ( (LA57_0==VOID) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==CHAR) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==SHORT) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==INT) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==LONG) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==FLOAT) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==DOUBLE) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==SIGNED) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==UNSIGNED) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==BOOL) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==COMPLEX) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==REAL) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==RANGE) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==ATOMIC) ) {
int LA57_14 = input.LA(2);
if ( (synpred27_CivlCParser()) ) {
alt57=1;
}
else if ( (true) ) {
alt57=2;
}
}
else if ( (LA57_0==STRUCT||LA57_0==UNION) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==ENUM) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==IDENTIFIER) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==DOMAIN) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==TYPEOF) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==MEM_TYPE) && (synpred27_CivlCParser())) {
alt57=1;
}
else if ( (LA57_0==CONST||LA57_0==INPUT||LA57_0==OUTPUT||LA57_0==RESTRICT||LA57_0==VOLATILE) ) {
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 :
// CivlCParser.g:793:4: ( typeSpecifier )=> typeSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeSpecifier_in_typeSpecifierOrQualifier5687);
typeSpecifier215=typeSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeSpecifier215.getTree());
if ( state.backtracking==0 ) {DeclarationScope_stack.peek().hasTypeSpec = true;}
}
break;
case 2 :
// CivlCParser.g:794:7: typeQualifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeQualifier_in_typeSpecifierOrQualifier5697);
typeQualifier216=typeQualifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeQualifier216.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 "typeSpecifierOrQualifier"
public static class initDeclaratorList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "initDeclaratorList"
// CivlCParser.g:801:1: initDeclaratorList :i+= initDeclarator ( COMMA i+= initDeclarator )* -> ^( INIT_DECLARATOR_LIST ( $i)+ ) ;
public final OmpParser_CivlCParser.initDeclaratorList_return initDeclaratorList() throws RecognitionException {
OmpParser_CivlCParser.initDeclaratorList_return retval = new OmpParser_CivlCParser.initDeclaratorList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA217=null;
List<Object> list_i=null;
RuleReturnScope i = null;
Object COMMA217_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_initDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule initDeclarator");
try {
// CivlCParser.g:802:2: (i+= initDeclarator ( COMMA i+= initDeclarator )* -> ^( INIT_DECLARATOR_LIST ( $i)+ ) )
// CivlCParser.g:802:4: i+= initDeclarator ( COMMA i+= initDeclarator )*
{
pushFollow(FOLLOW_initDeclarator_in_initDeclaratorList5712);
i=initDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initDeclarator.add(i.getTree());
if (list_i==null) list_i=new ArrayList<Object>();
list_i.add(i.getTree());
// CivlCParser.g:802:22: ( COMMA i+= initDeclarator )*
loop58:
while (true) {
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==COMMA) ) {
alt58=1;
}
switch (alt58) {
case 1 :
// CivlCParser.g:802:23: COMMA i+= initDeclarator
{
COMMA217=(Token)match(input,COMMA,FOLLOW_COMMA_in_initDeclaratorList5715); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA217);
pushFollow(FOLLOW_initDeclarator_in_initDeclaratorList5719);
i=initDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initDeclarator.add(i.getTree());
if (list_i==null) list_i=new ArrayList<Object>();
list_i.add(i.getTree());
}
break;
default :
break loop58;
}
}
// AST REWRITE
// elements: i
// token labels:
// rule labels: retval
// token list labels:
// rule list labels: i
// 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_i=new RewriteRuleSubtreeStream(adaptor,"token i",list_i);
root_0 = (Object)adaptor.nil();
// 803:4: -> ^( INIT_DECLARATOR_LIST ( $i)+ )
{
// CivlCParser.g:803:7: ^( INIT_DECLARATOR_LIST ( $i)+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INIT_DECLARATOR_LIST, "INIT_DECLARATOR_LIST"), root_1);
if ( !(stream_i.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_i.hasNext() ) {
adaptor.addChild(root_1, stream_i.nextTree());
}
stream_i.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 "initDeclaratorList"
public static class initDeclarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "initDeclarator"
// CivlCParser.g:811:1: initDeclarator : d= declarator ( -> ^( INIT_DECLARATOR $d ABSENT ) | ( ASSIGN i= initializer ) -> ^( INIT_DECLARATOR $d $i) ) ;
public final OmpParser_CivlCParser.initDeclarator_return initDeclarator() throws RecognitionException {
OmpParser_CivlCParser.initDeclarator_return retval = new OmpParser_CivlCParser.initDeclarator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN218=null;
ParserRuleReturnScope d =null;
ParserRuleReturnScope i =null;
Object ASSIGN218_tree=null;
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator");
RewriteRuleSubtreeStream stream_initializer=new RewriteRuleSubtreeStream(adaptor,"rule initializer");
try {
// CivlCParser.g:812:2: (d= declarator ( -> ^( INIT_DECLARATOR $d ABSENT ) | ( ASSIGN i= initializer ) -> ^( INIT_DECLARATOR $d $i) ) )
// CivlCParser.g:812:4: d= declarator ( -> ^( INIT_DECLARATOR $d ABSENT ) | ( ASSIGN i= initializer ) -> ^( INIT_DECLARATOR $d $i) )
{
pushFollow(FOLLOW_declarator_in_initDeclarator5749);
d=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(d.getTree());
// CivlCParser.g:813:4: ( -> ^( INIT_DECLARATOR $d ABSENT ) | ( ASSIGN i= initializer ) -> ^( INIT_DECLARATOR $d $i) )
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==COMMA||LA59_0==IDENTIFIER||LA59_0==LCURLY||LA59_0==SEMI||(LA59_0 >= ABSTRACT && LA59_0 <= ALIGNAS)||(LA59_0 >= ASSIGNS && LA59_0 <= AUTO)||LA59_0==BOOL||LA59_0==CHAR||(LA59_0 >= COMPLEX && LA59_0 <= CONST)||LA59_0==DEPENDS||(LA59_0 >= DEVICE && LA59_0 <= DIFFERENTIABLE)||(LA59_0 >= DOMAIN && LA59_0 <= ENUM)||(LA59_0 >= EXTERN && LA59_0 <= FATOMIC)||LA59_0==FLOAT||LA59_0==GLOBAL||LA59_0==GUARD||(LA59_0 >= INLINE && LA59_0 <= INT)||(LA59_0 >= LONG && LA59_0 <= NORETURN)||LA59_0==OUTPUT||(LA59_0 >= PURE && LA59_0 <= RESTRICT)||(LA59_0 >= SHARED && LA59_0 <= SIGNED)||LA59_0==STATE_F||(LA59_0 >= STATIC && LA59_0 <= STRUCT)||LA59_0==SYSTEM||(LA59_0 >= THREADLOCAL && LA59_0 <= TYPEOF)||(LA59_0 >= UNION && LA59_0 <= UNSIGNED)||(LA59_0 >= VOID && LA59_0 <= VOLATILE)) ) {
alt59=1;
}
else if ( (LA59_0==ASSIGN) ) {
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 :
// CivlCParser.g:813:7:
{
// AST REWRITE
// elements: d
// token labels:
// rule labels: d, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
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();
// 813:7: -> ^( INIT_DECLARATOR $d ABSENT )
{
// CivlCParser.g:813:10: ^( INIT_DECLARATOR $d ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INIT_DECLARATOR, "INIT_DECLARATOR"), root_1);
adaptor.addChild(root_1, stream_d.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:814:6: ( ASSIGN i= initializer )
{
// CivlCParser.g:814:6: ( ASSIGN i= initializer )
// CivlCParser.g:814:7: ASSIGN i= initializer
{
ASSIGN218=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_initDeclarator5774); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN218);
pushFollow(FOLLOW_initializer_in_initDeclarator5778);
i=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(i.getTree());
}
// AST REWRITE
// elements: d, i
// token labels:
// rule labels: d, i, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.getTree():null);
RewriteRuleSubtreeStream stream_i=new RewriteRuleSubtreeStream(adaptor,"rule i",i!=null?i.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 814:29: -> ^( INIT_DECLARATOR $d $i)
{
// CivlCParser.g:814:32: ^( INIT_DECLARATOR $d $i)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INIT_DECLARATOR, "INIT_DECLARATOR"), root_1);
adaptor.addChild(root_1, stream_d.nextTree());
adaptor.addChild(root_1, stream_i.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 "initDeclarator"
public static class storageClassSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "storageClassSpecifier"
// CivlCParser.g:819:1: storageClassSpecifier : ( TYPEDEF | ( EXTERN | STATIC | THREADLOCAL | AUTO | REGISTER | SHARED ) );
public final OmpParser_CivlCParser.storageClassSpecifier_return storageClassSpecifier() throws RecognitionException {
OmpParser_CivlCParser.storageClassSpecifier_return retval = new OmpParser_CivlCParser.storageClassSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TYPEDEF219=null;
Token set220=null;
Object TYPEDEF219_tree=null;
Object set220_tree=null;
try {
// CivlCParser.g:820:2: ( TYPEDEF | ( EXTERN | STATIC | THREADLOCAL | AUTO | REGISTER | SHARED ) )
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==TYPEDEF) ) {
alt60=1;
}
else if ( (LA60_0==AUTO||LA60_0==EXTERN||LA60_0==REGISTER||LA60_0==SHARED||LA60_0==STATIC||LA60_0==THREADLOCAL) ) {
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 :
// CivlCParser.g:820:4: TYPEDEF
{
root_0 = (Object)adaptor.nil();
TYPEDEF219=(Token)match(input,TYPEDEF,FOLLOW_TYPEDEF_in_storageClassSpecifier5809); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TYPEDEF219_tree = (Object)adaptor.create(TYPEDEF219);
adaptor.addChild(root_0, TYPEDEF219_tree);
}
if ( state.backtracking==0 ) {DeclarationScope_stack.peek().isTypedef = true;}
}
break;
case 2 :
// CivlCParser.g:821:4: ( EXTERN | STATIC | THREADLOCAL | AUTO | REGISTER | SHARED )
{
root_0 = (Object)adaptor.nil();
set220=input.LT(1);
if ( input.LA(1)==AUTO||input.LA(1)==EXTERN||input.LA(1)==REGISTER||input.LA(1)==SHARED||input.LA(1)==STATIC||input.LA(1)==THREADLOCAL ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set220));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "storageClassSpecifier"
public static class typeSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeSpecifier"
// CivlCParser.g:825:1: typeSpecifier : ( VOID | CHAR | SHORT | INT | LONG | FLOAT | DOUBLE | SIGNED | UNSIGNED | BOOL | COMPLEX | REAL | RANGE | atomicTypeSpecifier | structOrUnionSpecifier | enumSpecifier | typedefName | domainSpecifier | typeofSpecifier | memSpecifier );
public final OmpParser_CivlCParser.typeSpecifier_return typeSpecifier() throws RecognitionException {
OmpParser_CivlCParser.typeSpecifier_return retval = new OmpParser_CivlCParser.typeSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token VOID221=null;
Token CHAR222=null;
Token SHORT223=null;
Token INT224=null;
Token LONG225=null;
Token FLOAT226=null;
Token DOUBLE227=null;
Token SIGNED228=null;
Token UNSIGNED229=null;
Token BOOL230=null;
Token COMPLEX231=null;
Token REAL232=null;
Token RANGE233=null;
ParserRuleReturnScope atomicTypeSpecifier234 =null;
ParserRuleReturnScope structOrUnionSpecifier235 =null;
ParserRuleReturnScope enumSpecifier236 =null;
ParserRuleReturnScope typedefName237 =null;
ParserRuleReturnScope domainSpecifier238 =null;
ParserRuleReturnScope typeofSpecifier239 =null;
ParserRuleReturnScope memSpecifier240 =null;
Object VOID221_tree=null;
Object CHAR222_tree=null;
Object SHORT223_tree=null;
Object INT224_tree=null;
Object LONG225_tree=null;
Object FLOAT226_tree=null;
Object DOUBLE227_tree=null;
Object SIGNED228_tree=null;
Object UNSIGNED229_tree=null;
Object BOOL230_tree=null;
Object COMPLEX231_tree=null;
Object REAL232_tree=null;
Object RANGE233_tree=null;
try {
// CivlCParser.g:826:2: ( VOID | CHAR | SHORT | INT | LONG | FLOAT | DOUBLE | SIGNED | UNSIGNED | BOOL | COMPLEX | REAL | RANGE | atomicTypeSpecifier | structOrUnionSpecifier | enumSpecifier | typedefName | domainSpecifier | typeofSpecifier | memSpecifier )
int alt61=20;
switch ( input.LA(1) ) {
case VOID:
{
alt61=1;
}
break;
case CHAR:
{
alt61=2;
}
break;
case SHORT:
{
alt61=3;
}
break;
case INT:
{
alt61=4;
}
break;
case LONG:
{
alt61=5;
}
break;
case FLOAT:
{
alt61=6;
}
break;
case DOUBLE:
{
alt61=7;
}
break;
case SIGNED:
{
alt61=8;
}
break;
case UNSIGNED:
{
alt61=9;
}
break;
case BOOL:
{
alt61=10;
}
break;
case COMPLEX:
{
alt61=11;
}
break;
case REAL:
{
alt61=12;
}
break;
case RANGE:
{
alt61=13;
}
break;
case ATOMIC:
{
alt61=14;
}
break;
case STRUCT:
case UNION:
{
alt61=15;
}
break;
case ENUM:
{
alt61=16;
}
break;
case IDENTIFIER:
{
alt61=17;
}
break;
case DOMAIN:
{
alt61=18;
}
break;
case TYPEOF:
{
alt61=19;
}
break;
case MEM_TYPE:
{
alt61=20;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 61, 0, input);
throw nvae;
}
switch (alt61) {
case 1 :
// CivlCParser.g:826:4: VOID
{
root_0 = (Object)adaptor.nil();
VOID221=(Token)match(input,VOID,FOLLOW_VOID_in_typeSpecifier5851); if (state.failed) return retval;
if ( state.backtracking==0 ) {
VOID221_tree = (Object)adaptor.create(VOID221);
adaptor.addChild(root_0, VOID221_tree);
}
}
break;
case 2 :
// CivlCParser.g:826:11: CHAR
{
root_0 = (Object)adaptor.nil();
CHAR222=(Token)match(input,CHAR,FOLLOW_CHAR_in_typeSpecifier5855); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CHAR222_tree = (Object)adaptor.create(CHAR222);
adaptor.addChild(root_0, CHAR222_tree);
}
}
break;
case 3 :
// CivlCParser.g:826:18: SHORT
{
root_0 = (Object)adaptor.nil();
SHORT223=(Token)match(input,SHORT,FOLLOW_SHORT_in_typeSpecifier5859); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SHORT223_tree = (Object)adaptor.create(SHORT223);
adaptor.addChild(root_0, SHORT223_tree);
}
}
break;
case 4 :
// CivlCParser.g:826:26: INT
{
root_0 = (Object)adaptor.nil();
INT224=(Token)match(input,INT,FOLLOW_INT_in_typeSpecifier5863); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INT224_tree = (Object)adaptor.create(INT224);
adaptor.addChild(root_0, INT224_tree);
}
}
break;
case 5 :
// CivlCParser.g:826:32: LONG
{
root_0 = (Object)adaptor.nil();
LONG225=(Token)match(input,LONG,FOLLOW_LONG_in_typeSpecifier5867); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LONG225_tree = (Object)adaptor.create(LONG225);
adaptor.addChild(root_0, LONG225_tree);
}
}
break;
case 6 :
// CivlCParser.g:826:39: FLOAT
{
root_0 = (Object)adaptor.nil();
FLOAT226=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_typeSpecifier5871); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FLOAT226_tree = (Object)adaptor.create(FLOAT226);
adaptor.addChild(root_0, FLOAT226_tree);
}
}
break;
case 7 :
// CivlCParser.g:826:47: DOUBLE
{
root_0 = (Object)adaptor.nil();
DOUBLE227=(Token)match(input,DOUBLE,FOLLOW_DOUBLE_in_typeSpecifier5875); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLE227_tree = (Object)adaptor.create(DOUBLE227);
adaptor.addChild(root_0, DOUBLE227_tree);
}
}
break;
case 8 :
// CivlCParser.g:827:4: SIGNED
{
root_0 = (Object)adaptor.nil();
SIGNED228=(Token)match(input,SIGNED,FOLLOW_SIGNED_in_typeSpecifier5880); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SIGNED228_tree = (Object)adaptor.create(SIGNED228);
adaptor.addChild(root_0, SIGNED228_tree);
}
}
break;
case 9 :
// CivlCParser.g:827:13: UNSIGNED
{
root_0 = (Object)adaptor.nil();
UNSIGNED229=(Token)match(input,UNSIGNED,FOLLOW_UNSIGNED_in_typeSpecifier5884); if (state.failed) return retval;
if ( state.backtracking==0 ) {
UNSIGNED229_tree = (Object)adaptor.create(UNSIGNED229);
adaptor.addChild(root_0, UNSIGNED229_tree);
}
}
break;
case 10 :
// CivlCParser.g:827:24: BOOL
{
root_0 = (Object)adaptor.nil();
BOOL230=(Token)match(input,BOOL,FOLLOW_BOOL_in_typeSpecifier5888); if (state.failed) return retval;
if ( state.backtracking==0 ) {
BOOL230_tree = (Object)adaptor.create(BOOL230);
adaptor.addChild(root_0, BOOL230_tree);
}
}
break;
case 11 :
// CivlCParser.g:827:31: COMPLEX
{
root_0 = (Object)adaptor.nil();
COMPLEX231=(Token)match(input,COMPLEX,FOLLOW_COMPLEX_in_typeSpecifier5892); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMPLEX231_tree = (Object)adaptor.create(COMPLEX231);
adaptor.addChild(root_0, COMPLEX231_tree);
}
}
break;
case 12 :
// CivlCParser.g:827:41: REAL
{
root_0 = (Object)adaptor.nil();
REAL232=(Token)match(input,REAL,FOLLOW_REAL_in_typeSpecifier5896); if (state.failed) return retval;
if ( state.backtracking==0 ) {
REAL232_tree = (Object)adaptor.create(REAL232);
adaptor.addChild(root_0, REAL232_tree);
}
}
break;
case 13 :
// CivlCParser.g:827:48: RANGE
{
root_0 = (Object)adaptor.nil();
RANGE233=(Token)match(input,RANGE,FOLLOW_RANGE_in_typeSpecifier5900); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RANGE233_tree = (Object)adaptor.create(RANGE233);
adaptor.addChild(root_0, RANGE233_tree);
}
}
break;
case 14 :
// CivlCParser.g:828:4: atomicTypeSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_atomicTypeSpecifier_in_typeSpecifier5905);
atomicTypeSpecifier234=atomicTypeSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, atomicTypeSpecifier234.getTree());
}
break;
case 15 :
// CivlCParser.g:829:4: structOrUnionSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_structOrUnionSpecifier_in_typeSpecifier5910);
structOrUnionSpecifier235=structOrUnionSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, structOrUnionSpecifier235.getTree());
}
break;
case 16 :
// CivlCParser.g:830:4: enumSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_enumSpecifier_in_typeSpecifier5915);
enumSpecifier236=enumSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, enumSpecifier236.getTree());
}
break;
case 17 :
// CivlCParser.g:831:4: typedefName
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typedefName_in_typeSpecifier5920);
typedefName237=typedefName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typedefName237.getTree());
}
break;
case 18 :
// CivlCParser.g:832:4: domainSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_domainSpecifier_in_typeSpecifier5925);
domainSpecifier238=domainSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, domainSpecifier238.getTree());
}
break;
case 19 :
// CivlCParser.g:833:7: typeofSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeofSpecifier_in_typeSpecifier5933);
typeofSpecifier239=typeofSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeofSpecifier239.getTree());
}
break;
case 20 :
// CivlCParser.g:834:7: memSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_memSpecifier_in_typeSpecifier5941);
memSpecifier240=memSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, memSpecifier240.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 "typeSpecifier"
public static class typeofSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeofSpecifier"
// CivlCParser.g:850:1: typeofSpecifier : TYPEOF LPAREN ( commaExpression RPAREN -> ^( TYPEOF_EXPRESSION LPAREN commaExpression RPAREN ) | typeName RPAREN -> ^( TYPEOF_TYPE LPAREN typeName RPAREN ) ) ;
public final OmpParser_CivlCParser.typeofSpecifier_return typeofSpecifier() throws RecognitionException {
OmpParser_CivlCParser.typeofSpecifier_return retval = new OmpParser_CivlCParser.typeofSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TYPEOF241=null;
Token LPAREN242=null;
Token RPAREN244=null;
Token RPAREN246=null;
ParserRuleReturnScope commaExpression243 =null;
ParserRuleReturnScope typeName245 =null;
Object TYPEOF241_tree=null;
Object LPAREN242_tree=null;
Object RPAREN244_tree=null;
Object RPAREN246_tree=null;
RewriteRuleTokenStream stream_TYPEOF=new RewriteRuleTokenStream(adaptor,"token TYPEOF");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_typeName=new RewriteRuleSubtreeStream(adaptor,"rule typeName");
RewriteRuleSubtreeStream stream_commaExpression=new RewriteRuleSubtreeStream(adaptor,"rule commaExpression");
try {
// CivlCParser.g:851:5: ( TYPEOF LPAREN ( commaExpression RPAREN -> ^( TYPEOF_EXPRESSION LPAREN commaExpression RPAREN ) | typeName RPAREN -> ^( TYPEOF_TYPE LPAREN typeName RPAREN ) ) )
// CivlCParser.g:851:7: TYPEOF LPAREN ( commaExpression RPAREN -> ^( TYPEOF_EXPRESSION LPAREN commaExpression RPAREN ) | typeName RPAREN -> ^( TYPEOF_TYPE LPAREN typeName RPAREN ) )
{
TYPEOF241=(Token)match(input,TYPEOF,FOLLOW_TYPEOF_in_typeofSpecifier5957); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TYPEOF.add(TYPEOF241);
LPAREN242=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_typeofSpecifier5959); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN242);
// CivlCParser.g:852:9: ( commaExpression RPAREN -> ^( TYPEOF_EXPRESSION LPAREN commaExpression RPAREN ) | typeName RPAREN -> ^( TYPEOF_TYPE LPAREN typeName RPAREN ) )
int alt62=2;
switch ( input.LA(1) ) {
case AMPERSAND:
case CHARACTER_CONSTANT:
case ELLIPSIS:
case FLOATING_CONSTANT:
case INTEGER_CONSTANT:
case LPAREN:
case MINUSMINUS:
case NOT:
case PLUS:
case PLUSPLUS:
case STAR:
case STRING_LITERAL:
case SUB:
case TILDE:
case ALIGNOF:
case BIG_O:
case CALLS:
case DERIV:
case GENERIC:
case HERE:
case PROCNULL:
case RESULT:
case SCOPEOF:
case SELF:
case SIZEOF:
case SPAWN:
case STATE_NULL:
case VALUE_AT:
case SUM:
{
alt62=1;
}
break;
case IDENTIFIER:
{
int LA62_2 = input.LA(2);
if ( (!(((isTypeName(input.LT(1).getText()))))) ) {
alt62=1;
}
else if ( ((isTypeName(input.LT(1).getText()))) ) {
alt62=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ATOMIC:
case BOOL:
case CHAR:
case COMPLEX:
case CONST:
case DOMAIN:
case DOUBLE:
case ENUM:
case FLOAT:
case INPUT:
case INT:
case LONG:
case MEM_TYPE:
case OUTPUT:
case RANGE:
case REAL:
case RESTRICT:
case SHORT:
case SIGNED:
case STRUCT:
case TYPEOF:
case UNION:
case UNSIGNED:
case VOID:
case VOLATILE:
{
alt62=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 62, 0, input);
throw nvae;
}
switch (alt62) {
case 1 :
// CivlCParser.g:852:11: commaExpression RPAREN
{
pushFollow(FOLLOW_commaExpression_in_typeofSpecifier5971);
commaExpression243=commaExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_commaExpression.add(commaExpression243.getTree());
RPAREN244=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_typeofSpecifier5973); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN244);
// AST REWRITE
// elements: RPAREN, LPAREN, commaExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 853:11: -> ^( TYPEOF_EXPRESSION LPAREN commaExpression RPAREN )
{
// CivlCParser.g:853:14: ^( TYPEOF_EXPRESSION LPAREN commaExpression RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPEOF_EXPRESSION, "TYPEOF_EXPRESSION"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_commaExpression.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:854:11: typeName RPAREN
{
pushFollow(FOLLOW_typeName_in_typeofSpecifier6007);
typeName245=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName245.getTree());
RPAREN246=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_typeofSpecifier6009); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN246);
// AST REWRITE
// elements: LPAREN, RPAREN, typeName
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 855:11: -> ^( TYPEOF_TYPE LPAREN typeName RPAREN )
{
// CivlCParser.g:855:14: ^( TYPEOF_TYPE LPAREN typeName RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPEOF_TYPE, "TYPEOF_TYPE"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_typeName.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 "typeofSpecifier"
public static class structOrUnionSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "structOrUnionSpecifier"
// CivlCParser.g:864:1: structOrUnionSpecifier : structOrUnion ( IDENTIFIER LCURLY structDeclarationList RCURLY -> ^( structOrUnion IDENTIFIER structDeclarationList RCURLY ) | LCURLY structDeclarationList RCURLY -> ^( structOrUnion ABSENT structDeclarationList RCURLY ) | IDENTIFIER -> ^( structOrUnion IDENTIFIER ABSENT ) ) ;
public final OmpParser_CivlCParser.structOrUnionSpecifier_return structOrUnionSpecifier() throws RecognitionException {
OmpParser_CivlCParser.structOrUnionSpecifier_return retval = new OmpParser_CivlCParser.structOrUnionSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER248=null;
Token LCURLY249=null;
Token RCURLY251=null;
Token LCURLY252=null;
Token RCURLY254=null;
Token IDENTIFIER255=null;
ParserRuleReturnScope structOrUnion247 =null;
ParserRuleReturnScope structDeclarationList250 =null;
ParserRuleReturnScope structDeclarationList253 =null;
Object IDENTIFIER248_tree=null;
Object LCURLY249_tree=null;
Object RCURLY251_tree=null;
Object LCURLY252_tree=null;
Object RCURLY254_tree=null;
Object IDENTIFIER255_tree=null;
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_structDeclarationList=new RewriteRuleSubtreeStream(adaptor,"rule structDeclarationList");
RewriteRuleSubtreeStream stream_structOrUnion=new RewriteRuleSubtreeStream(adaptor,"rule structOrUnion");
try {
// CivlCParser.g:865:2: ( structOrUnion ( IDENTIFIER LCURLY structDeclarationList RCURLY -> ^( structOrUnion IDENTIFIER structDeclarationList RCURLY ) | LCURLY structDeclarationList RCURLY -> ^( structOrUnion ABSENT structDeclarationList RCURLY ) | IDENTIFIER -> ^( structOrUnion IDENTIFIER ABSENT ) ) )
// CivlCParser.g:865:4: structOrUnion ( IDENTIFIER LCURLY structDeclarationList RCURLY -> ^( structOrUnion IDENTIFIER structDeclarationList RCURLY ) | LCURLY structDeclarationList RCURLY -> ^( structOrUnion ABSENT structDeclarationList RCURLY ) | IDENTIFIER -> ^( structOrUnion IDENTIFIER ABSENT ) )
{
pushFollow(FOLLOW_structOrUnion_in_structOrUnionSpecifier6057);
structOrUnion247=structOrUnion();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structOrUnion.add(structOrUnion247.getTree());
// CivlCParser.g:866:6: ( IDENTIFIER LCURLY structDeclarationList RCURLY -> ^( structOrUnion IDENTIFIER structDeclarationList RCURLY ) | LCURLY structDeclarationList RCURLY -> ^( structOrUnion ABSENT structDeclarationList RCURLY ) | IDENTIFIER -> ^( structOrUnion IDENTIFIER ABSENT ) )
int alt63=3;
int LA63_0 = input.LA(1);
if ( (LA63_0==IDENTIFIER) ) {
int LA63_1 = input.LA(2);
if ( (LA63_1==LCURLY) ) {
alt63=1;
}
else if ( (LA63_1==EOF||(LA63_1 >= COLON && LA63_1 <= COMMA)||LA63_1==IDENTIFIER||LA63_1==LPAREN||LA63_1==LSQUARE||LA63_1==RPAREN||LA63_1==SEMI||LA63_1==STAR||(LA63_1 >= ABSTRACT && LA63_1 <= ALIGNAS)||(LA63_1 >= ATOMIC && LA63_1 <= AUTO)||LA63_1==BOOL||LA63_1==CHAR||(LA63_1 >= COMPLEX && LA63_1 <= CONST)||(LA63_1 >= DEVICE && LA63_1 <= DIFFERENTIABLE)||(LA63_1 >= DOMAIN && LA63_1 <= DOUBLE)||LA63_1==ENUM||(LA63_1 >= EXTERN && LA63_1 <= FATOMIC)||LA63_1==FLOAT||LA63_1==GLOBAL||(LA63_1 >= INLINE && LA63_1 <= INT)||(LA63_1 >= LONG && LA63_1 <= NORETURN)||LA63_1==OUTPUT||(LA63_1 >= PURE && LA63_1 <= RANGE)||(LA63_1 >= REAL && LA63_1 <= REGISTER)||LA63_1==RESTRICT||(LA63_1 >= SHARED && LA63_1 <= SIGNED)||LA63_1==STATE_F||LA63_1==STATIC||LA63_1==STRUCT||LA63_1==SYSTEM||(LA63_1 >= THREADLOCAL && LA63_1 <= TYPEOF)||(LA63_1 >= UNION && LA63_1 <= UNSIGNED)||(LA63_1 >= VOID && LA63_1 <= VOLATILE)) ) {
alt63=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 63, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA63_0==LCURLY) ) {
alt63=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 63, 0, input);
throw nvae;
}
switch (alt63) {
case 1 :
// CivlCParser.g:866:8: IDENTIFIER LCURLY structDeclarationList RCURLY
{
IDENTIFIER248=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_structOrUnionSpecifier6066); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER248);
LCURLY249=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_structOrUnionSpecifier6068); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY249);
pushFollow(FOLLOW_structDeclarationList_in_structOrUnionSpecifier6070);
structDeclarationList250=structDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structDeclarationList.add(structDeclarationList250.getTree());
RCURLY251=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_structOrUnionSpecifier6072); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY251);
// AST REWRITE
// elements: structOrUnion, structDeclarationList, RCURLY, 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();
// 867:8: -> ^( structOrUnion IDENTIFIER structDeclarationList RCURLY )
{
// CivlCParser.g:867:11: ^( structOrUnion IDENTIFIER structDeclarationList RCURLY )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_structOrUnion.nextNode(), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_structDeclarationList.nextTree());
adaptor.addChild(root_1, stream_RCURLY.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:868:8: LCURLY structDeclarationList RCURLY
{
LCURLY252=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_structOrUnionSpecifier6100); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY252);
pushFollow(FOLLOW_structDeclarationList_in_structOrUnionSpecifier6102);
structDeclarationList253=structDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structDeclarationList.add(structDeclarationList253.getTree());
RCURLY254=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_structOrUnionSpecifier6104); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY254);
// AST REWRITE
// elements: structOrUnion, RCURLY, structDeclarationList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 869:8: -> ^( structOrUnion ABSENT structDeclarationList RCURLY )
{
// CivlCParser.g:869:11: ^( structOrUnion ABSENT structDeclarationList RCURLY )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_structOrUnion.nextNode(), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_structDeclarationList.nextTree());
adaptor.addChild(root_1, stream_RCURLY.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:870:8: IDENTIFIER
{
IDENTIFIER255=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_structOrUnionSpecifier6132); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER255);
// AST REWRITE
// elements: structOrUnion, 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();
// 871:8: -> ^( structOrUnion IDENTIFIER ABSENT )
{
// CivlCParser.g:871:11: ^( structOrUnion IDENTIFIER ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_structOrUnion.nextNode(), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
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 "structOrUnionSpecifier"
public static class structOrUnion_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "structOrUnion"
// CivlCParser.g:876:1: structOrUnion : ( STRUCT | UNION );
public final OmpParser_CivlCParser.structOrUnion_return structOrUnion() throws RecognitionException {
OmpParser_CivlCParser.structOrUnion_return retval = new OmpParser_CivlCParser.structOrUnion_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set256=null;
Object set256_tree=null;
try {
// CivlCParser.g:877:2: ( STRUCT | UNION )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set256=input.LT(1);
if ( input.LA(1)==STRUCT||input.LA(1)==UNION ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set256));
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 "structOrUnion"
public static class structDeclarationList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "structDeclarationList"
// CivlCParser.g:884:1: structDeclarationList : ( structDeclaration )* -> ^( STRUCT_DECLARATION_LIST ( structDeclaration )* ) ;
public final OmpParser_CivlCParser.structDeclarationList_return structDeclarationList() throws RecognitionException {
OmpParser_CivlCParser.structDeclarationList_return retval = new OmpParser_CivlCParser.structDeclarationList_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope structDeclaration257 =null;
RewriteRuleSubtreeStream stream_structDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule structDeclaration");
try {
// CivlCParser.g:885:2: ( ( structDeclaration )* -> ^( STRUCT_DECLARATION_LIST ( structDeclaration )* ) )
// CivlCParser.g:885:4: ( structDeclaration )*
{
// CivlCParser.g:885:4: ( structDeclaration )*
loop64:
while (true) {
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==IDENTIFIER||LA64_0==ATOMIC||LA64_0==BOOL||LA64_0==CHAR||(LA64_0 >= COMPLEX && LA64_0 <= CONST)||(LA64_0 >= DOMAIN && LA64_0 <= DOUBLE)||LA64_0==ENUM||LA64_0==FLOAT||(LA64_0 >= INPUT && LA64_0 <= INT)||(LA64_0 >= LONG && LA64_0 <= MEM_TYPE)||LA64_0==OUTPUT||LA64_0==RANGE||LA64_0==REAL||LA64_0==RESTRICT||(LA64_0 >= SHORT && LA64_0 <= SIGNED)||(LA64_0 >= STATICASSERT && LA64_0 <= STRUCT)||LA64_0==TYPEOF||(LA64_0 >= UNION && LA64_0 <= UNSIGNED)||(LA64_0 >= VOID && LA64_0 <= VOLATILE)) ) {
alt64=1;
}
switch (alt64) {
case 1 :
// CivlCParser.g:885:4: structDeclaration
{
pushFollow(FOLLOW_structDeclaration_in_structDeclarationList6186);
structDeclaration257=structDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structDeclaration.add(structDeclaration257.getTree());
}
break;
default :
break loop64;
}
}
// AST REWRITE
// elements: structDeclaration
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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:4: -> ^( STRUCT_DECLARATION_LIST ( structDeclaration )* )
{
// CivlCParser.g:886:7: ^( STRUCT_DECLARATION_LIST ( structDeclaration )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STRUCT_DECLARATION_LIST, "STRUCT_DECLARATION_LIST"), root_1);
// CivlCParser.g:886:33: ( structDeclaration )*
while ( stream_structDeclaration.hasNext() ) {
adaptor.addChild(root_1, stream_structDeclaration.nextTree());
}
stream_structDeclaration.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 "structDeclarationList"
public static class structDeclaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "structDeclaration"
// CivlCParser.g:900:1: structDeclaration : (s= specifierQualifierList ( -> ^( STRUCT_DECLARATION $s ABSENT ) | structDeclaratorList -> ^( STRUCT_DECLARATION $s structDeclaratorList ) ) SEMI | staticAssertDeclaration );
public final OmpParser_CivlCParser.structDeclaration_return structDeclaration() throws RecognitionException {
DeclarationScope_stack.push(new DeclarationScope_scope());
OmpParser_CivlCParser.structDeclaration_return retval = new OmpParser_CivlCParser.structDeclaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI259=null;
ParserRuleReturnScope s =null;
ParserRuleReturnScope structDeclaratorList258 =null;
ParserRuleReturnScope staticAssertDeclaration260 =null;
Object SEMI259_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_structDeclaratorList=new RewriteRuleSubtreeStream(adaptor,"rule structDeclaratorList");
RewriteRuleSubtreeStream stream_specifierQualifierList=new RewriteRuleSubtreeStream(adaptor,"rule specifierQualifierList");
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().hasTypeSpec = false;
try {
// CivlCParser.g:906:5: (s= specifierQualifierList ( -> ^( STRUCT_DECLARATION $s ABSENT ) | structDeclaratorList -> ^( STRUCT_DECLARATION $s structDeclaratorList ) ) SEMI | staticAssertDeclaration )
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==IDENTIFIER||LA66_0==ATOMIC||LA66_0==BOOL||LA66_0==CHAR||(LA66_0 >= COMPLEX && LA66_0 <= CONST)||(LA66_0 >= DOMAIN && LA66_0 <= DOUBLE)||LA66_0==ENUM||LA66_0==FLOAT||(LA66_0 >= INPUT && LA66_0 <= INT)||(LA66_0 >= LONG && LA66_0 <= MEM_TYPE)||LA66_0==OUTPUT||LA66_0==RANGE||LA66_0==REAL||LA66_0==RESTRICT||(LA66_0 >= SHORT && LA66_0 <= SIGNED)||LA66_0==STRUCT||LA66_0==TYPEOF||(LA66_0 >= UNION && LA66_0 <= UNSIGNED)||(LA66_0 >= VOID && LA66_0 <= VOLATILE)) ) {
alt66=1;
}
else if ( (LA66_0==STATICASSERT) ) {
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 :
// CivlCParser.g:906:7: s= specifierQualifierList ( -> ^( STRUCT_DECLARATION $s ABSENT ) | structDeclaratorList -> ^( STRUCT_DECLARATION $s structDeclaratorList ) ) SEMI
{
pushFollow(FOLLOW_specifierQualifierList_in_structDeclaration6227);
s=specifierQualifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_specifierQualifierList.add(s.getTree());
// CivlCParser.g:907:7: ( -> ^( STRUCT_DECLARATION $s ABSENT ) | structDeclaratorList -> ^( STRUCT_DECLARATION $s structDeclaratorList ) )
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==SEMI) ) {
alt65=1;
}
else if ( (LA65_0==COLON||LA65_0==IDENTIFIER||LA65_0==LPAREN||LA65_0==STAR) ) {
alt65=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 65, 0, input);
throw nvae;
}
switch (alt65) {
case 1 :
// CivlCParser.g:907:9:
{
// AST REWRITE
// elements: s
// token labels:
// rule labels: s, 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_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 907:9: -> ^( STRUCT_DECLARATION $s ABSENT )
{
// CivlCParser.g:907:12: ^( STRUCT_DECLARATION $s ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STRUCT_DECLARATION, "STRUCT_DECLARATION"), root_1);
adaptor.addChild(root_1, stream_s.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:908:9: structDeclaratorList
{
pushFollow(FOLLOW_structDeclaratorList_in_structDeclaration6256);
structDeclaratorList258=structDeclaratorList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structDeclaratorList.add(structDeclaratorList258.getTree());
// AST REWRITE
// elements: s, structDeclaratorList
// token labels:
// rule labels: s, 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_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 909:9: -> ^( STRUCT_DECLARATION $s structDeclaratorList )
{
// CivlCParser.g:909:12: ^( STRUCT_DECLARATION $s structDeclaratorList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STRUCT_DECLARATION, "STRUCT_DECLARATION"), root_1);
adaptor.addChild(root_1, stream_s.nextTree());
adaptor.addChild(root_1, stream_structDeclaratorList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
SEMI259=(Token)match(input,SEMI,FOLLOW_SEMI_in_structDeclaration6291); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI259);
}
break;
case 2 :
// CivlCParser.g:912:7: staticAssertDeclaration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_staticAssertDeclaration_in_structDeclaration6299);
staticAssertDeclaration260=staticAssertDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, staticAssertDeclaration260.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
DeclarationScope_stack.pop();
}
return retval;
}
// $ANTLR end "structDeclaration"
public static class specifierQualifierList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "specifierQualifierList"
// CivlCParser.g:919:1: specifierQualifierList : ( typeSpecifierOrQualifier )+ -> ^( SPECIFIER_QUALIFIER_LIST ( typeSpecifierOrQualifier )+ ) ;
public final OmpParser_CivlCParser.specifierQualifierList_return specifierQualifierList() throws RecognitionException {
OmpParser_CivlCParser.specifierQualifierList_return retval = new OmpParser_CivlCParser.specifierQualifierList_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope typeSpecifierOrQualifier261 =null;
RewriteRuleSubtreeStream stream_typeSpecifierOrQualifier=new RewriteRuleSubtreeStream(adaptor,"rule typeSpecifierOrQualifier");
try {
// CivlCParser.g:920:5: ( ( typeSpecifierOrQualifier )+ -> ^( SPECIFIER_QUALIFIER_LIST ( typeSpecifierOrQualifier )+ ) )
// CivlCParser.g:920:7: ( typeSpecifierOrQualifier )+
{
// CivlCParser.g:920:7: ( typeSpecifierOrQualifier )+
int cnt67=0;
loop67:
while (true) {
int alt67=2;
int LA67_0 = input.LA(1);
if ( (LA67_0==IDENTIFIER) ) {
int LA67_2 = input.LA(2);
if ( ((isTypeName(input.LT(1).getText()))) ) {
alt67=1;
}
}
else if ( (LA67_0==ATOMIC||LA67_0==BOOL||LA67_0==CHAR||(LA67_0 >= COMPLEX && LA67_0 <= CONST)||(LA67_0 >= DOMAIN && LA67_0 <= DOUBLE)||LA67_0==ENUM||LA67_0==FLOAT||(LA67_0 >= INPUT && LA67_0 <= INT)||(LA67_0 >= LONG && LA67_0 <= MEM_TYPE)||LA67_0==OUTPUT||LA67_0==RANGE||LA67_0==REAL||LA67_0==RESTRICT||(LA67_0 >= SHORT && LA67_0 <= SIGNED)||LA67_0==STRUCT||LA67_0==TYPEOF||(LA67_0 >= UNION && LA67_0 <= UNSIGNED)||(LA67_0 >= VOID && LA67_0 <= VOLATILE)) ) {
alt67=1;
}
switch (alt67) {
case 1 :
// CivlCParser.g:920:7: typeSpecifierOrQualifier
{
pushFollow(FOLLOW_typeSpecifierOrQualifier_in_specifierQualifierList6318);
typeSpecifierOrQualifier261=typeSpecifierOrQualifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeSpecifierOrQualifier.add(typeSpecifierOrQualifier261.getTree());
}
break;
default :
if ( cnt67 >= 1 ) break loop67;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(67, input);
throw eee;
}
cnt67++;
}
// AST REWRITE
// elements: typeSpecifierOrQualifier
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 921:7: -> ^( SPECIFIER_QUALIFIER_LIST ( typeSpecifierOrQualifier )+ )
{
// CivlCParser.g:921:10: ^( SPECIFIER_QUALIFIER_LIST ( typeSpecifierOrQualifier )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SPECIFIER_QUALIFIER_LIST, "SPECIFIER_QUALIFIER_LIST"), root_1);
if ( !(stream_typeSpecifierOrQualifier.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_typeSpecifierOrQualifier.hasNext() ) {
adaptor.addChild(root_1, stream_typeSpecifierOrQualifier.nextTree());
}
stream_typeSpecifierOrQualifier.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 structDeclaratorList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "structDeclaratorList"
// CivlCParser.g:928:1: structDeclaratorList :s+= structDeclarator ( COMMA s+= structDeclarator )* -> ^( STRUCT_DECLARATOR_LIST ( $s)+ ) ;
public final OmpParser_CivlCParser.structDeclaratorList_return structDeclaratorList() throws RecognitionException {
OmpParser_CivlCParser.structDeclaratorList_return retval = new OmpParser_CivlCParser.structDeclaratorList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA262=null;
List<Object> list_s=null;
RuleReturnScope s = null;
Object COMMA262_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_structDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule structDeclarator");
try {
// CivlCParser.g:929:5: (s+= structDeclarator ( COMMA s+= structDeclarator )* -> ^( STRUCT_DECLARATOR_LIST ( $s)+ ) )
// CivlCParser.g:929:7: s+= structDeclarator ( COMMA s+= structDeclarator )*
{
pushFollow(FOLLOW_structDeclarator_in_structDeclaratorList6355);
s=structDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structDeclarator.add(s.getTree());
if (list_s==null) list_s=new ArrayList<Object>();
list_s.add(s.getTree());
// CivlCParser.g:929:27: ( COMMA s+= structDeclarator )*
loop68:
while (true) {
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==COMMA) ) {
alt68=1;
}
switch (alt68) {
case 1 :
// CivlCParser.g:929:28: COMMA s+= structDeclarator
{
COMMA262=(Token)match(input,COMMA,FOLLOW_COMMA_in_structDeclaratorList6358); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA262);
pushFollow(FOLLOW_structDeclarator_in_structDeclaratorList6362);
s=structDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structDeclarator.add(s.getTree());
if (list_s==null) list_s=new ArrayList<Object>();
list_s.add(s.getTree());
}
break;
default :
break loop68;
}
}
// AST REWRITE
// elements: s
// token labels:
// rule labels: retval
// token list labels:
// rule list labels: s
// 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_s=new RewriteRuleSubtreeStream(adaptor,"token s",list_s);
root_0 = (Object)adaptor.nil();
// 930:7: -> ^( STRUCT_DECLARATOR_LIST ( $s)+ )
{
// CivlCParser.g:930:10: ^( STRUCT_DECLARATOR_LIST ( $s)+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STRUCT_DECLARATOR_LIST, "STRUCT_DECLARATOR_LIST"), root_1);
if ( !(stream_s.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_s.hasNext() ) {
adaptor.addChild(root_1, stream_s.nextTree());
}
stream_s.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 "structDeclaratorList"
public static class structDeclarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "structDeclarator"
// CivlCParser.g:938:1: structDeclarator : ( declarator ( -> ^( STRUCT_DECLARATOR declarator ABSENT ) | COLON constantExpression -> ^( STRUCT_DECLARATOR declarator constantExpression ) ) | COLON constantExpression -> ^( STRUCT_DECLARATOR ABSENT constantExpression ) );
public final OmpParser_CivlCParser.structDeclarator_return structDeclarator() throws RecognitionException {
OmpParser_CivlCParser.structDeclarator_return retval = new OmpParser_CivlCParser.structDeclarator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COLON264=null;
Token COLON266=null;
ParserRuleReturnScope declarator263 =null;
ParserRuleReturnScope constantExpression265 =null;
ParserRuleReturnScope constantExpression267 =null;
Object COLON264_tree=null;
Object COLON266_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_constantExpression=new RewriteRuleSubtreeStream(adaptor,"rule constantExpression");
RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator");
try {
// CivlCParser.g:939:5: ( declarator ( -> ^( STRUCT_DECLARATOR declarator ABSENT ) | COLON constantExpression -> ^( STRUCT_DECLARATOR declarator constantExpression ) ) | COLON constantExpression -> ^( STRUCT_DECLARATOR ABSENT constantExpression ) )
int alt70=2;
int LA70_0 = input.LA(1);
if ( (LA70_0==IDENTIFIER||LA70_0==LPAREN||LA70_0==STAR) ) {
alt70=1;
}
else if ( (LA70_0==COLON) ) {
alt70=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 70, 0, input);
throw nvae;
}
switch (alt70) {
case 1 :
// CivlCParser.g:939:7: declarator ( -> ^( STRUCT_DECLARATOR declarator ABSENT ) | COLON constantExpression -> ^( STRUCT_DECLARATOR declarator constantExpression ) )
{
pushFollow(FOLLOW_declarator_in_structDeclarator6399);
declarator263=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator263.getTree());
// CivlCParser.g:940:7: ( -> ^( STRUCT_DECLARATOR declarator ABSENT ) | COLON constantExpression -> ^( STRUCT_DECLARATOR declarator constantExpression ) )
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==COMMA||LA69_0==SEMI) ) {
alt69=1;
}
else if ( (LA69_0==COLON) ) {
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 :
// CivlCParser.g:940:10:
{
// AST REWRITE
// elements: declarator
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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:10: -> ^( STRUCT_DECLARATOR declarator ABSENT )
{
// CivlCParser.g:940:13: ^( STRUCT_DECLARATOR declarator ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STRUCT_DECLARATOR, "STRUCT_DECLARATOR"), root_1);
adaptor.addChild(root_1, stream_declarator.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:941:9: COLON constantExpression
{
COLON264=(Token)match(input,COLON,FOLLOW_COLON_in_structDeclarator6428); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON264);
pushFollow(FOLLOW_constantExpression_in_structDeclarator6430);
constantExpression265=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression265.getTree());
// AST REWRITE
// elements: constantExpression, declarator
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 942:10: -> ^( STRUCT_DECLARATOR declarator constantExpression )
{
// CivlCParser.g:942:13: ^( STRUCT_DECLARATOR declarator constantExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STRUCT_DECLARATOR, "STRUCT_DECLARATOR"), root_1);
adaptor.addChild(root_1, stream_declarator.nextTree());
adaptor.addChild(root_1, stream_constantExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
}
break;
case 2 :
// CivlCParser.g:944:7: COLON constantExpression
{
COLON266=(Token)match(input,COLON,FOLLOW_COLON_in_structDeclarator6465); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON266);
pushFollow(FOLLOW_constantExpression_in_structDeclarator6467);
constantExpression267=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression267.getTree());
// AST REWRITE
// elements: constantExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 945:7: -> ^( STRUCT_DECLARATOR ABSENT constantExpression )
{
// CivlCParser.g:945:10: ^( STRUCT_DECLARATOR ABSENT constantExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STRUCT_DECLARATOR, "STRUCT_DECLARATOR"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_constantExpression.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 "structDeclarator"
public static class enumSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "enumSpecifier"
// CivlCParser.g:953:1: enumSpecifier : ENUM ( IDENTIFIER -> ^( ENUM IDENTIFIER ABSENT ) | IDENTIFIER LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM IDENTIFIER enumeratorList ) | LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM ABSENT enumeratorList ) ) ;
public final OmpParser_CivlCParser.enumSpecifier_return enumSpecifier() throws RecognitionException {
OmpParser_CivlCParser.enumSpecifier_return retval = new OmpParser_CivlCParser.enumSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ENUM268=null;
Token IDENTIFIER269=null;
Token IDENTIFIER270=null;
Token LCURLY271=null;
Token COMMA273=null;
Token RCURLY274=null;
Token LCURLY275=null;
Token COMMA277=null;
Token RCURLY278=null;
ParserRuleReturnScope enumeratorList272 =null;
ParserRuleReturnScope enumeratorList276 =null;
Object ENUM268_tree=null;
Object IDENTIFIER269_tree=null;
Object IDENTIFIER270_tree=null;
Object LCURLY271_tree=null;
Object COMMA273_tree=null;
Object RCURLY274_tree=null;
Object LCURLY275_tree=null;
Object COMMA277_tree=null;
Object RCURLY278_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_ENUM=new RewriteRuleTokenStream(adaptor,"token ENUM");
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_enumeratorList=new RewriteRuleSubtreeStream(adaptor,"rule enumeratorList");
try {
// CivlCParser.g:954:5: ( ENUM ( IDENTIFIER -> ^( ENUM IDENTIFIER ABSENT ) | IDENTIFIER LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM IDENTIFIER enumeratorList ) | LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM ABSENT enumeratorList ) ) )
// CivlCParser.g:954:7: ENUM ( IDENTIFIER -> ^( ENUM IDENTIFIER ABSENT ) | IDENTIFIER LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM IDENTIFIER enumeratorList ) | LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM ABSENT enumeratorList ) )
{
ENUM268=(Token)match(input,ENUM,FOLLOW_ENUM_in_enumSpecifier6502); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ENUM.add(ENUM268);
// CivlCParser.g:955:9: ( IDENTIFIER -> ^( ENUM IDENTIFIER ABSENT ) | IDENTIFIER LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM IDENTIFIER enumeratorList ) | LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM ABSENT enumeratorList ) )
int alt73=3;
int LA73_0 = input.LA(1);
if ( (LA73_0==IDENTIFIER) ) {
int LA73_1 = input.LA(2);
if ( (LA73_1==LCURLY) ) {
alt73=2;
}
else if ( (LA73_1==EOF||(LA73_1 >= COLON && LA73_1 <= COMMA)||LA73_1==IDENTIFIER||LA73_1==LPAREN||LA73_1==LSQUARE||LA73_1==RPAREN||LA73_1==SEMI||LA73_1==STAR||(LA73_1 >= ABSTRACT && LA73_1 <= ALIGNAS)||(LA73_1 >= ATOMIC && LA73_1 <= AUTO)||LA73_1==BOOL||LA73_1==CHAR||(LA73_1 >= COMPLEX && LA73_1 <= CONST)||(LA73_1 >= DEVICE && LA73_1 <= DIFFERENTIABLE)||(LA73_1 >= DOMAIN && LA73_1 <= DOUBLE)||LA73_1==ENUM||(LA73_1 >= EXTERN && LA73_1 <= FATOMIC)||LA73_1==FLOAT||LA73_1==GLOBAL||(LA73_1 >= INLINE && LA73_1 <= INT)||(LA73_1 >= LONG && LA73_1 <= NORETURN)||LA73_1==OUTPUT||(LA73_1 >= PURE && LA73_1 <= RANGE)||(LA73_1 >= REAL && LA73_1 <= REGISTER)||LA73_1==RESTRICT||(LA73_1 >= SHARED && LA73_1 <= SIGNED)||LA73_1==STATE_F||LA73_1==STATIC||LA73_1==STRUCT||LA73_1==SYSTEM||(LA73_1 >= THREADLOCAL && LA73_1 <= TYPEOF)||(LA73_1 >= UNION && LA73_1 <= UNSIGNED)||(LA73_1 >= VOID && LA73_1 <= VOLATILE)) ) {
alt73=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 73, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA73_0==LCURLY) ) {
alt73=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 73, 0, input);
throw nvae;
}
switch (alt73) {
case 1 :
// CivlCParser.g:955:11: IDENTIFIER
{
IDENTIFIER269=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumSpecifier6514); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER269);
// AST REWRITE
// elements: IDENTIFIER, ENUM
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 956:11: -> ^( ENUM IDENTIFIER ABSENT )
{
// CivlCParser.g:956:14: ^( ENUM IDENTIFIER ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ENUM.nextNode(), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:957:11: IDENTIFIER LCURLY enumeratorList ( COMMA )? RCURLY
{
IDENTIFIER270=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumSpecifier6546); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER270);
LCURLY271=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_enumSpecifier6548); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY271);
pushFollow(FOLLOW_enumeratorList_in_enumSpecifier6550);
enumeratorList272=enumeratorList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_enumeratorList.add(enumeratorList272.getTree());
// CivlCParser.g:957:44: ( COMMA )?
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==COMMA) ) {
alt71=1;
}
switch (alt71) {
case 1 :
// CivlCParser.g:957:44: COMMA
{
COMMA273=(Token)match(input,COMMA,FOLLOW_COMMA_in_enumSpecifier6552); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA273);
}
break;
}
RCURLY274=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_enumSpecifier6555); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY274);
// AST REWRITE
// elements: ENUM, IDENTIFIER, enumeratorList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 958:11: -> ^( ENUM IDENTIFIER enumeratorList )
{
// CivlCParser.g:958:14: ^( ENUM IDENTIFIER enumeratorList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ENUM.nextNode(), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_enumeratorList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:959:11: LCURLY enumeratorList ( COMMA )? RCURLY
{
LCURLY275=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_enumSpecifier6587); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY275);
pushFollow(FOLLOW_enumeratorList_in_enumSpecifier6589);
enumeratorList276=enumeratorList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_enumeratorList.add(enumeratorList276.getTree());
// CivlCParser.g:959:33: ( COMMA )?
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==COMMA) ) {
alt72=1;
}
switch (alt72) {
case 1 :
// CivlCParser.g:959:33: COMMA
{
COMMA277=(Token)match(input,COMMA,FOLLOW_COMMA_in_enumSpecifier6591); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA277);
}
break;
}
RCURLY278=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_enumSpecifier6594); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY278);
// AST REWRITE
// elements: ENUM, enumeratorList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 960:11: -> ^( ENUM ABSENT enumeratorList )
{
// CivlCParser.g:960:14: ^( ENUM ABSENT enumeratorList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ENUM.nextNode(), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_enumeratorList.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 "enumSpecifier"
public static class enumeratorList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "enumeratorList"
// CivlCParser.g:968:1: enumeratorList : enumerator ( COMMA enumerator )* -> ^( ENUMERATOR_LIST ( enumerator )+ ) ;
public final OmpParser_CivlCParser.enumeratorList_return enumeratorList() throws RecognitionException {
OmpParser_CivlCParser.enumeratorList_return retval = new OmpParser_CivlCParser.enumeratorList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA280=null;
ParserRuleReturnScope enumerator279 =null;
ParserRuleReturnScope enumerator281 =null;
Object COMMA280_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_enumerator=new RewriteRuleSubtreeStream(adaptor,"rule enumerator");
try {
// CivlCParser.g:969:5: ( enumerator ( COMMA enumerator )* -> ^( ENUMERATOR_LIST ( enumerator )+ ) )
// CivlCParser.g:969:7: enumerator ( COMMA enumerator )*
{
pushFollow(FOLLOW_enumerator_in_enumeratorList6643);
enumerator279=enumerator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_enumerator.add(enumerator279.getTree());
// CivlCParser.g:969:18: ( COMMA enumerator )*
loop74:
while (true) {
int alt74=2;
int LA74_0 = input.LA(1);
if ( (LA74_0==COMMA) ) {
int LA74_1 = input.LA(2);
if ( (LA74_1==IDENTIFIER) ) {
alt74=1;
}
}
switch (alt74) {
case 1 :
// CivlCParser.g:969:19: COMMA enumerator
{
COMMA280=(Token)match(input,COMMA,FOLLOW_COMMA_in_enumeratorList6646); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA280);
pushFollow(FOLLOW_enumerator_in_enumeratorList6648);
enumerator281=enumerator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_enumerator.add(enumerator281.getTree());
}
break;
default :
break loop74;
}
}
// AST REWRITE
// elements: enumerator
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 970:7: -> ^( ENUMERATOR_LIST ( enumerator )+ )
{
// CivlCParser.g:970:10: ^( ENUMERATOR_LIST ( enumerator )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ENUMERATOR_LIST, "ENUMERATOR_LIST"), root_1);
if ( !(stream_enumerator.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_enumerator.hasNext() ) {
adaptor.addChild(root_1, stream_enumerator.nextTree());
}
stream_enumerator.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 "enumeratorList"
public static class enumerator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "enumerator"
// CivlCParser.g:978:1: enumerator : IDENTIFIER ( -> ^( ENUMERATOR IDENTIFIER ABSENT ) | ( ASSIGN constantExpression ) -> ^( ENUMERATOR IDENTIFIER constantExpression ) ) ;
public final OmpParser_CivlCParser.enumerator_return enumerator() throws RecognitionException {
OmpParser_CivlCParser.enumerator_return retval = new OmpParser_CivlCParser.enumerator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER282=null;
Token ASSIGN283=null;
ParserRuleReturnScope constantExpression284 =null;
Object IDENTIFIER282_tree=null;
Object ASSIGN283_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_constantExpression=new RewriteRuleSubtreeStream(adaptor,"rule constantExpression");
try {
// CivlCParser.g:979:2: ( IDENTIFIER ( -> ^( ENUMERATOR IDENTIFIER ABSENT ) | ( ASSIGN constantExpression ) -> ^( ENUMERATOR IDENTIFIER constantExpression ) ) )
// CivlCParser.g:979:4: IDENTIFIER ( -> ^( ENUMERATOR IDENTIFIER ABSENT ) | ( ASSIGN constantExpression ) -> ^( ENUMERATOR IDENTIFIER constantExpression ) )
{
IDENTIFIER282=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumerator6681); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER282);
if ( state.backtracking==0 ) {
Symbols_stack.peek().enumerationConstants.add((IDENTIFIER282!=null?IDENTIFIER282.getText():null));
}
// CivlCParser.g:983:8: ( -> ^( ENUMERATOR IDENTIFIER ABSENT ) | ( ASSIGN constantExpression ) -> ^( ENUMERATOR IDENTIFIER constantExpression ) )
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==COMMA||LA75_0==RCURLY) ) {
alt75=1;
}
else if ( (LA75_0==ASSIGN) ) {
alt75=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 75, 0, input);
throw nvae;
}
switch (alt75) {
case 1 :
// CivlCParser.g:983:11:
{
// 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();
// 983:11: -> ^( ENUMERATOR IDENTIFIER ABSENT )
{
// CivlCParser.g:983:14: ^( ENUMERATOR IDENTIFIER ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ENUMERATOR, "ENUMERATOR"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:984:10: ( ASSIGN constantExpression )
{
// CivlCParser.g:984:10: ( ASSIGN constantExpression )
// CivlCParser.g:984:11: ASSIGN constantExpression
{
ASSIGN283=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_enumerator6722); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN283);
pushFollow(FOLLOW_constantExpression_in_enumerator6724);
constantExpression284=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression284.getTree());
}
// AST REWRITE
// elements: IDENTIFIER, constantExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 985:11: -> ^( ENUMERATOR IDENTIFIER constantExpression )
{
// CivlCParser.g:985:14: ^( ENUMERATOR IDENTIFIER constantExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ENUMERATOR, "ENUMERATOR"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_constantExpression.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 "enumerator"
public static class atomicTypeSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "atomicTypeSpecifier"
// CivlCParser.g:990:1: atomicTypeSpecifier : ATOMIC LPAREN typeName RPAREN -> ^( ATOMIC typeName ) ;
public final OmpParser_CivlCParser.atomicTypeSpecifier_return atomicTypeSpecifier() throws RecognitionException {
OmpParser_CivlCParser.atomicTypeSpecifier_return retval = new OmpParser_CivlCParser.atomicTypeSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ATOMIC285=null;
Token LPAREN286=null;
Token RPAREN288=null;
ParserRuleReturnScope typeName287 =null;
Object ATOMIC285_tree=null;
Object LPAREN286_tree=null;
Object RPAREN288_tree=null;
RewriteRuleTokenStream stream_ATOMIC=new RewriteRuleTokenStream(adaptor,"token ATOMIC");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_typeName=new RewriteRuleSubtreeStream(adaptor,"rule typeName");
try {
// CivlCParser.g:991:5: ( ATOMIC LPAREN typeName RPAREN -> ^( ATOMIC typeName ) )
// CivlCParser.g:991:7: ATOMIC LPAREN typeName RPAREN
{
ATOMIC285=(Token)match(input,ATOMIC,FOLLOW_ATOMIC_in_atomicTypeSpecifier6770); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ATOMIC.add(ATOMIC285);
LPAREN286=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_atomicTypeSpecifier6772); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN286);
pushFollow(FOLLOW_typeName_in_atomicTypeSpecifier6774);
typeName287=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName287.getTree());
RPAREN288=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_atomicTypeSpecifier6776); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN288);
// AST REWRITE
// elements: typeName, ATOMIC
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 992:7: -> ^( ATOMIC typeName )
{
// CivlCParser.g:992:10: ^( ATOMIC typeName )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ATOMIC.nextNode(), root_1);
adaptor.addChild(root_1, stream_typeName.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 "atomicTypeSpecifier"
public static class typeQualifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeQualifier"
// CivlCParser.g:996:1: typeQualifier : ( CONST | RESTRICT | VOLATILE | ATOMIC | INPUT | OUTPUT );
public final OmpParser_CivlCParser.typeQualifier_return typeQualifier() throws RecognitionException {
OmpParser_CivlCParser.typeQualifier_return retval = new OmpParser_CivlCParser.typeQualifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set289=null;
Object set289_tree=null;
try {
// CivlCParser.g:997:5: ( CONST | RESTRICT | VOLATILE | ATOMIC | INPUT | OUTPUT )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set289=input.LT(1);
if ( input.LA(1)==ATOMIC||input.LA(1)==CONST||input.LA(1)==INPUT||input.LA(1)==OUTPUT||input.LA(1)==RESTRICT||input.LA(1)==VOLATILE ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set289));
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 "typeQualifier"
public static class functionSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "functionSpecifier"
// CivlCParser.g:1006:1: functionSpecifier : ( INLINE | NORETURN | abstractSpecifier | PURE -> ^( PURE ) | STATE_F -> ^( STATE_F ) | ( ( SYSTEM libraryName )=> SYSTEM libraryName ) -> ^( SYSTEM libraryName ) | SYSTEM -> ^( SYSTEM ABSENT ) | FATOMIC -> ^( FATOMIC ) | DEVICE | GLOBAL | differentiableSpecifier );
public final OmpParser_CivlCParser.functionSpecifier_return functionSpecifier() throws RecognitionException {
OmpParser_CivlCParser.functionSpecifier_return retval = new OmpParser_CivlCParser.functionSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token INLINE290=null;
Token NORETURN291=null;
Token PURE293=null;
Token STATE_F294=null;
Token SYSTEM295=null;
Token SYSTEM297=null;
Token FATOMIC298=null;
Token DEVICE299=null;
Token GLOBAL300=null;
ParserRuleReturnScope abstractSpecifier292 =null;
ParserRuleReturnScope libraryName296 =null;
ParserRuleReturnScope differentiableSpecifier301 =null;
Object INLINE290_tree=null;
Object NORETURN291_tree=null;
Object PURE293_tree=null;
Object STATE_F294_tree=null;
Object SYSTEM295_tree=null;
Object SYSTEM297_tree=null;
Object FATOMIC298_tree=null;
Object DEVICE299_tree=null;
Object GLOBAL300_tree=null;
RewriteRuleTokenStream stream_SYSTEM=new RewriteRuleTokenStream(adaptor,"token SYSTEM");
RewriteRuleTokenStream stream_FATOMIC=new RewriteRuleTokenStream(adaptor,"token FATOMIC");
RewriteRuleTokenStream stream_PURE=new RewriteRuleTokenStream(adaptor,"token PURE");
RewriteRuleTokenStream stream_STATE_F=new RewriteRuleTokenStream(adaptor,"token STATE_F");
RewriteRuleSubtreeStream stream_libraryName=new RewriteRuleSubtreeStream(adaptor,"rule libraryName");
try {
// CivlCParser.g:1007:5: ( INLINE | NORETURN | abstractSpecifier | PURE -> ^( PURE ) | STATE_F -> ^( STATE_F ) | ( ( SYSTEM libraryName )=> SYSTEM libraryName ) -> ^( SYSTEM libraryName ) | SYSTEM -> ^( SYSTEM ABSENT ) | FATOMIC -> ^( FATOMIC ) | DEVICE | GLOBAL | differentiableSpecifier )
int alt76=11;
alt76 = dfa76.predict(input);
switch (alt76) {
case 1 :
// CivlCParser.g:1007:7: INLINE
{
root_0 = (Object)adaptor.nil();
INLINE290=(Token)match(input,INLINE,FOLLOW_INLINE_in_functionSpecifier6848); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INLINE290_tree = (Object)adaptor.create(INLINE290);
adaptor.addChild(root_0, INLINE290_tree);
}
}
break;
case 2 :
// CivlCParser.g:1007:16: NORETURN
{
root_0 = (Object)adaptor.nil();
NORETURN291=(Token)match(input,NORETURN,FOLLOW_NORETURN_in_functionSpecifier6852); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NORETURN291_tree = (Object)adaptor.create(NORETURN291);
adaptor.addChild(root_0, NORETURN291_tree);
}
}
break;
case 3 :
// CivlCParser.g:1008:7: abstractSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_abstractSpecifier_in_functionSpecifier6860);
abstractSpecifier292=abstractSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractSpecifier292.getTree());
}
break;
case 4 :
// CivlCParser.g:1009:7: PURE
{
PURE293=(Token)match(input,PURE,FOLLOW_PURE_in_functionSpecifier6868); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PURE.add(PURE293);
// AST REWRITE
// elements: PURE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1009:12: -> ^( PURE )
{
// CivlCParser.g:1009:15: ^( PURE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_PURE.nextNode(), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// CivlCParser.g:1010:7: STATE_F
{
STATE_F294=(Token)match(input,STATE_F,FOLLOW_STATE_F_in_functionSpecifier6882); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATE_F.add(STATE_F294);
// AST REWRITE
// elements: STATE_F
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1010:15: -> ^( STATE_F )
{
// CivlCParser.g:1010:18: ^( STATE_F )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_STATE_F.nextNode(), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// CivlCParser.g:1011:7: ( ( SYSTEM libraryName )=> SYSTEM libraryName )
{
// CivlCParser.g:1011:7: ( ( SYSTEM libraryName )=> SYSTEM libraryName )
// CivlCParser.g:1011:8: ( SYSTEM libraryName )=> SYSTEM libraryName
{
SYSTEM295=(Token)match(input,SYSTEM,FOLLOW_SYSTEM_in_functionSpecifier6905); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SYSTEM.add(SYSTEM295);
pushFollow(FOLLOW_libraryName_in_functionSpecifier6907);
libraryName296=libraryName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_libraryName.add(libraryName296.getTree());
}
// AST REWRITE
// elements: SYSTEM, libraryName
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1011:52: -> ^( SYSTEM libraryName )
{
// CivlCParser.g:1011:55: ^( SYSTEM libraryName )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_SYSTEM.nextNode(), root_1);
adaptor.addChild(root_1, stream_libraryName.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 7 :
// CivlCParser.g:1012:7: SYSTEM
{
SYSTEM297=(Token)match(input,SYSTEM,FOLLOW_SYSTEM_in_functionSpecifier6924); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SYSTEM.add(SYSTEM297);
// AST REWRITE
// elements: SYSTEM
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1012:15: -> ^( SYSTEM ABSENT )
{
// CivlCParser.g:1012:18: ^( SYSTEM ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_SYSTEM.nextNode(), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 8 :
// CivlCParser.g:1013:7: FATOMIC
{
FATOMIC298=(Token)match(input,FATOMIC,FOLLOW_FATOMIC_in_functionSpecifier6941); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FATOMIC.add(FATOMIC298);
// AST REWRITE
// elements: FATOMIC
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1013:15: -> ^( FATOMIC )
{
// CivlCParser.g:1013:18: ^( FATOMIC )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_FATOMIC.nextNode(), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 9 :
// CivlCParser.g:1014:7: DEVICE
{
root_0 = (Object)adaptor.nil();
DEVICE299=(Token)match(input,DEVICE,FOLLOW_DEVICE_in_functionSpecifier6955); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DEVICE299_tree = (Object)adaptor.create(DEVICE299);
adaptor.addChild(root_0, DEVICE299_tree);
}
}
break;
case 10 :
// CivlCParser.g:1015:7: GLOBAL
{
root_0 = (Object)adaptor.nil();
GLOBAL300=(Token)match(input,GLOBAL,FOLLOW_GLOBAL_in_functionSpecifier6963); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GLOBAL300_tree = (Object)adaptor.create(GLOBAL300);
adaptor.addChild(root_0, GLOBAL300_tree);
}
}
break;
case 11 :
// CivlCParser.g:1016:7: differentiableSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_differentiableSpecifier_in_functionSpecifier6971);
differentiableSpecifier301=differentiableSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, differentiableSpecifier301.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 "functionSpecifier"
public static class abstractSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "abstractSpecifier"
// CivlCParser.g:1019:1: abstractSpecifier : ABSTRACT ( -> ^( ABSTRACT ) | CONTIN LPAREN INTEGER_CONSTANT RPAREN -> ^( ABSTRACT INTEGER_CONSTANT ) | LPAREN STRING_LITERAL RPAREN -> ^( ABSTRACT STRING_LITERAL ) ) ;
public final OmpParser_CivlCParser.abstractSpecifier_return abstractSpecifier() throws RecognitionException {
OmpParser_CivlCParser.abstractSpecifier_return retval = new OmpParser_CivlCParser.abstractSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ABSTRACT302=null;
Token CONTIN303=null;
Token LPAREN304=null;
Token INTEGER_CONSTANT305=null;
Token RPAREN306=null;
Token LPAREN307=null;
Token STRING_LITERAL308=null;
Token RPAREN309=null;
Object ABSTRACT302_tree=null;
Object CONTIN303_tree=null;
Object LPAREN304_tree=null;
Object INTEGER_CONSTANT305_tree=null;
Object RPAREN306_tree=null;
Object LPAREN307_tree=null;
Object STRING_LITERAL308_tree=null;
Object RPAREN309_tree=null;
RewriteRuleTokenStream stream_CONTIN=new RewriteRuleTokenStream(adaptor,"token CONTIN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_ABSTRACT=new RewriteRuleTokenStream(adaptor,"token ABSTRACT");
RewriteRuleTokenStream stream_INTEGER_CONSTANT=new RewriteRuleTokenStream(adaptor,"token INTEGER_CONSTANT");
try {
// CivlCParser.g:1020:5: ( ABSTRACT ( -> ^( ABSTRACT ) | CONTIN LPAREN INTEGER_CONSTANT RPAREN -> ^( ABSTRACT INTEGER_CONSTANT ) | LPAREN STRING_LITERAL RPAREN -> ^( ABSTRACT STRING_LITERAL ) ) )
// CivlCParser.g:1020:7: ABSTRACT ( -> ^( ABSTRACT ) | CONTIN LPAREN INTEGER_CONSTANT RPAREN -> ^( ABSTRACT INTEGER_CONSTANT ) | LPAREN STRING_LITERAL RPAREN -> ^( ABSTRACT STRING_LITERAL ) )
{
ABSTRACT302=(Token)match(input,ABSTRACT,FOLLOW_ABSTRACT_in_abstractSpecifier6988); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ABSTRACT.add(ABSTRACT302);
// CivlCParser.g:1020:16: ( -> ^( ABSTRACT ) | CONTIN LPAREN INTEGER_CONSTANT RPAREN -> ^( ABSTRACT INTEGER_CONSTANT ) | LPAREN STRING_LITERAL RPAREN -> ^( ABSTRACT STRING_LITERAL ) )
int alt77=3;
switch ( input.LA(1) ) {
case COMMA:
case IDENTIFIER:
case LSQUARE:
case RPAREN:
case SEMI:
case STAR:
case ABSTRACT:
case ALIGNAS:
case ATOMIC:
case AUTO:
case BOOL:
case CHAR:
case COMPLEX:
case CONST:
case DEVICE:
case DIFFERENTIABLE:
case DOMAIN:
case DOUBLE:
case ENUM:
case EXTERN:
case FATOMIC:
case FLOAT:
case GLOBAL:
case INLINE:
case INPUT:
case INT:
case LONG:
case MEM_TYPE:
case NORETURN:
case OUTPUT:
case PURE:
case RANGE:
case REAL:
case REGISTER:
case RESTRICT:
case SHARED:
case SHORT:
case SIGNED:
case STATE_F:
case STATIC:
case STRUCT:
case SYSTEM:
case THREADLOCAL:
case TYPEDEF:
case TYPEOF:
case UNION:
case UNSIGNED:
case VOID:
case VOLATILE:
{
alt77=1;
}
break;
case LPAREN:
{
int LA77_2 = input.LA(2);
if ( (LA77_2==STRING_LITERAL) ) {
alt77=3;
}
else if ( (LA77_2==IDENTIFIER||LA77_2==LPAREN||LA77_2==LSQUARE||LA77_2==RPAREN||LA77_2==STAR||(LA77_2 >= ABSTRACT && LA77_2 <= ALIGNAS)||(LA77_2 >= ATOMIC && LA77_2 <= AUTO)||LA77_2==BOOL||LA77_2==CHAR||(LA77_2 >= COMPLEX && LA77_2 <= CONST)||(LA77_2 >= DEVICE && LA77_2 <= DIFFERENTIABLE)||(LA77_2 >= DOMAIN && LA77_2 <= DOUBLE)||LA77_2==ENUM||(LA77_2 >= EXTERN && LA77_2 <= FATOMIC)||LA77_2==FLOAT||LA77_2==GLOBAL||(LA77_2 >= INLINE && LA77_2 <= INT)||(LA77_2 >= LONG && LA77_2 <= NORETURN)||LA77_2==OUTPUT||(LA77_2 >= PURE && LA77_2 <= RANGE)||(LA77_2 >= REAL && LA77_2 <= REGISTER)||LA77_2==RESTRICT||(LA77_2 >= SHARED && LA77_2 <= SIGNED)||LA77_2==STATE_F||LA77_2==STATIC||LA77_2==STRUCT||LA77_2==SYSTEM||(LA77_2 >= THREADLOCAL && LA77_2 <= TYPEOF)||(LA77_2 >= UNION && LA77_2 <= UNSIGNED)||(LA77_2 >= VOID && LA77_2 <= VOLATILE)) ) {
alt77=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 77, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CONTIN:
{
alt77=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 77, 0, input);
throw nvae;
}
switch (alt77) {
case 1 :
// CivlCParser.g:1020:19:
{
// AST REWRITE
// elements: ABSTRACT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1020:19: -> ^( ABSTRACT )
{
// CivlCParser.g:1020:22: ^( ABSTRACT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ABSTRACT.nextNode(), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1021:18: CONTIN LPAREN INTEGER_CONSTANT RPAREN
{
CONTIN303=(Token)match(input,CONTIN,FOLLOW_CONTIN_in_abstractSpecifier7016); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CONTIN.add(CONTIN303);
LPAREN304=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_abstractSpecifier7018); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN304);
INTEGER_CONSTANT305=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_abstractSpecifier7020); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INTEGER_CONSTANT.add(INTEGER_CONSTANT305);
RPAREN306=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_abstractSpecifier7022); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN306);
// AST REWRITE
// elements: ABSTRACT, INTEGER_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();
// 1022:18: -> ^( ABSTRACT INTEGER_CONSTANT )
{
// CivlCParser.g:1022:21: ^( ABSTRACT INTEGER_CONSTANT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ABSTRACT.nextNode(), root_1);
adaptor.addChild(root_1, stream_INTEGER_CONSTANT.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:1023:18: LPAREN STRING_LITERAL RPAREN
{
LPAREN307=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_abstractSpecifier7066); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN307);
STRING_LITERAL308=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_abstractSpecifier7068); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL308);
RPAREN309=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_abstractSpecifier7070); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN309);
// AST REWRITE
// elements: ABSTRACT, STRING_LITERAL
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1024:18: -> ^( ABSTRACT STRING_LITERAL )
{
// CivlCParser.g:1024:21: ^( ABSTRACT STRING_LITERAL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ABSTRACT.nextNode(), root_1);
adaptor.addChild(root_1, stream_STRING_LITERAL.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 "abstractSpecifier"
public static class differentiableSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "differentiableSpecifier"
// CivlCParser.g:1028:1: differentiableSpecifier : DIFFERENTIABLE LPAREN INTEGER_CONSTANT COMMA intervalSeq RPAREN -> ^( DIFFERENTIABLE INTEGER_CONSTANT intervalSeq ) ;
public final OmpParser_CivlCParser.differentiableSpecifier_return differentiableSpecifier() throws RecognitionException {
OmpParser_CivlCParser.differentiableSpecifier_return retval = new OmpParser_CivlCParser.differentiableSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DIFFERENTIABLE310=null;
Token LPAREN311=null;
Token INTEGER_CONSTANT312=null;
Token COMMA313=null;
Token RPAREN315=null;
ParserRuleReturnScope intervalSeq314 =null;
Object DIFFERENTIABLE310_tree=null;
Object LPAREN311_tree=null;
Object INTEGER_CONSTANT312_tree=null;
Object COMMA313_tree=null;
Object RPAREN315_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_DIFFERENTIABLE=new RewriteRuleTokenStream(adaptor,"token DIFFERENTIABLE");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_INTEGER_CONSTANT=new RewriteRuleTokenStream(adaptor,"token INTEGER_CONSTANT");
RewriteRuleSubtreeStream stream_intervalSeq=new RewriteRuleSubtreeStream(adaptor,"rule intervalSeq");
try {
// CivlCParser.g:1029:2: ( DIFFERENTIABLE LPAREN INTEGER_CONSTANT COMMA intervalSeq RPAREN -> ^( DIFFERENTIABLE INTEGER_CONSTANT intervalSeq ) )
// CivlCParser.g:1029:4: DIFFERENTIABLE LPAREN INTEGER_CONSTANT COMMA intervalSeq RPAREN
{
DIFFERENTIABLE310=(Token)match(input,DIFFERENTIABLE,FOLLOW_DIFFERENTIABLE_in_differentiableSpecifier7126); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DIFFERENTIABLE.add(DIFFERENTIABLE310);
LPAREN311=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_differentiableSpecifier7128); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN311);
INTEGER_CONSTANT312=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_differentiableSpecifier7130); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INTEGER_CONSTANT.add(INTEGER_CONSTANT312);
COMMA313=(Token)match(input,COMMA,FOLLOW_COMMA_in_differentiableSpecifier7132); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA313);
pushFollow(FOLLOW_intervalSeq_in_differentiableSpecifier7134);
intervalSeq314=intervalSeq();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_intervalSeq.add(intervalSeq314.getTree());
RPAREN315=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_differentiableSpecifier7136); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN315);
// AST REWRITE
// elements: INTEGER_CONSTANT, DIFFERENTIABLE, intervalSeq
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1030:4: -> ^( DIFFERENTIABLE INTEGER_CONSTANT intervalSeq )
{
// CivlCParser.g:1030:7: ^( DIFFERENTIABLE INTEGER_CONSTANT intervalSeq )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_DIFFERENTIABLE.nextNode(), root_1);
adaptor.addChild(root_1, stream_INTEGER_CONSTANT.nextNode());
adaptor.addChild(root_1, stream_intervalSeq.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 "differentiableSpecifier"
public static class libraryName_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "libraryName"
// CivlCParser.g:1033:1: libraryName : LSQUARE i0= IDENTIFIER i1+= ( SUB | IDENTIFIER )* RSQUARE -> ^( LIB_NAME $i0 ( $i1)* ) ;
public final OmpParser_CivlCParser.libraryName_return libraryName() throws RecognitionException {
OmpParser_CivlCParser.libraryName_return retval = new OmpParser_CivlCParser.libraryName_return();
retval.start = input.LT(1);
Object root_0 = null;
Token i0=null;
Token LSQUARE316=null;
Token RSQUARE317=null;
Token i1=null;
List<Object> list_i1=null;
Object i0_tree=null;
Object LSQUARE316_tree=null;
Object RSQUARE317_tree=null;
Object i1_tree=null;
RewriteRuleTokenStream stream_LSQUARE=new RewriteRuleTokenStream(adaptor,"token LSQUARE");
RewriteRuleTokenStream stream_SUB=new RewriteRuleTokenStream(adaptor,"token SUB");
RewriteRuleTokenStream stream_RSQUARE=new RewriteRuleTokenStream(adaptor,"token RSQUARE");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// CivlCParser.g:1034:2: ( LSQUARE i0= IDENTIFIER i1+= ( SUB | IDENTIFIER )* RSQUARE -> ^( LIB_NAME $i0 ( $i1)* ) )
// CivlCParser.g:1034:4: LSQUARE i0= IDENTIFIER i1+= ( SUB | IDENTIFIER )* RSQUARE
{
LSQUARE316=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_libraryName7160); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE316);
i0=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_libraryName7164); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(i0);
// CivlCParser.g:1034:30: ( SUB | IDENTIFIER )*
loop78:
while (true) {
int alt78=3;
int LA78_0 = input.LA(1);
if ( (LA78_0==SUB) ) {
alt78=1;
}
else if ( (LA78_0==IDENTIFIER) ) {
alt78=2;
}
switch (alt78) {
case 1 :
// CivlCParser.g:1034:31: SUB
{
i1=(Token)match(input,SUB,FOLLOW_SUB_in_libraryName7169); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUB.add(i1);
if (list_i1==null) list_i1=new ArrayList<Object>();
list_i1.add(i1);
}
break;
case 2 :
// CivlCParser.g:1034:37: IDENTIFIER
{
i1=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_libraryName7173); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(i1);
if (list_i1==null) list_i1=new ArrayList<Object>();
list_i1.add(i1);
}
break;
default :
break loop78;
}
}
RSQUARE317=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_libraryName7177); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE317);
// AST REWRITE
// elements: i0, i1
// token labels: i0
// rule labels: retval
// token list labels: i1
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleTokenStream stream_i0=new RewriteRuleTokenStream(adaptor,"token i0",i0);
RewriteRuleTokenStream stream_i1=new RewriteRuleTokenStream(adaptor,"token i1", list_i1);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1035:4: -> ^( LIB_NAME $i0 ( $i1)* )
{
// CivlCParser.g:1035:7: ^( LIB_NAME $i0 ( $i1)* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LIB_NAME, "LIB_NAME"), root_1);
adaptor.addChild(root_1, stream_i0.nextNode());
// CivlCParser.g:1035:23: ( $i1)*
while ( stream_i1.hasNext() ) {
adaptor.addChild(root_1, stream_i1.nextNode());
}
stream_i1.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 "libraryName"
public static class alignmentSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "alignmentSpecifier"
// CivlCParser.g:1045:1: alignmentSpecifier : ALIGNAS LPAREN ( typeName RPAREN -> ^( ALIGNAS TYPE typeName ) | constantExpression RPAREN -> ^( ALIGNAS EXPR constantExpression ) ) ;
public final OmpParser_CivlCParser.alignmentSpecifier_return alignmentSpecifier() throws RecognitionException {
OmpParser_CivlCParser.alignmentSpecifier_return retval = new OmpParser_CivlCParser.alignmentSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ALIGNAS318=null;
Token LPAREN319=null;
Token RPAREN321=null;
Token RPAREN323=null;
ParserRuleReturnScope typeName320 =null;
ParserRuleReturnScope constantExpression322 =null;
Object ALIGNAS318_tree=null;
Object LPAREN319_tree=null;
Object RPAREN321_tree=null;
Object RPAREN323_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_ALIGNAS=new RewriteRuleTokenStream(adaptor,"token ALIGNAS");
RewriteRuleSubtreeStream stream_constantExpression=new RewriteRuleSubtreeStream(adaptor,"rule constantExpression");
RewriteRuleSubtreeStream stream_typeName=new RewriteRuleSubtreeStream(adaptor,"rule typeName");
try {
// CivlCParser.g:1046:5: ( ALIGNAS LPAREN ( typeName RPAREN -> ^( ALIGNAS TYPE typeName ) | constantExpression RPAREN -> ^( ALIGNAS EXPR constantExpression ) ) )
// CivlCParser.g:1046:7: ALIGNAS LPAREN ( typeName RPAREN -> ^( ALIGNAS TYPE typeName ) | constantExpression RPAREN -> ^( ALIGNAS EXPR constantExpression ) )
{
ALIGNAS318=(Token)match(input,ALIGNAS,FOLLOW_ALIGNAS_in_alignmentSpecifier7210); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ALIGNAS.add(ALIGNAS318);
LPAREN319=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_alignmentSpecifier7212); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN319);
// CivlCParser.g:1047:9: ( typeName RPAREN -> ^( ALIGNAS TYPE typeName ) | constantExpression RPAREN -> ^( ALIGNAS EXPR constantExpression ) )
int alt79=2;
switch ( input.LA(1) ) {
case ATOMIC:
case BOOL:
case CHAR:
case COMPLEX:
case CONST:
case DOMAIN:
case DOUBLE:
case ENUM:
case FLOAT:
case INPUT:
case INT:
case LONG:
case MEM_TYPE:
case OUTPUT:
case RANGE:
case REAL:
case RESTRICT:
case SHORT:
case SIGNED:
case STRUCT:
case TYPEOF:
case UNION:
case UNSIGNED:
case VOID:
case VOLATILE:
{
alt79=1;
}
break;
case IDENTIFIER:
{
int LA79_17 = input.LA(2);
if ( ((isTypeName(input.LT(1).getText()))) ) {
alt79=1;
}
else if ( (true) ) {
alt79=2;
}
}
break;
case AMPERSAND:
case CHARACTER_CONSTANT:
case ELLIPSIS:
case FLOATING_CONSTANT:
case INTEGER_CONSTANT:
case LPAREN:
case MINUSMINUS:
case NOT:
case PLUS:
case PLUSPLUS:
case STAR:
case STRING_LITERAL:
case SUB:
case TILDE:
case ALIGNOF:
case BIG_O:
case CALLS:
case DERIV:
case GENERIC:
case HERE:
case PROCNULL:
case RESULT:
case SCOPEOF:
case SELF:
case SIZEOF:
case SPAWN:
case STATE_NULL:
case VALUE_AT:
case SUM:
{
alt79=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 79, 0, input);
throw nvae;
}
switch (alt79) {
case 1 :
// CivlCParser.g:1047:11: typeName RPAREN
{
pushFollow(FOLLOW_typeName_in_alignmentSpecifier7224);
typeName320=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName320.getTree());
RPAREN321=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_alignmentSpecifier7226); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN321);
// AST REWRITE
// elements: ALIGNAS, typeName
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1048:11: -> ^( ALIGNAS TYPE typeName )
{
// CivlCParser.g:1048:14: ^( ALIGNAS TYPE typeName )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ALIGNAS.nextNode(), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(TYPE, "TYPE"));
adaptor.addChild(root_1, stream_typeName.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1049:11: constantExpression RPAREN
{
pushFollow(FOLLOW_constantExpression_in_alignmentSpecifier7258);
constantExpression322=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression322.getTree());
RPAREN323=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_alignmentSpecifier7260); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN323);
// AST REWRITE
// elements: ALIGNAS, constantExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1050:11: -> ^( ALIGNAS EXPR constantExpression )
{
// CivlCParser.g:1050:14: ^( ALIGNAS EXPR constantExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ALIGNAS.nextNode(), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(EXPR, "EXPR"));
adaptor.addChild(root_1, stream_constantExpression.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 "alignmentSpecifier"
public static class declarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declarator"
// CivlCParser.g:1059:1: declarator : (d= directDeclarator -> ^( DECLARATOR ABSENT $d) | pointer d= directDeclarator -> ^( DECLARATOR pointer $d) );
public final OmpParser_CivlCParser.declarator_return declarator() throws RecognitionException {
OmpParser_CivlCParser.declarator_return retval = new OmpParser_CivlCParser.declarator_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope d =null;
ParserRuleReturnScope pointer324 =null;
RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer");
RewriteRuleSubtreeStream stream_directDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule directDeclarator");
try {
// CivlCParser.g:1060:2: (d= directDeclarator -> ^( DECLARATOR ABSENT $d) | pointer d= directDeclarator -> ^( DECLARATOR pointer $d) )
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==IDENTIFIER||LA80_0==LPAREN) ) {
alt80=1;
}
else if ( (LA80_0==STAR) ) {
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 :
// CivlCParser.g:1060:4: d= directDeclarator
{
pushFollow(FOLLOW_directDeclarator_in_declarator7308);
d=directDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directDeclarator.add(d.getTree());
// AST REWRITE
// elements: d
// token labels:
// rule labels: d, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
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();
// 1061:4: -> ^( DECLARATOR ABSENT $d)
{
// CivlCParser.g:1061:7: ^( DECLARATOR ABSENT $d)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATOR, "DECLARATOR"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_d.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1062:4: pointer d= directDeclarator
{
pushFollow(FOLLOW_pointer_in_declarator7327);
pointer324=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer324.getTree());
pushFollow(FOLLOW_directDeclarator_in_declarator7331);
d=directDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directDeclarator.add(d.getTree());
// AST REWRITE
// elements: pointer, d
// token labels:
// rule labels: d, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
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();
// 1063:4: -> ^( DECLARATOR pointer $d)
{
// CivlCParser.g:1063:7: ^( DECLARATOR pointer $d)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATOR, "DECLARATOR"), root_1);
adaptor.addChild(root_1, stream_pointer.nextTree());
adaptor.addChild(root_1, stream_d.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 "declarator"
public static class directDeclarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "directDeclarator"
// CivlCParser.g:1071:1: directDeclarator : p= directDeclaratorPrefix ( -> ^( DIRECT_DECLARATOR $p) | (s+= directDeclaratorSuffix )+ -> ^( DIRECT_DECLARATOR $p ( $s)+ ) ) ;
public final OmpParser_CivlCParser.directDeclarator_return directDeclarator() throws RecognitionException {
OmpParser_CivlCParser.directDeclarator_return retval = new OmpParser_CivlCParser.directDeclarator_return();
retval.start = input.LT(1);
Object root_0 = null;
List<Object> list_s=null;
ParserRuleReturnScope p =null;
RuleReturnScope s = null;
RewriteRuleSubtreeStream stream_directDeclaratorSuffix=new RewriteRuleSubtreeStream(adaptor,"rule directDeclaratorSuffix");
RewriteRuleSubtreeStream stream_directDeclaratorPrefix=new RewriteRuleSubtreeStream(adaptor,"rule directDeclaratorPrefix");
try {
// CivlCParser.g:1072:2: (p= directDeclaratorPrefix ( -> ^( DIRECT_DECLARATOR $p) | (s+= directDeclaratorSuffix )+ -> ^( DIRECT_DECLARATOR $p ( $s)+ ) ) )
// CivlCParser.g:1072:4: p= directDeclaratorPrefix ( -> ^( DIRECT_DECLARATOR $p) | (s+= directDeclaratorSuffix )+ -> ^( DIRECT_DECLARATOR $p ( $s)+ ) )
{
pushFollow(FOLLOW_directDeclaratorPrefix_in_directDeclarator7360);
p=directDeclaratorPrefix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directDeclaratorPrefix.add(p.getTree());
// CivlCParser.g:1073:4: ( -> ^( DIRECT_DECLARATOR $p) | (s+= directDeclaratorSuffix )+ -> ^( DIRECT_DECLARATOR $p ( $s)+ ) )
int alt82=2;
int LA82_0 = input.LA(1);
if ( (LA82_0==EOF||LA82_0==ASSIGN||(LA82_0 >= COLON && LA82_0 <= COMMA)||LA82_0==IDENTIFIER||LA82_0==LCURLY||LA82_0==RPAREN||LA82_0==SEMI||(LA82_0 >= ABSTRACT && LA82_0 <= ALIGNAS)||(LA82_0 >= ASSIGNS && LA82_0 <= AUTO)||LA82_0==BOOL||LA82_0==CHAR||(LA82_0 >= COMPLEX && LA82_0 <= CONST)||LA82_0==DEPENDS||(LA82_0 >= DEVICE && LA82_0 <= DIFFERENTIABLE)||(LA82_0 >= DOMAIN && LA82_0 <= ENUM)||(LA82_0 >= EXTERN && LA82_0 <= FATOMIC)||LA82_0==FLOAT||LA82_0==GLOBAL||LA82_0==GUARD||(LA82_0 >= INLINE && LA82_0 <= INT)||(LA82_0 >= LONG && LA82_0 <= NORETURN)||LA82_0==OUTPUT||(LA82_0 >= PURE && LA82_0 <= RESTRICT)||(LA82_0 >= SHARED && LA82_0 <= SIGNED)||LA82_0==STATE_F||(LA82_0 >= STATIC && LA82_0 <= STRUCT)||LA82_0==SYSTEM||(LA82_0 >= THREADLOCAL && LA82_0 <= TYPEOF)||(LA82_0 >= UNION && LA82_0 <= UNSIGNED)||(LA82_0 >= VOID && LA82_0 <= VOLATILE)) ) {
alt82=1;
}
else if ( (LA82_0==LPAREN||LA82_0==LSQUARE) ) {
alt82=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 82, 0, input);
throw nvae;
}
switch (alt82) {
case 1 :
// CivlCParser.g:1073:6:
{
// AST REWRITE
// elements: p
// token labels:
// rule labels: p, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_p=new RewriteRuleSubtreeStream(adaptor,"rule p",p!=null?p.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1073:6: -> ^( DIRECT_DECLARATOR $p)
{
// CivlCParser.g:1073:9: ^( DIRECT_DECLARATOR $p)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DIRECT_DECLARATOR, "DIRECT_DECLARATOR"), root_1);
adaptor.addChild(root_1, stream_p.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1074:6: (s+= directDeclaratorSuffix )+
{
// CivlCParser.g:1074:7: (s+= directDeclaratorSuffix )+
int cnt81=0;
loop81:
while (true) {
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==LPAREN||LA81_0==LSQUARE) ) {
alt81=1;
}
switch (alt81) {
case 1 :
// CivlCParser.g:1074:7: s+= directDeclaratorSuffix
{
pushFollow(FOLLOW_directDeclaratorSuffix_in_directDeclarator7383);
s=directDeclaratorSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directDeclaratorSuffix.add(s.getTree());
if (list_s==null) list_s=new ArrayList<Object>();
list_s.add(s.getTree());
}
break;
default :
if ( cnt81 >= 1 ) break loop81;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(81, input);
throw eee;
}
cnt81++;
}
// AST REWRITE
// elements: p, s
// token labels:
// rule labels: p, retval
// token list labels:
// rule list labels: s
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_p=new RewriteRuleSubtreeStream(adaptor,"rule p",p!=null?p.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();
// 1074:33: -> ^( DIRECT_DECLARATOR $p ( $s)+ )
{
// CivlCParser.g:1074:36: ^( DIRECT_DECLARATOR $p ( $s)+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DIRECT_DECLARATOR, "DIRECT_DECLARATOR"), root_1);
adaptor.addChild(root_1, stream_p.nextTree());
if ( !(stream_s.hasNext()) ) {
throw new RewriteEarlyExitException();
}
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;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "directDeclarator"
public static class directDeclaratorPrefix_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "directDeclaratorPrefix"
// CivlCParser.g:1081:1: directDeclaratorPrefix : ( IDENTIFIER | LPAREN ! declarator RPAREN !);
public final OmpParser_CivlCParser.directDeclaratorPrefix_return directDeclaratorPrefix() throws RecognitionException {
OmpParser_CivlCParser.directDeclaratorPrefix_return retval = new OmpParser_CivlCParser.directDeclaratorPrefix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER325=null;
Token LPAREN326=null;
Token RPAREN328=null;
ParserRuleReturnScope declarator327 =null;
Object IDENTIFIER325_tree=null;
Object LPAREN326_tree=null;
Object RPAREN328_tree=null;
try {
// CivlCParser.g:1082:2: ( IDENTIFIER | LPAREN ! declarator RPAREN !)
int alt83=2;
int LA83_0 = input.LA(1);
if ( (LA83_0==IDENTIFIER) ) {
alt83=1;
}
else if ( (LA83_0==LPAREN) ) {
alt83=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 83, 0, input);
throw nvae;
}
switch (alt83) {
case 1 :
// CivlCParser.g:1082:4: IDENTIFIER
{
root_0 = (Object)adaptor.nil();
IDENTIFIER325=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_directDeclaratorPrefix7415); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER325_tree = (Object)adaptor.create(IDENTIFIER325);
adaptor.addChild(root_0, IDENTIFIER325_tree);
}
if ( state.backtracking==0 ) {
if (DeclarationScope_stack.peek().isTypedef) {
Symbols_stack.peek().types.add((IDENTIFIER325!=null?IDENTIFIER325.getText():null));
}
}
}
break;
case 2 :
// CivlCParser.g:1088:4: LPAREN ! declarator RPAREN !
{
root_0 = (Object)adaptor.nil();
LPAREN326=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directDeclaratorPrefix7424); if (state.failed) return retval;
pushFollow(FOLLOW_declarator_in_directDeclaratorPrefix7427);
declarator327=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declarator327.getTree());
RPAREN328=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directDeclaratorPrefix7429); if (state.failed) return retval;
}
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 "directDeclaratorPrefix"
public static class directDeclaratorSuffix_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "directDeclaratorSuffix"
// CivlCParser.g:1092:1: directDeclaratorSuffix : ( directDeclaratorArraySuffix | directDeclaratorFunctionSuffix );
public final OmpParser_CivlCParser.directDeclaratorSuffix_return directDeclaratorSuffix() throws RecognitionException {
OmpParser_CivlCParser.directDeclaratorSuffix_return retval = new OmpParser_CivlCParser.directDeclaratorSuffix_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope directDeclaratorArraySuffix329 =null;
ParserRuleReturnScope directDeclaratorFunctionSuffix330 =null;
try {
// CivlCParser.g:1093:2: ( directDeclaratorArraySuffix | directDeclaratorFunctionSuffix )
int alt84=2;
int LA84_0 = input.LA(1);
if ( (LA84_0==LSQUARE) ) {
alt84=1;
}
else if ( (LA84_0==LPAREN) ) {
alt84=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 84, 0, input);
throw nvae;
}
switch (alt84) {
case 1 :
// CivlCParser.g:1093:4: directDeclaratorArraySuffix
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_directDeclaratorArraySuffix_in_directDeclaratorSuffix7442);
directDeclaratorArraySuffix329=directDeclaratorArraySuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, directDeclaratorArraySuffix329.getTree());
}
break;
case 2 :
// CivlCParser.g:1094:4: directDeclaratorFunctionSuffix
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_directDeclaratorFunctionSuffix_in_directDeclaratorSuffix7447);
directDeclaratorFunctionSuffix330=directDeclaratorFunctionSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, directDeclaratorFunctionSuffix330.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 "directDeclaratorSuffix"
public static class directDeclaratorArraySuffix_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "directDeclaratorArraySuffix"
// CivlCParser.g:1106:1: directDeclaratorArraySuffix : LSQUARE ( typeQualifierList_opt assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt RSQUARE ) | STATIC typeQualifierList_opt assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression RSQUARE ) | typeQualifierList STATIC assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression RSQUARE ) | typeQualifierList_opt STAR RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt STAR RSQUARE ) ) ;
public final OmpParser_CivlCParser.directDeclaratorArraySuffix_return directDeclaratorArraySuffix() throws RecognitionException {
OmpParser_CivlCParser.directDeclaratorArraySuffix_return retval = new OmpParser_CivlCParser.directDeclaratorArraySuffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LSQUARE331=null;
Token RSQUARE334=null;
Token STATIC335=null;
Token RSQUARE338=null;
Token STATIC340=null;
Token RSQUARE342=null;
Token STAR344=null;
Token RSQUARE345=null;
ParserRuleReturnScope typeQualifierList_opt332 =null;
ParserRuleReturnScope assignmentExpression_opt333 =null;
ParserRuleReturnScope typeQualifierList_opt336 =null;
ParserRuleReturnScope assignmentExpression337 =null;
ParserRuleReturnScope typeQualifierList339 =null;
ParserRuleReturnScope assignmentExpression341 =null;
ParserRuleReturnScope typeQualifierList_opt343 =null;
Object LSQUARE331_tree=null;
Object RSQUARE334_tree=null;
Object STATIC335_tree=null;
Object RSQUARE338_tree=null;
Object STATIC340_tree=null;
Object RSQUARE342_tree=null;
Object STAR344_tree=null;
Object RSQUARE345_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");
RewriteRuleTokenStream stream_STATIC=new RewriteRuleTokenStream(adaptor,"token STATIC");
RewriteRuleSubtreeStream stream_typeQualifierList=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifierList");
RewriteRuleSubtreeStream stream_assignmentExpression_opt=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression_opt");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_typeQualifierList_opt=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifierList_opt");
try {
// CivlCParser.g:1107:2: ( LSQUARE ( typeQualifierList_opt assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt RSQUARE ) | STATIC typeQualifierList_opt assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression RSQUARE ) | typeQualifierList STATIC assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression RSQUARE ) | typeQualifierList_opt STAR RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt STAR RSQUARE ) ) )
// CivlCParser.g:1107:4: LSQUARE ( typeQualifierList_opt assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt RSQUARE ) | STATIC typeQualifierList_opt assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression RSQUARE ) | typeQualifierList STATIC assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression RSQUARE ) | typeQualifierList_opt STAR RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt STAR RSQUARE ) )
{
LSQUARE331=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_directDeclaratorArraySuffix7460); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE331);
// CivlCParser.g:1108:4: ( typeQualifierList_opt assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt RSQUARE ) | STATIC typeQualifierList_opt assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression RSQUARE ) | typeQualifierList STATIC assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression RSQUARE ) | typeQualifierList_opt STAR RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt STAR RSQUARE ) )
int alt85=4;
alt85 = dfa85.predict(input);
switch (alt85) {
case 1 :
// CivlCParser.g:1108:6: typeQualifierList_opt assignmentExpression_opt RSQUARE
{
pushFollow(FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7467);
typeQualifierList_opt332=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt332.getTree());
pushFollow(FOLLOW_assignmentExpression_opt_in_directDeclaratorArraySuffix7469);
assignmentExpression_opt333=assignmentExpression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression_opt.add(assignmentExpression_opt333.getTree());
RSQUARE334=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7471); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE334);
// AST REWRITE
// elements: assignmentExpression_opt, RSQUARE, LSQUARE, typeQualifierList_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();
// 1109:6: -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt RSQUARE )
{
// CivlCParser.g:1109:9: ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt 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, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_typeQualifierList_opt.nextTree());
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;
}
}
break;
case 2 :
// CivlCParser.g:1111:6: STATIC typeQualifierList_opt assignmentExpression RSQUARE
{
STATIC335=(Token)match(input,STATIC,FOLLOW_STATIC_in_directDeclaratorArraySuffix7509); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATIC.add(STATIC335);
pushFollow(FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7511);
typeQualifierList_opt336=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt336.getTree());
pushFollow(FOLLOW_assignmentExpression_in_directDeclaratorArraySuffix7513);
assignmentExpression337=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression337.getTree());
RSQUARE338=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7515); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE338);
// AST REWRITE
// elements: assignmentExpression, LSQUARE, typeQualifierList_opt, STATIC, RSQUARE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1112:6: -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression RSQUARE )
{
// CivlCParser.g:1112:9: ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression 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_STATIC.nextNode());
adaptor.addChild(root_1, stream_typeQualifierList_opt.nextTree());
adaptor.addChild(root_1, stream_assignmentExpression.nextTree());
adaptor.addChild(root_1, stream_RSQUARE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:1114:8: typeQualifierList STATIC assignmentExpression RSQUARE
{
pushFollow(FOLLOW_typeQualifierList_in_directDeclaratorArraySuffix7555);
typeQualifierList339=typeQualifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList.add(typeQualifierList339.getTree());
STATIC340=(Token)match(input,STATIC,FOLLOW_STATIC_in_directDeclaratorArraySuffix7557); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATIC.add(STATIC340);
pushFollow(FOLLOW_assignmentExpression_in_directDeclaratorArraySuffix7559);
assignmentExpression341=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression341.getTree());
RSQUARE342=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7561); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE342);
// AST REWRITE
// elements: RSQUARE, LSQUARE, typeQualifierList, STATIC, 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();
// 1115:6: -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression RSQUARE )
{
// CivlCParser.g:1115:9: ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression 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_STATIC.nextNode());
adaptor.addChild(root_1, stream_typeQualifierList.nextTree());
adaptor.addChild(root_1, stream_assignmentExpression.nextTree());
adaptor.addChild(root_1, stream_RSQUARE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// CivlCParser.g:1117:8: typeQualifierList_opt STAR RSQUARE
{
pushFollow(FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7601);
typeQualifierList_opt343=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt343.getTree());
STAR344=(Token)match(input,STAR,FOLLOW_STAR_in_directDeclaratorArraySuffix7603); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR344);
RSQUARE345=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7605); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE345);
// AST REWRITE
// elements: RSQUARE, STAR, typeQualifierList_opt, LSQUARE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1118:6: -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt STAR RSQUARE )
{
// CivlCParser.g:1118:9: ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt STAR 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, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_typeQualifierList_opt.nextTree());
adaptor.addChild(root_1, stream_STAR.nextNode());
adaptor.addChild(root_1, stream_RSQUARE.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 "directDeclaratorArraySuffix"
public static class directDeclaratorFunctionSuffix_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "directDeclaratorFunctionSuffix"
// CivlCParser.g:1129:1: directDeclaratorFunctionSuffix : LPAREN ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | identifierList RPAREN -> ^( FUNCTION_SUFFIX LPAREN identifierList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) ) ;
public final OmpParser_CivlCParser.directDeclaratorFunctionSuffix_return directDeclaratorFunctionSuffix() throws RecognitionException {
DeclarationScope_stack.push(new DeclarationScope_scope());
OmpParser_CivlCParser.directDeclaratorFunctionSuffix_return retval = new OmpParser_CivlCParser.directDeclaratorFunctionSuffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN346=null;
Token RPAREN348=null;
Token RPAREN350=null;
Token RPAREN351=null;
ParserRuleReturnScope parameterTypeList347 =null;
ParserRuleReturnScope identifierList349 =null;
Object LPAREN346_tree=null;
Object RPAREN348_tree=null;
Object RPAREN350_tree=null;
Object RPAREN351_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_identifierList=new RewriteRuleSubtreeStream(adaptor,"rule identifierList");
RewriteRuleSubtreeStream stream_parameterTypeList=new RewriteRuleSubtreeStream(adaptor,"rule parameterTypeList");
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().hasTypeSpec = false;
try {
// CivlCParser.g:1135:2: ( LPAREN ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | identifierList RPAREN -> ^( FUNCTION_SUFFIX LPAREN identifierList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) ) )
// CivlCParser.g:1135:4: LPAREN ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | identifierList RPAREN -> ^( FUNCTION_SUFFIX LPAREN identifierList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) )
{
LPAREN346=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directDeclaratorFunctionSuffix7664); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN346);
// CivlCParser.g:1136:4: ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | identifierList RPAREN -> ^( FUNCTION_SUFFIX LPAREN identifierList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) )
int alt86=3;
alt86 = dfa86.predict(input);
switch (alt86) {
case 1 :
// CivlCParser.g:1136:6: parameterTypeList RPAREN
{
pushFollow(FOLLOW_parameterTypeList_in_directDeclaratorFunctionSuffix7671);
parameterTypeList347=parameterTypeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameterTypeList.add(parameterTypeList347.getTree());
RPAREN348=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7673); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN348);
// AST REWRITE
// elements: RPAREN, LPAREN, parameterTypeList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1137:6: -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN )
{
// CivlCParser.g:1137:9: ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNCTION_SUFFIX, "FUNCTION_SUFFIX"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_parameterTypeList.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1138:6: identifierList RPAREN
{
pushFollow(FOLLOW_identifierList_in_directDeclaratorFunctionSuffix7698);
identifierList349=identifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_identifierList.add(identifierList349.getTree());
RPAREN350=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7700); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN350);
// AST REWRITE
// elements: identifierList, LPAREN, 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();
// 1139:6: -> ^( FUNCTION_SUFFIX LPAREN identifierList RPAREN )
{
// CivlCParser.g:1139:9: ^( FUNCTION_SUFFIX LPAREN identifierList RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNCTION_SUFFIX, "FUNCTION_SUFFIX"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_identifierList.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:1140:6: RPAREN
{
RPAREN351=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7724); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN351);
// AST REWRITE
// elements: RPAREN, LPAREN
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1140:13: -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN )
{
// CivlCParser.g:1140:16: ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNCTION_SUFFIX, "FUNCTION_SUFFIX"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
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
DeclarationScope_stack.pop();
}
return retval;
}
// $ANTLR end "directDeclaratorFunctionSuffix"
public static class typeQualifierList_opt_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeQualifierList_opt"
// CivlCParser.g:1148:1: typeQualifierList_opt : ( typeQualifier )* -> ^( TYPE_QUALIFIER_LIST ( typeQualifier )* ) ;
public final OmpParser_CivlCParser.typeQualifierList_opt_return typeQualifierList_opt() throws RecognitionException {
OmpParser_CivlCParser.typeQualifierList_opt_return retval = new OmpParser_CivlCParser.typeQualifierList_opt_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope typeQualifier352 =null;
RewriteRuleSubtreeStream stream_typeQualifier=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifier");
try {
// CivlCParser.g:1149:2: ( ( typeQualifier )* -> ^( TYPE_QUALIFIER_LIST ( typeQualifier )* ) )
// CivlCParser.g:1149:4: ( typeQualifier )*
{
// CivlCParser.g:1149:4: ( typeQualifier )*
loop87:
while (true) {
int alt87=2;
int LA87_0 = input.LA(1);
if ( (LA87_0==ATOMIC||LA87_0==CONST||LA87_0==INPUT||LA87_0==OUTPUT||LA87_0==RESTRICT||LA87_0==VOLATILE) ) {
alt87=1;
}
switch (alt87) {
case 1 :
// CivlCParser.g:1149:4: typeQualifier
{
pushFollow(FOLLOW_typeQualifier_in_typeQualifierList_opt7754);
typeQualifier352=typeQualifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifier.add(typeQualifier352.getTree());
}
break;
default :
break loop87;
}
}
// AST REWRITE
// elements: typeQualifier
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1149:19: -> ^( TYPE_QUALIFIER_LIST ( typeQualifier )* )
{
// CivlCParser.g:1149:22: ^( TYPE_QUALIFIER_LIST ( typeQualifier )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPE_QUALIFIER_LIST, "TYPE_QUALIFIER_LIST"), root_1);
// CivlCParser.g:1149:44: ( typeQualifier )*
while ( stream_typeQualifier.hasNext() ) {
adaptor.addChild(root_1, stream_typeQualifier.nextTree());
}
stream_typeQualifier.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 "typeQualifierList_opt"
public static class assignmentExpression_opt_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assignmentExpression_opt"
// CivlCParser.g:1155:1: assignmentExpression_opt : ( -> ABSENT | assignmentExpression );
public final OmpParser_CivlCParser.assignmentExpression_opt_return assignmentExpression_opt() throws RecognitionException {
OmpParser_CivlCParser.assignmentExpression_opt_return retval = new OmpParser_CivlCParser.assignmentExpression_opt_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope assignmentExpression353 =null;
try {
// CivlCParser.g:1156:2: ( -> ABSENT | assignmentExpression )
int alt88=2;
int LA88_0 = input.LA(1);
if ( (LA88_0==RSQUARE) ) {
alt88=1;
}
else if ( (LA88_0==AMPERSAND||LA88_0==CHARACTER_CONSTANT||LA88_0==ELLIPSIS||LA88_0==FLOATING_CONSTANT||LA88_0==IDENTIFIER||LA88_0==INTEGER_CONSTANT||LA88_0==LPAREN||LA88_0==MINUSMINUS||LA88_0==NOT||LA88_0==PLUS||LA88_0==PLUSPLUS||LA88_0==STAR||(LA88_0 >= STRING_LITERAL && LA88_0 <= SUB)||LA88_0==TILDE||LA88_0==ALIGNOF||LA88_0==BIG_O||LA88_0==CALLS||LA88_0==DERIV||LA88_0==GENERIC||LA88_0==HERE||LA88_0==PROCNULL||LA88_0==RESULT||(LA88_0 >= SCOPEOF && LA88_0 <= SELF)||(LA88_0 >= SIZEOF && LA88_0 <= SPAWN)||LA88_0==STATE_NULL||LA88_0==VALUE_AT||LA88_0==SUM) ) {
alt88=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 88, 0, input);
throw nvae;
}
switch (alt88) {
case 1 :
// CivlCParser.g:1156:5:
{
// 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();
// 1156:5: -> ABSENT
{
adaptor.addChild(root_0, (Object)adaptor.create(ABSENT, "ABSENT"));
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1157:4: assignmentExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression_opt7785);
assignmentExpression353=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assignmentExpression353.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 pointer_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "pointer"
// CivlCParser.g:1164:1: pointer : ( pointer_part )+ -> ^( POINTER ( pointer_part )+ ) ;
public final OmpParser_CivlCParser.pointer_return pointer() throws RecognitionException {
OmpParser_CivlCParser.pointer_return retval = new OmpParser_CivlCParser.pointer_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope pointer_part354 =null;
RewriteRuleSubtreeStream stream_pointer_part=new RewriteRuleSubtreeStream(adaptor,"rule pointer_part");
try {
// CivlCParser.g:1165:5: ( ( pointer_part )+ -> ^( POINTER ( pointer_part )+ ) )
// CivlCParser.g:1165:7: ( pointer_part )+
{
// CivlCParser.g:1165:7: ( pointer_part )+
int cnt89=0;
loop89:
while (true) {
int alt89=2;
int LA89_0 = input.LA(1);
if ( (LA89_0==STAR) ) {
alt89=1;
}
switch (alt89) {
case 1 :
// CivlCParser.g:1165:7: pointer_part
{
pushFollow(FOLLOW_pointer_part_in_pointer7801);
pointer_part354=pointer_part();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer_part.add(pointer_part354.getTree());
}
break;
default :
if ( cnt89 >= 1 ) break loop89;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(89, input);
throw eee;
}
cnt89++;
}
// AST REWRITE
// elements: pointer_part
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1165:21: -> ^( POINTER ( pointer_part )+ )
{
// CivlCParser.g:1165:24: ^( POINTER ( pointer_part )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(POINTER, "POINTER"), root_1);
if ( !(stream_pointer_part.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_pointer_part.hasNext() ) {
adaptor.addChild(root_1, stream_pointer_part.nextTree());
}
stream_pointer_part.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 pointer_part_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "pointer_part"
// CivlCParser.g:1172:1: pointer_part : STAR typeQualifierList_opt -> ^( STAR typeQualifierList_opt ) ;
public final OmpParser_CivlCParser.pointer_part_return pointer_part() throws RecognitionException {
OmpParser_CivlCParser.pointer_part_return retval = new OmpParser_CivlCParser.pointer_part_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STAR355=null;
ParserRuleReturnScope typeQualifierList_opt356 =null;
Object STAR355_tree=null;
RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR");
RewriteRuleSubtreeStream stream_typeQualifierList_opt=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifierList_opt");
try {
// CivlCParser.g:1173:2: ( STAR typeQualifierList_opt -> ^( STAR typeQualifierList_opt ) )
// CivlCParser.g:1173:4: STAR typeQualifierList_opt
{
STAR355=(Token)match(input,STAR,FOLLOW_STAR_in_pointer_part7827); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR355);
pushFollow(FOLLOW_typeQualifierList_opt_in_pointer_part7829);
typeQualifierList_opt356=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt356.getTree());
// AST REWRITE
// elements: STAR, typeQualifierList_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();
// 1173:31: -> ^( STAR typeQualifierList_opt )
{
// CivlCParser.g:1173:34: ^( STAR typeQualifierList_opt )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_STAR.nextNode(), root_1);
adaptor.addChild(root_1, stream_typeQualifierList_opt.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 "pointer_part"
public static class typeQualifierList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeQualifierList"
// CivlCParser.g:1180:1: typeQualifierList : ( typeQualifier )+ -> ^( TYPE_QUALIFIER_LIST ( typeQualifier )+ ) ;
public final OmpParser_CivlCParser.typeQualifierList_return typeQualifierList() throws RecognitionException {
OmpParser_CivlCParser.typeQualifierList_return retval = new OmpParser_CivlCParser.typeQualifierList_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope typeQualifier357 =null;
RewriteRuleSubtreeStream stream_typeQualifier=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifier");
try {
// CivlCParser.g:1181:5: ( ( typeQualifier )+ -> ^( TYPE_QUALIFIER_LIST ( typeQualifier )+ ) )
// CivlCParser.g:1181:7: ( typeQualifier )+
{
// CivlCParser.g:1181:7: ( typeQualifier )+
int cnt90=0;
loop90:
while (true) {
int alt90=2;
int LA90_0 = input.LA(1);
if ( (LA90_0==ATOMIC||LA90_0==CONST||LA90_0==INPUT||LA90_0==OUTPUT||LA90_0==RESTRICT||LA90_0==VOLATILE) ) {
alt90=1;
}
switch (alt90) {
case 1 :
// CivlCParser.g:1181:7: typeQualifier
{
pushFollow(FOLLOW_typeQualifier_in_typeQualifierList7853);
typeQualifier357=typeQualifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifier.add(typeQualifier357.getTree());
}
break;
default :
if ( cnt90 >= 1 ) break loop90;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(90, input);
throw eee;
}
cnt90++;
}
// AST REWRITE
// elements: typeQualifier
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1181:22: -> ^( TYPE_QUALIFIER_LIST ( typeQualifier )+ )
{
// CivlCParser.g:1181:25: ^( TYPE_QUALIFIER_LIST ( typeQualifier )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPE_QUALIFIER_LIST, "TYPE_QUALIFIER_LIST"), root_1);
if ( !(stream_typeQualifier.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_typeQualifier.hasNext() ) {
adaptor.addChild(root_1, stream_typeQualifier.nextTree());
}
stream_typeQualifier.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 "typeQualifierList"
public static class parameterTypeList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "parameterTypeList"
// CivlCParser.g:1195:1: parameterTypeList : ({...}? parameterTypeListWithoutScope |{...}? parameterTypeListWithScope );
public final OmpParser_CivlCParser.parameterTypeList_return parameterTypeList() throws RecognitionException {
OmpParser_CivlCParser.parameterTypeList_return retval = new OmpParser_CivlCParser.parameterTypeList_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope parameterTypeListWithoutScope358 =null;
ParserRuleReturnScope parameterTypeListWithScope359 =null;
try {
// CivlCParser.g:1196:2: ({...}? parameterTypeListWithoutScope |{...}? parameterTypeListWithScope )
int alt91=2;
switch ( input.LA(1) ) {
case TYPEDEF:
{
int LA91_1 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
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);
}
}
}
break;
case AUTO:
case EXTERN:
case REGISTER:
case SHARED:
case STATIC:
case THREADLOCAL:
{
int LA91_2 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case VOID:
{
int LA91_3 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
{
int LA91_4 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SHORT:
{
int LA91_5 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INT:
{
int LA91_6 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case LONG:
{
int LA91_7 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FLOAT:
{
int LA91_8 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOUBLE:
{
int LA91_9 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 9, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SIGNED:
{
int LA91_10 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case UNSIGNED:
{
int LA91_11 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 11, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case BOOL:
{
int LA91_12 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 12, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case COMPLEX:
{
int LA91_13 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 13, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case REAL:
{
int LA91_14 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 14, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case RANGE:
{
int LA91_15 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 15, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ATOMIC:
{
int LA91_16 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 16, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case STRUCT:
case UNION:
{
int LA91_17 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 17, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ENUM:
{
int LA91_18 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 18, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENTIFIER:
{
int LA91_19 = input.LA(2);
if ( (((isTypeName(input.LT(1).getText()))&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt91=1;
}
else if ( (((isTypeName(input.LT(1).getText()))&&(!Symbols_stack.peek().isFunctionDefinition))) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 19, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOMAIN:
{
int LA91_20 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 20, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TYPEOF:
{
int LA91_21 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 21, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case MEM_TYPE:
{
int LA91_22 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 22, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CONST:
case INPUT:
case OUTPUT:
case RESTRICT:
case VOLATILE:
{
int LA91_23 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 23, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INLINE:
{
int LA91_24 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 24, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case NORETURN:
{
int LA91_25 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 25, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ABSTRACT:
{
int LA91_26 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 26, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PURE:
{
int LA91_27 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 27, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case STATE_F:
{
int LA91_28 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 28, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SYSTEM:
{
int LA91_29 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 29, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FATOMIC:
{
int LA91_30 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 30, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DEVICE:
{
int LA91_31 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 31, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case GLOBAL:
{
int LA91_32 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 32, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DIFFERENTIABLE:
{
int LA91_33 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 33, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ALIGNAS:
{
int LA91_34 = input.LA(2);
if ( ((Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=1;
}
else if ( ((!Symbols_stack.peek().isFunctionDefinition)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 91, 34, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 91, 0, input);
throw nvae;
}
switch (alt91) {
case 1 :
// CivlCParser.g:1196:4: {...}? parameterTypeListWithoutScope
{
root_0 = (Object)adaptor.nil();
if ( !((Symbols_stack.peek().isFunctionDefinition)) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "parameterTypeList", "$Symbols::isFunctionDefinition");
}
pushFollow(FOLLOW_parameterTypeListWithoutScope_in_parameterTypeList7882);
parameterTypeListWithoutScope358=parameterTypeListWithoutScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parameterTypeListWithoutScope358.getTree());
}
break;
case 2 :
// CivlCParser.g:1197:4: {...}? parameterTypeListWithScope
{
root_0 = (Object)adaptor.nil();
if ( !((!Symbols_stack.peek().isFunctionDefinition)) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "parameterTypeList", "!$Symbols::isFunctionDefinition");
}
pushFollow(FOLLOW_parameterTypeListWithScope_in_parameterTypeList7889);
parameterTypeListWithScope359=parameterTypeListWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parameterTypeListWithScope359.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 "parameterTypeList"
public static class parameterTypeListWithScope_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "parameterTypeListWithScope"
// CivlCParser.g:1200:1: parameterTypeListWithScope : parameterTypeListWithoutScope ;
public final OmpParser_CivlCParser.parameterTypeListWithScope_return parameterTypeListWithScope() throws RecognitionException {
Symbols_stack.push(new Symbols_scope());
OmpParser_CivlCParser.parameterTypeListWithScope_return retval = new OmpParser_CivlCParser.parameterTypeListWithScope_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope parameterTypeListWithoutScope360 =null;
Symbols_stack.peek().types = new HashSet<String>();
Symbols_stack.peek().enumerationConstants = new HashSet<String>();
Symbols_stack.peek().isFunctionDefinition = false;
try {
// CivlCParser.g:1207:2: ( parameterTypeListWithoutScope )
// CivlCParser.g:1207:4: parameterTypeListWithoutScope
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_parameterTypeListWithoutScope_in_parameterTypeListWithScope7910);
parameterTypeListWithoutScope360=parameterTypeListWithoutScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parameterTypeListWithoutScope360.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
Symbols_stack.pop();
}
return retval;
}
// $ANTLR end "parameterTypeListWithScope"
public static class parameterTypeListWithoutScope_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "parameterTypeListWithoutScope"
// CivlCParser.g:1210:1: parameterTypeListWithoutScope : parameterList ( -> ^( PARAMETER_TYPE_LIST parameterList ABSENT ) | COMMA ELLIPSIS -> ^( PARAMETER_TYPE_LIST parameterList ELLIPSIS ) ) ;
public final OmpParser_CivlCParser.parameterTypeListWithoutScope_return parameterTypeListWithoutScope() throws RecognitionException {
OmpParser_CivlCParser.parameterTypeListWithoutScope_return retval = new OmpParser_CivlCParser.parameterTypeListWithoutScope_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA362=null;
Token ELLIPSIS363=null;
ParserRuleReturnScope parameterList361 =null;
Object COMMA362_tree=null;
Object ELLIPSIS363_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_ELLIPSIS=new RewriteRuleTokenStream(adaptor,"token ELLIPSIS");
RewriteRuleSubtreeStream stream_parameterList=new RewriteRuleSubtreeStream(adaptor,"rule parameterList");
try {
// CivlCParser.g:1211:5: ( parameterList ( -> ^( PARAMETER_TYPE_LIST parameterList ABSENT ) | COMMA ELLIPSIS -> ^( PARAMETER_TYPE_LIST parameterList ELLIPSIS ) ) )
// CivlCParser.g:1211:7: parameterList ( -> ^( PARAMETER_TYPE_LIST parameterList ABSENT ) | COMMA ELLIPSIS -> ^( PARAMETER_TYPE_LIST parameterList ELLIPSIS ) )
{
pushFollow(FOLLOW_parameterList_in_parameterTypeListWithoutScope7924);
parameterList361=parameterList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameterList.add(parameterList361.getTree());
// CivlCParser.g:1212:7: ( -> ^( PARAMETER_TYPE_LIST parameterList ABSENT ) | COMMA ELLIPSIS -> ^( PARAMETER_TYPE_LIST parameterList ELLIPSIS ) )
int alt92=2;
int LA92_0 = input.LA(1);
if ( (LA92_0==RPAREN) ) {
alt92=1;
}
else if ( (LA92_0==COMMA) ) {
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 :
// CivlCParser.g:1212:9:
{
// AST REWRITE
// elements: parameterList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1212:9: -> ^( PARAMETER_TYPE_LIST parameterList ABSENT )
{
// CivlCParser.g:1212:12: ^( PARAMETER_TYPE_LIST parameterList ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARAMETER_TYPE_LIST, "PARAMETER_TYPE_LIST"), root_1);
adaptor.addChild(root_1, stream_parameterList.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1213:9: COMMA ELLIPSIS
{
COMMA362=(Token)match(input,COMMA,FOLLOW_COMMA_in_parameterTypeListWithoutScope7952); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA362);
ELLIPSIS363=(Token)match(input,ELLIPSIS,FOLLOW_ELLIPSIS_in_parameterTypeListWithoutScope7954); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ELLIPSIS.add(ELLIPSIS363);
// AST REWRITE
// elements: ELLIPSIS, parameterList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1214:9: -> ^( PARAMETER_TYPE_LIST parameterList ELLIPSIS )
{
// CivlCParser.g:1214:12: ^( PARAMETER_TYPE_LIST parameterList ELLIPSIS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARAMETER_TYPE_LIST, "PARAMETER_TYPE_LIST"), root_1);
adaptor.addChild(root_1, stream_parameterList.nextTree());
adaptor.addChild(root_1, stream_ELLIPSIS.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 "parameterTypeListWithoutScope"
public static class parameterList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "parameterList"
// CivlCParser.g:1222:1: parameterList : parameterDeclaration ( COMMA parameterDeclaration )* -> ^( PARAMETER_LIST ( parameterDeclaration )+ ) ;
public final OmpParser_CivlCParser.parameterList_return parameterList() throws RecognitionException {
OmpParser_CivlCParser.parameterList_return retval = new OmpParser_CivlCParser.parameterList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA365=null;
ParserRuleReturnScope parameterDeclaration364 =null;
ParserRuleReturnScope parameterDeclaration366 =null;
Object COMMA365_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_parameterDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule parameterDeclaration");
try {
// CivlCParser.g:1223:5: ( parameterDeclaration ( COMMA parameterDeclaration )* -> ^( PARAMETER_LIST ( parameterDeclaration )+ ) )
// CivlCParser.g:1223:7: parameterDeclaration ( COMMA parameterDeclaration )*
{
pushFollow(FOLLOW_parameterDeclaration_in_parameterList7999);
parameterDeclaration364=parameterDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameterDeclaration.add(parameterDeclaration364.getTree());
// CivlCParser.g:1223:28: ( COMMA parameterDeclaration )*
loop93:
while (true) {
int alt93=2;
int LA93_0 = input.LA(1);
if ( (LA93_0==COMMA) ) {
int LA93_2 = input.LA(2);
if ( (LA93_2==IDENTIFIER||(LA93_2 >= ABSTRACT && LA93_2 <= ALIGNAS)||(LA93_2 >= ATOMIC && LA93_2 <= AUTO)||LA93_2==BOOL||LA93_2==CHAR||(LA93_2 >= COMPLEX && LA93_2 <= CONST)||(LA93_2 >= DEVICE && LA93_2 <= DIFFERENTIABLE)||(LA93_2 >= DOMAIN && LA93_2 <= DOUBLE)||LA93_2==ENUM||(LA93_2 >= EXTERN && LA93_2 <= FATOMIC)||LA93_2==FLOAT||LA93_2==GLOBAL||(LA93_2 >= INLINE && LA93_2 <= INT)||(LA93_2 >= LONG && LA93_2 <= NORETURN)||LA93_2==OUTPUT||(LA93_2 >= PURE && LA93_2 <= RANGE)||(LA93_2 >= REAL && LA93_2 <= REGISTER)||LA93_2==RESTRICT||(LA93_2 >= SHARED && LA93_2 <= SIGNED)||LA93_2==STATE_F||LA93_2==STATIC||LA93_2==STRUCT||LA93_2==SYSTEM||(LA93_2 >= THREADLOCAL && LA93_2 <= TYPEOF)||(LA93_2 >= UNION && LA93_2 <= UNSIGNED)||(LA93_2 >= VOID && LA93_2 <= VOLATILE)) ) {
alt93=1;
}
}
switch (alt93) {
case 1 :
// CivlCParser.g:1223:29: COMMA parameterDeclaration
{
COMMA365=(Token)match(input,COMMA,FOLLOW_COMMA_in_parameterList8002); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA365);
pushFollow(FOLLOW_parameterDeclaration_in_parameterList8004);
parameterDeclaration366=parameterDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameterDeclaration.add(parameterDeclaration366.getTree());
}
break;
default :
break loop93;
}
}
// AST REWRITE
// elements: parameterDeclaration
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1224:7: -> ^( PARAMETER_LIST ( parameterDeclaration )+ )
{
// CivlCParser.g:1224:10: ^( PARAMETER_LIST ( parameterDeclaration )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARAMETER_LIST, "PARAMETER_LIST"), root_1);
if ( !(stream_parameterDeclaration.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_parameterDeclaration.hasNext() ) {
adaptor.addChild(root_1, stream_parameterDeclaration.nextTree());
}
stream_parameterDeclaration.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 "parameterList"
public static class parameterDeclaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "parameterDeclaration"
// CivlCParser.g:1232:1: parameterDeclaration : declarationSpecifiers ( -> ^( PARAMETER_DECLARATION declarationSpecifiers ABSENT ) | declaratorOrAbstractDeclarator -> ^( PARAMETER_DECLARATION declarationSpecifiers declaratorOrAbstractDeclarator ) ) ;
public final OmpParser_CivlCParser.parameterDeclaration_return parameterDeclaration() throws RecognitionException {
DeclarationScope_stack.push(new DeclarationScope_scope());
OmpParser_CivlCParser.parameterDeclaration_return retval = new OmpParser_CivlCParser.parameterDeclaration_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope declarationSpecifiers367 =null;
ParserRuleReturnScope declaratorOrAbstractDeclarator368 =null;
RewriteRuleSubtreeStream stream_declarationSpecifiers=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifiers");
RewriteRuleSubtreeStream stream_declaratorOrAbstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule declaratorOrAbstractDeclarator");
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().hasTypeSpec = false;
try {
// CivlCParser.g:1238:5: ( declarationSpecifiers ( -> ^( PARAMETER_DECLARATION declarationSpecifiers ABSENT ) | declaratorOrAbstractDeclarator -> ^( PARAMETER_DECLARATION declarationSpecifiers declaratorOrAbstractDeclarator ) ) )
// CivlCParser.g:1238:7: declarationSpecifiers ( -> ^( PARAMETER_DECLARATION declarationSpecifiers ABSENT ) | declaratorOrAbstractDeclarator -> ^( PARAMETER_DECLARATION declarationSpecifiers declaratorOrAbstractDeclarator ) )
{
pushFollow(FOLLOW_declarationSpecifiers_in_parameterDeclaration8050);
declarationSpecifiers367=declarationSpecifiers();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers367.getTree());
// CivlCParser.g:1239:7: ( -> ^( PARAMETER_DECLARATION declarationSpecifiers ABSENT ) | declaratorOrAbstractDeclarator -> ^( PARAMETER_DECLARATION declarationSpecifiers declaratorOrAbstractDeclarator ) )
int alt94=2;
int LA94_0 = input.LA(1);
if ( (LA94_0==COMMA||LA94_0==RPAREN) ) {
alt94=1;
}
else if ( (LA94_0==IDENTIFIER||LA94_0==LPAREN||LA94_0==LSQUARE||LA94_0==STAR) ) {
alt94=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 94, 0, input);
throw nvae;
}
switch (alt94) {
case 1 :
// CivlCParser.g:1239:11:
{
// AST REWRITE
// elements: declarationSpecifiers
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1239:11: -> ^( PARAMETER_DECLARATION declarationSpecifiers ABSENT )
{
// CivlCParser.g:1239:14: ^( PARAMETER_DECLARATION declarationSpecifiers ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARAMETER_DECLARATION, "PARAMETER_DECLARATION"), root_1);
adaptor.addChild(root_1, stream_declarationSpecifiers.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1240:11: declaratorOrAbstractDeclarator
{
pushFollow(FOLLOW_declaratorOrAbstractDeclarator_in_parameterDeclaration8082);
declaratorOrAbstractDeclarator368=declaratorOrAbstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaratorOrAbstractDeclarator.add(declaratorOrAbstractDeclarator368.getTree());
// AST REWRITE
// elements: declaratorOrAbstractDeclarator, declarationSpecifiers
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1241:11: -> ^( PARAMETER_DECLARATION declarationSpecifiers declaratorOrAbstractDeclarator )
{
// CivlCParser.g:1241:14: ^( PARAMETER_DECLARATION declarationSpecifiers declaratorOrAbstractDeclarator )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARAMETER_DECLARATION, "PARAMETER_DECLARATION"), root_1);
adaptor.addChild(root_1, stream_declarationSpecifiers.nextTree());
adaptor.addChild(root_1, stream_declaratorOrAbstractDeclarator.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
DeclarationScope_stack.pop();
}
return retval;
}
// $ANTLR end "parameterDeclaration"
public static class declaratorOrAbstractDeclarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declaratorOrAbstractDeclarator"
// CivlCParser.g:1249:1: declaratorOrAbstractDeclarator : ( ( declarator )=> declarator | abstractDeclarator );
public final OmpParser_CivlCParser.declaratorOrAbstractDeclarator_return declaratorOrAbstractDeclarator() throws RecognitionException {
OmpParser_CivlCParser.declaratorOrAbstractDeclarator_return retval = new OmpParser_CivlCParser.declaratorOrAbstractDeclarator_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope declarator369 =null;
ParserRuleReturnScope abstractDeclarator370 =null;
try {
// CivlCParser.g:1250:2: ( ( declarator )=> declarator | abstractDeclarator )
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==IDENTIFIER) && (synpred29_CivlCParser())) {
alt95=1;
}
else if ( (LA95_0==LPAREN) ) {
int LA95_2 = input.LA(2);
if ( (synpred29_CivlCParser()) ) {
alt95=1;
}
else if ( (true) ) {
alt95=2;
}
}
else if ( (LA95_0==STAR) ) {
int LA95_3 = input.LA(2);
if ( (synpred29_CivlCParser()) ) {
alt95=1;
}
else if ( (true) ) {
alt95=2;
}
}
else if ( (LA95_0==LSQUARE) ) {
alt95=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 95, 0, input);
throw nvae;
}
switch (alt95) {
case 1 :
// CivlCParser.g:1250:4: ( declarator )=> declarator
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_declarator_in_declaratorOrAbstractDeclarator8147);
declarator369=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declarator369.getTree());
}
break;
case 2 :
// CivlCParser.g:1251:4: abstractDeclarator
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_abstractDeclarator_in_declaratorOrAbstractDeclarator8152);
abstractDeclarator370=abstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractDeclarator370.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 "declaratorOrAbstractDeclarator"
public static class identifierList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "identifierList"
// CivlCParser.g:1259:1: identifierList : IDENTIFIER ( COMMA IDENTIFIER )* -> ^( IDENTIFIER_LIST ( IDENTIFIER )+ ) ;
public final OmpParser_CivlCParser.identifierList_return identifierList() throws RecognitionException {
OmpParser_CivlCParser.identifierList_return retval = new OmpParser_CivlCParser.identifierList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER371=null;
Token COMMA372=null;
Token IDENTIFIER373=null;
Object IDENTIFIER371_tree=null;
Object COMMA372_tree=null;
Object IDENTIFIER373_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// CivlCParser.g:1260:5: ( IDENTIFIER ( COMMA IDENTIFIER )* -> ^( IDENTIFIER_LIST ( IDENTIFIER )+ ) )
// CivlCParser.g:1260:7: IDENTIFIER ( COMMA IDENTIFIER )*
{
IDENTIFIER371=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_identifierList8169); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER371);
// CivlCParser.g:1260:18: ( COMMA IDENTIFIER )*
loop96:
while (true) {
int alt96=2;
int LA96_0 = input.LA(1);
if ( (LA96_0==COMMA) ) {
alt96=1;
}
switch (alt96) {
case 1 :
// CivlCParser.g:1260:20: COMMA IDENTIFIER
{
COMMA372=(Token)match(input,COMMA,FOLLOW_COMMA_in_identifierList8173); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA372);
IDENTIFIER373=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_identifierList8175); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER373);
}
break;
default :
break loop96;
}
}
// 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();
// 1260:40: -> ^( IDENTIFIER_LIST ( IDENTIFIER )+ )
{
// CivlCParser.g:1260:43: ^( IDENTIFIER_LIST ( IDENTIFIER )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(IDENTIFIER_LIST, "IDENTIFIER_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;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "identifierList"
public static class typeName_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeName"
// CivlCParser.g:1269:1: typeName : specifierQualifierList ( -> ^( TYPE_NAME specifierQualifierList ABSENT ) | abstractDeclarator -> ^( TYPE_NAME specifierQualifierList abstractDeclarator ) ) ;
public final OmpParser_CivlCParser.typeName_return typeName() throws RecognitionException {
OmpParser_CivlCParser.typeName_return retval = new OmpParser_CivlCParser.typeName_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope specifierQualifierList374 =null;
ParserRuleReturnScope abstractDeclarator375 =null;
RewriteRuleSubtreeStream stream_specifierQualifierList=new RewriteRuleSubtreeStream(adaptor,"rule specifierQualifierList");
RewriteRuleSubtreeStream stream_abstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule abstractDeclarator");
try {
// CivlCParser.g:1270:5: ( specifierQualifierList ( -> ^( TYPE_NAME specifierQualifierList ABSENT ) | abstractDeclarator -> ^( TYPE_NAME specifierQualifierList abstractDeclarator ) ) )
// CivlCParser.g:1270:7: specifierQualifierList ( -> ^( TYPE_NAME specifierQualifierList ABSENT ) | abstractDeclarator -> ^( TYPE_NAME specifierQualifierList abstractDeclarator ) )
{
pushFollow(FOLLOW_specifierQualifierList_in_typeName8206);
specifierQualifierList374=specifierQualifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_specifierQualifierList.add(specifierQualifierList374.getTree());
// CivlCParser.g:1271:7: ( -> ^( TYPE_NAME specifierQualifierList ABSENT ) | abstractDeclarator -> ^( TYPE_NAME specifierQualifierList abstractDeclarator ) )
int alt97=2;
int LA97_0 = input.LA(1);
if ( (LA97_0==EOF||LA97_0==COLON||LA97_0==IDENTIFIER||LA97_0==RPAREN) ) {
alt97=1;
}
else if ( (LA97_0==LPAREN||LA97_0==LSQUARE||LA97_0==STAR) ) {
alt97=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 97, 0, input);
throw nvae;
}
switch (alt97) {
case 1 :
// CivlCParser.g:1271:9:
{
// AST REWRITE
// elements: specifierQualifierList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1271:9: -> ^( TYPE_NAME specifierQualifierList ABSENT )
{
// CivlCParser.g:1271:12: ^( TYPE_NAME specifierQualifierList ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPE_NAME, "TYPE_NAME"), root_1);
adaptor.addChild(root_1, stream_specifierQualifierList.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1272:9: abstractDeclarator
{
pushFollow(FOLLOW_abstractDeclarator_in_typeName8234);
abstractDeclarator375=abstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator375.getTree());
// AST REWRITE
// elements: abstractDeclarator, specifierQualifierList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1273:9: -> ^( TYPE_NAME specifierQualifierList abstractDeclarator )
{
// CivlCParser.g:1273:12: ^( TYPE_NAME specifierQualifierList abstractDeclarator )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPE_NAME, "TYPE_NAME"), 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 "typeName"
public static class abstractDeclarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "abstractDeclarator"
// CivlCParser.g:1285:1: abstractDeclarator : ( pointer -> ^( ABSTRACT_DECLARATOR pointer ABSENT ) | directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator ) | pointer directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator ) );
public final OmpParser_CivlCParser.abstractDeclarator_return abstractDeclarator() throws RecognitionException {
OmpParser_CivlCParser.abstractDeclarator_return retval = new OmpParser_CivlCParser.abstractDeclarator_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope pointer376 =null;
ParserRuleReturnScope directAbstractDeclarator377 =null;
ParserRuleReturnScope pointer378 =null;
ParserRuleReturnScope directAbstractDeclarator379 =null;
RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer");
RewriteRuleSubtreeStream stream_directAbstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule directAbstractDeclarator");
try {
// CivlCParser.g:1286:5: ( pointer -> ^( ABSTRACT_DECLARATOR pointer ABSENT ) | directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator ) | pointer directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator ) )
int alt98=3;
alt98 = dfa98.predict(input);
switch (alt98) {
case 1 :
// CivlCParser.g:1286:7: pointer
{
pushFollow(FOLLOW_pointer_in_abstractDeclarator8279);
pointer376=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer376.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();
// 1287:7: -> ^( ABSTRACT_DECLARATOR pointer ABSENT )
{
// CivlCParser.g:1287: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 :
// CivlCParser.g:1288:7: directAbstractDeclarator
{
pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator8303);
directAbstractDeclarator377=directAbstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator377.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();
// 1289:7: -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator )
{
// CivlCParser.g:1289: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 :
// CivlCParser.g:1290:7: pointer directAbstractDeclarator
{
pushFollow(FOLLOW_pointer_in_abstractDeclarator8327);
pointer378=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer378.getTree());
pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator8329);
directAbstractDeclarator379=directAbstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator379.getTree());
// AST REWRITE
// elements: directAbstractDeclarator, 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();
// 1291:7: -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator )
{
// CivlCParser.g:1291: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;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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"
// CivlCParser.g:1304:1: directAbstractDeclarator : ( LPAREN abstractDeclarator RPAREN ( directAbstractDeclaratorSuffix )* -> ^( DIRECT_ABSTRACT_DECLARATOR abstractDeclarator ( directAbstractDeclaratorSuffix )* ) | ( directAbstractDeclaratorSuffix )+ -> ^( DIRECT_ABSTRACT_DECLARATOR ABSENT ( directAbstractDeclaratorSuffix )+ ) );
public final OmpParser_CivlCParser.directAbstractDeclarator_return directAbstractDeclarator() throws RecognitionException {
OmpParser_CivlCParser.directAbstractDeclarator_return retval = new OmpParser_CivlCParser.directAbstractDeclarator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN380=null;
Token RPAREN382=null;
ParserRuleReturnScope abstractDeclarator381 =null;
ParserRuleReturnScope directAbstractDeclaratorSuffix383 =null;
ParserRuleReturnScope directAbstractDeclaratorSuffix384 =null;
Object LPAREN380_tree=null;
Object RPAREN382_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 {
// CivlCParser.g:1305:5: ( LPAREN abstractDeclarator RPAREN ( directAbstractDeclaratorSuffix )* -> ^( DIRECT_ABSTRACT_DECLARATOR abstractDeclarator ( directAbstractDeclaratorSuffix )* ) | ( directAbstractDeclaratorSuffix )+ -> ^( DIRECT_ABSTRACT_DECLARATOR ABSENT ( directAbstractDeclaratorSuffix )+ ) )
int alt101=2;
int LA101_0 = input.LA(1);
if ( (LA101_0==LPAREN) ) {
int LA101_1 = input.LA(2);
if ( (LA101_1==LPAREN||LA101_1==LSQUARE||LA101_1==STAR) ) {
alt101=1;
}
else if ( (LA101_1==IDENTIFIER||LA101_1==RPAREN||(LA101_1 >= ABSTRACT && LA101_1 <= ALIGNAS)||(LA101_1 >= ATOMIC && LA101_1 <= AUTO)||LA101_1==BOOL||LA101_1==CHAR||(LA101_1 >= COMPLEX && LA101_1 <= CONST)||(LA101_1 >= DEVICE && LA101_1 <= DIFFERENTIABLE)||(LA101_1 >= DOMAIN && LA101_1 <= DOUBLE)||LA101_1==ENUM||(LA101_1 >= EXTERN && LA101_1 <= FATOMIC)||LA101_1==FLOAT||LA101_1==GLOBAL||(LA101_1 >= INLINE && LA101_1 <= INT)||(LA101_1 >= LONG && LA101_1 <= NORETURN)||LA101_1==OUTPUT||(LA101_1 >= PURE && LA101_1 <= RANGE)||(LA101_1 >= REAL && LA101_1 <= REGISTER)||LA101_1==RESTRICT||(LA101_1 >= SHARED && LA101_1 <= SIGNED)||LA101_1==STATE_F||LA101_1==STATIC||LA101_1==STRUCT||LA101_1==SYSTEM||(LA101_1 >= THREADLOCAL && LA101_1 <= TYPEOF)||(LA101_1 >= UNION && LA101_1 <= UNSIGNED)||(LA101_1 >= VOID && LA101_1 <= VOLATILE)) ) {
alt101=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 101, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA101_0==LSQUARE) ) {
alt101=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 101, 0, input);
throw nvae;
}
switch (alt101) {
case 1 :
// CivlCParser.g:1305:7: LPAREN abstractDeclarator RPAREN ( directAbstractDeclaratorSuffix )*
{
LPAREN380=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directAbstractDeclarator8364); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN380);
pushFollow(FOLLOW_abstractDeclarator_in_directAbstractDeclarator8366);
abstractDeclarator381=abstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator381.getTree());
RPAREN382=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directAbstractDeclarator8368); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN382);
// CivlCParser.g:1305:40: ( directAbstractDeclaratorSuffix )*
loop99:
while (true) {
int alt99=2;
int LA99_0 = input.LA(1);
if ( (LA99_0==LPAREN||LA99_0==LSQUARE) ) {
alt99=1;
}
switch (alt99) {
case 1 :
// CivlCParser.g:1305:40: directAbstractDeclaratorSuffix
{
pushFollow(FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator8370);
directAbstractDeclaratorSuffix383=directAbstractDeclaratorSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclaratorSuffix.add(directAbstractDeclaratorSuffix383.getTree());
}
break;
default :
break loop99;
}
}
// 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();
// 1306:7: -> ^( DIRECT_ABSTRACT_DECLARATOR abstractDeclarator ( directAbstractDeclaratorSuffix )* )
{
// CivlCParser.g:1306: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());
// CivlCParser.g:1307: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 :
// CivlCParser.g:1308:7: ( directAbstractDeclaratorSuffix )+
{
// CivlCParser.g:1308:7: ( directAbstractDeclaratorSuffix )+
int cnt100=0;
loop100:
while (true) {
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==LPAREN||LA100_0==LSQUARE) ) {
alt100=1;
}
switch (alt100) {
case 1 :
// CivlCParser.g:1308:7: directAbstractDeclaratorSuffix
{
pushFollow(FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator8407);
directAbstractDeclaratorSuffix384=directAbstractDeclaratorSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclaratorSuffix.add(directAbstractDeclaratorSuffix384.getTree());
}
break;
default :
if ( cnt100 >= 1 ) break loop100;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(100, input);
throw eee;
}
cnt100++;
}
// 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();
// 1309:7: -> ^( DIRECT_ABSTRACT_DECLARATOR ABSENT ( directAbstractDeclaratorSuffix )+ )
{
// CivlCParser.g:1309: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 typedefName_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typedefName"
// CivlCParser.g:1335:1: typedefName :{...}? IDENTIFIER -> ^( TYPEDEF_NAME IDENTIFIER ) ;
public final OmpParser_CivlCParser.typedefName_return typedefName() throws RecognitionException {
OmpParser_CivlCParser.typedefName_return retval = new OmpParser_CivlCParser.typedefName_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER385=null;
Object IDENTIFIER385_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// CivlCParser.g:1336:5: ({...}? IDENTIFIER -> ^( TYPEDEF_NAME IDENTIFIER ) )
// CivlCParser.g:1336:7: {...}? IDENTIFIER
{
if ( !((isTypeName(input.LT(1).getText()))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "typedefName", "isTypeName(input.LT(1).getText())");
}
IDENTIFIER385=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_typedefName8447); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER385);
// 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();
// 1337:7: -> ^( TYPEDEF_NAME IDENTIFIER )
{
// CivlCParser.g:1337:10: ^( TYPEDEF_NAME IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPEDEF_NAME, "TYPEDEF_NAME"), 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 "typedefName"
public static class directAbstractDeclaratorSuffix_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "directAbstractDeclaratorSuffix"
// CivlCParser.g:1351:1: directAbstractDeclaratorSuffix : ( LSQUARE ( typeQualifierList_opt assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt ) | STATIC typeQualifierList_opt assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression ) | typeQualifierList STATIC assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression ) | STAR RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT ABSENT STAR ) ) | LPAREN ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) ) );
public final OmpParser_CivlCParser.directAbstractDeclaratorSuffix_return directAbstractDeclaratorSuffix() throws RecognitionException {
OmpParser_CivlCParser.directAbstractDeclaratorSuffix_return retval = new OmpParser_CivlCParser.directAbstractDeclaratorSuffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LSQUARE386=null;
Token RSQUARE389=null;
Token STATIC390=null;
Token RSQUARE393=null;
Token STATIC395=null;
Token RSQUARE397=null;
Token STAR398=null;
Token RSQUARE399=null;
Token LPAREN400=null;
Token RPAREN402=null;
Token RPAREN403=null;
ParserRuleReturnScope typeQualifierList_opt387 =null;
ParserRuleReturnScope assignmentExpression_opt388 =null;
ParserRuleReturnScope typeQualifierList_opt391 =null;
ParserRuleReturnScope assignmentExpression392 =null;
ParserRuleReturnScope typeQualifierList394 =null;
ParserRuleReturnScope assignmentExpression396 =null;
ParserRuleReturnScope parameterTypeList401 =null;
Object LSQUARE386_tree=null;
Object RSQUARE389_tree=null;
Object STATIC390_tree=null;
Object RSQUARE393_tree=null;
Object STATIC395_tree=null;
Object RSQUARE397_tree=null;
Object STAR398_tree=null;
Object RSQUARE399_tree=null;
Object LPAREN400_tree=null;
Object RPAREN402_tree=null;
Object RPAREN403_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");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_STATIC=new RewriteRuleTokenStream(adaptor,"token STATIC");
RewriteRuleSubtreeStream stream_typeQualifierList=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifierList");
RewriteRuleSubtreeStream stream_assignmentExpression_opt=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression_opt");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_typeQualifierList_opt=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifierList_opt");
RewriteRuleSubtreeStream stream_parameterTypeList=new RewriteRuleSubtreeStream(adaptor,"rule parameterTypeList");
try {
// CivlCParser.g:1352:5: ( LSQUARE ( typeQualifierList_opt assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt ) | STATIC typeQualifierList_opt assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression ) | typeQualifierList STATIC assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression ) | STAR RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT ABSENT STAR ) ) | LPAREN ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) ) )
int alt104=2;
int LA104_0 = input.LA(1);
if ( (LA104_0==LSQUARE) ) {
alt104=1;
}
else if ( (LA104_0==LPAREN) ) {
alt104=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 104, 0, input);
throw nvae;
}
switch (alt104) {
case 1 :
// CivlCParser.g:1352:7: LSQUARE ( typeQualifierList_opt assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt ) | STATIC typeQualifierList_opt assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression ) | typeQualifierList STATIC assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression ) | STAR RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT ABSENT STAR ) )
{
LSQUARE386=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_directAbstractDeclaratorSuffix8480); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE386);
// CivlCParser.g:1353:7: ( typeQualifierList_opt assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt ) | STATIC typeQualifierList_opt assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression ) | typeQualifierList STATIC assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression ) | STAR RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT ABSENT STAR ) )
int alt102=4;
alt102 = dfa102.predict(input);
switch (alt102) {
case 1 :
// CivlCParser.g:1353:9: typeQualifierList_opt assignmentExpression_opt RSQUARE
{
pushFollow(FOLLOW_typeQualifierList_opt_in_directAbstractDeclaratorSuffix8490);
typeQualifierList_opt387=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt387.getTree());
pushFollow(FOLLOW_assignmentExpression_opt_in_directAbstractDeclaratorSuffix8492);
assignmentExpression_opt388=assignmentExpression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression_opt.add(assignmentExpression_opt388.getTree());
RSQUARE389=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8494); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE389);
// AST REWRITE
// elements: typeQualifierList_opt, assignmentExpression_opt, LSQUARE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1354:9: -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt )
{
// CivlCParser.g:1354:12: ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt )
{
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, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_typeQualifierList_opt.nextTree());
adaptor.addChild(root_1, stream_assignmentExpression_opt.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1356:9: STATIC typeQualifierList_opt assignmentExpression RSQUARE
{
STATIC390=(Token)match(input,STATIC,FOLLOW_STATIC_in_directAbstractDeclaratorSuffix8539); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATIC.add(STATIC390);
pushFollow(FOLLOW_typeQualifierList_opt_in_directAbstractDeclaratorSuffix8541);
typeQualifierList_opt391=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt391.getTree());
pushFollow(FOLLOW_assignmentExpression_in_directAbstractDeclaratorSuffix8543);
assignmentExpression392=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression392.getTree());
RSQUARE393=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8545); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE393);
// AST REWRITE
// elements: STATIC, assignmentExpression, LSQUARE, typeQualifierList_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();
// 1357:9: -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression )
{
// CivlCParser.g:1357:12: ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression )
{
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_STATIC.nextNode());
adaptor.addChild(root_1, stream_typeQualifierList_opt.nextTree());
adaptor.addChild(root_1, stream_assignmentExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:1359:9: typeQualifierList STATIC assignmentExpression RSQUARE
{
pushFollow(FOLLOW_typeQualifierList_in_directAbstractDeclaratorSuffix8590);
typeQualifierList394=typeQualifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList.add(typeQualifierList394.getTree());
STATIC395=(Token)match(input,STATIC,FOLLOW_STATIC_in_directAbstractDeclaratorSuffix8592); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATIC.add(STATIC395);
pushFollow(FOLLOW_assignmentExpression_in_directAbstractDeclaratorSuffix8594);
assignmentExpression396=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression396.getTree());
RSQUARE397=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8596); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE397);
// AST REWRITE
// elements: assignmentExpression, typeQualifierList, STATIC, LSQUARE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1360:9: -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression )
{
// CivlCParser.g:1360:12: ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression )
{
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_STATIC.nextNode());
adaptor.addChild(root_1, stream_typeQualifierList.nextTree());
adaptor.addChild(root_1, stream_assignmentExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// CivlCParser.g:1361:9: STAR RSQUARE
{
STAR398=(Token)match(input,STAR,FOLLOW_STAR_in_directAbstractDeclaratorSuffix8628); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR398);
RSQUARE399=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8630); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE399);
// AST REWRITE
// elements: LSQUARE, 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();
// 1362:9: -> ^( ARRAY_SUFFIX LSQUARE ABSENT ABSENT STAR )
{
// CivlCParser.g:1362:12: ^( ARRAY_SUFFIX LSQUARE ABSENT ABSENT STAR )
{
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, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_STAR.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
}
break;
case 2 :
// CivlCParser.g:1364:7: LPAREN ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) )
{
LPAREN400=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directAbstractDeclaratorSuffix8668); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN400);
// CivlCParser.g:1365:7: ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) )
int alt103=2;
int LA103_0 = input.LA(1);
if ( (LA103_0==IDENTIFIER||(LA103_0 >= ABSTRACT && LA103_0 <= ALIGNAS)||(LA103_0 >= ATOMIC && LA103_0 <= AUTO)||LA103_0==BOOL||LA103_0==CHAR||(LA103_0 >= COMPLEX && LA103_0 <= CONST)||(LA103_0 >= DEVICE && LA103_0 <= DIFFERENTIABLE)||(LA103_0 >= DOMAIN && LA103_0 <= DOUBLE)||LA103_0==ENUM||(LA103_0 >= EXTERN && LA103_0 <= FATOMIC)||LA103_0==FLOAT||LA103_0==GLOBAL||(LA103_0 >= INLINE && LA103_0 <= INT)||(LA103_0 >= LONG && LA103_0 <= NORETURN)||LA103_0==OUTPUT||(LA103_0 >= PURE && LA103_0 <= RANGE)||(LA103_0 >= REAL && LA103_0 <= REGISTER)||LA103_0==RESTRICT||(LA103_0 >= SHARED && LA103_0 <= SIGNED)||LA103_0==STATE_F||LA103_0==STATIC||LA103_0==STRUCT||LA103_0==SYSTEM||(LA103_0 >= THREADLOCAL && LA103_0 <= TYPEOF)||(LA103_0 >= UNION && LA103_0 <= UNSIGNED)||(LA103_0 >= VOID && LA103_0 <= VOLATILE)) ) {
alt103=1;
}
else if ( (LA103_0==RPAREN) ) {
alt103=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 103, 0, input);
throw nvae;
}
switch (alt103) {
case 1 :
// CivlCParser.g:1365:9: parameterTypeList RPAREN
{
pushFollow(FOLLOW_parameterTypeList_in_directAbstractDeclaratorSuffix8678);
parameterTypeList401=parameterTypeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameterTypeList.add(parameterTypeList401.getTree());
RPAREN402=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directAbstractDeclaratorSuffix8680); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN402);
// AST REWRITE
// elements: LPAREN, parameterTypeList, 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();
// 1366:9: -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN )
{
// CivlCParser.g:1366:12: ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNCTION_SUFFIX, "FUNCTION_SUFFIX"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_parameterTypeList.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1367:9: RPAREN
{
RPAREN403=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directAbstractDeclaratorSuffix8710); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN403);
// AST REWRITE
// elements: LPAREN, 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();
// 1368:9: -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN )
{
// CivlCParser.g:1368:12: ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNCTION_SUFFIX, "FUNCTION_SUFFIX"), root_1);
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
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 "directAbstractDeclaratorSuffix"
public static class initializer_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "initializer"
// CivlCParser.g:1373:1: initializer : ( assignmentExpression -> ^( SCALAR_INITIALIZER assignmentExpression ) | LCURLY initializerList ( RCURLY | COMMA RCURLY ) -> initializerList );
public final OmpParser_CivlCParser.initializer_return initializer() throws RecognitionException {
OmpParser_CivlCParser.initializer_return retval = new OmpParser_CivlCParser.initializer_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY405=null;
Token RCURLY407=null;
Token COMMA408=null;
Token RCURLY409=null;
ParserRuleReturnScope assignmentExpression404 =null;
ParserRuleReturnScope initializerList406 =null;
Object LCURLY405_tree=null;
Object RCURLY407_tree=null;
Object COMMA408_tree=null;
Object RCURLY409_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_initializerList=new RewriteRuleSubtreeStream(adaptor,"rule initializerList");
try {
// CivlCParser.g:1374:5: ( assignmentExpression -> ^( SCALAR_INITIALIZER assignmentExpression ) | LCURLY initializerList ( RCURLY | COMMA RCURLY ) -> initializerList )
int alt106=2;
int LA106_0 = input.LA(1);
if ( (LA106_0==AMPERSAND||LA106_0==CHARACTER_CONSTANT||LA106_0==ELLIPSIS||LA106_0==FLOATING_CONSTANT||LA106_0==IDENTIFIER||LA106_0==INTEGER_CONSTANT||LA106_0==LPAREN||LA106_0==MINUSMINUS||LA106_0==NOT||LA106_0==PLUS||LA106_0==PLUSPLUS||LA106_0==STAR||(LA106_0 >= STRING_LITERAL && LA106_0 <= SUB)||LA106_0==TILDE||LA106_0==ALIGNOF||LA106_0==BIG_O||LA106_0==CALLS||LA106_0==DERIV||LA106_0==GENERIC||LA106_0==HERE||LA106_0==PROCNULL||LA106_0==RESULT||(LA106_0 >= SCOPEOF && LA106_0 <= SELF)||(LA106_0 >= SIZEOF && LA106_0 <= SPAWN)||LA106_0==STATE_NULL||LA106_0==VALUE_AT||LA106_0==SUM) ) {
alt106=1;
}
else if ( (LA106_0==LCURLY) ) {
alt106=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 106, 0, input);
throw nvae;
}
switch (alt106) {
case 1 :
// CivlCParser.g:1374:7: assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_initializer8757);
assignmentExpression404=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression404.getTree());
// 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();
// 1374:28: -> ^( SCALAR_INITIALIZER assignmentExpression )
{
// CivlCParser.g:1374:31: ^( SCALAR_INITIALIZER assignmentExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SCALAR_INITIALIZER, "SCALAR_INITIALIZER"), root_1);
adaptor.addChild(root_1, stream_assignmentExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1375:7: LCURLY initializerList ( RCURLY | COMMA RCURLY )
{
LCURLY405=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_initializer8773); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY405);
pushFollow(FOLLOW_initializerList_in_initializer8775);
initializerList406=initializerList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializerList.add(initializerList406.getTree());
// CivlCParser.g:1376:9: ( RCURLY | COMMA RCURLY )
int alt105=2;
int LA105_0 = input.LA(1);
if ( (LA105_0==RCURLY) ) {
alt105=1;
}
else if ( (LA105_0==COMMA) ) {
alt105=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 105, 0, input);
throw nvae;
}
switch (alt105) {
case 1 :
// CivlCParser.g:1376:13: RCURLY
{
RCURLY407=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_initializer8789); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY407);
}
break;
case 2 :
// CivlCParser.g:1377:13: COMMA RCURLY
{
COMMA408=(Token)match(input,COMMA,FOLLOW_COMMA_in_initializer8803); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA408);
RCURLY409=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_initializer8805); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY409);
}
break;
}
// AST REWRITE
// elements: initializerList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1379:7: -> initializerList
{
adaptor.addChild(root_0, stream_initializerList.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 "initializer"
public static class initializerList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "initializerList"
// CivlCParser.g:1383:1: initializerList : designatedInitializer ( COMMA designatedInitializer )* -> ^( INITIALIZER_LIST ( designatedInitializer )+ ) ;
public final OmpParser_CivlCParser.initializerList_return initializerList() throws RecognitionException {
OmpParser_CivlCParser.initializerList_return retval = new OmpParser_CivlCParser.initializerList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA411=null;
ParserRuleReturnScope designatedInitializer410 =null;
ParserRuleReturnScope designatedInitializer412 =null;
Object COMMA411_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_designatedInitializer=new RewriteRuleSubtreeStream(adaptor,"rule designatedInitializer");
try {
// CivlCParser.g:1384:5: ( designatedInitializer ( COMMA designatedInitializer )* -> ^( INITIALIZER_LIST ( designatedInitializer )+ ) )
// CivlCParser.g:1384:7: designatedInitializer ( COMMA designatedInitializer )*
{
pushFollow(FOLLOW_designatedInitializer_in_initializerList8844);
designatedInitializer410=designatedInitializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designatedInitializer.add(designatedInitializer410.getTree());
// CivlCParser.g:1384:29: ( COMMA designatedInitializer )*
loop107:
while (true) {
int alt107=2;
int LA107_0 = input.LA(1);
if ( (LA107_0==COMMA) ) {
int LA107_2 = input.LA(2);
if ( (LA107_2==AMPERSAND||LA107_2==CHARACTER_CONSTANT||LA107_2==DOT||LA107_2==ELLIPSIS||LA107_2==FLOATING_CONSTANT||LA107_2==IDENTIFIER||LA107_2==INTEGER_CONSTANT||LA107_2==LCURLY||LA107_2==LPAREN||LA107_2==LSQUARE||LA107_2==MINUSMINUS||LA107_2==NOT||LA107_2==PLUS||LA107_2==PLUSPLUS||LA107_2==STAR||(LA107_2 >= STRING_LITERAL && LA107_2 <= SUB)||LA107_2==TILDE||LA107_2==ALIGNOF||LA107_2==BIG_O||LA107_2==CALLS||LA107_2==DERIV||LA107_2==GENERIC||LA107_2==HERE||LA107_2==PROCNULL||LA107_2==RESULT||(LA107_2 >= SCOPEOF && LA107_2 <= SELF)||(LA107_2 >= SIZEOF && LA107_2 <= SPAWN)||LA107_2==STATE_NULL||LA107_2==VALUE_AT||LA107_2==SUM) ) {
alt107=1;
}
}
switch (alt107) {
case 1 :
// CivlCParser.g:1384:30: COMMA designatedInitializer
{
COMMA411=(Token)match(input,COMMA,FOLLOW_COMMA_in_initializerList8847); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA411);
pushFollow(FOLLOW_designatedInitializer_in_initializerList8849);
designatedInitializer412=designatedInitializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designatedInitializer.add(designatedInitializer412.getTree());
}
break;
default :
break loop107;
}
}
// AST REWRITE
// elements: designatedInitializer
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1385:7: -> ^( INITIALIZER_LIST ( designatedInitializer )+ )
{
// CivlCParser.g:1385:10: ^( INITIALIZER_LIST ( designatedInitializer )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INITIALIZER_LIST, "INITIALIZER_LIST"), root_1);
if ( !(stream_designatedInitializer.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_designatedInitializer.hasNext() ) {
adaptor.addChild(root_1, stream_designatedInitializer.nextTree());
}
stream_designatedInitializer.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 "initializerList"
public static class designatedInitializer_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "designatedInitializer"
// CivlCParser.g:1388:1: designatedInitializer : ( initializer -> ^( DESIGNATED_INITIALIZER ABSENT initializer ) | designation initializer -> ^( DESIGNATED_INITIALIZER designation initializer ) );
public final OmpParser_CivlCParser.designatedInitializer_return designatedInitializer() throws RecognitionException {
OmpParser_CivlCParser.designatedInitializer_return retval = new OmpParser_CivlCParser.designatedInitializer_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope initializer413 =null;
ParserRuleReturnScope designation414 =null;
ParserRuleReturnScope initializer415 =null;
RewriteRuleSubtreeStream stream_designation=new RewriteRuleSubtreeStream(adaptor,"rule designation");
RewriteRuleSubtreeStream stream_initializer=new RewriteRuleSubtreeStream(adaptor,"rule initializer");
try {
// CivlCParser.g:1389:2: ( initializer -> ^( DESIGNATED_INITIALIZER ABSENT initializer ) | designation initializer -> ^( DESIGNATED_INITIALIZER designation initializer ) )
int alt108=2;
int LA108_0 = input.LA(1);
if ( (LA108_0==AMPERSAND||LA108_0==CHARACTER_CONSTANT||LA108_0==ELLIPSIS||LA108_0==FLOATING_CONSTANT||LA108_0==IDENTIFIER||LA108_0==INTEGER_CONSTANT||LA108_0==LCURLY||LA108_0==LPAREN||LA108_0==MINUSMINUS||LA108_0==NOT||LA108_0==PLUS||LA108_0==PLUSPLUS||LA108_0==STAR||(LA108_0 >= STRING_LITERAL && LA108_0 <= SUB)||LA108_0==TILDE||LA108_0==ALIGNOF||LA108_0==BIG_O||LA108_0==CALLS||LA108_0==DERIV||LA108_0==GENERIC||LA108_0==HERE||LA108_0==PROCNULL||LA108_0==RESULT||(LA108_0 >= SCOPEOF && LA108_0 <= SELF)||(LA108_0 >= SIZEOF && LA108_0 <= SPAWN)||LA108_0==STATE_NULL||LA108_0==VALUE_AT||LA108_0==SUM) ) {
alt108=1;
}
else if ( (LA108_0==DOT||LA108_0==LSQUARE) ) {
alt108=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 108, 0, input);
throw nvae;
}
switch (alt108) {
case 1 :
// CivlCParser.g:1389:4: initializer
{
pushFollow(FOLLOW_initializer_in_designatedInitializer8880);
initializer413=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(initializer413.getTree());
// AST REWRITE
// elements: initializer
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1390:4: -> ^( DESIGNATED_INITIALIZER ABSENT initializer )
{
// CivlCParser.g:1390:7: ^( DESIGNATED_INITIALIZER ABSENT initializer )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DESIGNATED_INITIALIZER, "DESIGNATED_INITIALIZER"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_initializer.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1391:4: designation initializer
{
pushFollow(FOLLOW_designation_in_designatedInitializer8898);
designation414=designation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designation.add(designation414.getTree());
pushFollow(FOLLOW_initializer_in_designatedInitializer8900);
initializer415=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(initializer415.getTree());
// AST REWRITE
// elements: designation, initializer
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1392:4: -> ^( DESIGNATED_INITIALIZER designation initializer )
{
// CivlCParser.g:1392:7: ^( DESIGNATED_INITIALIZER designation initializer )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DESIGNATED_INITIALIZER, "DESIGNATED_INITIALIZER"), root_1);
adaptor.addChild(root_1, stream_designation.nextTree());
adaptor.addChild(root_1, stream_initializer.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 "designatedInitializer"
public static class designation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "designation"
// CivlCParser.g:1396:1: designation : designatorList ASSIGN -> ^( DESIGNATION designatorList ) ;
public final OmpParser_CivlCParser.designation_return designation() throws RecognitionException {
OmpParser_CivlCParser.designation_return retval = new OmpParser_CivlCParser.designation_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN417=null;
ParserRuleReturnScope designatorList416 =null;
Object ASSIGN417_tree=null;
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_designatorList=new RewriteRuleSubtreeStream(adaptor,"rule designatorList");
try {
// CivlCParser.g:1397:5: ( designatorList ASSIGN -> ^( DESIGNATION designatorList ) )
// CivlCParser.g:1397:7: designatorList ASSIGN
{
pushFollow(FOLLOW_designatorList_in_designation8929);
designatorList416=designatorList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designatorList.add(designatorList416.getTree());
ASSIGN417=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_designation8931); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN417);
// AST REWRITE
// elements: designatorList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1397:29: -> ^( DESIGNATION designatorList )
{
// CivlCParser.g:1397:32: ^( DESIGNATION designatorList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DESIGNATION, "DESIGNATION"), root_1);
adaptor.addChild(root_1, stream_designatorList.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 "designation"
public static class designatorList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "designatorList"
// CivlCParser.g:1401:1: designatorList : ( designator )+ ;
public final OmpParser_CivlCParser.designatorList_return designatorList() throws RecognitionException {
OmpParser_CivlCParser.designatorList_return retval = new OmpParser_CivlCParser.designatorList_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope designator418 =null;
try {
// CivlCParser.g:1402:5: ( ( designator )+ )
// CivlCParser.g:1402:7: ( designator )+
{
root_0 = (Object)adaptor.nil();
// CivlCParser.g:1402:7: ( designator )+
int cnt109=0;
loop109:
while (true) {
int alt109=2;
int LA109_0 = input.LA(1);
if ( (LA109_0==DOT||LA109_0==LSQUARE) ) {
alt109=1;
}
switch (alt109) {
case 1 :
// CivlCParser.g:1402:7: designator
{
pushFollow(FOLLOW_designator_in_designatorList8958);
designator418=designator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, designator418.getTree());
}
break;
default :
if ( cnt109 >= 1 ) break loop109;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(109, input);
throw eee;
}
cnt109++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "designatorList"
public static class designator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "designator"
// CivlCParser.g:1406:1: designator : ( LSQUARE constantExpression RSQUARE -> ^( ARRAY_ELEMENT_DESIGNATOR constantExpression ) | DOT IDENTIFIER -> ^( FIELD_DESIGNATOR IDENTIFIER ) );
public final OmpParser_CivlCParser.designator_return designator() throws RecognitionException {
OmpParser_CivlCParser.designator_return retval = new OmpParser_CivlCParser.designator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LSQUARE419=null;
Token RSQUARE421=null;
Token DOT422=null;
Token IDENTIFIER423=null;
ParserRuleReturnScope constantExpression420 =null;
Object LSQUARE419_tree=null;
Object RSQUARE421_tree=null;
Object DOT422_tree=null;
Object IDENTIFIER423_tree=null;
RewriteRuleTokenStream stream_LSQUARE=new RewriteRuleTokenStream(adaptor,"token LSQUARE");
RewriteRuleTokenStream stream_RSQUARE=new RewriteRuleTokenStream(adaptor,"token RSQUARE");
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_constantExpression=new RewriteRuleSubtreeStream(adaptor,"rule constantExpression");
try {
// CivlCParser.g:1407:5: ( LSQUARE constantExpression RSQUARE -> ^( ARRAY_ELEMENT_DESIGNATOR constantExpression ) | DOT IDENTIFIER -> ^( FIELD_DESIGNATOR IDENTIFIER ) )
int alt110=2;
int LA110_0 = input.LA(1);
if ( (LA110_0==LSQUARE) ) {
alt110=1;
}
else if ( (LA110_0==DOT) ) {
alt110=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 110, 0, input);
throw nvae;
}
switch (alt110) {
case 1 :
// CivlCParser.g:1407:7: LSQUARE constantExpression RSQUARE
{
LSQUARE419=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_designator8978); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE419);
pushFollow(FOLLOW_constantExpression_in_designator8980);
constantExpression420=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression420.getTree());
RSQUARE421=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_designator8982); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE421);
// AST REWRITE
// elements: constantExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1408:7: -> ^( ARRAY_ELEMENT_DESIGNATOR constantExpression )
{
// CivlCParser.g:1408:10: ^( ARRAY_ELEMENT_DESIGNATOR constantExpression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARRAY_ELEMENT_DESIGNATOR, "ARRAY_ELEMENT_DESIGNATOR"), root_1);
adaptor.addChild(root_1, stream_constantExpression.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1409:7: DOT IDENTIFIER
{
DOT422=(Token)match(input,DOT,FOLLOW_DOT_in_designator9004); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT422);
IDENTIFIER423=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_designator9006); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER423);
// 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();
// 1410:7: -> ^( FIELD_DESIGNATOR IDENTIFIER )
{
// CivlCParser.g:1410:10: ^( FIELD_DESIGNATOR IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_DESIGNATOR, "FIELD_DESIGNATOR"), root_1);
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 "designator"
public static class staticAssertDeclaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "staticAssertDeclaration"
// CivlCParser.g:1414:1: staticAssertDeclaration : STATICASSERT LPAREN constantExpression COMMA STRING_LITERAL RPAREN SEMI -> ^( STATICASSERT constantExpression STRING_LITERAL ) ;
public final OmpParser_CivlCParser.staticAssertDeclaration_return staticAssertDeclaration() throws RecognitionException {
OmpParser_CivlCParser.staticAssertDeclaration_return retval = new OmpParser_CivlCParser.staticAssertDeclaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STATICASSERT424=null;
Token LPAREN425=null;
Token COMMA427=null;
Token STRING_LITERAL428=null;
Token RPAREN429=null;
Token SEMI430=null;
ParserRuleReturnScope constantExpression426 =null;
Object STATICASSERT424_tree=null;
Object LPAREN425_tree=null;
Object COMMA427_tree=null;
Object STRING_LITERAL428_tree=null;
Object RPAREN429_tree=null;
Object SEMI430_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_STATICASSERT=new RewriteRuleTokenStream(adaptor,"token STATICASSERT");
RewriteRuleSubtreeStream stream_constantExpression=new RewriteRuleSubtreeStream(adaptor,"rule constantExpression");
try {
// CivlCParser.g:1415:5: ( STATICASSERT LPAREN constantExpression COMMA STRING_LITERAL RPAREN SEMI -> ^( STATICASSERT constantExpression STRING_LITERAL ) )
// CivlCParser.g:1415:7: STATICASSERT LPAREN constantExpression COMMA STRING_LITERAL RPAREN SEMI
{
STATICASSERT424=(Token)match(input,STATICASSERT,FOLLOW_STATICASSERT_in_staticAssertDeclaration9039); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATICASSERT.add(STATICASSERT424);
LPAREN425=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_staticAssertDeclaration9041); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN425);
pushFollow(FOLLOW_constantExpression_in_staticAssertDeclaration9043);
constantExpression426=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression426.getTree());
COMMA427=(Token)match(input,COMMA,FOLLOW_COMMA_in_staticAssertDeclaration9045); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA427);
STRING_LITERAL428=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_staticAssertDeclaration9047); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL428);
RPAREN429=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_staticAssertDeclaration9055); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN429);
SEMI430=(Token)match(input,SEMI,FOLLOW_SEMI_in_staticAssertDeclaration9057); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI430);
// AST REWRITE
// elements: STATICASSERT, STRING_LITERAL, constantExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1417:7: -> ^( STATICASSERT constantExpression STRING_LITERAL )
{
// CivlCParser.g:1417:10: ^( STATICASSERT constantExpression STRING_LITERAL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_STATICASSERT.nextNode(), root_1);
adaptor.addChild(root_1, stream_constantExpression.nextTree());
adaptor.addChild(root_1, stream_STRING_LITERAL.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 "staticAssertDeclaration"
public static class domainSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "domainSpecifier"
// CivlCParser.g:1421:1: domainSpecifier : DOMAIN ( -> ^( DOMAIN ) | LPAREN INTEGER_CONSTANT RPAREN -> ^( DOMAIN INTEGER_CONSTANT RPAREN ) ) ;
public final OmpParser_CivlCParser.domainSpecifier_return domainSpecifier() throws RecognitionException {
OmpParser_CivlCParser.domainSpecifier_return retval = new OmpParser_CivlCParser.domainSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DOMAIN431=null;
Token LPAREN432=null;
Token INTEGER_CONSTANT433=null;
Token RPAREN434=null;
Object DOMAIN431_tree=null;
Object LPAREN432_tree=null;
Object INTEGER_CONSTANT433_tree=null;
Object RPAREN434_tree=null;
RewriteRuleTokenStream stream_DOMAIN=new RewriteRuleTokenStream(adaptor,"token DOMAIN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_INTEGER_CONSTANT=new RewriteRuleTokenStream(adaptor,"token INTEGER_CONSTANT");
try {
// CivlCParser.g:1422:2: ( DOMAIN ( -> ^( DOMAIN ) | LPAREN INTEGER_CONSTANT RPAREN -> ^( DOMAIN INTEGER_CONSTANT RPAREN ) ) )
// CivlCParser.g:1422:4: DOMAIN ( -> ^( DOMAIN ) | LPAREN INTEGER_CONSTANT RPAREN -> ^( DOMAIN INTEGER_CONSTANT RPAREN ) )
{
DOMAIN431=(Token)match(input,DOMAIN,FOLLOW_DOMAIN_in_domainSpecifier9089); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOMAIN.add(DOMAIN431);
// CivlCParser.g:1423:4: ( -> ^( DOMAIN ) | LPAREN INTEGER_CONSTANT RPAREN -> ^( DOMAIN INTEGER_CONSTANT RPAREN ) )
int alt111=2;
int LA111_0 = input.LA(1);
if ( (LA111_0==EOF||(LA111_0 >= COLON && LA111_0 <= COMMA)||LA111_0==IDENTIFIER||LA111_0==LSQUARE||LA111_0==RPAREN||LA111_0==SEMI||LA111_0==STAR||(LA111_0 >= ABSTRACT && LA111_0 <= ALIGNAS)||(LA111_0 >= ATOMIC && LA111_0 <= AUTO)||LA111_0==BOOL||LA111_0==CHAR||(LA111_0 >= COMPLEX && LA111_0 <= CONST)||(LA111_0 >= DEVICE && LA111_0 <= DIFFERENTIABLE)||(LA111_0 >= DOMAIN && LA111_0 <= DOUBLE)||LA111_0==ENUM||(LA111_0 >= EXTERN && LA111_0 <= FATOMIC)||LA111_0==FLOAT||LA111_0==GLOBAL||(LA111_0 >= INLINE && LA111_0 <= INT)||(LA111_0 >= LONG && LA111_0 <= NORETURN)||LA111_0==OUTPUT||(LA111_0 >= PURE && LA111_0 <= RANGE)||(LA111_0 >= REAL && LA111_0 <= REGISTER)||LA111_0==RESTRICT||(LA111_0 >= SHARED && LA111_0 <= SIGNED)||LA111_0==STATE_F||LA111_0==STATIC||LA111_0==STRUCT||LA111_0==SYSTEM||(LA111_0 >= THREADLOCAL && LA111_0 <= TYPEOF)||(LA111_0 >= UNION && LA111_0 <= UNSIGNED)||(LA111_0 >= VOID && LA111_0 <= VOLATILE)) ) {
alt111=1;
}
else if ( (LA111_0==LPAREN) ) {
int LA111_2 = input.LA(2);
if ( (LA111_2==INTEGER_CONSTANT) ) {
alt111=2;
}
else if ( (LA111_2==IDENTIFIER||LA111_2==LPAREN||LA111_2==LSQUARE||LA111_2==RPAREN||LA111_2==STAR||(LA111_2 >= ABSTRACT && LA111_2 <= ALIGNAS)||(LA111_2 >= ATOMIC && LA111_2 <= AUTO)||LA111_2==BOOL||LA111_2==CHAR||(LA111_2 >= COMPLEX && LA111_2 <= CONST)||(LA111_2 >= DEVICE && LA111_2 <= DIFFERENTIABLE)||(LA111_2 >= DOMAIN && LA111_2 <= DOUBLE)||LA111_2==ENUM||(LA111_2 >= EXTERN && LA111_2 <= FATOMIC)||LA111_2==FLOAT||LA111_2==GLOBAL||(LA111_2 >= INLINE && LA111_2 <= INT)||(LA111_2 >= LONG && LA111_2 <= NORETURN)||LA111_2==OUTPUT||(LA111_2 >= PURE && LA111_2 <= RANGE)||(LA111_2 >= REAL && LA111_2 <= REGISTER)||LA111_2==RESTRICT||(LA111_2 >= SHARED && LA111_2 <= SIGNED)||LA111_2==STATE_F||LA111_2==STATIC||LA111_2==STRUCT||LA111_2==SYSTEM||(LA111_2 >= THREADLOCAL && LA111_2 <= TYPEOF)||(LA111_2 >= UNION && LA111_2 <= UNSIGNED)||(LA111_2 >= VOID && LA111_2 <= VOLATILE)) ) {
alt111=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 111, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 111, 0, input);
throw nvae;
}
switch (alt111) {
case 1 :
// CivlCParser.g:1423:6:
{
// AST REWRITE
// elements: DOMAIN
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1423:6: -> ^( DOMAIN )
{
// CivlCParser.g:1423:9: ^( DOMAIN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_DOMAIN.nextNode(), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1424:6: LPAREN INTEGER_CONSTANT RPAREN
{
LPAREN432=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_domainSpecifier9107); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN432);
INTEGER_CONSTANT433=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_domainSpecifier9109); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INTEGER_CONSTANT.add(INTEGER_CONSTANT433);
RPAREN434=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_domainSpecifier9111); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN434);
// AST REWRITE
// elements: DOMAIN, INTEGER_CONSTANT, 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();
// 1424:37: -> ^( DOMAIN INTEGER_CONSTANT RPAREN )
{
// CivlCParser.g:1424:40: ^( DOMAIN INTEGER_CONSTANT RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_DOMAIN.nextNode(), root_1);
adaptor.addChild(root_1, stream_INTEGER_CONSTANT.nextNode());
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 "domainSpecifier"
public static class memSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "memSpecifier"
// CivlCParser.g:1429:1: memSpecifier : MEM_TYPE -> ^( MEM_TYPE ) ;
public final OmpParser_CivlCParser.memSpecifier_return memSpecifier() throws RecognitionException {
OmpParser_CivlCParser.memSpecifier_return retval = new OmpParser_CivlCParser.memSpecifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token MEM_TYPE435=null;
Object MEM_TYPE435_tree=null;
RewriteRuleTokenStream stream_MEM_TYPE=new RewriteRuleTokenStream(adaptor,"token MEM_TYPE");
try {
// CivlCParser.g:1430:5: ( MEM_TYPE -> ^( MEM_TYPE ) )
// CivlCParser.g:1430:7: MEM_TYPE
{
MEM_TYPE435=(Token)match(input,MEM_TYPE,FOLLOW_MEM_TYPE_in_memSpecifier9142); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MEM_TYPE.add(MEM_TYPE435);
// AST REWRITE
// elements: MEM_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();
// 1430:16: -> ^( MEM_TYPE )
{
// CivlCParser.g:1430:19: ^( MEM_TYPE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_MEM_TYPE.nextNode(), root_1);
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "memSpecifier"
public static class statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "statement"
// CivlCParser.g:1436:1: statement : ( labeledStatement -> ^( STATEMENT labeledStatement ) | compoundStatement -> ^( STATEMENT compoundStatement ) | expressionStatement -> ^( STATEMENT expressionStatement ) | selectionStatement -> ^( STATEMENT selectionStatement ) | iterationStatement -> ^( STATEMENT iterationStatement ) | jumpStatement -> ^( STATEMENT jumpStatement ) | whenStatement -> ^( STATEMENT whenStatement ) | chooseStatement -> ^( STATEMENT chooseStatement ) | atomicStatement -> ^( STATEMENT atomicStatement ) | runStatement -> ^( STATEMENT runStatement ) | withStatement -> ^( STATEMENT withStatement ) | updateStatement -> ^( STATEMENT updateStatement ) | asmStatement -> ^( STATEMENT asmStatement ) );
public final OmpParser_CivlCParser.statement_return statement() throws RecognitionException {
OmpParser_CivlCParser.statement_return retval = new OmpParser_CivlCParser.statement_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope labeledStatement436 =null;
ParserRuleReturnScope compoundStatement437 =null;
ParserRuleReturnScope expressionStatement438 =null;
ParserRuleReturnScope selectionStatement439 =null;
ParserRuleReturnScope iterationStatement440 =null;
ParserRuleReturnScope jumpStatement441 =null;
ParserRuleReturnScope whenStatement442 =null;
ParserRuleReturnScope chooseStatement443 =null;
ParserRuleReturnScope atomicStatement444 =null;
ParserRuleReturnScope runStatement445 =null;
ParserRuleReturnScope withStatement446 =null;
ParserRuleReturnScope updateStatement447 =null;
ParserRuleReturnScope asmStatement448 =null;
RewriteRuleSubtreeStream stream_iterationStatement=new RewriteRuleSubtreeStream(adaptor,"rule iterationStatement");
RewriteRuleSubtreeStream stream_compoundStatement=new RewriteRuleSubtreeStream(adaptor,"rule compoundStatement");
RewriteRuleSubtreeStream stream_selectionStatement=new RewriteRuleSubtreeStream(adaptor,"rule selectionStatement");
RewriteRuleSubtreeStream stream_withStatement=new RewriteRuleSubtreeStream(adaptor,"rule withStatement");
RewriteRuleSubtreeStream stream_asmStatement=new RewriteRuleSubtreeStream(adaptor,"rule asmStatement");
RewriteRuleSubtreeStream stream_whenStatement=new RewriteRuleSubtreeStream(adaptor,"rule whenStatement");
RewriteRuleSubtreeStream stream_chooseStatement=new RewriteRuleSubtreeStream(adaptor,"rule chooseStatement");
RewriteRuleSubtreeStream stream_labeledStatement=new RewriteRuleSubtreeStream(adaptor,"rule labeledStatement");
RewriteRuleSubtreeStream stream_atomicStatement=new RewriteRuleSubtreeStream(adaptor,"rule atomicStatement");
RewriteRuleSubtreeStream stream_updateStatement=new RewriteRuleSubtreeStream(adaptor,"rule updateStatement");
RewriteRuleSubtreeStream stream_expressionStatement=new RewriteRuleSubtreeStream(adaptor,"rule expressionStatement");
RewriteRuleSubtreeStream stream_jumpStatement=new RewriteRuleSubtreeStream(adaptor,"rule jumpStatement");
RewriteRuleSubtreeStream stream_runStatement=new RewriteRuleSubtreeStream(adaptor,"rule runStatement");
try {
// CivlCParser.g:1437:5: ( labeledStatement -> ^( STATEMENT labeledStatement ) | compoundStatement -> ^( STATEMENT compoundStatement ) | expressionStatement -> ^( STATEMENT expressionStatement ) | selectionStatement -> ^( STATEMENT selectionStatement ) | iterationStatement -> ^( STATEMENT iterationStatement ) | jumpStatement -> ^( STATEMENT jumpStatement ) | whenStatement -> ^( STATEMENT whenStatement ) | chooseStatement -> ^( STATEMENT chooseStatement ) | atomicStatement -> ^( STATEMENT atomicStatement ) | runStatement -> ^( STATEMENT runStatement ) | withStatement -> ^( STATEMENT withStatement ) | updateStatement -> ^( STATEMENT updateStatement ) | asmStatement -> ^( STATEMENT asmStatement ) )
int alt112=13;
switch ( input.LA(1) ) {
case IDENTIFIER:
{
int LA112_1 = input.LA(2);
if ( (LA112_1==COLON) ) {
alt112=1;
}
else if ( ((LA112_1 >= AMPERSAND && LA112_1 <= AND)||(LA112_1 >= ARROW && LA112_1 <= BITXOREQ)||LA112_1==COMMA||(LA112_1 >= DIV && LA112_1 <= DOTDOT)||LA112_1==EQUALS||(LA112_1 >= GT && LA112_1 <= GTE)||LA112_1==IMPLIES||LA112_1==LEXCON||LA112_1==LPAREN||(LA112_1 >= LSQUARE && LA112_1 <= LTE)||(LA112_1 >= MINUSMINUS && LA112_1 <= NEQ)||LA112_1==OR||(LA112_1 >= PLUS && LA112_1 <= PLUSPLUS)||LA112_1==QMARK||(LA112_1 >= SEMI && LA112_1 <= STAREQ)||(LA112_1 >= SUB && LA112_1 <= SUBEQ)) ) {
alt112=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 112, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CASE:
case DEFAULT:
{
alt112=1;
}
break;
case LCURLY:
{
alt112=2;
}
break;
case AMPERSAND:
case CHARACTER_CONSTANT:
case ELLIPSIS:
case FLOATING_CONSTANT:
case INTEGER_CONSTANT:
case LPAREN:
case MINUSMINUS:
case NOT:
case PLUS:
case PLUSPLUS:
case SEMI:
case STAR:
case STRING_LITERAL:
case SUB:
case TILDE:
case ALIGNOF:
case BIG_O:
case CALLS:
case DERIV:
case EXISTS:
case FORALL:
case GENERIC:
case HERE:
case PROCNULL:
case RESULT:
case SCOPEOF:
case SELF:
case SIZEOF:
case SPAWN:
case STATE_NULL:
case UNIFORM:
case VALUE_AT:
case SUM:
{
alt112=3;
}
break;
case IF:
case SWITCH:
{
alt112=4;
}
break;
case CIVLFOR:
case DO:
case FOR:
case PARFOR:
case WHILE:
{
alt112=5;
}
break;
case BREAK:
case CONTINUE:
case GOTO:
case RETURN:
{
alt112=6;
}
break;
case WHEN:
{
alt112=7;
}
break;
case CHOOSE:
{
alt112=8;
}
break;
case CIVLATOMIC:
{
alt112=9;
}
break;
case RUN:
{
alt112=10;
}
break;
case WITH:
{
alt112=11;
}
break;
case UPDATE:
{
alt112=12;
}
break;
case ASM:
{
alt112=13;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 112, 0, input);
throw nvae;
}
switch (alt112) {
case 1 :
// CivlCParser.g:1437:7: labeledStatement
{
pushFollow(FOLLOW_labeledStatement_in_statement9166);
labeledStatement436=labeledStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_labeledStatement.add(labeledStatement436.getTree());
// AST REWRITE
// elements: labeledStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1437:24: -> ^( STATEMENT labeledStatement )
{
// CivlCParser.g:1437:27: ^( STATEMENT labeledStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_labeledStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1438:7: compoundStatement
{
pushFollow(FOLLOW_compoundStatement_in_statement9182);
compoundStatement437=compoundStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_compoundStatement.add(compoundStatement437.getTree());
// AST REWRITE
// elements: compoundStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1438:25: -> ^( STATEMENT compoundStatement )
{
// CivlCParser.g:1438:28: ^( STATEMENT compoundStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_compoundStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:1439:7: expressionStatement
{
pushFollow(FOLLOW_expressionStatement_in_statement9198);
expressionStatement438=expressionStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expressionStatement.add(expressionStatement438.getTree());
// AST REWRITE
// elements: expressionStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1439:27: -> ^( STATEMENT expressionStatement )
{
// CivlCParser.g:1439:30: ^( STATEMENT expressionStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_expressionStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// CivlCParser.g:1440:7: selectionStatement
{
pushFollow(FOLLOW_selectionStatement_in_statement9214);
selectionStatement439=selectionStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_selectionStatement.add(selectionStatement439.getTree());
// AST REWRITE
// elements: selectionStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1440:26: -> ^( STATEMENT selectionStatement )
{
// CivlCParser.g:1440:29: ^( STATEMENT selectionStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_selectionStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// CivlCParser.g:1441:7: iterationStatement
{
pushFollow(FOLLOW_iterationStatement_in_statement9230);
iterationStatement440=iterationStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_iterationStatement.add(iterationStatement440.getTree());
// AST REWRITE
// elements: iterationStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1441:26: -> ^( STATEMENT iterationStatement )
{
// CivlCParser.g:1441:29: ^( STATEMENT iterationStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_iterationStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// CivlCParser.g:1442:7: jumpStatement
{
pushFollow(FOLLOW_jumpStatement_in_statement9246);
jumpStatement441=jumpStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_jumpStatement.add(jumpStatement441.getTree());
// AST REWRITE
// elements: jumpStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1442:21: -> ^( STATEMENT jumpStatement )
{
// CivlCParser.g:1442:24: ^( STATEMENT jumpStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_jumpStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 7 :
// CivlCParser.g:1443:7: whenStatement
{
pushFollow(FOLLOW_whenStatement_in_statement9262);
whenStatement442=whenStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_whenStatement.add(whenStatement442.getTree());
// AST REWRITE
// elements: whenStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1443:21: -> ^( STATEMENT whenStatement )
{
// CivlCParser.g:1443:24: ^( STATEMENT whenStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_whenStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 8 :
// CivlCParser.g:1444:7: chooseStatement
{
pushFollow(FOLLOW_chooseStatement_in_statement9278);
chooseStatement443=chooseStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_chooseStatement.add(chooseStatement443.getTree());
// AST REWRITE
// elements: chooseStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1444:23: -> ^( STATEMENT chooseStatement )
{
// CivlCParser.g:1444:26: ^( STATEMENT chooseStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_chooseStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 9 :
// CivlCParser.g:1445:7: atomicStatement
{
pushFollow(FOLLOW_atomicStatement_in_statement9294);
atomicStatement444=atomicStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_atomicStatement.add(atomicStatement444.getTree());
// AST REWRITE
// elements: atomicStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1445:23: -> ^( STATEMENT atomicStatement )
{
// CivlCParser.g:1445:26: ^( STATEMENT atomicStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_atomicStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 10 :
// CivlCParser.g:1446:7: runStatement
{
pushFollow(FOLLOW_runStatement_in_statement9310);
runStatement445=runStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_runStatement.add(runStatement445.getTree());
// AST REWRITE
// elements: runStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1446:20: -> ^( STATEMENT runStatement )
{
// CivlCParser.g:1446:23: ^( STATEMENT runStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_runStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 11 :
// CivlCParser.g:1447:7: withStatement
{
pushFollow(FOLLOW_withStatement_in_statement9326);
withStatement446=withStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_withStatement.add(withStatement446.getTree());
// AST REWRITE
// elements: withStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1447:21: -> ^( STATEMENT withStatement )
{
// CivlCParser.g:1447:24: ^( STATEMENT withStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_withStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 12 :
// CivlCParser.g:1448:7: updateStatement
{
pushFollow(FOLLOW_updateStatement_in_statement9342);
updateStatement447=updateStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_updateStatement.add(updateStatement447.getTree());
// AST REWRITE
// elements: updateStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1448:23: -> ^( STATEMENT updateStatement )
{
// CivlCParser.g:1448:26: ^( STATEMENT updateStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_updateStatement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 13 :
// CivlCParser.g:1449:7: asmStatement
{
pushFollow(FOLLOW_asmStatement_in_statement9358);
asmStatement448=asmStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_asmStatement.add(asmStatement448.getTree());
// AST REWRITE
// elements: asmStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1449:20: -> ^( STATEMENT asmStatement )
{
// CivlCParser.g:1449:23: ^( STATEMENT asmStatement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_asmStatement.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 "statement"
public static class statementWithScope_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "statementWithScope"
// CivlCParser.g:1452:1: statementWithScope : ( statement | ( pragma )+ statement -> ^( STATEMENT ^( COMPOUND_STATEMENT ABSENT ^( BLOCK_ITEM_LIST ( pragma )+ statement ) ABSENT ) ) );
public final OmpParser_CivlCParser.statementWithScope_return statementWithScope() throws RecognitionException {
Symbols_stack.push(new Symbols_scope());
OmpParser_CivlCParser.statementWithScope_return retval = new OmpParser_CivlCParser.statementWithScope_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope statement449 =null;
ParserRuleReturnScope pragma450 =null;
ParserRuleReturnScope statement451 =null;
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
RewriteRuleSubtreeStream stream_pragma=new RewriteRuleSubtreeStream(adaptor,"rule pragma");
Symbols_stack.peek().types = new HashSet<String>();
Symbols_stack.peek().enumerationConstants = new HashSet<String>();
Symbols_stack.peek().isFunctionDefinition = false;
try {
// CivlCParser.g:1459:2: ( statement | ( pragma )+ statement -> ^( STATEMENT ^( COMPOUND_STATEMENT ABSENT ^( BLOCK_ITEM_LIST ( pragma )+ statement ) ABSENT ) ) )
int alt114=2;
int LA114_0 = input.LA(1);
if ( (LA114_0==AMPERSAND||LA114_0==CHARACTER_CONSTANT||LA114_0==ELLIPSIS||LA114_0==FLOATING_CONSTANT||(LA114_0 >= IDENTIFIER && LA114_0 <= IF)||LA114_0==INTEGER_CONSTANT||LA114_0==LCURLY||LA114_0==LPAREN||LA114_0==MINUSMINUS||LA114_0==NOT||LA114_0==PLUS||LA114_0==PLUSPLUS||LA114_0==SEMI||LA114_0==STAR||(LA114_0 >= STRING_LITERAL && LA114_0 <= SUB)||LA114_0==TILDE||(LA114_0 >= ALIGNOF && LA114_0 <= ASM)||LA114_0==BIG_O||(LA114_0 >= BREAK && LA114_0 <= CASE)||(LA114_0 >= CHOOSE && LA114_0 <= CIVLFOR)||(LA114_0 >= CONTINUE && LA114_0 <= DEFAULT)||LA114_0==DERIV||LA114_0==DO||LA114_0==EXISTS||(LA114_0 >= FOR && LA114_0 <= GENERIC)||LA114_0==GOTO||LA114_0==HERE||LA114_0==PARFOR||LA114_0==PROCNULL||(LA114_0 >= RESULT && LA114_0 <= SELF)||(LA114_0 >= SIZEOF && LA114_0 <= SPAWN)||LA114_0==STATE_NULL||LA114_0==SWITCH||LA114_0==UNIFORM||(LA114_0 >= UPDATE && LA114_0 <= VALUE_AT)||(LA114_0 >= WHEN && LA114_0 <= WITH)||LA114_0==SUM) ) {
alt114=1;
}
else if ( (LA114_0==PPRAGMA) ) {
alt114=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 114, 0, input);
throw nvae;
}
switch (alt114) {
case 1 :
// CivlCParser.g:1459:4: statement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statement_in_statementWithScope9390);
statement449=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement449.getTree());
}
break;
case 2 :
// CivlCParser.g:1460:4: ( pragma )+ statement
{
// CivlCParser.g:1460:4: ( pragma )+
int cnt113=0;
loop113:
while (true) {
int alt113=2;
int LA113_0 = input.LA(1);
if ( (LA113_0==PPRAGMA) ) {
alt113=1;
}
switch (alt113) {
case 1 :
// CivlCParser.g:1460:4: pragma
{
pushFollow(FOLLOW_pragma_in_statementWithScope9395);
pragma450=pragma();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pragma.add(pragma450.getTree());
}
break;
default :
if ( cnt113 >= 1 ) break loop113;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(113, input);
throw eee;
}
cnt113++;
}
pushFollow(FOLLOW_statement_in_statementWithScope9398);
statement451=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement451.getTree());
// AST REWRITE
// elements: statement, pragma
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1460:22: -> ^( STATEMENT ^( COMPOUND_STATEMENT ABSENT ^( BLOCK_ITEM_LIST ( pragma )+ statement ) ABSENT ) )
{
// CivlCParser.g:1460:25: ^( STATEMENT ^( COMPOUND_STATEMENT ABSENT ^( BLOCK_ITEM_LIST ( pragma )+ statement ) ABSENT ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
// CivlCParser.g:1460:37: ^( COMPOUND_STATEMENT ABSENT ^( BLOCK_ITEM_LIST ( pragma )+ statement ) ABSENT )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(COMPOUND_STATEMENT, "COMPOUND_STATEMENT"), root_2);
adaptor.addChild(root_2, (Object)adaptor.create(ABSENT, "ABSENT"));
// CivlCParser.g:1460:65: ^( BLOCK_ITEM_LIST ( pragma )+ statement )
{
Object root_3 = (Object)adaptor.nil();
root_3 = (Object)adaptor.becomeRoot((Object)adaptor.create(BLOCK_ITEM_LIST, "BLOCK_ITEM_LIST"), root_3);
if ( !(stream_pragma.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_pragma.hasNext() ) {
adaptor.addChild(root_3, stream_pragma.nextTree());
}
stream_pragma.reset();
adaptor.addChild(root_3, stream_statement.nextTree());
adaptor.addChild(root_2, root_3);
}
adaptor.addChild(root_2, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, root_2);
}
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
Symbols_stack.pop();
}
return retval;
}
// $ANTLR end "statementWithScope"
public static class labeledStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "labeledStatement"
// CivlCParser.g:1479:1: labeledStatement : ( IDENTIFIER COLON statement -> ^( IDENTIFIER_LABELED_STATEMENT IDENTIFIER statement ) | CASE constantExpression COLON statement -> ^( CASE_LABELED_STATEMENT CASE constantExpression statement ) | DEFAULT COLON statement -> ^( DEFAULT_LABELED_STATEMENT DEFAULT statement ) );
public final OmpParser_CivlCParser.labeledStatement_return labeledStatement() throws RecognitionException {
OmpParser_CivlCParser.labeledStatement_return retval = new OmpParser_CivlCParser.labeledStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER452=null;
Token COLON453=null;
Token CASE455=null;
Token COLON457=null;
Token DEFAULT459=null;
Token COLON460=null;
ParserRuleReturnScope statement454 =null;
ParserRuleReturnScope constantExpression456 =null;
ParserRuleReturnScope statement458 =null;
ParserRuleReturnScope statement461 =null;
Object IDENTIFIER452_tree=null;
Object COLON453_tree=null;
Object CASE455_tree=null;
Object COLON457_tree=null;
Object DEFAULT459_tree=null;
Object COLON460_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_DEFAULT=new RewriteRuleTokenStream(adaptor,"token DEFAULT");
RewriteRuleTokenStream stream_CASE=new RewriteRuleTokenStream(adaptor,"token CASE");
RewriteRuleSubtreeStream stream_constantExpression=new RewriteRuleSubtreeStream(adaptor,"rule constantExpression");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
try {
// CivlCParser.g:1480:5: ( IDENTIFIER COLON statement -> ^( IDENTIFIER_LABELED_STATEMENT IDENTIFIER statement ) | CASE constantExpression COLON statement -> ^( CASE_LABELED_STATEMENT CASE constantExpression statement ) | DEFAULT COLON statement -> ^( DEFAULT_LABELED_STATEMENT DEFAULT statement ) )
int alt115=3;
switch ( input.LA(1) ) {
case IDENTIFIER:
{
alt115=1;
}
break;
case CASE:
{
alt115=2;
}
break;
case DEFAULT:
{
alt115=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 115, 0, input);
throw nvae;
}
switch (alt115) {
case 1 :
// CivlCParser.g:1480:7: IDENTIFIER COLON statement
{
IDENTIFIER452=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_labeledStatement9437); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER452);
COLON453=(Token)match(input,COLON,FOLLOW_COLON_in_labeledStatement9439); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON453);
pushFollow(FOLLOW_statement_in_labeledStatement9441);
statement454=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement454.getTree());
// AST REWRITE
// elements: IDENTIFIER, statement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1481:7: -> ^( IDENTIFIER_LABELED_STATEMENT IDENTIFIER statement )
{
// CivlCParser.g:1481:10: ^( IDENTIFIER_LABELED_STATEMENT IDENTIFIER statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(IDENTIFIER_LABELED_STATEMENT, "IDENTIFIER_LABELED_STATEMENT"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1482:7: CASE constantExpression COLON statement
{
CASE455=(Token)match(input,CASE,FOLLOW_CASE_in_labeledStatement9465); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CASE.add(CASE455);
pushFollow(FOLLOW_constantExpression_in_labeledStatement9467);
constantExpression456=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression456.getTree());
COLON457=(Token)match(input,COLON,FOLLOW_COLON_in_labeledStatement9469); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON457);
pushFollow(FOLLOW_statement_in_labeledStatement9471);
statement458=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement458.getTree());
// AST REWRITE
// elements: constantExpression, statement, CASE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1483:7: -> ^( CASE_LABELED_STATEMENT CASE constantExpression statement )
{
// CivlCParser.g:1483:10: ^( CASE_LABELED_STATEMENT CASE constantExpression statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CASE_LABELED_STATEMENT, "CASE_LABELED_STATEMENT"), root_1);
adaptor.addChild(root_1, stream_CASE.nextNode());
adaptor.addChild(root_1, stream_constantExpression.nextTree());
adaptor.addChild(root_1, stream_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:1484:7: DEFAULT COLON statement
{
DEFAULT459=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_labeledStatement9497); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DEFAULT.add(DEFAULT459);
COLON460=(Token)match(input,COLON,FOLLOW_COLON_in_labeledStatement9499); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON460);
pushFollow(FOLLOW_statement_in_labeledStatement9501);
statement461=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement461.getTree());
// AST REWRITE
// elements: statement, DEFAULT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1485:7: -> ^( DEFAULT_LABELED_STATEMENT DEFAULT statement )
{
// CivlCParser.g:1485:10: ^( DEFAULT_LABELED_STATEMENT DEFAULT statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DEFAULT_LABELED_STATEMENT, "DEFAULT_LABELED_STATEMENT"), root_1);
adaptor.addChild(root_1, stream_DEFAULT.nextNode());
adaptor.addChild(root_1, stream_statement.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 "labeledStatement"
public static class compoundStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "compoundStatement"
// CivlCParser.g:1494:1: compoundStatement : LCURLY ( RCURLY -> ^( COMPOUND_STATEMENT LCURLY ABSENT RCURLY ) | blockItemList RCURLY -> ^( COMPOUND_STATEMENT LCURLY blockItemList RCURLY ) ) ;
public final OmpParser_CivlCParser.compoundStatement_return compoundStatement() throws RecognitionException {
Symbols_stack.push(new Symbols_scope());
DeclarationScope_stack.push(new DeclarationScope_scope());
OmpParser_CivlCParser.compoundStatement_return retval = new OmpParser_CivlCParser.compoundStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY462=null;
Token RCURLY463=null;
Token RCURLY465=null;
ParserRuleReturnScope blockItemList464 =null;
Object LCURLY462_tree=null;
Object RCURLY463_tree=null;
Object RCURLY465_tree=null;
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_blockItemList=new RewriteRuleSubtreeStream(adaptor,"rule blockItemList");
Symbols_stack.peek().types = new HashSet<String>();
Symbols_stack.peek().enumerationConstants = new HashSet<String>();
Symbols_stack.peek().isFunctionDefinition = false;
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().hasTypeSpec = false;
try {
// CivlCParser.g:1504:5: ( LCURLY ( RCURLY -> ^( COMPOUND_STATEMENT LCURLY ABSENT RCURLY ) | blockItemList RCURLY -> ^( COMPOUND_STATEMENT LCURLY blockItemList RCURLY ) ) )
// CivlCParser.g:1504:7: LCURLY ( RCURLY -> ^( COMPOUND_STATEMENT LCURLY ABSENT RCURLY ) | blockItemList RCURLY -> ^( COMPOUND_STATEMENT LCURLY blockItemList RCURLY ) )
{
LCURLY462=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_compoundStatement9551); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY462);
// CivlCParser.g:1505:7: ( RCURLY -> ^( COMPOUND_STATEMENT LCURLY ABSENT RCURLY ) | blockItemList RCURLY -> ^( COMPOUND_STATEMENT LCURLY blockItemList RCURLY ) )
int alt116=2;
int LA116_0 = input.LA(1);
if ( (LA116_0==RCURLY) ) {
alt116=1;
}
else if ( (LA116_0==AMPERSAND||LA116_0==ANNOTATION_START||LA116_0==CHARACTER_CONSTANT||LA116_0==ELLIPSIS||LA116_0==FLOATING_CONSTANT||(LA116_0 >= IDENTIFIER && LA116_0 <= IF)||LA116_0==INLINE_ANNOTATION_START||LA116_0==INTEGER_CONSTANT||LA116_0==LCURLY||LA116_0==LPAREN||LA116_0==MINUSMINUS||LA116_0==NOT||LA116_0==PLUS||LA116_0==PLUSPLUS||LA116_0==SEMI||LA116_0==STAR||(LA116_0 >= STRING_LITERAL && LA116_0 <= SUB)||LA116_0==TILDE||(LA116_0 >= ABSTRACT && LA116_0 <= ASM)||(LA116_0 >= ATOMIC && LA116_0 <= BIG_O)||(LA116_0 >= BOOL && LA116_0 <= CASE)||(LA116_0 >= CHAR && LA116_0 <= CIVLFOR)||(LA116_0 >= COMPLEX && LA116_0 <= CONST)||(LA116_0 >= CONTINUE && LA116_0 <= DEFAULT)||(LA116_0 >= DERIV && LA116_0 <= DOUBLE)||(LA116_0 >= ENUM && LA116_0 <= EXISTS)||(LA116_0 >= EXTERN && LA116_0 <= FATOMIC)||(LA116_0 >= FLOAT && LA116_0 <= GOTO)||LA116_0==HERE||(LA116_0 >= INLINE && LA116_0 <= INT)||(LA116_0 >= LONG && LA116_0 <= NORETURN)||LA116_0==OUTPUT||LA116_0==PARFOR||(LA116_0 >= PPRAGMA && LA116_0 <= RANGE)||(LA116_0 >= REAL && LA116_0 <= REGISTER)||(LA116_0 >= RESTRICT && LA116_0 <= SELF)||(LA116_0 >= SHARED && LA116_0 <= SYSTEM)||(LA116_0 >= THREADLOCAL && LA116_0 <= WITH)||LA116_0==SUM) ) {
alt116=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 116, 0, input);
throw nvae;
}
switch (alt116) {
case 1 :
// CivlCParser.g:1505:9: RCURLY
{
RCURLY463=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_compoundStatement9561); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY463);
// AST REWRITE
// elements: LCURLY, RCURLY
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1506:9: -> ^( COMPOUND_STATEMENT LCURLY ABSENT RCURLY )
{
// CivlCParser.g:1506:12: ^( COMPOUND_STATEMENT LCURLY ABSENT RCURLY )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COMPOUND_STATEMENT, "COMPOUND_STATEMENT"), root_1);
adaptor.addChild(root_1, stream_LCURLY.nextNode());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_RCURLY.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1507:9: blockItemList RCURLY
{
pushFollow(FOLLOW_blockItemList_in_compoundStatement9591);
blockItemList464=blockItemList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_blockItemList.add(blockItemList464.getTree());
RCURLY465=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_compoundStatement9593); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY465);
// AST REWRITE
// elements: RCURLY, blockItemList, LCURLY
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1508:9: -> ^( COMPOUND_STATEMENT LCURLY blockItemList RCURLY )
{
// CivlCParser.g:1508:12: ^( COMPOUND_STATEMENT LCURLY blockItemList RCURLY )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COMPOUND_STATEMENT, "COMPOUND_STATEMENT"), root_1);
adaptor.addChild(root_1, stream_LCURLY.nextNode());
adaptor.addChild(root_1, stream_blockItemList.nextTree());
adaptor.addChild(root_1, stream_RCURLY.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
Symbols_stack.pop();
DeclarationScope_stack.pop();
}
return retval;
}
// $ANTLR end "compoundStatement"
public static class blockItemList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "blockItemList"
// CivlCParser.g:1513:1: blockItemList : ( blockItem )+ -> ^( BLOCK_ITEM_LIST ( blockItem )+ ) ;
public final OmpParser_CivlCParser.blockItemList_return blockItemList() throws RecognitionException {
OmpParser_CivlCParser.blockItemList_return retval = new OmpParser_CivlCParser.blockItemList_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope blockItem466 =null;
RewriteRuleSubtreeStream stream_blockItem=new RewriteRuleSubtreeStream(adaptor,"rule blockItem");
try {
// CivlCParser.g:1514:5: ( ( blockItem )+ -> ^( BLOCK_ITEM_LIST ( blockItem )+ ) )
// CivlCParser.g:1514:7: ( blockItem )+
{
// CivlCParser.g:1514:7: ( blockItem )+
int cnt117=0;
loop117:
while (true) {
int alt117=2;
int LA117_0 = input.LA(1);
if ( (LA117_0==AMPERSAND||LA117_0==ANNOTATION_START||LA117_0==CHARACTER_CONSTANT||LA117_0==ELLIPSIS||LA117_0==FLOATING_CONSTANT||(LA117_0 >= IDENTIFIER && LA117_0 <= IF)||LA117_0==INLINE_ANNOTATION_START||LA117_0==INTEGER_CONSTANT||LA117_0==LCURLY||LA117_0==LPAREN||LA117_0==MINUSMINUS||LA117_0==NOT||LA117_0==PLUS||LA117_0==PLUSPLUS||LA117_0==SEMI||LA117_0==STAR||(LA117_0 >= STRING_LITERAL && LA117_0 <= SUB)||LA117_0==TILDE||(LA117_0 >= ABSTRACT && LA117_0 <= ASM)||(LA117_0 >= ATOMIC && LA117_0 <= BIG_O)||(LA117_0 >= BOOL && LA117_0 <= CASE)||(LA117_0 >= CHAR && LA117_0 <= CIVLFOR)||(LA117_0 >= COMPLEX && LA117_0 <= CONST)||(LA117_0 >= CONTINUE && LA117_0 <= DEFAULT)||(LA117_0 >= DERIV && LA117_0 <= DOUBLE)||(LA117_0 >= ENUM && LA117_0 <= EXISTS)||(LA117_0 >= EXTERN && LA117_0 <= FATOMIC)||(LA117_0 >= FLOAT && LA117_0 <= GOTO)||LA117_0==HERE||(LA117_0 >= INLINE && LA117_0 <= INT)||(LA117_0 >= LONG && LA117_0 <= NORETURN)||LA117_0==OUTPUT||LA117_0==PARFOR||(LA117_0 >= PPRAGMA && LA117_0 <= RANGE)||(LA117_0 >= REAL && LA117_0 <= REGISTER)||(LA117_0 >= RESTRICT && LA117_0 <= SELF)||(LA117_0 >= SHARED && LA117_0 <= SYSTEM)||(LA117_0 >= THREADLOCAL && LA117_0 <= WITH)||LA117_0==SUM) ) {
alt117=1;
}
switch (alt117) {
case 1 :
// CivlCParser.g:1514:7: blockItem
{
pushFollow(FOLLOW_blockItem_in_blockItemList9640);
blockItem466=blockItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_blockItem.add(blockItem466.getTree());
}
break;
default :
if ( cnt117 >= 1 ) break loop117;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(117, input);
throw eee;
}
cnt117++;
}
// AST REWRITE
// elements: blockItem
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1514:18: -> ^( BLOCK_ITEM_LIST ( blockItem )+ )
{
// CivlCParser.g:1514:21: ^( BLOCK_ITEM_LIST ( blockItem )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BLOCK_ITEM_LIST, "BLOCK_ITEM_LIST"), root_1);
if ( !(stream_blockItem.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_blockItem.hasNext() ) {
adaptor.addChild(root_1, stream_blockItem.nextTree());
}
stream_blockItem.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 "blockItemList"
public static class expressionStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "expressionStatement"
// CivlCParser.g:1522:1: expressionStatement : ( expression SEMI -> ^( EXPRESSION_STATEMENT expression SEMI ) | SEMI -> ^( EXPRESSION_STATEMENT ABSENT SEMI ) );
public final OmpParser_CivlCParser.expressionStatement_return expressionStatement() throws RecognitionException {
OmpParser_CivlCParser.expressionStatement_return retval = new OmpParser_CivlCParser.expressionStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI468=null;
Token SEMI469=null;
ParserRuleReturnScope expression467 =null;
Object SEMI468_tree=null;
Object SEMI469_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
try {
// CivlCParser.g:1523:5: ( expression SEMI -> ^( EXPRESSION_STATEMENT expression SEMI ) | SEMI -> ^( EXPRESSION_STATEMENT ABSENT SEMI ) )
int alt118=2;
int LA118_0 = input.LA(1);
if ( (LA118_0==AMPERSAND||LA118_0==CHARACTER_CONSTANT||LA118_0==ELLIPSIS||LA118_0==FLOATING_CONSTANT||LA118_0==IDENTIFIER||LA118_0==INTEGER_CONSTANT||LA118_0==LPAREN||LA118_0==MINUSMINUS||LA118_0==NOT||LA118_0==PLUS||LA118_0==PLUSPLUS||LA118_0==STAR||(LA118_0 >= STRING_LITERAL && LA118_0 <= SUB)||LA118_0==TILDE||LA118_0==ALIGNOF||LA118_0==BIG_O||LA118_0==CALLS||LA118_0==DERIV||LA118_0==EXISTS||(LA118_0 >= FORALL && LA118_0 <= GENERIC)||LA118_0==HERE||LA118_0==PROCNULL||LA118_0==RESULT||(LA118_0 >= SCOPEOF && LA118_0 <= SELF)||(LA118_0 >= SIZEOF && LA118_0 <= SPAWN)||LA118_0==STATE_NULL||LA118_0==UNIFORM||LA118_0==VALUE_AT||LA118_0==SUM) ) {
alt118=1;
}
else if ( (LA118_0==SEMI) ) {
alt118=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 118, 0, input);
throw nvae;
}
switch (alt118) {
case 1 :
// CivlCParser.g:1523:7: expression SEMI
{
pushFollow(FOLLOW_expression_in_expressionStatement9669);
expression467=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression467.getTree());
SEMI468=(Token)match(input,SEMI,FOLLOW_SEMI_in_expressionStatement9671); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI468);
// AST REWRITE
// elements: SEMI, 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();
// 1523:23: -> ^( EXPRESSION_STATEMENT expression SEMI )
{
// CivlCParser.g:1523:26: ^( EXPRESSION_STATEMENT expression SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXPRESSION_STATEMENT, "EXPRESSION_STATEMENT"), root_1);
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_1, stream_SEMI.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1524:7: SEMI
{
SEMI469=(Token)match(input,SEMI,FOLLOW_SEMI_in_expressionStatement9689); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI469);
// AST REWRITE
// elements: SEMI
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1524:12: -> ^( EXPRESSION_STATEMENT ABSENT SEMI )
{
// CivlCParser.g:1524:15: ^( EXPRESSION_STATEMENT ABSENT SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXPRESSION_STATEMENT, "EXPRESSION_STATEMENT"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_1, stream_SEMI.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 "expressionStatement"
public static class selectionStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "selectionStatement"
// CivlCParser.g:1539:1: selectionStatement : ( IF LPAREN expression RPAREN s1= statementWithScope ( ( ELSE )=> ELSE s2= statementWithScope -> ^( IF expression $s1 $s2) | -> ^( IF expression $s1 ABSENT ) ) | SWITCH LPAREN expression RPAREN s= statementWithScope -> ^( SWITCH expression $s) );
public final OmpParser_CivlCParser.selectionStatement_return selectionStatement() throws RecognitionException {
Symbols_stack.push(new Symbols_scope());
OmpParser_CivlCParser.selectionStatement_return retval = new OmpParser_CivlCParser.selectionStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IF470=null;
Token LPAREN471=null;
Token RPAREN473=null;
Token ELSE474=null;
Token SWITCH475=null;
Token LPAREN476=null;
Token RPAREN478=null;
ParserRuleReturnScope s1 =null;
ParserRuleReturnScope s2 =null;
ParserRuleReturnScope s =null;
ParserRuleReturnScope expression472 =null;
ParserRuleReturnScope expression477 =null;
Object IF470_tree=null;
Object LPAREN471_tree=null;
Object RPAREN473_tree=null;
Object ELSE474_tree=null;
Object SWITCH475_tree=null;
Object LPAREN476_tree=null;
Object RPAREN478_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_ELSE=new RewriteRuleTokenStream(adaptor,"token ELSE");
RewriteRuleTokenStream stream_SWITCH=new RewriteRuleTokenStream(adaptor,"token SWITCH");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_IF=new RewriteRuleTokenStream(adaptor,"token IF");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_statementWithScope=new RewriteRuleSubtreeStream(adaptor,"rule statementWithScope");
Symbols_stack.peek().types = new HashSet<String>();
Symbols_stack.peek().enumerationConstants = new HashSet<String>();
Symbols_stack.peek().isFunctionDefinition = false;
try {
// CivlCParser.g:1546:5: ( IF LPAREN expression RPAREN s1= statementWithScope ( ( ELSE )=> ELSE s2= statementWithScope -> ^( IF expression $s1 $s2) | -> ^( IF expression $s1 ABSENT ) ) | SWITCH LPAREN expression RPAREN s= statementWithScope -> ^( SWITCH expression $s) )
int alt120=2;
int LA120_0 = input.LA(1);
if ( (LA120_0==IF) ) {
alt120=1;
}
else if ( (LA120_0==SWITCH) ) {
alt120=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 120, 0, input);
throw nvae;
}
switch (alt120) {
case 1 :
// CivlCParser.g:1546:7: IF LPAREN expression RPAREN s1= statementWithScope ( ( ELSE )=> ELSE s2= statementWithScope -> ^( IF expression $s1 $s2) | -> ^( IF expression $s1 ABSENT ) )
{
IF470=(Token)match(input,IF,FOLLOW_IF_in_selectionStatement9728); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IF.add(IF470);
LPAREN471=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_selectionStatement9730); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN471);
pushFollow(FOLLOW_expression_in_selectionStatement9732);
expression472=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression472.getTree());
RPAREN473=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_selectionStatement9734); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN473);
pushFollow(FOLLOW_statementWithScope_in_selectionStatement9738);
s1=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s1.getTree());
// CivlCParser.g:1547:9: ( ( ELSE )=> ELSE s2= statementWithScope -> ^( IF expression $s1 $s2) | -> ^( IF expression $s1 ABSENT ) )
int alt119=2;
int LA119_0 = input.LA(1);
if ( (LA119_0==ELSE) ) {
int LA119_1 = input.LA(2);
if ( (synpred30_CivlCParser()) ) {
alt119=1;
}
else if ( (true) ) {
alt119=2;
}
}
else if ( (LA119_0==EOF||LA119_0==AMPERSAND||LA119_0==ANNOTATION_START||LA119_0==CHARACTER_CONSTANT||LA119_0==ELLIPSIS||LA119_0==FLOATING_CONSTANT||(LA119_0 >= IDENTIFIER && LA119_0 <= IF)||LA119_0==INLINE_ANNOTATION_START||LA119_0==INTEGER_CONSTANT||LA119_0==LCURLY||LA119_0==LPAREN||LA119_0==MINUSMINUS||LA119_0==NOT||LA119_0==PLUS||LA119_0==PLUSPLUS||LA119_0==RCURLY||LA119_0==SEMI||LA119_0==STAR||(LA119_0 >= STRING_LITERAL && LA119_0 <= SUB)||LA119_0==TILDE||(LA119_0 >= ABSTRACT && LA119_0 <= ASM)||(LA119_0 >= ATOMIC && LA119_0 <= BIG_O)||(LA119_0 >= BOOL && LA119_0 <= CASE)||(LA119_0 >= CHAR && LA119_0 <= CIVLFOR)||(LA119_0 >= COMPLEX && LA119_0 <= CONST)||(LA119_0 >= CONTINUE && LA119_0 <= DEFAULT)||(LA119_0 >= DERIV && LA119_0 <= DOUBLE)||(LA119_0 >= ENUM && LA119_0 <= EXISTS)||(LA119_0 >= EXTERN && LA119_0 <= FATOMIC)||(LA119_0 >= FLOAT && LA119_0 <= GOTO)||LA119_0==HERE||(LA119_0 >= INLINE && LA119_0 <= INT)||(LA119_0 >= LONG && LA119_0 <= NORETURN)||LA119_0==OUTPUT||LA119_0==PARFOR||(LA119_0 >= PPRAGMA && LA119_0 <= RANGE)||(LA119_0 >= REAL && LA119_0 <= REGISTER)||(LA119_0 >= RESTRICT && LA119_0 <= SELF)||(LA119_0 >= SHARED && LA119_0 <= SYSTEM)||(LA119_0 >= THREADLOCAL && LA119_0 <= WITH)||LA119_0==SUM) ) {
alt119=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 119, 0, input);
throw nvae;
}
switch (alt119) {
case 1 :
// CivlCParser.g:1547:11: ( ELSE )=> ELSE s2= statementWithScope
{
ELSE474=(Token)match(input,ELSE,FOLLOW_ELSE_in_selectionStatement9755); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ELSE.add(ELSE474);
pushFollow(FOLLOW_statementWithScope_in_selectionStatement9759);
s2=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s2.getTree());
// AST REWRITE
// elements: expression, IF, s2, s1
// token labels:
// rule labels: s1, retval, s2
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_s1=new RewriteRuleSubtreeStream(adaptor,"rule s1",s1!=null?s1.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
RewriteRuleSubtreeStream stream_s2=new RewriteRuleSubtreeStream(adaptor,"rule s2",s2!=null?s2.getTree():null);
root_0 = (Object)adaptor.nil();
// 1548:11: -> ^( IF expression $s1 $s2)
{
// CivlCParser.g:1548:14: ^( IF expression $s1 $s2)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_IF.nextNode(), root_1);
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_1, stream_s1.nextTree());
adaptor.addChild(root_1, stream_s2.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1549:11:
{
// AST REWRITE
// elements: s1, IF, expression
// token labels:
// rule labels: s1, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_s1=new RewriteRuleSubtreeStream(adaptor,"rule s1",s1!=null?s1.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1549:11: -> ^( IF expression $s1 ABSENT )
{
// CivlCParser.g:1549:14: ^( IF expression $s1 ABSENT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_IF.nextNode(), root_1);
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_1, stream_s1.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
}
break;
case 2 :
// CivlCParser.g:1551:7: SWITCH LPAREN expression RPAREN s= statementWithScope
{
SWITCH475=(Token)match(input,SWITCH,FOLLOW_SWITCH_in_selectionStatement9824); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SWITCH.add(SWITCH475);
LPAREN476=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_selectionStatement9826); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN476);
pushFollow(FOLLOW_expression_in_selectionStatement9828);
expression477=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression477.getTree());
RPAREN478=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_selectionStatement9830); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN478);
pushFollow(FOLLOW_statementWithScope_in_selectionStatement9834);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: expression, s, SWITCH
// token labels:
// rule labels: s, 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_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1552:7: -> ^( SWITCH expression $s)
{
// CivlCParser.g:1552:10: ^( SWITCH expression $s)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_SWITCH.nextNode(), root_1);
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_1, stream_s.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
Symbols_stack.pop();
}
return retval;
}
// $ANTLR end "selectionStatement"
public static class iterationStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "iterationStatement"
// CivlCParser.g:1574:1: iterationStatement : ( WHILE LPAREN expression RPAREN invariant_opt s= statementWithScope -> ^( WHILE expression $s invariant_opt ) | DO s= statementWithScope WHILE LPAREN expression RPAREN invariant_opt SEMI -> ^( DO $s expression invariant_opt ) | FOR LPAREN (d= declaration e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope -> ^( FOR $d $e1 $e2 $s $i) |e0= expression_opt SEMI e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope -> ^( FOR $e0 $e1 $e2 $s $i) ) | (f= CIVLFOR |f= PARFOR ) LPAREN t= typeName_opt v= identifierList COLON e= expression RPAREN i= invariant_opt s= statementWithScope -> ^( $f $t $v $e $s $i) );
public final OmpParser_CivlCParser.iterationStatement_return iterationStatement() throws RecognitionException {
Symbols_stack.push(new Symbols_scope());
OmpParser_CivlCParser.iterationStatement_return retval = new OmpParser_CivlCParser.iterationStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token f=null;
Token WHILE479=null;
Token LPAREN480=null;
Token RPAREN482=null;
Token DO484=null;
Token WHILE485=null;
Token LPAREN486=null;
Token RPAREN488=null;
Token SEMI490=null;
Token FOR491=null;
Token LPAREN492=null;
Token SEMI493=null;
Token RPAREN494=null;
Token SEMI495=null;
Token SEMI496=null;
Token RPAREN497=null;
Token LPAREN498=null;
Token COLON499=null;
Token RPAREN500=null;
ParserRuleReturnScope s =null;
ParserRuleReturnScope d =null;
ParserRuleReturnScope e1 =null;
ParserRuleReturnScope e2 =null;
ParserRuleReturnScope i =null;
ParserRuleReturnScope e0 =null;
ParserRuleReturnScope t =null;
ParserRuleReturnScope v =null;
ParserRuleReturnScope e =null;
ParserRuleReturnScope expression481 =null;
ParserRuleReturnScope invariant_opt483 =null;
ParserRuleReturnScope expression487 =null;
ParserRuleReturnScope invariant_opt489 =null;
Object f_tree=null;
Object WHILE479_tree=null;
Object LPAREN480_tree=null;
Object RPAREN482_tree=null;
Object DO484_tree=null;
Object WHILE485_tree=null;
Object LPAREN486_tree=null;
Object RPAREN488_tree=null;
Object SEMI490_tree=null;
Object FOR491_tree=null;
Object LPAREN492_tree=null;
Object SEMI493_tree=null;
Object RPAREN494_tree=null;
Object SEMI495_tree=null;
Object SEMI496_tree=null;
Object RPAREN497_tree=null;
Object LPAREN498_tree=null;
Object COLON499_tree=null;
Object RPAREN500_tree=null;
RewriteRuleTokenStream stream_PARFOR=new RewriteRuleTokenStream(adaptor,"token PARFOR");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_FOR=new RewriteRuleTokenStream(adaptor,"token FOR");
RewriteRuleTokenStream stream_WHILE=new RewriteRuleTokenStream(adaptor,"token WHILE");
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_DO=new RewriteRuleTokenStream(adaptor,"token DO");
RewriteRuleTokenStream stream_CIVLFOR=new RewriteRuleTokenStream(adaptor,"token CIVLFOR");
RewriteRuleSubtreeStream stream_expression_opt=new RewriteRuleSubtreeStream(adaptor,"rule expression_opt");
RewriteRuleSubtreeStream stream_invariant_opt=new RewriteRuleSubtreeStream(adaptor,"rule invariant_opt");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_identifierList=new RewriteRuleSubtreeStream(adaptor,"rule identifierList");
RewriteRuleSubtreeStream stream_typeName_opt=new RewriteRuleSubtreeStream(adaptor,"rule typeName_opt");
RewriteRuleSubtreeStream stream_statementWithScope=new RewriteRuleSubtreeStream(adaptor,"rule statementWithScope");
RewriteRuleSubtreeStream stream_declaration=new RewriteRuleSubtreeStream(adaptor,"rule declaration");
Symbols_stack.peek().types = new HashSet<String>();
Symbols_stack.peek().enumerationConstants = new HashSet<String>();
Symbols_stack.peek().isFunctionDefinition = false;
try {
// CivlCParser.g:1581:2: ( WHILE LPAREN expression RPAREN invariant_opt s= statementWithScope -> ^( WHILE expression $s invariant_opt ) | DO s= statementWithScope WHILE LPAREN expression RPAREN invariant_opt SEMI -> ^( DO $s expression invariant_opt ) | FOR LPAREN (d= declaration e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope -> ^( FOR $d $e1 $e2 $s $i) |e0= expression_opt SEMI e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope -> ^( FOR $e0 $e1 $e2 $s $i) ) | (f= CIVLFOR |f= PARFOR ) LPAREN t= typeName_opt v= identifierList COLON e= expression RPAREN i= invariant_opt s= statementWithScope -> ^( $f $t $v $e $s $i) )
int alt123=4;
switch ( input.LA(1) ) {
case WHILE:
{
alt123=1;
}
break;
case DO:
{
alt123=2;
}
break;
case FOR:
{
alt123=3;
}
break;
case CIVLFOR:
case PARFOR:
{
alt123=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 123, 0, input);
throw nvae;
}
switch (alt123) {
case 1 :
// CivlCParser.g:1581:4: WHILE LPAREN expression RPAREN invariant_opt s= statementWithScope
{
WHILE479=(Token)match(input,WHILE,FOLLOW_WHILE_in_iterationStatement9877); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WHILE.add(WHILE479);
LPAREN480=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_iterationStatement9879); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN480);
pushFollow(FOLLOW_expression_in_iterationStatement9881);
expression481=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression481.getTree());
RPAREN482=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_iterationStatement9883); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN482);
pushFollow(FOLLOW_invariant_opt_in_iterationStatement9885);
invariant_opt483=invariant_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_opt.add(invariant_opt483.getTree());
pushFollow(FOLLOW_statementWithScope_in_iterationStatement9892);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: WHILE, s, invariant_opt, expression
// token labels:
// rule labels: s, 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_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1583:4: -> ^( WHILE expression $s invariant_opt )
{
// CivlCParser.g:1583:7: ^( WHILE expression $s invariant_opt )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_WHILE.nextNode(), root_1);
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_1, stream_s.nextTree());
adaptor.addChild(root_1, stream_invariant_opt.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1584:4: DO s= statementWithScope WHILE LPAREN expression RPAREN invariant_opt SEMI
{
DO484=(Token)match(input,DO,FOLLOW_DO_in_iterationStatement9913); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DO.add(DO484);
pushFollow(FOLLOW_statementWithScope_in_iterationStatement9917);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
WHILE485=(Token)match(input,WHILE,FOLLOW_WHILE_in_iterationStatement9919); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WHILE.add(WHILE485);
LPAREN486=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_iterationStatement9921); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN486);
pushFollow(FOLLOW_expression_in_iterationStatement9923);
expression487=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression487.getTree());
RPAREN488=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_iterationStatement9925); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN488);
pushFollow(FOLLOW_invariant_opt_in_iterationStatement9930);
invariant_opt489=invariant_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_opt.add(invariant_opt489.getTree());
SEMI490=(Token)match(input,SEMI,FOLLOW_SEMI_in_iterationStatement9932); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI490);
// AST REWRITE
// elements: expression, DO, invariant_opt, s
// token labels:
// rule labels: s, 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_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1586:4: -> ^( DO $s expression invariant_opt )
{
// CivlCParser.g:1586:7: ^( DO $s expression invariant_opt )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_DO.nextNode(), root_1);
adaptor.addChild(root_1, stream_s.nextTree());
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_1, stream_invariant_opt.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:1587:4: FOR LPAREN (d= declaration e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope -> ^( FOR $d $e1 $e2 $s $i) |e0= expression_opt SEMI e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope -> ^( FOR $e0 $e1 $e2 $s $i) )
{
FOR491=(Token)match(input,FOR,FOLLOW_FOR_in_iterationStatement9953); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FOR.add(FOR491);
LPAREN492=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_iterationStatement9955); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN492);
// CivlCParser.g:1588:4: (d= declaration e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope -> ^( FOR $d $e1 $e2 $s $i) |e0= expression_opt SEMI e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope -> ^( FOR $e0 $e1 $e2 $s $i) )
int alt121=2;
alt121 = dfa121.predict(input);
switch (alt121) {
case 1 :
// CivlCParser.g:1589:6: d= declaration e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope
{
pushFollow(FOLLOW_declaration_in_iterationStatement9969);
d=declaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration.add(d.getTree());
pushFollow(FOLLOW_expression_opt_in_iterationStatement9973);
e1=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(e1.getTree());
SEMI493=(Token)match(input,SEMI,FOLLOW_SEMI_in_iterationStatement9975); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI493);
pushFollow(FOLLOW_expression_opt_in_iterationStatement9979);
e2=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(e2.getTree());
RPAREN494=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_iterationStatement9986); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN494);
pushFollow(FOLLOW_invariant_opt_in_iterationStatement9990);
i=invariant_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_opt.add(i.getTree());
pushFollow(FOLLOW_statementWithScope_in_iterationStatement9994);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: e1, FOR, s, e2, i, d
// token labels:
// rule labels: s, d, i, e1, e2, 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_d=new RewriteRuleSubtreeStream(adaptor,"rule d",d!=null?d.getTree():null);
RewriteRuleSubtreeStream stream_i=new RewriteRuleSubtreeStream(adaptor,"rule i",i!=null?i.getTree():null);
RewriteRuleSubtreeStream stream_e1=new RewriteRuleSubtreeStream(adaptor,"rule e1",e1!=null?e1.getTree():null);
RewriteRuleSubtreeStream stream_e2=new RewriteRuleSubtreeStream(adaptor,"rule e2",e2!=null?e2.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1591:6: -> ^( FOR $d $e1 $e2 $s $i)
{
// CivlCParser.g:1591:9: ^( FOR $d $e1 $e2 $s $i)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_FOR.nextNode(), root_1);
adaptor.addChild(root_1, stream_d.nextTree());
adaptor.addChild(root_1, stream_e1.nextTree());
adaptor.addChild(root_1, stream_e2.nextTree());
adaptor.addChild(root_1, stream_s.nextTree());
adaptor.addChild(root_1, stream_i.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1592:6: e0= expression_opt SEMI e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope
{
pushFollow(FOLLOW_expression_opt_in_iterationStatement10029);
e0=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(e0.getTree());
SEMI495=(Token)match(input,SEMI,FOLLOW_SEMI_in_iterationStatement10031); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI495);
pushFollow(FOLLOW_expression_opt_in_iterationStatement10035);
e1=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(e1.getTree());
SEMI496=(Token)match(input,SEMI,FOLLOW_SEMI_in_iterationStatement10037); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI496);
pushFollow(FOLLOW_expression_opt_in_iterationStatement10046);
e2=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(e2.getTree());
RPAREN497=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_iterationStatement10048); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN497);
pushFollow(FOLLOW_invariant_opt_in_iterationStatement10052);
i=invariant_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_opt.add(i.getTree());
pushFollow(FOLLOW_statementWithScope_in_iterationStatement10061);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: s, e0, i, e1, FOR, e2
// token labels:
// rule labels: s, i, e0, e1, e2, 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_i=new RewriteRuleSubtreeStream(adaptor,"rule i",i!=null?i.getTree():null);
RewriteRuleSubtreeStream stream_e0=new RewriteRuleSubtreeStream(adaptor,"rule e0",e0!=null?e0.getTree():null);
RewriteRuleSubtreeStream stream_e1=new RewriteRuleSubtreeStream(adaptor,"rule e1",e1!=null?e1.getTree():null);
RewriteRuleSubtreeStream stream_e2=new RewriteRuleSubtreeStream(adaptor,"rule e2",e2!=null?e2.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1595:6: -> ^( FOR $e0 $e1 $e2 $s $i)
{
// CivlCParser.g:1595:9: ^( FOR $e0 $e1 $e2 $s $i)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_FOR.nextNode(), root_1);
adaptor.addChild(root_1, stream_e0.nextTree());
adaptor.addChild(root_1, stream_e1.nextTree());
adaptor.addChild(root_1, stream_e2.nextTree());
adaptor.addChild(root_1, stream_s.nextTree());
adaptor.addChild(root_1, stream_i.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
}
break;
case 4 :
// CivlCParser.g:1597:4: (f= CIVLFOR |f= PARFOR ) LPAREN t= typeName_opt v= identifierList COLON e= expression RPAREN i= invariant_opt s= statementWithScope
{
// CivlCParser.g:1597:4: (f= CIVLFOR |f= PARFOR )
int alt122=2;
int LA122_0 = input.LA(1);
if ( (LA122_0==CIVLFOR) ) {
alt122=1;
}
else if ( (LA122_0==PARFOR) ) {
alt122=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 122, 0, input);
throw nvae;
}
switch (alt122) {
case 1 :
// CivlCParser.g:1597:5: f= CIVLFOR
{
f=(Token)match(input,CIVLFOR,FOLLOW_CIVLFOR_in_iterationStatement10100); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CIVLFOR.add(f);
}
break;
case 2 :
// CivlCParser.g:1597:17: f= PARFOR
{
f=(Token)match(input,PARFOR,FOLLOW_PARFOR_in_iterationStatement10106); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PARFOR.add(f);
}
break;
}
LPAREN498=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_iterationStatement10109); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN498);
pushFollow(FOLLOW_typeName_opt_in_iterationStatement10118);
t=typeName_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName_opt.add(t.getTree());
pushFollow(FOLLOW_identifierList_in_iterationStatement10122);
v=identifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_identifierList.add(v.getTree());
COLON499=(Token)match(input,COLON,FOLLOW_COLON_in_iterationStatement10124); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON499);
pushFollow(FOLLOW_expression_in_iterationStatement10128);
e=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(e.getTree());
RPAREN500=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_iterationStatement10130); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN500);
pushFollow(FOLLOW_invariant_opt_in_iterationStatement10139);
i=invariant_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_opt.add(i.getTree());
pushFollow(FOLLOW_statementWithScope_in_iterationStatement10143);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: i, e, t, v, s, f
// token labels: f
// rule labels: s, t, e, v, i, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleTokenStream stream_f=new RewriteRuleTokenStream(adaptor,"token f",f);
RewriteRuleSubtreeStream stream_s=new RewriteRuleSubtreeStream(adaptor,"rule s",s!=null?s.getTree():null);
RewriteRuleSubtreeStream stream_t=new RewriteRuleSubtreeStream(adaptor,"rule t",t!=null?t.getTree():null);
RewriteRuleSubtreeStream stream_e=new RewriteRuleSubtreeStream(adaptor,"rule e",e!=null?e.getTree():null);
RewriteRuleSubtreeStream stream_v=new RewriteRuleSubtreeStream(adaptor,"rule v",v!=null?v.getTree():null);
RewriteRuleSubtreeStream stream_i=new RewriteRuleSubtreeStream(adaptor,"rule i",i!=null?i.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1600:6: -> ^( $f $t $v $e $s $i)
{
// CivlCParser.g:1600:9: ^( $f $t $v $e $s $i)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_f.nextNode(), root_1);
adaptor.addChild(root_1, stream_t.nextTree());
adaptor.addChild(root_1, stream_v.nextTree());
adaptor.addChild(root_1, stream_e.nextTree());
adaptor.addChild(root_1, stream_s.nextTree());
adaptor.addChild(root_1, stream_i.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
Symbols_stack.pop();
}
return retval;
}
// $ANTLR end "iterationStatement"
public static class expression_opt_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "expression_opt"
// CivlCParser.g:1603:1: expression_opt : ( expression | -> ABSENT );
public final OmpParser_CivlCParser.expression_opt_return expression_opt() throws RecognitionException {
OmpParser_CivlCParser.expression_opt_return retval = new OmpParser_CivlCParser.expression_opt_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope expression501 =null;
try {
// CivlCParser.g:1604:2: ( expression | -> ABSENT )
int alt124=2;
int LA124_0 = input.LA(1);
if ( (LA124_0==AMPERSAND||LA124_0==CHARACTER_CONSTANT||LA124_0==ELLIPSIS||LA124_0==FLOATING_CONSTANT||LA124_0==IDENTIFIER||LA124_0==INTEGER_CONSTANT||LA124_0==LPAREN||LA124_0==MINUSMINUS||LA124_0==NOT||LA124_0==PLUS||LA124_0==PLUSPLUS||LA124_0==STAR||(LA124_0 >= STRING_LITERAL && LA124_0 <= SUB)||LA124_0==TILDE||LA124_0==ALIGNOF||LA124_0==BIG_O||LA124_0==CALLS||LA124_0==DERIV||LA124_0==EXISTS||(LA124_0 >= FORALL && LA124_0 <= GENERIC)||LA124_0==HERE||LA124_0==PROCNULL||LA124_0==RESULT||(LA124_0 >= SCOPEOF && LA124_0 <= SELF)||(LA124_0 >= SIZEOF && LA124_0 <= SPAWN)||LA124_0==STATE_NULL||LA124_0==UNIFORM||LA124_0==VALUE_AT||LA124_0==SUM) ) {
alt124=1;
}
else if ( (LA124_0==RPAREN||LA124_0==SEMI) ) {
alt124=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 124, 0, input);
throw nvae;
}
switch (alt124) {
case 1 :
// CivlCParser.g:1604:4: expression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expression_in_expression_opt10181);
expression501=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression501.getTree());
}
break;
case 2 :
// CivlCParser.g:1605: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();
// 1605:4: -> 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 "expression_opt"
public static class invariant_opt_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "invariant_opt"
// CivlCParser.g:1608:1: invariant_opt : ( -> ABSENT | INVARIANT LPAREN expression RPAREN -> ^( INVARIANT expression ) );
public final OmpParser_CivlCParser.invariant_opt_return invariant_opt() throws RecognitionException {
OmpParser_CivlCParser.invariant_opt_return retval = new OmpParser_CivlCParser.invariant_opt_return();
retval.start = input.LT(1);
Object root_0 = null;
Token INVARIANT502=null;
Token LPAREN503=null;
Token RPAREN505=null;
ParserRuleReturnScope expression504 =null;
Object INVARIANT502_tree=null;
Object LPAREN503_tree=null;
Object RPAREN505_tree=null;
RewriteRuleTokenStream stream_INVARIANT=new RewriteRuleTokenStream(adaptor,"token INVARIANT");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
try {
// CivlCParser.g:1609:2: ( -> ABSENT | INVARIANT LPAREN expression RPAREN -> ^( INVARIANT expression ) )
int alt125=2;
int LA125_0 = input.LA(1);
if ( (LA125_0==AMPERSAND||LA125_0==CHARACTER_CONSTANT||LA125_0==ELLIPSIS||LA125_0==FLOATING_CONSTANT||(LA125_0 >= IDENTIFIER && LA125_0 <= IF)||LA125_0==INTEGER_CONSTANT||LA125_0==LCURLY||LA125_0==LPAREN||LA125_0==MINUSMINUS||LA125_0==NOT||LA125_0==PLUS||LA125_0==PLUSPLUS||LA125_0==SEMI||LA125_0==STAR||(LA125_0 >= STRING_LITERAL && LA125_0 <= SUB)||LA125_0==TILDE||(LA125_0 >= ALIGNOF && LA125_0 <= ASM)||LA125_0==BIG_O||(LA125_0 >= BREAK && LA125_0 <= CASE)||(LA125_0 >= CHOOSE && LA125_0 <= CIVLFOR)||(LA125_0 >= CONTINUE && LA125_0 <= DEFAULT)||LA125_0==DERIV||LA125_0==DO||LA125_0==EXISTS||(LA125_0 >= FOR && LA125_0 <= GENERIC)||LA125_0==GOTO||LA125_0==HERE||LA125_0==PARFOR||(LA125_0 >= PPRAGMA && LA125_0 <= PROCNULL)||(LA125_0 >= RESULT && LA125_0 <= SELF)||(LA125_0 >= SIZEOF && LA125_0 <= SPAWN)||LA125_0==STATE_NULL||LA125_0==SWITCH||LA125_0==UNIFORM||(LA125_0 >= UPDATE && LA125_0 <= VALUE_AT)||(LA125_0 >= WHEN && LA125_0 <= WITH)||LA125_0==SUM) ) {
alt125=1;
}
else if ( (LA125_0==INVARIANT) ) {
alt125=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 125, 0, input);
throw nvae;
}
switch (alt125) {
case 1 :
// CivlCParser.g:1609: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();
// 1609:4: -> ABSENT
{
adaptor.addChild(root_0, (Object)adaptor.create(ABSENT, "ABSENT"));
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1610:4: INVARIANT LPAREN expression RPAREN
{
INVARIANT502=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_invariant_opt10206); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT502);
LPAREN503=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_invariant_opt10208); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN503);
pushFollow(FOLLOW_expression_in_invariant_opt10210);
expression504=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression504.getTree());
RPAREN505=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_invariant_opt10212); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN505);
// AST REWRITE
// elements: expression, 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();
// 1611:3: -> ^( INVARIANT expression )
{
// CivlCParser.g:1611:6: ^( INVARIANT expression )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_INVARIANT.nextNode(), root_1);
adaptor.addChild(root_1, stream_expression.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 "invariant_opt"
public static class typeName_opt_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "typeName_opt"
// CivlCParser.g:1614:1: typeName_opt : ( typeName | -> ABSENT );
public final OmpParser_CivlCParser.typeName_opt_return typeName_opt() throws RecognitionException {
OmpParser_CivlCParser.typeName_opt_return retval = new OmpParser_CivlCParser.typeName_opt_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope typeName506 =null;
try {
// CivlCParser.g:1615:2: ( typeName | -> ABSENT )
int alt126=2;
int LA126_0 = input.LA(1);
if ( (LA126_0==ATOMIC||LA126_0==BOOL||LA126_0==CHAR||(LA126_0 >= COMPLEX && LA126_0 <= CONST)||(LA126_0 >= DOMAIN && LA126_0 <= DOUBLE)||LA126_0==ENUM||LA126_0==FLOAT||(LA126_0 >= INPUT && LA126_0 <= INT)||(LA126_0 >= LONG && LA126_0 <= MEM_TYPE)||LA126_0==OUTPUT||LA126_0==RANGE||LA126_0==REAL||LA126_0==RESTRICT||(LA126_0 >= SHORT && LA126_0 <= SIGNED)||LA126_0==STRUCT||LA126_0==TYPEOF||(LA126_0 >= UNION && LA126_0 <= UNSIGNED)||(LA126_0 >= VOID && LA126_0 <= VOLATILE)) ) {
alt126=1;
}
else if ( (LA126_0==IDENTIFIER) ) {
int LA126_2 = input.LA(2);
if ( (LA126_2==IDENTIFIER||LA126_2==LPAREN||LA126_2==LSQUARE||LA126_2==STAR||LA126_2==ATOMIC||LA126_2==BOOL||LA126_2==CHAR||(LA126_2 >= COMPLEX && LA126_2 <= CONST)||(LA126_2 >= DOMAIN && LA126_2 <= DOUBLE)||LA126_2==ENUM||LA126_2==FLOAT||(LA126_2 >= INPUT && LA126_2 <= INT)||(LA126_2 >= LONG && LA126_2 <= MEM_TYPE)||LA126_2==OUTPUT||LA126_2==RANGE||LA126_2==REAL||LA126_2==RESTRICT||(LA126_2 >= SHORT && LA126_2 <= SIGNED)||LA126_2==STRUCT||LA126_2==TYPEOF||(LA126_2 >= UNION && LA126_2 <= UNSIGNED)||(LA126_2 >= VOID && LA126_2 <= VOLATILE)) ) {
alt126=1;
}
else if ( ((LA126_2 >= COLON && LA126_2 <= COMMA)) ) {
alt126=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 126, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 126, 0, input);
throw nvae;
}
switch (alt126) {
case 1 :
// CivlCParser.g:1615:4: typeName
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeName_in_typeName_opt10233);
typeName506=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeName506.getTree());
}
break;
case 2 :
// CivlCParser.g:1616: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();
// 1616:4: -> 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 "typeName_opt"
public static class jumpStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "jumpStatement"
// CivlCParser.g:1636:1: jumpStatement : ( GOTO IDENTIFIER SEMI -> ^( GOTO IDENTIFIER SEMI ) | CONTINUE SEMI -> ^( CONTINUE SEMI ) | BREAK SEMI -> ^( BREAK SEMI ) | RETURN expression_opt SEMI -> ^( RETURN expression_opt SEMI ) );
public final OmpParser_CivlCParser.jumpStatement_return jumpStatement() throws RecognitionException {
OmpParser_CivlCParser.jumpStatement_return retval = new OmpParser_CivlCParser.jumpStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token GOTO507=null;
Token IDENTIFIER508=null;
Token SEMI509=null;
Token CONTINUE510=null;
Token SEMI511=null;
Token BREAK512=null;
Token SEMI513=null;
Token RETURN514=null;
Token SEMI516=null;
ParserRuleReturnScope expression_opt515 =null;
Object GOTO507_tree=null;
Object IDENTIFIER508_tree=null;
Object SEMI509_tree=null;
Object CONTINUE510_tree=null;
Object SEMI511_tree=null;
Object BREAK512_tree=null;
Object SEMI513_tree=null;
Object RETURN514_tree=null;
Object SEMI516_tree=null;
RewriteRuleTokenStream stream_CONTINUE=new RewriteRuleTokenStream(adaptor,"token CONTINUE");
RewriteRuleTokenStream stream_RETURN=new RewriteRuleTokenStream(adaptor,"token RETURN");
RewriteRuleTokenStream stream_GOTO=new RewriteRuleTokenStream(adaptor,"token GOTO");
RewriteRuleTokenStream stream_BREAK=new RewriteRuleTokenStream(adaptor,"token BREAK");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_expression_opt=new RewriteRuleSubtreeStream(adaptor,"rule expression_opt");
try {
// CivlCParser.g:1637:5: ( GOTO IDENTIFIER SEMI -> ^( GOTO IDENTIFIER SEMI ) | CONTINUE SEMI -> ^( CONTINUE SEMI ) | BREAK SEMI -> ^( BREAK SEMI ) | RETURN expression_opt SEMI -> ^( RETURN expression_opt SEMI ) )
int alt127=4;
switch ( input.LA(1) ) {
case GOTO:
{
alt127=1;
}
break;
case CONTINUE:
{
alt127=2;
}
break;
case BREAK:
{
alt127=3;
}
break;
case RETURN:
{
alt127=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 127, 0, input);
throw nvae;
}
switch (alt127) {
case 1 :
// CivlCParser.g:1637:7: GOTO IDENTIFIER SEMI
{
GOTO507=(Token)match(input,GOTO,FOLLOW_GOTO_in_jumpStatement10256); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GOTO.add(GOTO507);
IDENTIFIER508=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_jumpStatement10258); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER508);
SEMI509=(Token)match(input,SEMI,FOLLOW_SEMI_in_jumpStatement10260); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI509);
// AST REWRITE
// elements: GOTO, IDENTIFIER, SEMI
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1637:28: -> ^( GOTO IDENTIFIER SEMI )
{
// CivlCParser.g:1637:31: ^( GOTO IDENTIFIER SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_GOTO.nextNode(), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_SEMI.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1638:7: CONTINUE SEMI
{
CONTINUE510=(Token)match(input,CONTINUE,FOLLOW_CONTINUE_in_jumpStatement10278); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CONTINUE.add(CONTINUE510);
SEMI511=(Token)match(input,SEMI,FOLLOW_SEMI_in_jumpStatement10280); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI511);
// AST REWRITE
// elements: SEMI, CONTINUE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1638:21: -> ^( CONTINUE SEMI )
{
// CivlCParser.g:1638:24: ^( CONTINUE SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_CONTINUE.nextNode(), root_1);
adaptor.addChild(root_1, stream_SEMI.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:1639:7: BREAK SEMI
{
BREAK512=(Token)match(input,BREAK,FOLLOW_BREAK_in_jumpStatement10296); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BREAK.add(BREAK512);
SEMI513=(Token)match(input,SEMI,FOLLOW_SEMI_in_jumpStatement10298); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI513);
// AST REWRITE
// elements: SEMI, BREAK
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1639:18: -> ^( BREAK SEMI )
{
// CivlCParser.g:1639:21: ^( BREAK SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_BREAK.nextNode(), root_1);
adaptor.addChild(root_1, stream_SEMI.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// CivlCParser.g:1640:7: RETURN expression_opt SEMI
{
RETURN514=(Token)match(input,RETURN,FOLLOW_RETURN_in_jumpStatement10314); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RETURN.add(RETURN514);
pushFollow(FOLLOW_expression_opt_in_jumpStatement10316);
expression_opt515=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(expression_opt515.getTree());
SEMI516=(Token)match(input,SEMI,FOLLOW_SEMI_in_jumpStatement10318); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI516);
// AST REWRITE
// elements: expression_opt, SEMI, RETURN
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1640:34: -> ^( RETURN expression_opt SEMI )
{
// CivlCParser.g:1640:37: ^( RETURN expression_opt SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_RETURN.nextNode(), root_1);
adaptor.addChild(root_1, stream_expression_opt.nextTree());
adaptor.addChild(root_1, stream_SEMI.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 "jumpStatement"
public static class pragma_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "pragma"
// CivlCParser.g:1653:1: pragma : ( PPRAGMA IDENTIFIER NEWLINE -> ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST ) NEWLINE ) | PPRAGMA IDENTIFIER inlineList NEWLINE -> ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST inlineList ) NEWLINE ) );
public final OmpParser_CivlCParser.pragma_return pragma() throws RecognitionException {
OmpParser_CivlCParser.pragma_return retval = new OmpParser_CivlCParser.pragma_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PPRAGMA517=null;
Token IDENTIFIER518=null;
Token NEWLINE519=null;
Token PPRAGMA520=null;
Token IDENTIFIER521=null;
Token NEWLINE523=null;
ParserRuleReturnScope inlineList522 =null;
Object PPRAGMA517_tree=null;
Object IDENTIFIER518_tree=null;
Object NEWLINE519_tree=null;
Object PPRAGMA520_tree=null;
Object IDENTIFIER521_tree=null;
Object NEWLINE523_tree=null;
RewriteRuleTokenStream stream_PPRAGMA=new RewriteRuleTokenStream(adaptor,"token PPRAGMA");
RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_inlineList=new RewriteRuleSubtreeStream(adaptor,"rule inlineList");
try {
// CivlCParser.g:1654:5: ( PPRAGMA IDENTIFIER NEWLINE -> ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST ) NEWLINE ) | PPRAGMA IDENTIFIER inlineList NEWLINE -> ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST inlineList ) NEWLINE ) )
int alt128=2;
int LA128_0 = input.LA(1);
if ( (LA128_0==PPRAGMA) ) {
int LA128_1 = input.LA(2);
if ( (LA128_1==IDENTIFIER) ) {
int LA128_2 = input.LA(3);
if ( (LA128_2==NEWLINE) ) {
alt128=1;
}
else if ( ((LA128_2 >= AMPERSAND && LA128_2 <= NEQ)||(LA128_2 >= NOT && LA128_2 <= 569)) ) {
alt128=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("", 128, 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("", 128, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 128, 0, input);
throw nvae;
}
switch (alt128) {
case 1 :
// CivlCParser.g:1654:7: PPRAGMA IDENTIFIER NEWLINE
{
PPRAGMA517=(Token)match(input,PPRAGMA,FOLLOW_PPRAGMA_in_pragma10347); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PPRAGMA.add(PPRAGMA517);
IDENTIFIER518=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_pragma10349); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER518);
NEWLINE519=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_pragma10351); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEWLINE.add(NEWLINE519);
// AST REWRITE
// elements: PPRAGMA, NEWLINE, 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();
// 1655:9: -> ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST ) NEWLINE )
{
// CivlCParser.g:1655:12: ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST ) NEWLINE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_PPRAGMA.nextNode(), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// CivlCParser.g:1655:33: ^( TOKEN_LIST )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(TOKEN_LIST, "TOKEN_LIST"), root_2);
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, stream_NEWLINE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1656:7: PPRAGMA IDENTIFIER inlineList NEWLINE
{
PPRAGMA520=(Token)match(input,PPRAGMA,FOLLOW_PPRAGMA_in_pragma10381); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PPRAGMA.add(PPRAGMA520);
IDENTIFIER521=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_pragma10383); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER521);
pushFollow(FOLLOW_inlineList_in_pragma10385);
inlineList522=inlineList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inlineList.add(inlineList522.getTree());
NEWLINE523=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_pragma10387); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEWLINE.add(NEWLINE523);
// AST REWRITE
// elements: IDENTIFIER, inlineList, PPRAGMA, NEWLINE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1657:9: -> ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST inlineList ) NEWLINE )
{
// CivlCParser.g:1657:12: ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST inlineList ) NEWLINE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_PPRAGMA.nextNode(), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// CivlCParser.g:1657:33: ^( TOKEN_LIST inlineList )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(TOKEN_LIST, "TOKEN_LIST"), root_2);
adaptor.addChild(root_2, stream_inlineList.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, stream_NEWLINE.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 "pragma"
public static class inlineList_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "inlineList"
// CivlCParser.g:1661:1: inlineList : (~ NEWLINE )+ ;
public final OmpParser_CivlCParser.inlineList_return inlineList() throws RecognitionException {
OmpParser_CivlCParser.inlineList_return retval = new OmpParser_CivlCParser.inlineList_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set524=null;
Object set524_tree=null;
try {
// CivlCParser.g:1661:12: ( (~ NEWLINE )+ )
// CivlCParser.g:1661:14: (~ NEWLINE )+
{
root_0 = (Object)adaptor.nil();
// CivlCParser.g:1661:14: (~ NEWLINE )+
int cnt129=0;
loop129:
while (true) {
int alt129=2;
int LA129_0 = input.LA(1);
if ( ((LA129_0 >= AMPERSAND && LA129_0 <= NEQ)||(LA129_0 >= NOT && LA129_0 <= 569)) ) {
alt129=1;
}
switch (alt129) {
case 1 :
// CivlCParser.g:
{
set524=input.LT(1);
if ( (input.LA(1) >= AMPERSAND && input.LA(1) <= NEQ)||(input.LA(1) >= NOT && input.LA(1) <= 569) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set524));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
break;
default :
if ( cnt129 >= 1 ) break loop129;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(129, input);
throw eee;
}
cnt129++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "inlineList"
public static class annotation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "annotation"
// CivlCParser.g:1670:1: annotation : ( INLINE_ANNOTATION_START ( NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST ) NEWLINE ) | inlineList NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST inlineList ) NEWLINE ) ) | ANNOTATION_START ANNOTATION_END -> ^( ANNOTATION ANNOTATION_START ^( TOKEN_LIST ) ANNOTATION_END ) | ANNOTATION_START annotationBody ANNOTATION_END -> ^( ANNOTATION ANNOTATION_START ^( TOKEN_LIST annotationBody ) ANNOTATION_END ) );
public final OmpParser_CivlCParser.annotation_return annotation() throws RecognitionException {
OmpParser_CivlCParser.annotation_return retval = new OmpParser_CivlCParser.annotation_return();
retval.start = input.LT(1);
Object root_0 = null;
Token INLINE_ANNOTATION_START525=null;
Token NEWLINE526=null;
Token NEWLINE528=null;
Token ANNOTATION_START529=null;
Token ANNOTATION_END530=null;
Token ANNOTATION_START531=null;
Token ANNOTATION_END533=null;
ParserRuleReturnScope inlineList527 =null;
ParserRuleReturnScope annotationBody532 =null;
Object INLINE_ANNOTATION_START525_tree=null;
Object NEWLINE526_tree=null;
Object NEWLINE528_tree=null;
Object ANNOTATION_START529_tree=null;
Object ANNOTATION_END530_tree=null;
Object ANNOTATION_START531_tree=null;
Object ANNOTATION_END533_tree=null;
RewriteRuleTokenStream stream_ANNOTATION_END=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_END");
RewriteRuleTokenStream stream_ANNOTATION_START=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_START");
RewriteRuleTokenStream stream_INLINE_ANNOTATION_START=new RewriteRuleTokenStream(adaptor,"token INLINE_ANNOTATION_START");
RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE");
RewriteRuleSubtreeStream stream_annotationBody=new RewriteRuleSubtreeStream(adaptor,"rule annotationBody");
RewriteRuleSubtreeStream stream_inlineList=new RewriteRuleSubtreeStream(adaptor,"rule inlineList");
try {
// CivlCParser.g:1671:3: ( INLINE_ANNOTATION_START ( NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST ) NEWLINE ) | inlineList NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST inlineList ) NEWLINE ) ) | ANNOTATION_START ANNOTATION_END -> ^( ANNOTATION ANNOTATION_START ^( TOKEN_LIST ) ANNOTATION_END ) | ANNOTATION_START annotationBody ANNOTATION_END -> ^( ANNOTATION ANNOTATION_START ^( TOKEN_LIST annotationBody ) ANNOTATION_END ) )
int alt131=3;
int LA131_0 = input.LA(1);
if ( (LA131_0==INLINE_ANNOTATION_START) ) {
alt131=1;
}
else if ( (LA131_0==ANNOTATION_START) ) {
int LA131_2 = input.LA(2);
if ( (LA131_2==ANNOTATION_END) ) {
alt131=2;
}
else if ( ((LA131_2 >= AMPERSAND && LA131_2 <= AND)||(LA131_2 >= ANNOTATION_START && LA131_2 <= 569)) ) {
alt131=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 131, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 131, 0, input);
throw nvae;
}
switch (alt131) {
case 1 :
// CivlCParser.g:1671:6: INLINE_ANNOTATION_START ( NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST ) NEWLINE ) | inlineList NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST inlineList ) NEWLINE ) )
{
INLINE_ANNOTATION_START525=(Token)match(input,INLINE_ANNOTATION_START,FOLLOW_INLINE_ANNOTATION_START_in_annotation10443); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INLINE_ANNOTATION_START.add(INLINE_ANNOTATION_START525);
// CivlCParser.g:1672:6: ( NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST ) NEWLINE ) | inlineList NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST inlineList ) NEWLINE ) )
int alt130=2;
int LA130_0 = input.LA(1);
if ( (LA130_0==NEWLINE) ) {
alt130=1;
}
else if ( ((LA130_0 >= AMPERSAND && LA130_0 <= NEQ)||(LA130_0 >= NOT && LA130_0 <= 569)) ) {
alt130=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 130, 0, input);
throw nvae;
}
switch (alt130) {
case 1 :
// CivlCParser.g:1672:8: NEWLINE
{
NEWLINE526=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_annotation10452); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEWLINE.add(NEWLINE526);
// AST REWRITE
// elements: INLINE_ANNOTATION_START, NEWLINE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1673:8: -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST ) NEWLINE )
{
// CivlCParser.g:1673:11: ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST ) NEWLINE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ANNOTATION, "ANNOTATION"), root_1);
adaptor.addChild(root_1, stream_INLINE_ANNOTATION_START.nextNode());
// CivlCParser.g:1673:48: ^( TOKEN_LIST )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(TOKEN_LIST, "TOKEN_LIST"), root_2);
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, stream_NEWLINE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1674:8: inlineList NEWLINE
{
pushFollow(FOLLOW_inlineList_in_annotation10482);
inlineList527=inlineList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inlineList.add(inlineList527.getTree());
NEWLINE528=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_annotation10484); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEWLINE.add(NEWLINE528);
// AST REWRITE
// elements: INLINE_ANNOTATION_START, inlineList, NEWLINE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1675:8: -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST inlineList ) NEWLINE )
{
// CivlCParser.g:1675:11: ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST inlineList ) NEWLINE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ANNOTATION, "ANNOTATION"), root_1);
adaptor.addChild(root_1, stream_INLINE_ANNOTATION_START.nextNode());
// CivlCParser.g:1675:48: ^( TOKEN_LIST inlineList )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(TOKEN_LIST, "TOKEN_LIST"), root_2);
adaptor.addChild(root_2, stream_inlineList.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, stream_NEWLINE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
}
}
break;
case 2 :
// CivlCParser.g:1677:6: ANNOTATION_START ANNOTATION_END
{
ANNOTATION_START529=(Token)match(input,ANNOTATION_START,FOLLOW_ANNOTATION_START_in_annotation10521); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ANNOTATION_START.add(ANNOTATION_START529);
ANNOTATION_END530=(Token)match(input,ANNOTATION_END,FOLLOW_ANNOTATION_END_in_annotation10523); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ANNOTATION_END.add(ANNOTATION_END530);
// AST REWRITE
// elements: ANNOTATION_END, ANNOTATION_START
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1678:8: -> ^( ANNOTATION ANNOTATION_START ^( TOKEN_LIST ) ANNOTATION_END )
{
// CivlCParser.g:1678:11: ^( ANNOTATION ANNOTATION_START ^( TOKEN_LIST ) ANNOTATION_END )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ANNOTATION, "ANNOTATION"), root_1);
adaptor.addChild(root_1, stream_ANNOTATION_START.nextNode());
// CivlCParser.g:1678:41: ^( TOKEN_LIST )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(TOKEN_LIST, "TOKEN_LIST"), root_2);
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, stream_ANNOTATION_END.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:1679:6: ANNOTATION_START annotationBody ANNOTATION_END
{
ANNOTATION_START531=(Token)match(input,ANNOTATION_START,FOLLOW_ANNOTATION_START_in_annotation10551); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ANNOTATION_START.add(ANNOTATION_START531);
pushFollow(FOLLOW_annotationBody_in_annotation10553);
annotationBody532=annotationBody();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_annotationBody.add(annotationBody532.getTree());
ANNOTATION_END533=(Token)match(input,ANNOTATION_END,FOLLOW_ANNOTATION_END_in_annotation10555); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ANNOTATION_END.add(ANNOTATION_END533);
// AST REWRITE
// elements: ANNOTATION_START, annotationBody, ANNOTATION_END
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1680:8: -> ^( ANNOTATION ANNOTATION_START ^( TOKEN_LIST annotationBody ) ANNOTATION_END )
{
// CivlCParser.g:1680:11: ^( ANNOTATION ANNOTATION_START ^( TOKEN_LIST annotationBody ) ANNOTATION_END )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ANNOTATION, "ANNOTATION"), root_1);
adaptor.addChild(root_1, stream_ANNOTATION_START.nextNode());
// CivlCParser.g:1680:41: ^( TOKEN_LIST annotationBody )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(TOKEN_LIST, "TOKEN_LIST"), root_2);
adaptor.addChild(root_2, stream_annotationBody.nextTree());
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, stream_ANNOTATION_END.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 "annotation"
public static class annotationBody_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "annotationBody"
// CivlCParser.g:1683:1: annotationBody : (~ ANNOTATION_END )+ ;
public final OmpParser_CivlCParser.annotationBody_return annotationBody() throws RecognitionException {
OmpParser_CivlCParser.annotationBody_return retval = new OmpParser_CivlCParser.annotationBody_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set534=null;
Object set534_tree=null;
try {
// CivlCParser.g:1683:16: ( (~ ANNOTATION_END )+ )
// CivlCParser.g:1683:18: (~ ANNOTATION_END )+
{
root_0 = (Object)adaptor.nil();
// CivlCParser.g:1683:18: (~ ANNOTATION_END )+
int cnt132=0;
loop132:
while (true) {
int alt132=2;
int LA132_0 = input.LA(1);
if ( ((LA132_0 >= AMPERSAND && LA132_0 <= AND)||(LA132_0 >= ANNOTATION_START && LA132_0 <= 569)) ) {
alt132=1;
}
switch (alt132) {
case 1 :
// CivlCParser.g:
{
set534=input.LT(1);
if ( (input.LA(1) >= AMPERSAND && input.LA(1) <= AND)||(input.LA(1) >= ANNOTATION_START && input.LA(1) <= 569) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set534));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
break;
default :
if ( cnt132 >= 1 ) break loop132;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(132, input);
throw eee;
}
cnt132++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "annotationBody"
public static class runStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "runStatement"
// CivlCParser.g:1692:1: runStatement : RUN statement -> ^( RUN statement ) ;
public final OmpParser_CivlCParser.runStatement_return runStatement() throws RecognitionException {
OmpParser_CivlCParser.runStatement_return retval = new OmpParser_CivlCParser.runStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token RUN535=null;
ParserRuleReturnScope statement536 =null;
Object RUN535_tree=null;
RewriteRuleTokenStream stream_RUN=new RewriteRuleTokenStream(adaptor,"token RUN");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
try {
// CivlCParser.g:1693:5: ( RUN statement -> ^( RUN statement ) )
// CivlCParser.g:1693:7: RUN statement
{
RUN535=(Token)match(input,RUN,FOLLOW_RUN_in_runStatement10609); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RUN.add(RUN535);
pushFollow(FOLLOW_statement_in_runStatement10611);
statement536=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement536.getTree());
// AST REWRITE
// elements: RUN, statement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1693:21: -> ^( RUN statement )
{
// CivlCParser.g:1693:24: ^( RUN statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_RUN.nextNode(), root_1);
adaptor.addChild(root_1, stream_statement.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 "runStatement"
public static class withStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "withStatement"
// CivlCParser.g:1699:1: withStatement : WITH LPAREN assignmentExpression RPAREN statement -> ^( WITH assignmentExpression statement ) ;
public final OmpParser_CivlCParser.withStatement_return withStatement() throws RecognitionException {
OmpParser_CivlCParser.withStatement_return retval = new OmpParser_CivlCParser.withStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token WITH537=null;
Token LPAREN538=null;
Token RPAREN540=null;
ParserRuleReturnScope assignmentExpression539 =null;
ParserRuleReturnScope statement541 =null;
Object WITH537_tree=null;
Object LPAREN538_tree=null;
Object RPAREN540_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_WITH=new RewriteRuleTokenStream(adaptor,"token WITH");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// CivlCParser.g:1700:2: ( WITH LPAREN assignmentExpression RPAREN statement -> ^( WITH assignmentExpression statement ) )
// CivlCParser.g:1700:4: WITH LPAREN assignmentExpression RPAREN statement
{
WITH537=(Token)match(input,WITH,FOLLOW_WITH_in_withStatement10635); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WITH.add(WITH537);
LPAREN538=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_withStatement10637); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN538);
pushFollow(FOLLOW_assignmentExpression_in_withStatement10639);
assignmentExpression539=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression539.getTree());
RPAREN540=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_withStatement10641); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN540);
pushFollow(FOLLOW_statement_in_withStatement10643);
statement541=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement541.getTree());
// AST REWRITE
// elements: WITH, assignmentExpression, statement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1701:7: -> ^( WITH assignmentExpression statement )
{
// CivlCParser.g:1701:10: ^( WITH assignmentExpression statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_WITH.nextNode(), root_1);
adaptor.addChild(root_1, stream_assignmentExpression.nextTree());
adaptor.addChild(root_1, stream_statement.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 "withStatement"
public static class updateStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "updateStatement"
// CivlCParser.g:1704:1: updateStatement : UPDATE LPAREN assignmentExpression RPAREN postfixExpressionRoot LPAREN argumentExpressionList RPAREN SEMI -> ^( UPDATE assignmentExpression ^( CALL ABSENT postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) ) ;
public final OmpParser_CivlCParser.updateStatement_return updateStatement() throws RecognitionException {
OmpParser_CivlCParser.updateStatement_return retval = new OmpParser_CivlCParser.updateStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token UPDATE542=null;
Token LPAREN543=null;
Token RPAREN545=null;
Token LPAREN547=null;
Token RPAREN549=null;
Token SEMI550=null;
ParserRuleReturnScope assignmentExpression544 =null;
ParserRuleReturnScope postfixExpressionRoot546 =null;
ParserRuleReturnScope argumentExpressionList548 =null;
Object UPDATE542_tree=null;
Object LPAREN543_tree=null;
Object RPAREN545_tree=null;
Object LPAREN547_tree=null;
Object RPAREN549_tree=null;
Object SEMI550_tree=null;
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_UPDATE=new RewriteRuleTokenStream(adaptor,"token UPDATE");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
RewriteRuleSubtreeStream stream_postfixExpressionRoot=new RewriteRuleSubtreeStream(adaptor,"rule postfixExpressionRoot");
try {
// CivlCParser.g:1705:2: ( UPDATE LPAREN assignmentExpression RPAREN postfixExpressionRoot LPAREN argumentExpressionList RPAREN SEMI -> ^( UPDATE assignmentExpression ^( CALL ABSENT postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) ) )
// CivlCParser.g:1705:4: UPDATE LPAREN assignmentExpression RPAREN postfixExpressionRoot LPAREN argumentExpressionList RPAREN SEMI
{
UPDATE542=(Token)match(input,UPDATE,FOLLOW_UPDATE_in_updateStatement10670); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_UPDATE.add(UPDATE542);
LPAREN543=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_updateStatement10672); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN543);
pushFollow(FOLLOW_assignmentExpression_in_updateStatement10674);
assignmentExpression544=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression544.getTree());
RPAREN545=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_updateStatement10676); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN545);
pushFollow(FOLLOW_postfixExpressionRoot_in_updateStatement10681);
postfixExpressionRoot546=postfixExpressionRoot();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfixExpressionRoot.add(postfixExpressionRoot546.getTree());
LPAREN547=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_updateStatement10683); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN547);
pushFollow(FOLLOW_argumentExpressionList_in_updateStatement10685);
argumentExpressionList548=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList548.getTree());
RPAREN549=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_updateStatement10687); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN549);
SEMI550=(Token)match(input,SEMI,FOLLOW_SEMI_in_updateStatement10689); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI550);
// AST REWRITE
// elements: UPDATE, RPAREN, argumentExpressionList, postfixExpressionRoot, 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();
// 1707:4: -> ^( UPDATE assignmentExpression ^( CALL ABSENT postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) )
{
// CivlCParser.g:1707:7: ^( UPDATE assignmentExpression ^( CALL ABSENT postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_UPDATE.nextNode(), root_1);
adaptor.addChild(root_1, stream_assignmentExpression.nextTree());
// CivlCParser.g:1708:8: ^( CALL ABSENT postfixExpressionRoot ABSENT argumentExpressionList RPAREN )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(CALL, "CALL"), root_2);
adaptor.addChild(root_2, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_2, stream_postfixExpressionRoot.nextTree());
adaptor.addChild(root_2, (Object)adaptor.create(ABSENT, "ABSENT"));
adaptor.addChild(root_2, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_2, stream_RPAREN.nextNode());
adaptor.addChild(root_1, root_2);
}
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 "updateStatement"
public static class balancedToken_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "balancedToken"
// CivlCParser.g:1712:1: balancedToken : (~ ( LPAREN | RPAREN ) | LPAREN ( balancedToken )* RPAREN );
public final OmpParser_CivlCParser.balancedToken_return balancedToken() throws RecognitionException {
OmpParser_CivlCParser.balancedToken_return retval = new OmpParser_CivlCParser.balancedToken_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set551=null;
Token LPAREN552=null;
Token RPAREN554=null;
ParserRuleReturnScope balancedToken553 =null;
Object set551_tree=null;
Object LPAREN552_tree=null;
Object RPAREN554_tree=null;
try {
// CivlCParser.g:1713:2: (~ ( LPAREN | RPAREN ) | LPAREN ( balancedToken )* RPAREN )
int alt134=2;
int LA134_0 = input.LA(1);
if ( ((LA134_0 >= AMPERSAND && LA134_0 <= LINE)||(LA134_0 >= LSLIST && LA134_0 <= REXCON)||(LA134_0 >= RSLIST && LA134_0 <= 569)) ) {
alt134=1;
}
else if ( (LA134_0==LPAREN) ) {
alt134=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 134, 0, input);
throw nvae;
}
switch (alt134) {
case 1 :
// CivlCParser.g:1713:4: ~ ( LPAREN | RPAREN )
{
root_0 = (Object)adaptor.nil();
set551=input.LT(1);
if ( (input.LA(1) >= AMPERSAND && input.LA(1) <= LINE)||(input.LA(1) >= LSLIST && input.LA(1) <= REXCON)||(input.LA(1) >= RSLIST && input.LA(1) <= 569) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set551));
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
break;
case 2 :
// CivlCParser.g:1714:4: LPAREN ( balancedToken )* RPAREN
{
root_0 = (Object)adaptor.nil();
LPAREN552=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_balancedToken10752); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LPAREN552_tree = (Object)adaptor.create(LPAREN552);
adaptor.addChild(root_0, LPAREN552_tree);
}
// CivlCParser.g:1714:11: ( balancedToken )*
loop133:
while (true) {
int alt133=2;
int LA133_0 = input.LA(1);
if ( ((LA133_0 >= AMPERSAND && LA133_0 <= REXCON)||(LA133_0 >= RSLIST && LA133_0 <= 569)) ) {
alt133=1;
}
switch (alt133) {
case 1 :
// CivlCParser.g:1714:11: balancedToken
{
pushFollow(FOLLOW_balancedToken_in_balancedToken10754);
balancedToken553=balancedToken();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, balancedToken553.getTree());
}
break;
default :
break loop133;
}
}
RPAREN554=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_balancedToken10757); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RPAREN554_tree = (Object)adaptor.create(RPAREN554);
adaptor.addChild(root_0, RPAREN554_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "balancedToken"
public static class asmStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "asmStatement"
// CivlCParser.g:1717:1: asmStatement : ASM ( VOLATILE )? ( GOTO )? LPAREN ( balancedToken )* RPAREN SEMI -> ^( ASM ( VOLATILE )? ( GOTO )? ^( TOKEN_LIST ( balancedToken )* ) ) ;
public final OmpParser_CivlCParser.asmStatement_return asmStatement() throws RecognitionException {
OmpParser_CivlCParser.asmStatement_return retval = new OmpParser_CivlCParser.asmStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASM555=null;
Token VOLATILE556=null;
Token GOTO557=null;
Token LPAREN558=null;
Token RPAREN560=null;
Token SEMI561=null;
ParserRuleReturnScope balancedToken559 =null;
Object ASM555_tree=null;
Object VOLATILE556_tree=null;
Object GOTO557_tree=null;
Object LPAREN558_tree=null;
Object RPAREN560_tree=null;
Object SEMI561_tree=null;
RewriteRuleTokenStream stream_VOLATILE=new RewriteRuleTokenStream(adaptor,"token VOLATILE");
RewriteRuleTokenStream stream_GOTO=new RewriteRuleTokenStream(adaptor,"token GOTO");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_ASM=new RewriteRuleTokenStream(adaptor,"token ASM");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_balancedToken=new RewriteRuleSubtreeStream(adaptor,"rule balancedToken");
try {
// CivlCParser.g:1718:2: ( ASM ( VOLATILE )? ( GOTO )? LPAREN ( balancedToken )* RPAREN SEMI -> ^( ASM ( VOLATILE )? ( GOTO )? ^( TOKEN_LIST ( balancedToken )* ) ) )
// CivlCParser.g:1718:4: ASM ( VOLATILE )? ( GOTO )? LPAREN ( balancedToken )* RPAREN SEMI
{
ASM555=(Token)match(input,ASM,FOLLOW_ASM_in_asmStatement10768); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASM.add(ASM555);
// CivlCParser.g:1718:8: ( VOLATILE )?
int alt135=2;
int LA135_0 = input.LA(1);
if ( (LA135_0==VOLATILE) ) {
alt135=1;
}
switch (alt135) {
case 1 :
// CivlCParser.g:1718:8: VOLATILE
{
VOLATILE556=(Token)match(input,VOLATILE,FOLLOW_VOLATILE_in_asmStatement10770); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_VOLATILE.add(VOLATILE556);
}
break;
}
// CivlCParser.g:1718:18: ( GOTO )?
int alt136=2;
int LA136_0 = input.LA(1);
if ( (LA136_0==GOTO) ) {
alt136=1;
}
switch (alt136) {
case 1 :
// CivlCParser.g:1718:18: GOTO
{
GOTO557=(Token)match(input,GOTO,FOLLOW_GOTO_in_asmStatement10773); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GOTO.add(GOTO557);
}
break;
}
LPAREN558=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_asmStatement10776); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN558);
// CivlCParser.g:1719:4: ( balancedToken )*
loop137:
while (true) {
int alt137=2;
int LA137_0 = input.LA(1);
if ( ((LA137_0 >= AMPERSAND && LA137_0 <= REXCON)||(LA137_0 >= RSLIST && LA137_0 <= 569)) ) {
alt137=1;
}
switch (alt137) {
case 1 :
// CivlCParser.g:1719:4: balancedToken
{
pushFollow(FOLLOW_balancedToken_in_asmStatement10781);
balancedToken559=balancedToken();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_balancedToken.add(balancedToken559.getTree());
}
break;
default :
break loop137;
}
}
RPAREN560=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_asmStatement10787); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN560);
SEMI561=(Token)match(input,SEMI,FOLLOW_SEMI_in_asmStatement10789); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI561);
// AST REWRITE
// elements: VOLATILE, ASM, balancedToken, GOTO
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1721:4: -> ^( ASM ( VOLATILE )? ( GOTO )? ^( TOKEN_LIST ( balancedToken )* ) )
{
// CivlCParser.g:1721:7: ^( ASM ( VOLATILE )? ( GOTO )? ^( TOKEN_LIST ( balancedToken )* ) )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ASM.nextNode(), root_1);
// CivlCParser.g:1721:13: ( VOLATILE )?
if ( stream_VOLATILE.hasNext() ) {
adaptor.addChild(root_1, stream_VOLATILE.nextNode());
}
stream_VOLATILE.reset();
// CivlCParser.g:1721:23: ( GOTO )?
if ( stream_GOTO.hasNext() ) {
adaptor.addChild(root_1, stream_GOTO.nextNode());
}
stream_GOTO.reset();
// CivlCParser.g:1721:29: ^( TOKEN_LIST ( balancedToken )* )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(TOKEN_LIST, "TOKEN_LIST"), root_2);
// CivlCParser.g:1721:42: ( balancedToken )*
while ( stream_balancedToken.hasNext() ) {
adaptor.addChild(root_2, stream_balancedToken.nextTree());
}
stream_balancedToken.reset();
adaptor.addChild(root_1, root_2);
}
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 "asmStatement"
public static class whenStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "whenStatement"
// CivlCParser.g:1732:1: whenStatement : WHEN LPAREN expression RPAREN statement -> ^( WHEN expression statement ) ;
public final OmpParser_CivlCParser.whenStatement_return whenStatement() throws RecognitionException {
OmpParser_CivlCParser.whenStatement_return retval = new OmpParser_CivlCParser.whenStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token WHEN562=null;
Token LPAREN563=null;
Token RPAREN565=null;
ParserRuleReturnScope expression564 =null;
ParserRuleReturnScope statement566 =null;
Object WHEN562_tree=null;
Object LPAREN563_tree=null;
Object RPAREN565_tree=null;
RewriteRuleTokenStream stream_WHEN=new RewriteRuleTokenStream(adaptor,"token WHEN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
try {
// CivlCParser.g:1733:2: ( WHEN LPAREN expression RPAREN statement -> ^( WHEN expression statement ) )
// CivlCParser.g:1733:4: WHEN LPAREN expression RPAREN statement
{
WHEN562=(Token)match(input,WHEN,FOLLOW_WHEN_in_whenStatement10824); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WHEN.add(WHEN562);
LPAREN563=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_whenStatement10826); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN563);
pushFollow(FOLLOW_expression_in_whenStatement10828);
expression564=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression564.getTree());
RPAREN565=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_whenStatement10830); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN565);
pushFollow(FOLLOW_statement_in_whenStatement10832);
statement566=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement566.getTree());
// AST REWRITE
// elements: WHEN, statement, 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();
// 1734:3: -> ^( WHEN expression statement )
{
// CivlCParser.g:1734:6: ^( WHEN expression statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_WHEN.nextNode(), root_1);
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_1, stream_statement.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 "whenStatement"
public static class chooseStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "chooseStatement"
// CivlCParser.g:1743:1: chooseStatement : CHOOSE LCURLY ( statement )+ RCURLY -> ^( CHOOSE ( statement )+ ) ;
public final OmpParser_CivlCParser.chooseStatement_return chooseStatement() throws RecognitionException {
OmpParser_CivlCParser.chooseStatement_return retval = new OmpParser_CivlCParser.chooseStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token CHOOSE567=null;
Token LCURLY568=null;
Token RCURLY570=null;
ParserRuleReturnScope statement569 =null;
Object CHOOSE567_tree=null;
Object LCURLY568_tree=null;
Object RCURLY570_tree=null;
RewriteRuleTokenStream stream_CHOOSE=new RewriteRuleTokenStream(adaptor,"token CHOOSE");
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
try {
// CivlCParser.g:1744:2: ( CHOOSE LCURLY ( statement )+ RCURLY -> ^( CHOOSE ( statement )+ ) )
// CivlCParser.g:1744:4: CHOOSE LCURLY ( statement )+ RCURLY
{
CHOOSE567=(Token)match(input,CHOOSE,FOLLOW_CHOOSE_in_chooseStatement10857); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CHOOSE.add(CHOOSE567);
LCURLY568=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_chooseStatement10859); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY568);
// CivlCParser.g:1744:18: ( statement )+
int cnt138=0;
loop138:
while (true) {
int alt138=2;
int LA138_0 = input.LA(1);
if ( (LA138_0==AMPERSAND||LA138_0==CHARACTER_CONSTANT||LA138_0==ELLIPSIS||LA138_0==FLOATING_CONSTANT||(LA138_0 >= IDENTIFIER && LA138_0 <= IF)||LA138_0==INTEGER_CONSTANT||LA138_0==LCURLY||LA138_0==LPAREN||LA138_0==MINUSMINUS||LA138_0==NOT||LA138_0==PLUS||LA138_0==PLUSPLUS||LA138_0==SEMI||LA138_0==STAR||(LA138_0 >= STRING_LITERAL && LA138_0 <= SUB)||LA138_0==TILDE||(LA138_0 >= ALIGNOF && LA138_0 <= ASM)||LA138_0==BIG_O||(LA138_0 >= BREAK && LA138_0 <= CASE)||(LA138_0 >= CHOOSE && LA138_0 <= CIVLFOR)||(LA138_0 >= CONTINUE && LA138_0 <= DEFAULT)||LA138_0==DERIV||LA138_0==DO||LA138_0==EXISTS||(LA138_0 >= FOR && LA138_0 <= GENERIC)||LA138_0==GOTO||LA138_0==HERE||LA138_0==PARFOR||LA138_0==PROCNULL||(LA138_0 >= RESULT && LA138_0 <= SELF)||(LA138_0 >= SIZEOF && LA138_0 <= SPAWN)||LA138_0==STATE_NULL||LA138_0==SWITCH||LA138_0==UNIFORM||(LA138_0 >= UPDATE && LA138_0 <= VALUE_AT)||(LA138_0 >= WHEN && LA138_0 <= WITH)||LA138_0==SUM) ) {
alt138=1;
}
switch (alt138) {
case 1 :
// CivlCParser.g:1744:18: statement
{
pushFollow(FOLLOW_statement_in_chooseStatement10861);
statement569=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement569.getTree());
}
break;
default :
if ( cnt138 >= 1 ) break loop138;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(138, input);
throw eee;
}
cnt138++;
}
RCURLY570=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_chooseStatement10864); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY570);
// AST REWRITE
// elements: CHOOSE, statement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1744:36: -> ^( CHOOSE ( statement )+ )
{
// CivlCParser.g:1744:39: ^( CHOOSE ( statement )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_CHOOSE.nextNode(), root_1);
if ( !(stream_statement.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_statement.hasNext() ) {
adaptor.addChild(root_1, stream_statement.nextTree());
}
stream_statement.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "chooseStatement"
public static class atomicStatement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "atomicStatement"
// CivlCParser.g:1753:1: atomicStatement : CIVLATOMIC s= statementWithScope -> ^( CIVLATOMIC $s) ;
public final OmpParser_CivlCParser.atomicStatement_return atomicStatement() throws RecognitionException {
OmpParser_CivlCParser.atomicStatement_return retval = new OmpParser_CivlCParser.atomicStatement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token CIVLATOMIC571=null;
ParserRuleReturnScope s =null;
Object CIVLATOMIC571_tree=null;
RewriteRuleTokenStream stream_CIVLATOMIC=new RewriteRuleTokenStream(adaptor,"token CIVLATOMIC");
RewriteRuleSubtreeStream stream_statementWithScope=new RewriteRuleSubtreeStream(adaptor,"rule statementWithScope");
try {
// CivlCParser.g:1754:2: ( CIVLATOMIC s= statementWithScope -> ^( CIVLATOMIC $s) )
// CivlCParser.g:1754:4: CIVLATOMIC s= statementWithScope
{
CIVLATOMIC571=(Token)match(input,CIVLATOMIC,FOLLOW_CIVLATOMIC_in_atomicStatement10886); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CIVLATOMIC.add(CIVLATOMIC571);
pushFollow(FOLLOW_statementWithScope_in_atomicStatement10890);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: CIVLATOMIC, s
// token labels:
// rule labels: s, 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_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1754:36: -> ^( CIVLATOMIC $s)
{
// CivlCParser.g:1754:39: ^( CIVLATOMIC $s)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_CIVLATOMIC.nextNode(), root_1);
adaptor.addChild(root_1, stream_s.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 "atomicStatement"
public static class functionDefinition_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "functionDefinition"
// CivlCParser.g:1766:1: functionDefinition : ( declarator contract declarationList_opt compoundStatement -> ^( FUNCTION_DEFINITION ^( DECLARATION_SPECIFIERS ) declarator declarationList_opt compoundStatement contract ) | declarationSpecifiers declarator contract declarationList_opt compoundStatement -> ^( FUNCTION_DEFINITION declarationSpecifiers declarator declarationList_opt compoundStatement contract ) );
public final OmpParser_CivlCParser.functionDefinition_return functionDefinition() throws RecognitionException {
Symbols_stack.push(new Symbols_scope());
DeclarationScope_stack.push(new DeclarationScope_scope());
OmpParser_CivlCParser.functionDefinition_return retval = new OmpParser_CivlCParser.functionDefinition_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope declarator572 =null;
ParserRuleReturnScope contract573 =null;
ParserRuleReturnScope declarationList_opt574 =null;
ParserRuleReturnScope compoundStatement575 =null;
ParserRuleReturnScope declarationSpecifiers576 =null;
ParserRuleReturnScope declarator577 =null;
ParserRuleReturnScope contract578 =null;
ParserRuleReturnScope declarationList_opt579 =null;
ParserRuleReturnScope compoundStatement580 =null;
RewriteRuleSubtreeStream stream_contract=new RewriteRuleSubtreeStream(adaptor,"rule contract");
RewriteRuleSubtreeStream stream_compoundStatement=new RewriteRuleSubtreeStream(adaptor,"rule compoundStatement");
RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator");
RewriteRuleSubtreeStream stream_declarationSpecifiers=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifiers");
RewriteRuleSubtreeStream stream_declarationList_opt=new RewriteRuleSubtreeStream(adaptor,"rule declarationList_opt");
Symbols_stack.peek().types = new HashSet<String>();
Symbols_stack.peek().enumerationConstants = new HashSet<String>();
Symbols_stack.peek().isFunctionDefinition = true;
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().hasTypeSpec = false;
try {
// CivlCParser.g:1776:2: ( declarator contract declarationList_opt compoundStatement -> ^( FUNCTION_DEFINITION ^( DECLARATION_SPECIFIERS ) declarator declarationList_opt compoundStatement contract ) | declarationSpecifiers declarator contract declarationList_opt compoundStatement -> ^( FUNCTION_DEFINITION declarationSpecifiers declarator declarationList_opt compoundStatement contract ) )
int alt139=2;
switch ( input.LA(1) ) {
case IDENTIFIER:
{
int LA139_1 = input.LA(2);
if ( (!(((isTypeName(input.LT(1).getText()))))) ) {
alt139=1;
}
else if ( ((isTypeName(input.LT(1).getText()))) ) {
alt139=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 139, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case LPAREN:
case STAR:
{
alt139=1;
}
break;
case ABSTRACT:
case ALIGNAS:
case ATOMIC:
case AUTO:
case BOOL:
case CHAR:
case COMPLEX:
case CONST:
case DEVICE:
case DIFFERENTIABLE:
case DOMAIN:
case DOUBLE:
case ENUM:
case EXTERN:
case FATOMIC:
case FLOAT:
case GLOBAL:
case INLINE:
case INPUT:
case INT:
case LONG:
case MEM_TYPE:
case NORETURN:
case OUTPUT:
case PURE:
case RANGE:
case REAL:
case REGISTER:
case RESTRICT:
case SHARED:
case SHORT:
case SIGNED:
case STATE_F:
case STATIC:
case STRUCT:
case SYSTEM:
case THREADLOCAL:
case TYPEDEF:
case TYPEOF:
case UNION:
case UNSIGNED:
case VOID:
case VOLATILE:
{
alt139=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 139, 0, input);
throw nvae;
}
switch (alt139) {
case 1 :
// CivlCParser.g:1776:4: declarator contract declarationList_opt compoundStatement
{
pushFollow(FOLLOW_declarator_in_functionDefinition10928);
declarator572=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator572.getTree());
pushFollow(FOLLOW_contract_in_functionDefinition10933);
contract573=contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_contract.add(contract573.getTree());
pushFollow(FOLLOW_declarationList_opt_in_functionDefinition10938);
declarationList_opt574=declarationList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationList_opt.add(declarationList_opt574.getTree());
pushFollow(FOLLOW_compoundStatement_in_functionDefinition10943);
compoundStatement575=compoundStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_compoundStatement.add(compoundStatement575.getTree());
// AST REWRITE
// elements: compoundStatement, declarationList_opt, contract, declarator
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1780:4: -> ^( FUNCTION_DEFINITION ^( DECLARATION_SPECIFIERS ) declarator declarationList_opt compoundStatement contract )
{
// CivlCParser.g:1780:7: ^( FUNCTION_DEFINITION ^( DECLARATION_SPECIFIERS ) declarator declarationList_opt compoundStatement contract )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNCTION_DEFINITION, "FUNCTION_DEFINITION"), root_1);
// CivlCParser.g:1780:29: ^( DECLARATION_SPECIFIERS )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATION_SPECIFIERS, "DECLARATION_SPECIFIERS"), root_2);
adaptor.addChild(root_1, root_2);
}
adaptor.addChild(root_1, stream_declarator.nextTree());
adaptor.addChild(root_1, stream_declarationList_opt.nextTree());
adaptor.addChild(root_1, stream_compoundStatement.nextTree());
adaptor.addChild(root_1, stream_contract.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1783:7: declarationSpecifiers declarator contract declarationList_opt compoundStatement
{
pushFollow(FOLLOW_declarationSpecifiers_in_functionDefinition10988);
declarationSpecifiers576=declarationSpecifiers();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers576.getTree());
pushFollow(FOLLOW_declarator_in_functionDefinition10993);
declarator577=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator577.getTree());
pushFollow(FOLLOW_contract_in_functionDefinition10998);
contract578=contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_contract.add(contract578.getTree());
pushFollow(FOLLOW_declarationList_opt_in_functionDefinition11003);
declarationList_opt579=declarationList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationList_opt.add(declarationList_opt579.getTree());
pushFollow(FOLLOW_compoundStatement_in_functionDefinition11008);
compoundStatement580=compoundStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_compoundStatement.add(compoundStatement580.getTree());
// AST REWRITE
// elements: contract, declarator, declarationSpecifiers, declarationList_opt, compoundStatement
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1788:4: -> ^( FUNCTION_DEFINITION declarationSpecifiers declarator declarationList_opt compoundStatement contract )
{
// CivlCParser.g:1788:7: ^( FUNCTION_DEFINITION declarationSpecifiers declarator declarationList_opt compoundStatement contract )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNCTION_DEFINITION, "FUNCTION_DEFINITION"), root_1);
adaptor.addChild(root_1, stream_declarationSpecifiers.nextTree());
adaptor.addChild(root_1, stream_declarator.nextTree());
adaptor.addChild(root_1, stream_declarationList_opt.nextTree());
adaptor.addChild(root_1, stream_compoundStatement.nextTree());
adaptor.addChild(root_1, stream_contract.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
Symbols_stack.pop();
DeclarationScope_stack.pop();
}
return retval;
}
// $ANTLR end "functionDefinition"
public static class declarationList_opt_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declarationList_opt"
// CivlCParser.g:1798:1: declarationList_opt : ( declaration )* -> ^( DECLARATION_LIST ( declaration )* ) ;
public final OmpParser_CivlCParser.declarationList_opt_return declarationList_opt() throws RecognitionException {
OmpParser_CivlCParser.declarationList_opt_return retval = new OmpParser_CivlCParser.declarationList_opt_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope declaration581 =null;
RewriteRuleSubtreeStream stream_declaration=new RewriteRuleSubtreeStream(adaptor,"rule declaration");
try {
// CivlCParser.g:1799:2: ( ( declaration )* -> ^( DECLARATION_LIST ( declaration )* ) )
// CivlCParser.g:1799:4: ( declaration )*
{
// CivlCParser.g:1799:4: ( declaration )*
loop140:
while (true) {
int alt140=2;
int LA140_0 = input.LA(1);
if ( (LA140_0==IDENTIFIER||(LA140_0 >= ABSTRACT && LA140_0 <= ALIGNAS)||(LA140_0 >= ATOMIC && LA140_0 <= AUTO)||LA140_0==BOOL||LA140_0==CHAR||(LA140_0 >= COMPLEX && LA140_0 <= CONST)||(LA140_0 >= DEVICE && LA140_0 <= DIFFERENTIABLE)||(LA140_0 >= DOMAIN && LA140_0 <= DOUBLE)||LA140_0==ENUM||(LA140_0 >= EXTERN && LA140_0 <= FATOMIC)||LA140_0==FLOAT||LA140_0==GLOBAL||(LA140_0 >= INLINE && LA140_0 <= INT)||(LA140_0 >= LONG && LA140_0 <= NORETURN)||LA140_0==OUTPUT||(LA140_0 >= PURE && LA140_0 <= RANGE)||(LA140_0 >= REAL && LA140_0 <= REGISTER)||LA140_0==RESTRICT||(LA140_0 >= SHARED && LA140_0 <= SIGNED)||LA140_0==STATE_F||(LA140_0 >= STATIC && LA140_0 <= STRUCT)||LA140_0==SYSTEM||(LA140_0 >= THREADLOCAL && LA140_0 <= TYPEOF)||(LA140_0 >= UNION && LA140_0 <= UNSIGNED)||(LA140_0 >= VOID && LA140_0 <= VOLATILE)) ) {
alt140=1;
}
switch (alt140) {
case 1 :
// CivlCParser.g:1799:4: declaration
{
pushFollow(FOLLOW_declaration_in_declarationList_opt11057);
declaration581=declaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration.add(declaration581.getTree());
}
break;
default :
break loop140;
}
}
// AST REWRITE
// elements: declaration
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1799:17: -> ^( DECLARATION_LIST ( declaration )* )
{
// CivlCParser.g:1799:20: ^( DECLARATION_LIST ( declaration )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATION_LIST, "DECLARATION_LIST"), root_1);
// CivlCParser.g:1799:39: ( declaration )*
while ( stream_declaration.hasNext() ) {
adaptor.addChild(root_1, stream_declaration.nextTree());
}
stream_declaration.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 "declarationList_opt"
public static class contractItem_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "contractItem"
// CivlCParser.g:1807:1: contractItem : ( separationLogicItem | porItem );
public final OmpParser_CivlCParser.contractItem_return contractItem() throws RecognitionException {
OmpParser_CivlCParser.contractItem_return retval = new OmpParser_CivlCParser.contractItem_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope separationLogicItem582 =null;
ParserRuleReturnScope porItem583 =null;
try {
// CivlCParser.g:1808:2: ( separationLogicItem | porItem )
int alt141=2;
int LA141_0 = input.LA(1);
if ( (LA141_0==ENSURES||LA141_0==REQUIRES) ) {
alt141=1;
}
else if ( (LA141_0==ASSIGNS||LA141_0==DEPENDS||LA141_0==GUARD||LA141_0==READS) ) {
alt141=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 141, 0, input);
throw nvae;
}
switch (alt141) {
case 1 :
// CivlCParser.g:1808:4: separationLogicItem
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_separationLogicItem_in_contractItem11080);
separationLogicItem582=separationLogicItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, separationLogicItem582.getTree());
}
break;
case 2 :
// CivlCParser.g:1809:7: porItem
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_porItem_in_contractItem11088);
porItem583=porItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, porItem583.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 "contractItem"
public static class separationLogicItem_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "separationLogicItem"
// CivlCParser.g:1812:1: separationLogicItem : ( REQUIRES LCURLY expression RCURLY -> ^( REQUIRES expression RCURLY ) | ENSURES LCURLY expression RCURLY -> ^( ENSURES expression RCURLY ) );
public final OmpParser_CivlCParser.separationLogicItem_return separationLogicItem() throws RecognitionException {
OmpParser_CivlCParser.separationLogicItem_return retval = new OmpParser_CivlCParser.separationLogicItem_return();
retval.start = input.LT(1);
Object root_0 = null;
Token REQUIRES584=null;
Token LCURLY585=null;
Token RCURLY587=null;
Token ENSURES588=null;
Token LCURLY589=null;
Token RCURLY591=null;
ParserRuleReturnScope expression586 =null;
ParserRuleReturnScope expression590 =null;
Object REQUIRES584_tree=null;
Object LCURLY585_tree=null;
Object RCURLY587_tree=null;
Object ENSURES588_tree=null;
Object LCURLY589_tree=null;
Object RCURLY591_tree=null;
RewriteRuleTokenStream stream_ENSURES=new RewriteRuleTokenStream(adaptor,"token ENSURES");
RewriteRuleTokenStream stream_REQUIRES=new RewriteRuleTokenStream(adaptor,"token REQUIRES");
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
try {
// CivlCParser.g:1813:5: ( REQUIRES LCURLY expression RCURLY -> ^( REQUIRES expression RCURLY ) | ENSURES LCURLY expression RCURLY -> ^( ENSURES expression RCURLY ) )
int alt142=2;
int LA142_0 = input.LA(1);
if ( (LA142_0==REQUIRES) ) {
alt142=1;
}
else if ( (LA142_0==ENSURES) ) {
alt142=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 142, 0, input);
throw nvae;
}
switch (alt142) {
case 1 :
// CivlCParser.g:1814:7: REQUIRES LCURLY expression RCURLY
{
REQUIRES584=(Token)match(input,REQUIRES,FOLLOW_REQUIRES_in_separationLogicItem11108); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_REQUIRES.add(REQUIRES584);
LCURLY585=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_separationLogicItem11110); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY585);
pushFollow(FOLLOW_expression_in_separationLogicItem11112);
expression586=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression586.getTree());
RCURLY587=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_separationLogicItem11114); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY587);
// AST REWRITE
// elements: REQUIRES, RCURLY, 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();
// 1814:41: -> ^( REQUIRES expression RCURLY )
{
// CivlCParser.g:1814:44: ^( REQUIRES expression RCURLY )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_REQUIRES.nextNode(), root_1);
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_1, stream_RCURLY.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1815:4: ENSURES LCURLY expression RCURLY
{
ENSURES588=(Token)match(input,ENSURES,FOLLOW_ENSURES_in_separationLogicItem11129); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ENSURES.add(ENSURES588);
LCURLY589=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_separationLogicItem11131); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY589);
pushFollow(FOLLOW_expression_in_separationLogicItem11133);
expression590=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression590.getTree());
RCURLY591=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_separationLogicItem11135); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY591);
// AST REWRITE
// elements: expression, RCURLY, ENSURES
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1815:37: -> ^( ENSURES expression RCURLY )
{
// CivlCParser.g:1815:40: ^( ENSURES expression RCURLY )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ENSURES.nextNode(), root_1);
adaptor.addChild(root_1, stream_expression.nextTree());
adaptor.addChild(root_1, stream_RCURLY.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 "separationLogicItem"
public static class porItem_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "porItem"
// CivlCParser.g:1818:1: porItem : ( DEPENDS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY -> ^( DEPENDS ( expression )? argumentExpressionList ) | GUARD ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY -> ^( GUARD ( expression )? argumentExpressionList ) | ASSIGNS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY -> ^( ASSIGNS ( expression )? argumentExpressionList ) | READS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY -> ^( READS ( expression )? argumentExpressionList ) );
public final OmpParser_CivlCParser.porItem_return porItem() throws RecognitionException {
OmpParser_CivlCParser.porItem_return retval = new OmpParser_CivlCParser.porItem_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DEPENDS592=null;
Token LSQUARE593=null;
Token RSQUARE595=null;
Token LCURLY596=null;
Token RCURLY598=null;
Token GUARD599=null;
Token LSQUARE600=null;
Token RSQUARE602=null;
Token LCURLY603=null;
Token RCURLY605=null;
Token ASSIGNS606=null;
Token LSQUARE607=null;
Token RSQUARE609=null;
Token LCURLY610=null;
Token RCURLY612=null;
Token READS613=null;
Token LSQUARE614=null;
Token RSQUARE616=null;
Token LCURLY617=null;
Token RCURLY619=null;
ParserRuleReturnScope expression594 =null;
ParserRuleReturnScope argumentExpressionList597 =null;
ParserRuleReturnScope expression601 =null;
ParserRuleReturnScope argumentExpressionList604 =null;
ParserRuleReturnScope expression608 =null;
ParserRuleReturnScope argumentExpressionList611 =null;
ParserRuleReturnScope expression615 =null;
ParserRuleReturnScope argumentExpressionList618 =null;
Object DEPENDS592_tree=null;
Object LSQUARE593_tree=null;
Object RSQUARE595_tree=null;
Object LCURLY596_tree=null;
Object RCURLY598_tree=null;
Object GUARD599_tree=null;
Object LSQUARE600_tree=null;
Object RSQUARE602_tree=null;
Object LCURLY603_tree=null;
Object RCURLY605_tree=null;
Object ASSIGNS606_tree=null;
Object LSQUARE607_tree=null;
Object RSQUARE609_tree=null;
Object LCURLY610_tree=null;
Object RCURLY612_tree=null;
Object READS613_tree=null;
Object LSQUARE614_tree=null;
Object RSQUARE616_tree=null;
Object LCURLY617_tree=null;
Object RCURLY619_tree=null;
RewriteRuleTokenStream stream_LSQUARE=new RewriteRuleTokenStream(adaptor,"token LSQUARE");
RewriteRuleTokenStream stream_RSQUARE=new RewriteRuleTokenStream(adaptor,"token RSQUARE");
RewriteRuleTokenStream stream_GUARD=new RewriteRuleTokenStream(adaptor,"token GUARD");
RewriteRuleTokenStream stream_DEPENDS=new RewriteRuleTokenStream(adaptor,"token DEPENDS");
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleTokenStream stream_READS=new RewriteRuleTokenStream(adaptor,"token READS");
RewriteRuleTokenStream stream_ASSIGNS=new RewriteRuleTokenStream(adaptor,"token ASSIGNS");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
RewriteRuleSubtreeStream stream_argumentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule argumentExpressionList");
try {
// CivlCParser.g:1819:5: ( DEPENDS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY -> ^( DEPENDS ( expression )? argumentExpressionList ) | GUARD ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY -> ^( GUARD ( expression )? argumentExpressionList ) | ASSIGNS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY -> ^( ASSIGNS ( expression )? argumentExpressionList ) | READS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY -> ^( READS ( expression )? argumentExpressionList ) )
int alt147=4;
switch ( input.LA(1) ) {
case DEPENDS:
{
alt147=1;
}
break;
case GUARD:
{
alt147=2;
}
break;
case ASSIGNS:
{
alt147=3;
}
break;
case READS:
{
alt147=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 147, 0, input);
throw nvae;
}
switch (alt147) {
case 1 :
// CivlCParser.g:1820:7: DEPENDS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY
{
DEPENDS592=(Token)match(input,DEPENDS,FOLLOW_DEPENDS_in_porItem11168); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DEPENDS.add(DEPENDS592);
// CivlCParser.g:1820:15: ( LSQUARE expression RSQUARE )?
int alt143=2;
int LA143_0 = input.LA(1);
if ( (LA143_0==LSQUARE) ) {
alt143=1;
}
switch (alt143) {
case 1 :
// CivlCParser.g:1820:16: LSQUARE expression RSQUARE
{
LSQUARE593=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_porItem11171); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE593);
pushFollow(FOLLOW_expression_in_porItem11173);
expression594=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression594.getTree());
RSQUARE595=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_porItem11175); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE595);
}
break;
}
LCURLY596=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_porItem11179); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY596);
pushFollow(FOLLOW_argumentExpressionList_in_porItem11181);
argumentExpressionList597=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList597.getTree());
RCURLY598=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_porItem11183); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY598);
// AST REWRITE
// elements: DEPENDS, expression, 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();
// 1821:7: -> ^( DEPENDS ( expression )? argumentExpressionList )
{
// CivlCParser.g:1821:10: ^( DEPENDS ( expression )? argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_DEPENDS.nextNode(), root_1);
// CivlCParser.g:1821:20: ( expression )?
if ( stream_expression.hasNext() ) {
adaptor.addChild(root_1, stream_expression.nextTree());
}
stream_expression.reset();
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1822:7: GUARD ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY
{
GUARD599=(Token)match(input,GUARD,FOLLOW_GUARD_in_porItem11208); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GUARD.add(GUARD599);
// CivlCParser.g:1822:13: ( LSQUARE expression RSQUARE )?
int alt144=2;
int LA144_0 = input.LA(1);
if ( (LA144_0==LSQUARE) ) {
alt144=1;
}
switch (alt144) {
case 1 :
// CivlCParser.g:1822:14: LSQUARE expression RSQUARE
{
LSQUARE600=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_porItem11211); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE600);
pushFollow(FOLLOW_expression_in_porItem11213);
expression601=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression601.getTree());
RSQUARE602=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_porItem11215); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE602);
}
break;
}
LCURLY603=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_porItem11219); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY603);
pushFollow(FOLLOW_argumentExpressionList_in_porItem11221);
argumentExpressionList604=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList604.getTree());
RCURLY605=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_porItem11223); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY605);
// AST REWRITE
// elements: GUARD, argumentExpressionList, 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();
// 1823:7: -> ^( GUARD ( expression )? argumentExpressionList )
{
// CivlCParser.g:1823:10: ^( GUARD ( expression )? argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_GUARD.nextNode(), root_1);
// CivlCParser.g:1823:18: ( expression )?
if ( stream_expression.hasNext() ) {
adaptor.addChild(root_1, stream_expression.nextTree());
}
stream_expression.reset();
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// CivlCParser.g:1824:7: ASSIGNS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY
{
ASSIGNS606=(Token)match(input,ASSIGNS,FOLLOW_ASSIGNS_in_porItem11248); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGNS.add(ASSIGNS606);
// CivlCParser.g:1824:15: ( LSQUARE expression RSQUARE )?
int alt145=2;
int LA145_0 = input.LA(1);
if ( (LA145_0==LSQUARE) ) {
alt145=1;
}
switch (alt145) {
case 1 :
// CivlCParser.g:1824:16: LSQUARE expression RSQUARE
{
LSQUARE607=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_porItem11251); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE607);
pushFollow(FOLLOW_expression_in_porItem11253);
expression608=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression608.getTree());
RSQUARE609=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_porItem11255); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE609);
}
break;
}
LCURLY610=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_porItem11259); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY610);
pushFollow(FOLLOW_argumentExpressionList_in_porItem11261);
argumentExpressionList611=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList611.getTree());
RCURLY612=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_porItem11263); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY612);
// AST REWRITE
// elements: expression, ASSIGNS, 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();
// 1825:7: -> ^( ASSIGNS ( expression )? argumentExpressionList )
{
// CivlCParser.g:1825:10: ^( ASSIGNS ( expression )? argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ASSIGNS.nextNode(), root_1);
// CivlCParser.g:1825:20: ( expression )?
if ( stream_expression.hasNext() ) {
adaptor.addChild(root_1, stream_expression.nextTree());
}
stream_expression.reset();
adaptor.addChild(root_1, stream_argumentExpressionList.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// CivlCParser.g:1826:7: READS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY
{
READS613=(Token)match(input,READS,FOLLOW_READS_in_porItem11288); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_READS.add(READS613);
// CivlCParser.g:1826:13: ( LSQUARE expression RSQUARE )?
int alt146=2;
int LA146_0 = input.LA(1);
if ( (LA146_0==LSQUARE) ) {
alt146=1;
}
switch (alt146) {
case 1 :
// CivlCParser.g:1826:14: LSQUARE expression RSQUARE
{
LSQUARE614=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_porItem11291); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE614);
pushFollow(FOLLOW_expression_in_porItem11293);
expression615=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression615.getTree());
RSQUARE616=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_porItem11295); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE616);
}
break;
}
LCURLY617=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_porItem11299); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY617);
pushFollow(FOLLOW_argumentExpressionList_in_porItem11301);
argumentExpressionList618=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList618.getTree());
RCURLY619=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_porItem11303); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY619);
// AST REWRITE
// elements: expression, READS, 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();
// 1827:7: -> ^( READS ( expression )? argumentExpressionList )
{
// CivlCParser.g:1827:10: ^( READS ( expression )? argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_READS.nextNode(), root_1);
// CivlCParser.g:1827:18: ( expression )?
if ( stream_expression.hasNext() ) {
adaptor.addChild(root_1, stream_expression.nextTree());
}
stream_expression.reset();
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 "porItem"
public static class contract_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "contract"
// CivlCParser.g:1836:1: contract : ( contractItem )* -> ^( CONTRACT ( contractItem )* ) ;
public final OmpParser_CivlCParser.contract_return contract() throws RecognitionException {
OmpParser_CivlCParser.contract_return retval = new OmpParser_CivlCParser.contract_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope contractItem620 =null;
RewriteRuleSubtreeStream stream_contractItem=new RewriteRuleSubtreeStream(adaptor,"rule contractItem");
try {
// CivlCParser.g:1837:2: ( ( contractItem )* -> ^( CONTRACT ( contractItem )* ) )
// CivlCParser.g:1837:4: ( contractItem )*
{
// CivlCParser.g:1837:4: ( contractItem )*
loop148:
while (true) {
int alt148=2;
int LA148_0 = input.LA(1);
if ( (LA148_0==ASSIGNS||LA148_0==DEPENDS||LA148_0==ENSURES||LA148_0==GUARD||LA148_0==READS||LA148_0==REQUIRES) ) {
alt148=1;
}
switch (alt148) {
case 1 :
// CivlCParser.g:1837:4: contractItem
{
pushFollow(FOLLOW_contractItem_in_contract11337);
contractItem620=contractItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_contractItem.add(contractItem620.getTree());
}
break;
default :
break loop148;
}
}
// AST REWRITE
// elements: contractItem
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1837:18: -> ^( CONTRACT ( contractItem )* )
{
// CivlCParser.g:1837:21: ^( CONTRACT ( contractItem )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONTRACT, "CONTRACT"), root_1);
// CivlCParser.g:1837:32: ( contractItem )*
while ( stream_contractItem.hasNext() ) {
adaptor.addChild(root_1, stream_contractItem.nextTree());
}
stream_contractItem.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 "contract"
public static class blockItemWithScope_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "blockItemWithScope"
// CivlCParser.g:1844:1: blockItemWithScope : blockItem ;
public final OmpParser_CivlCParser.blockItemWithScope_return blockItemWithScope() throws RecognitionException {
DeclarationScope_stack.push(new DeclarationScope_scope());
OmpParser_CivlCParser.blockItemWithScope_return retval = new OmpParser_CivlCParser.blockItemWithScope_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope blockItem621 =null;
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().hasTypeSpec = false;
try {
// CivlCParser.g:1850:2: ( blockItem )
// CivlCParser.g:1850:4: blockItem
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_blockItem_in_blockItemWithScope11371);
blockItem621=blockItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, blockItem621.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
DeclarationScope_stack.pop();
}
return retval;
}
// $ANTLR end "blockItemWithScope"
public static class blockItem_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "blockItem"
// CivlCParser.g:1856:1: blockItem : ( ( declarator contract declarationList_opt LCURLY )=> functionDefinition | ( declarationSpecifiers declarator contract declarationList_opt LCURLY )=> functionDefinition | declaration | pragma | annotation | statement );
public final OmpParser_CivlCParser.blockItem_return blockItem() throws RecognitionException {
OmpParser_CivlCParser.blockItem_return retval = new OmpParser_CivlCParser.blockItem_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope functionDefinition622 =null;
ParserRuleReturnScope functionDefinition623 =null;
ParserRuleReturnScope declaration624 =null;
ParserRuleReturnScope pragma625 =null;
ParserRuleReturnScope annotation626 =null;
ParserRuleReturnScope statement627 =null;
try {
// CivlCParser.g:1857:2: ( ( declarator contract declarationList_opt LCURLY )=> functionDefinition | ( declarationSpecifiers declarator contract declarationList_opt LCURLY )=> functionDefinition | declaration | pragma | annotation | statement )
int alt149=6;
alt149 = dfa149.predict(input);
switch (alt149) {
case 1 :
// CivlCParser.g:1857:4: ( declarator contract declarationList_opt LCURLY )=> functionDefinition
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_functionDefinition_in_blockItem11396);
functionDefinition622=functionDefinition();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, functionDefinition622.getTree());
}
break;
case 2 :
// CivlCParser.g:1859:4: ( declarationSpecifiers declarator contract declarationList_opt LCURLY )=> functionDefinition
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_functionDefinition_in_blockItem11417);
functionDefinition623=functionDefinition();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, functionDefinition623.getTree());
}
break;
case 3 :
// CivlCParser.g:1861:4: declaration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_declaration_in_blockItem11422);
declaration624=declaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declaration624.getTree());
}
break;
case 4 :
// CivlCParser.g:1862:4: pragma
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_pragma_in_blockItem11427);
pragma625=pragma();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, pragma625.getTree());
}
break;
case 5 :
// CivlCParser.g:1863:4: annotation
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_annotation_in_blockItem11432);
annotation626=annotation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, annotation626.getTree());
}
break;
case 6 :
// CivlCParser.g:1864:4: statement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statement_in_blockItem11437);
statement627=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement627.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 "blockItem"
public static class translationUnit_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "translationUnit"
// CivlCParser.g:1879:1: translationUnit : ( blockItem )* EOF -> ^( TRANSLATION_UNIT ( blockItem )* ) ;
public final OmpParser_CivlCParser.translationUnit_return translationUnit() throws RecognitionException {
Symbols_stack.push(new Symbols_scope());
DeclarationScope_stack.push(new DeclarationScope_scope());
OmpParser_CivlCParser.translationUnit_return retval = new OmpParser_CivlCParser.translationUnit_return();
retval.start = input.LT(1);
Object root_0 = null;
Token EOF629=null;
ParserRuleReturnScope blockItem628 =null;
Object EOF629_tree=null;
RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF");
RewriteRuleSubtreeStream stream_blockItem=new RewriteRuleSubtreeStream(adaptor,"rule blockItem");
Symbols_stack.peek().types = new HashSet<String>();
Symbols_stack.peek().enumerationConstants = new HashSet<String>();
Symbols_stack.peek().isFunctionDefinition = false;
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().hasTypeSpec = false;
try {
// CivlCParser.g:1889:2: ( ( blockItem )* EOF -> ^( TRANSLATION_UNIT ( blockItem )* ) )
// CivlCParser.g:1889:4: ( blockItem )* EOF
{
// CivlCParser.g:1889:4: ( blockItem )*
loop150:
while (true) {
int alt150=2;
int LA150_0 = input.LA(1);
if ( (LA150_0==AMPERSAND||LA150_0==ANNOTATION_START||LA150_0==CHARACTER_CONSTANT||LA150_0==ELLIPSIS||LA150_0==FLOATING_CONSTANT||(LA150_0 >= IDENTIFIER && LA150_0 <= IF)||LA150_0==INLINE_ANNOTATION_START||LA150_0==INTEGER_CONSTANT||LA150_0==LCURLY||LA150_0==LPAREN||LA150_0==MINUSMINUS||LA150_0==NOT||LA150_0==PLUS||LA150_0==PLUSPLUS||LA150_0==SEMI||LA150_0==STAR||(LA150_0 >= STRING_LITERAL && LA150_0 <= SUB)||LA150_0==TILDE||(LA150_0 >= ABSTRACT && LA150_0 <= ASM)||(LA150_0 >= ATOMIC && LA150_0 <= BIG_O)||(LA150_0 >= BOOL && LA150_0 <= CASE)||(LA150_0 >= CHAR && LA150_0 <= CIVLFOR)||(LA150_0 >= COMPLEX && LA150_0 <= CONST)||(LA150_0 >= CONTINUE && LA150_0 <= DEFAULT)||(LA150_0 >= DERIV && LA150_0 <= DOUBLE)||(LA150_0 >= ENUM && LA150_0 <= EXISTS)||(LA150_0 >= EXTERN && LA150_0 <= FATOMIC)||(LA150_0 >= FLOAT && LA150_0 <= GOTO)||LA150_0==HERE||(LA150_0 >= INLINE && LA150_0 <= INT)||(LA150_0 >= LONG && LA150_0 <= NORETURN)||LA150_0==OUTPUT||LA150_0==PARFOR||(LA150_0 >= PPRAGMA && LA150_0 <= RANGE)||(LA150_0 >= REAL && LA150_0 <= REGISTER)||(LA150_0 >= RESTRICT && LA150_0 <= SELF)||(LA150_0 >= SHARED && LA150_0 <= SYSTEM)||(LA150_0 >= THREADLOCAL && LA150_0 <= WITH)||LA150_0==SUM) ) {
alt150=1;
}
switch (alt150) {
case 1 :
// CivlCParser.g:1889:4: blockItem
{
pushFollow(FOLLOW_blockItem_in_translationUnit11467);
blockItem628=blockItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_blockItem.add(blockItem628.getTree());
}
break;
default :
break loop150;
}
}
EOF629=(Token)match(input,EOF,FOLLOW_EOF_in_translationUnit11470); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EOF.add(EOF629);
// AST REWRITE
// elements: blockItem
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1889:19: -> ^( TRANSLATION_UNIT ( blockItem )* )
{
// CivlCParser.g:1889:22: ^( TRANSLATION_UNIT ( blockItem )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TRANSLATION_UNIT, "TRANSLATION_UNIT"), root_1);
// CivlCParser.g:1889:41: ( blockItem )*
while ( stream_blockItem.hasNext() ) {
adaptor.addChild(root_1, stream_blockItem.nextTree());
}
stream_blockItem.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
Symbols_stack.pop();
DeclarationScope_stack.pop();
}
return retval;
}
// $ANTLR end "translationUnit"
// $ANTLR start synpred1_CivlCParser
public final void synpred1_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:369:4: ( LPAREN typeName RPAREN LCURLY )
// CivlCParser.g:369:5: LPAREN typeName RPAREN LCURLY
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred1_CivlCParser2329); if (state.failed) return;
pushFollow(FOLLOW_typeName_in_synpred1_CivlCParser2331);
typeName();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred1_CivlCParser2333); if (state.failed) return;
match(input,LCURLY,FOLLOW_LCURLY_in_synpred1_CivlCParser2335); if (state.failed) return;
}
}
// $ANTLR end synpred1_CivlCParser
// $ANTLR start synpred2_CivlCParser
public final void synpred2_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:402:4: ( SIZEOF LPAREN typeName )
// CivlCParser.g:402:5: SIZEOF LPAREN typeName
{
match(input,SIZEOF,FOLLOW_SIZEOF_in_synpred2_CivlCParser2638); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred2_CivlCParser2640); if (state.failed) return;
pushFollow(FOLLOW_typeName_in_synpred2_CivlCParser2642);
typeName();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred2_CivlCParser
// $ANTLR start synpred3_CivlCParser
public final void synpred3_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:465:4: ( LPAREN typeName RPAREN ~ LCURLY )
// CivlCParser.g:465:5: LPAREN typeName RPAREN ~ LCURLY
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred3_CivlCParser3087); if (state.failed) return;
pushFollow(FOLLOW_typeName_in_synpred3_CivlCParser3089);
typeName();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred3_CivlCParser3091); if (state.failed) return;
if ( (input.LA(1) >= AMPERSAND && input.LA(1) <= IntegerSuffix)||(input.LA(1) >= LEXCON && input.LA(1) <= 569) ) {
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;
}
}
}
// $ANTLR end synpred3_CivlCParser
// $ANTLR start synpred4_CivlCParser
public final void synpred4_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:475:11: ( AT )
// CivlCParser.g:475:12: AT
{
match(input,AT,FOLLOW_AT_in_synpred4_CivlCParser3172); if (state.failed) return;
}
}
// $ANTLR end synpred4_CivlCParser
// $ANTLR start synpred5_CivlCParser
public final void synpred5_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:483:11: ( STAR )
// CivlCParser.g:483:12: STAR
{
match(input,STAR,FOLLOW_STAR_in_synpred5_CivlCParser3253); if (state.failed) return;
}
}
// $ANTLR end synpred5_CivlCParser
// $ANTLR start synpred6_CivlCParser
public final void synpred6_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:485:11: ( DIV )
// CivlCParser.g:485:12: DIV
{
match(input,DIV,FOLLOW_DIV_in_synpred6_CivlCParser3304); if (state.failed) return;
}
}
// $ANTLR end synpred6_CivlCParser
// $ANTLR start synpred7_CivlCParser
public final void synpred7_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:487:11: ( MOD )
// CivlCParser.g:487:12: MOD
{
match(input,MOD,FOLLOW_MOD_in_synpred7_CivlCParser3355); if (state.failed) return;
}
}
// $ANTLR end synpred7_CivlCParser
// $ANTLR start synpred8_CivlCParser
public final void synpred8_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:495:11: ( PLUS )
// CivlCParser.g:495:12: PLUS
{
match(input,PLUS,FOLLOW_PLUS_in_synpred8_CivlCParser3436); if (state.failed) return;
}
}
// $ANTLR end synpred8_CivlCParser
// $ANTLR start synpred9_CivlCParser
public final void synpred9_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:497:11: ( SUB )
// CivlCParser.g:497:12: SUB
{
match(input,SUB,FOLLOW_SUB_in_synpred9_CivlCParser3485); if (state.failed) return;
}
}
// $ANTLR end synpred9_CivlCParser
// $ANTLR start synpred10_CivlCParser
public final void synpred10_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:506:11: ( DOTDOT )
// CivlCParser.g:506:12: DOTDOT
{
match(input,DOTDOT,FOLLOW_DOTDOT_in_synpred10_CivlCParser3560); if (state.failed) return;
}
}
// $ANTLR end synpred10_CivlCParser
// $ANTLR start synpred11_CivlCParser
public final void synpred11_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:513:11: ( HASH )
// CivlCParser.g:513:12: HASH
{
match(input,HASH,FOLLOW_HASH_in_synpred11_CivlCParser3637); if (state.failed) return;
}
}
// $ANTLR end synpred11_CivlCParser
// $ANTLR start synpred12_CivlCParser
public final void synpred12_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:521:11: ( SHIFTLEFT )
// CivlCParser.g:521:12: SHIFTLEFT
{
match(input,SHIFTLEFT,FOLLOW_SHIFTLEFT_in_synpred12_CivlCParser3713); if (state.failed) return;
}
}
// $ANTLR end synpred12_CivlCParser
// $ANTLR start synpred13_CivlCParser
public final void synpred13_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:523:11: ( SHIFTRIGHT )
// CivlCParser.g:523:12: SHIFTRIGHT
{
match(input,SHIFTRIGHT,FOLLOW_SHIFTRIGHT_in_synpred13_CivlCParser3762); if (state.failed) return;
}
}
// $ANTLR end synpred13_CivlCParser
// $ANTLR start synpred14_CivlCParser
public final void synpred14_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:531:11: ( relationalOperator )
// CivlCParser.g:531:12: relationalOperator
{
pushFollow(FOLLOW_relationalOperator_in_synpred14_CivlCParser3843);
relationalOperator();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred14_CivlCParser
// $ANTLR start synpred15_CivlCParser
public final void synpred15_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:546:11: ( equalityOperator )
// CivlCParser.g:546:12: equalityOperator
{
pushFollow(FOLLOW_equalityOperator_in_synpred15_CivlCParser3981);
equalityOperator();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred15_CivlCParser
// $ANTLR start synpred16_CivlCParser
public final void synpred16_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:561:11: ( AMPERSAND )
// CivlCParser.g:561:12: AMPERSAND
{
match(input,AMPERSAND,FOLLOW_AMPERSAND_in_synpred16_CivlCParser4116); if (state.failed) return;
}
}
// $ANTLR end synpred16_CivlCParser
// $ANTLR start synpred17_CivlCParser
public final void synpred17_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:569:11: ( BITXOR )
// CivlCParser.g:569:12: BITXOR
{
match(input,BITXOR,FOLLOW_BITXOR_in_synpred17_CivlCParser4199); if (state.failed) return;
}
}
// $ANTLR end synpred17_CivlCParser
// $ANTLR start synpred18_CivlCParser
public final void synpred18_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:577:11: ( BITOR )
// CivlCParser.g:577:12: BITOR
{
match(input,BITOR,FOLLOW_BITOR_in_synpred18_CivlCParser4282); if (state.failed) return;
}
}
// $ANTLR end synpred18_CivlCParser
// $ANTLR start synpred19_CivlCParser
public final void synpred19_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:585:11: ( AND )
// CivlCParser.g:585:12: AND
{
match(input,AND,FOLLOW_AND_in_synpred19_CivlCParser4365); if (state.failed) return;
}
}
// $ANTLR end synpred19_CivlCParser
// $ANTLR start synpred20_CivlCParser
public final void synpred20_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:593:11: ( OR )
// CivlCParser.g:593:12: OR
{
match(input,OR,FOLLOW_OR_in_synpred20_CivlCParser4456); if (state.failed) return;
}
}
// $ANTLR end synpred20_CivlCParser
// $ANTLR start synpred21_CivlCParser
public final void synpred21_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:602:11: ( IMPLIES )
// CivlCParser.g:602:12: IMPLIES
{
match(input,IMPLIES,FOLLOW_IMPLIES_in_synpred21_CivlCParser4550); if (state.failed) return;
}
}
// $ANTLR end synpred21_CivlCParser
// $ANTLR start synpred22_CivlCParser
public final void synpred22_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:611:11: ( QMARK )
// CivlCParser.g:611:12: QMARK
{
match(input,QMARK,FOLLOW_QMARK_in_synpred22_CivlCParser4636); if (state.failed) return;
}
}
// $ANTLR end synpred22_CivlCParser
// $ANTLR start synpred23_CivlCParser
public final void synpred23_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:639:5: ( LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR )
// CivlCParser.g:639:6: LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred23_CivlCParser4904); if (state.failed) return;
pushFollow(FOLLOW_typeName_in_synpred23_CivlCParser4906);
typeName();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred23_CivlCParser4908); if (state.failed) return;
match(input,LAMBDA,FOLLOW_LAMBDA_in_synpred23_CivlCParser4910); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred23_CivlCParser4912); if (state.failed) return;
pushFollow(FOLLOW_boundVariableDeclarationList_in_synpred23_CivlCParser4930);
boundVariableDeclarationList();
state._fsp--;
if (state.failed) return;
match(input,BITOR,FOLLOW_BITOR_in_synpred23_CivlCParser4932); if (state.failed) return;
}
}
// $ANTLR end synpred23_CivlCParser
// $ANTLR start synpred24_CivlCParser
public final void synpred24_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:675:4: ( arrayLambdaExpression )
// CivlCParser.g:675:5: arrayLambdaExpression
{
pushFollow(FOLLOW_arrayLambdaExpression_in_synpred24_CivlCParser5245);
arrayLambdaExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred24_CivlCParser
// $ANTLR start synpred25_CivlCParser
public final void synpred25_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:676:4: ( unaryExpression assignmentOperator )
// CivlCParser.g:676:5: unaryExpression assignmentOperator
{
pushFollow(FOLLOW_unaryExpression_in_synpred25_CivlCParser5255);
unaryExpression();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_assignmentOperator_in_synpred25_CivlCParser5257);
assignmentOperator();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred25_CivlCParser
// $ANTLR start synpred26_CivlCParser
public final void synpred26_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:700:6: ( COMMA )
// CivlCParser.g:700:7: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_synpred26_CivlCParser5418); if (state.failed) return;
}
}
// $ANTLR end synpred26_CivlCParser
// $ANTLR start synpred27_CivlCParser
public final void synpred27_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:793:4: ( typeSpecifier )
// CivlCParser.g:793:5: typeSpecifier
{
pushFollow(FOLLOW_typeSpecifier_in_synpred27_CivlCParser5683);
typeSpecifier();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred27_CivlCParser
// $ANTLR start synpred28_CivlCParser
public final void synpred28_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:1011:8: ( SYSTEM libraryName )
// CivlCParser.g:1011:9: SYSTEM libraryName
{
match(input,SYSTEM,FOLLOW_SYSTEM_in_synpred28_CivlCParser6898); if (state.failed) return;
pushFollow(FOLLOW_libraryName_in_synpred28_CivlCParser6900);
libraryName();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred28_CivlCParser
// $ANTLR start synpred29_CivlCParser
public final void synpred29_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:1250:4: ( declarator )
// CivlCParser.g:1250:5: declarator
{
pushFollow(FOLLOW_declarator_in_synpred29_CivlCParser8143);
declarator();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred29_CivlCParser
// $ANTLR start synpred30_CivlCParser
public final void synpred30_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:1547:11: ( ELSE )
// CivlCParser.g:1547:12: ELSE
{
match(input,ELSE,FOLLOW_ELSE_in_synpred30_CivlCParser9751); if (state.failed) return;
}
}
// $ANTLR end synpred30_CivlCParser
// $ANTLR start synpred31_CivlCParser
public final void synpred31_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:1857:4: ( declarator contract declarationList_opt LCURLY )
// CivlCParser.g:1857:5: declarator contract declarationList_opt LCURLY
{
pushFollow(FOLLOW_declarator_in_synpred31_CivlCParser11383);
declarator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_contract_in_synpred31_CivlCParser11385);
contract();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declarationList_opt_in_synpred31_CivlCParser11387);
declarationList_opt();
state._fsp--;
if (state.failed) return;
match(input,LCURLY,FOLLOW_LCURLY_in_synpred31_CivlCParser11389); if (state.failed) return;
}
}
// $ANTLR end synpred31_CivlCParser
// $ANTLR start synpred32_CivlCParser
public final void synpred32_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:1859:4: ( declarationSpecifiers declarator contract declarationList_opt LCURLY )
// CivlCParser.g:1859:5: declarationSpecifiers declarator contract declarationList_opt LCURLY
{
pushFollow(FOLLOW_declarationSpecifiers_in_synpred32_CivlCParser11402);
declarationSpecifiers();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declarator_in_synpred32_CivlCParser11404);
declarator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_contract_in_synpred32_CivlCParser11406);
contract();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declarationList_opt_in_synpred32_CivlCParser11408);
declarationList_opt();
state._fsp--;
if (state.failed) return;
match(input,LCURLY,FOLLOW_LCURLY_in_synpred32_CivlCParser11410); if (state.failed) return;
}
}
// $ANTLR end synpred32_CivlCParser
// Delegated rules
public final boolean synpred2_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred2_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred29_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred18_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred1_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred17_CivlCParser_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred28_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred28_CivlCParser_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred19_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred19_CivlCParser_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred12_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred12_CivlCParser_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred32_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred32_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred21_CivlCParser_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred23_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred23_CivlCParser_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred9_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred9_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred10_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred14_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred31_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred8_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred13_CivlCParser_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred20_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred20_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred24_CivlCParser_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred16_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred16_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred30_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred25_CivlCParser_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred27_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred27_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred15_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred26_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred3_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred4_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred5_CivlCParser_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred7_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred7_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred6_CivlCParser_fragment(); // can never throw exception
} catch (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_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred11_CivlCParser_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred22_CivlCParser() {
state.backtracking++;
int start = input.mark();
try {
synpred22_CivlCParser_fragment(); // can never 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 DFA76 dfa76 = new DFA76(this);
protected DFA85 dfa85 = new DFA85(this);
protected DFA86 dfa86 = new DFA86(this);
protected DFA98 dfa98 = new DFA98(this);
protected DFA102 dfa102 = new DFA102(this);
protected DFA121 dfa121 = new DFA121(this);
protected DFA149 dfa149 = new DFA149(this);
static final String DFA76_eotS =
"\36\uffff";
static final String DFA76_eofS =
"\36\uffff";
static final String DFA76_minS =
"\1\172\5\uffff\1\26\4\uffff\1\4\1\uffff\2\4\1\uffff\1\0\1\uffff\4\4\1"+
"\0\2\4\2\0\1\4\2\0";
static final String DFA76_maxS =
"\1\u00d1\5\uffff\1\u00dc\4\uffff\1\u0124\1\uffff\1\162\1\u0124\1\uffff"+
"\1\0\1\uffff\1\u0124\1\161\1\u0124\1\161\1\0\1\u0124\1\161\2\0\1\161\2"+
"\0";
static final String DFA76_acceptS =
"\1\uffff\1\1\1\2\1\3\1\4\1\5\1\uffff\1\10\1\11\1\12\1\13\1\uffff\1\7\2"+
"\uffff\1\6\1\uffff\1\6\14\uffff";
static final String DFA76_specialS =
"\15\uffff\1\15\1\0\1\uffff\1\1\1\uffff\1\11\1\14\1\12\1\2\1\3\1\13\1\16"+
"\1\4\1\10\1\7\1\5\1\6}>";
static final String[] DFA76_transitionS = {
"\1\3\31\uffff\1\10\1\12\10\uffff\1\7\5\uffff\1\11\4\uffff\1\1\6\uffff"+
"\1\2\10\uffff\1\4\21\uffff\1\5\5\uffff\1\6",
"",
"",
"",
"",
"",
"\1\14\42\uffff\1\14\17\uffff\1\14\1\uffff\1\13\31\uffff\1\14\3\uffff"+
"\1\14\4\uffff\1\14\13\uffff\2\14\3\uffff\2\14\2\uffff\1\14\4\uffff\1"+
"\14\4\uffff\2\14\5\uffff\2\14\1\uffff\2\14\1\uffff\1\14\2\uffff\2\14"+
"\1\uffff\1\14\3\uffff\1\14\4\uffff\3\14\2\uffff\3\14\1\uffff\1\14\6\uffff"+
"\2\14\1\uffff\2\14\1\uffff\1\14\6\uffff\3\14\2\uffff\1\14\1\uffff\1\14"+
"\1\uffff\1\14\1\uffff\1\14\1\uffff\3\14\1\uffff\2\14\2\uffff\2\14",
"",
"",
"",
"",
"\1\14\17\uffff\1\14\15\uffff\1\14\10\uffff\1\14\15\uffff\1\15\11\uffff"+
"\1\14\5\uffff\1\14\6\uffff\1\14\4\uffff\1\14\7\uffff\1\14\1\uffff\1\14"+
"\7\uffff\1\14\6\uffff\1\14\1\uffff\2\14\1\uffff\1\14\10\uffff\1\14\2"+
"\uffff\1\14\1\uffff\1\14\3\uffff\1\14\10\uffff\1\14\4\uffff\1\14\17\uffff"+
"\1\14\3\uffff\1\14\2\uffff\1\14\7\uffff\1\14\5\uffff\1\14\6\uffff\2\14"+
"\2\uffff\2\14\4\uffff\2\14\1\uffff\2\14\14\uffff\1\14\1\uffff\1\14\107"+
"\uffff\1\14",
"",
"\2\14\2\uffff\10\14\12\uffff\4\14\7\uffff\1\14\10\uffff\2\14\11\uffff"+
"\1\17\3\uffff\1\14\11\uffff\1\14\1\uffff\1\14\1\uffff\3\14\2\uffff\4"+
"\14\4\uffff\1\14\4\uffff\3\14\2\uffff\1\14\4\uffff\1\20\2\uffff\6\14"+
"\1\uffff\1\16\1\14",
"\1\14\17\uffff\1\14\15\uffff\1\14\10\uffff\1\14\15\uffff\1\23\11\uffff"+
"\1\14\5\uffff\1\14\6\uffff\1\14\4\uffff\1\14\7\uffff\1\14\1\uffff\1\14"+
"\7\uffff\1\21\6\uffff\1\14\1\uffff\1\14\1\22\1\uffff\1\14\10\uffff\1"+
"\14\4\uffff\1\14\3\uffff\1\14\15\uffff\1\14\17\uffff\1\14\3\uffff\1\14"+
"\20\uffff\1\14\7\uffff\1\14\2\uffff\2\14\4\uffff\2\14\1\uffff\1\14\15"+
"\uffff\1\14\111\uffff\1\14",
"",
"\1\uffff",
"",
"\1\14\17\uffff\1\14\15\uffff\1\14\10\uffff\1\14\15\uffff\1\25\11\uffff"+
"\1\14\5\uffff\1\14\6\uffff\1\14\4\uffff\1\14\7\uffff\1\14\1\uffff\1\14"+
"\7\uffff\1\21\6\uffff\1\14\1\uffff\1\14\1\24\1\uffff\1\14\10\uffff\1"+
"\14\4\uffff\1\14\3\uffff\1\14\15\uffff\1\14\7\uffff\1\14\6\uffff\2\14"+
"\3\uffff\1\14\20\uffff\1\14\7\uffff\1\14\2\uffff\2\14\4\uffff\2\14\1"+
"\uffff\1\14\11\uffff\1\14\3\uffff\1\14\111\uffff\1\14",
"\2\14\2\uffff\1\14\1\uffff\1\14\1\uffff\1\14\1\uffff\1\14\13\uffff\1"+
"\14\1\uffff\2\14\7\uffff\1\14\10\uffff\2\14\11\uffff\1\17\3\uffff\1\14"+
"\11\uffff\1\14\1\uffff\1\14\1\uffff\3\14\2\uffff\2\14\1\uffff\1\14\4"+
"\uffff\1\14\4\uffff\1\14\1\uffff\1\14\2\uffff\1\14\4\uffff\1\26\2\uffff"+
"\1\14\1\uffff\1\14\1\uffff\1\14\2\uffff\1\16",
"\1\14\17\uffff\1\14\15\uffff\1\14\10\uffff\1\14\15\uffff\1\30\11\uffff"+
"\1\14\5\uffff\1\14\6\uffff\1\14\4\uffff\1\14\7\uffff\1\14\1\uffff\1\14"+
"\7\uffff\1\21\6\uffff\1\14\1\uffff\1\14\1\27\1\uffff\1\14\10\uffff\1"+
"\14\4\uffff\1\14\3\uffff\1\14\15\uffff\1\14\7\uffff\1\14\6\uffff\2\14"+
"\3\uffff\1\14\20\uffff\1\14\7\uffff\1\14\2\uffff\2\14\4\uffff\2\14\1"+
"\uffff\1\14\11\uffff\1\14\3\uffff\1\14\111\uffff\1\14",
"\2\14\2\uffff\1\14\1\uffff\1\14\1\uffff\1\14\1\uffff\1\14\13\uffff\1"+
"\14\1\uffff\2\14\7\uffff\1\14\10\uffff\2\14\11\uffff\1\17\3\uffff\1\14"+
"\11\uffff\1\14\1\uffff\1\14\1\uffff\3\14\2\uffff\2\14\1\uffff\1\14\4"+
"\uffff\1\14\4\uffff\1\14\1\uffff\1\14\2\uffff\1\14\4\uffff\1\31\2\uffff"+
"\1\14\1\uffff\1\14\1\uffff\1\14\2\uffff\1\16",
"\1\uffff",
"\1\14\17\uffff\1\14\15\uffff\1\14\10\uffff\1\14\15\uffff\1\33\11\uffff"+
"\1\14\5\uffff\1\14\6\uffff\1\14\4\uffff\1\14\7\uffff\1\14\1\uffff\1\14"+
"\7\uffff\1\21\6\uffff\1\14\1\uffff\1\14\1\32\1\uffff\1\14\10\uffff\1"+
"\14\4\uffff\1\14\3\uffff\1\14\15\uffff\1\14\7\uffff\1\14\6\uffff\2\14"+
"\3\uffff\1\14\20\uffff\1\14\7\uffff\1\14\2\uffff\2\14\4\uffff\2\14\1"+
"\uffff\1\14\11\uffff\1\14\3\uffff\1\14\111\uffff\1\14",
"\2\14\2\uffff\1\14\1\uffff\1\14\1\uffff\1\14\1\uffff\1\14\13\uffff\1"+
"\14\1\uffff\2\14\7\uffff\1\14\10\uffff\2\14\11\uffff\1\17\3\uffff\1\14"+
"\11\uffff\1\14\1\uffff\1\14\1\uffff\3\14\2\uffff\2\14\1\uffff\1\14\4"+
"\uffff\1\14\4\uffff\1\14\1\uffff\1\14\2\uffff\1\14\4\uffff\1\34\2\uffff"+
"\1\14\1\uffff\1\14\1\uffff\1\14\2\uffff\1\16",
"\1\uffff",
"\1\uffff",
"\2\14\2\uffff\1\14\1\uffff\1\14\1\uffff\1\14\1\uffff\1\14\13\uffff\1"+
"\14\1\uffff\2\14\7\uffff\1\14\10\uffff\2\14\11\uffff\1\17\3\uffff\1\14"+
"\11\uffff\1\14\1\uffff\1\14\1\uffff\3\14\2\uffff\2\14\1\uffff\1\14\4"+
"\uffff\1\14\4\uffff\1\14\1\uffff\1\14\2\uffff\1\14\4\uffff\1\35\2\uffff"+
"\1\14\1\uffff\1\14\1\uffff\1\14\2\uffff\1\16",
"\1\uffff",
"\1\uffff"
};
static final short[] DFA76_eot = DFA.unpackEncodedString(DFA76_eotS);
static final short[] DFA76_eof = DFA.unpackEncodedString(DFA76_eofS);
static final char[] DFA76_min = DFA.unpackEncodedStringToUnsignedChars(DFA76_minS);
static final char[] DFA76_max = DFA.unpackEncodedStringToUnsignedChars(DFA76_maxS);
static final short[] DFA76_accept = DFA.unpackEncodedString(DFA76_acceptS);
static final short[] DFA76_special = DFA.unpackEncodedString(DFA76_specialS);
static final short[][] DFA76_transition;
static {
int numStates = DFA76_transitionS.length;
DFA76_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA76_transition[i] = DFA.unpackEncodedString(DFA76_transitionS[i]);
}
}
protected class DFA76 extends DFA {
public DFA76(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 76;
this.eot = DFA76_eot;
this.eof = DFA76_eof;
this.min = DFA76_min;
this.max = DFA76_max;
this.accept = DFA76_accept;
this.special = DFA76_special;
this.transition = DFA76_transition;
}
@Override
public String getDescription() {
return "1006:1: functionSpecifier : ( INLINE | NORETURN | abstractSpecifier | PURE -> ^( PURE ) | STATE_F -> ^( STATE_F ) | ( ( SYSTEM libraryName )=> SYSTEM libraryName ) -> ^( SYSTEM libraryName ) | SYSTEM -> ^( SYSTEM ABSENT ) | FATOMIC -> ^( FATOMIC ) | DEVICE | GLOBAL | differentiableSpecifier );";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA76_14 = input.LA(1);
int index76_14 = input.index();
input.rewind();
s = -1;
if ( (LA76_14==RSQUARE) && (synpred28_CivlCParser())) {s = 17;}
else if ( (LA76_14==SUB) ) {s = 18;}
else if ( (LA76_14==IDENTIFIER) ) {s = 19;}
else if ( (LA76_14==AMPERSAND||LA76_14==CHARACTER_CONSTANT||LA76_14==ELLIPSIS||LA76_14==FLOATING_CONSTANT||LA76_14==INTEGER_CONSTANT||LA76_14==LPAREN||LA76_14==MINUSMINUS||LA76_14==NOT||LA76_14==PLUS||LA76_14==PLUSPLUS||LA76_14==STAR||LA76_14==STRING_LITERAL||LA76_14==TILDE||LA76_14==ALIGNOF||LA76_14==BIG_O||LA76_14==CALLS||LA76_14==DERIV||LA76_14==GENERIC||LA76_14==HERE||LA76_14==PROCNULL||LA76_14==RESULT||(LA76_14 >= SCOPEOF && LA76_14 <= SELF)||(LA76_14 >= SIZEOF && LA76_14 <= SPAWN)||LA76_14==STATE_NULL||LA76_14==VALUE_AT||LA76_14==SUM) ) {s = 12;}
input.seek(index76_14);
if ( s>=0 ) return s;
break;
case 1 :
int LA76_16 = input.LA(1);
int index76_16 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 17;}
else if ( (true) ) {s = 12;}
input.seek(index76_16);
if ( s>=0 ) return s;
break;
case 2 :
int LA76_21 = input.LA(1);
int index76_21 = input.index();
input.rewind();
s = -1;
if ( (LA76_21==RSQUARE) ) {s = 25;}
else if ( (LA76_21==SUB) ) {s = 14;}
else if ( (LA76_21==IDENTIFIER) && (synpred28_CivlCParser())) {s = 15;}
else if ( ((LA76_21 >= AMPERSAND && LA76_21 <= AND)||LA76_21==ARROW||LA76_21==AT||LA76_21==BITOR||LA76_21==BITXOR||LA76_21==DIV||(LA76_21 >= DOT && LA76_21 <= DOTDOT)||LA76_21==EQUALS||(LA76_21 >= GT && LA76_21 <= GTE)||LA76_21==IMPLIES||LA76_21==LEXCON||LA76_21==LPAREN||(LA76_21 >= LSQUARE && LA76_21 <= LTE)||(LA76_21 >= MINUSMINUS && LA76_21 <= MOD)||LA76_21==NEQ||LA76_21==OR||LA76_21==PLUS||LA76_21==PLUSPLUS||LA76_21==QMARK||LA76_21==SHIFTLEFT||LA76_21==SHIFTRIGHT||LA76_21==STAR) ) {s = 12;}
input.seek(index76_21);
if ( s>=0 ) return s;
break;
case 3 :
int LA76_22 = input.LA(1);
int index76_22 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 17;}
else if ( (true) ) {s = 12;}
input.seek(index76_22);
if ( s>=0 ) return s;
break;
case 4 :
int LA76_25 = input.LA(1);
int index76_25 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 17;}
else if ( (true) ) {s = 12;}
input.seek(index76_25);
if ( s>=0 ) return s;
break;
case 5 :
int LA76_28 = input.LA(1);
int index76_28 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 17;}
else if ( (true) ) {s = 12;}
input.seek(index76_28);
if ( s>=0 ) return s;
break;
case 6 :
int LA76_29 = input.LA(1);
int index76_29 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 17;}
else if ( (true) ) {s = 12;}
input.seek(index76_29);
if ( s>=0 ) return s;
break;
case 7 :
int LA76_27 = input.LA(1);
int index76_27 = input.index();
input.rewind();
s = -1;
if ( (LA76_27==RSQUARE) ) {s = 29;}
else if ( (LA76_27==SUB) ) {s = 14;}
else if ( (LA76_27==IDENTIFIER) && (synpred28_CivlCParser())) {s = 15;}
else if ( ((LA76_27 >= AMPERSAND && LA76_27 <= AND)||LA76_27==ARROW||LA76_27==AT||LA76_27==BITOR||LA76_27==BITXOR||LA76_27==DIV||(LA76_27 >= DOT && LA76_27 <= DOTDOT)||LA76_27==EQUALS||(LA76_27 >= GT && LA76_27 <= GTE)||LA76_27==IMPLIES||LA76_27==LEXCON||LA76_27==LPAREN||(LA76_27 >= LSQUARE && LA76_27 <= LTE)||(LA76_27 >= MINUSMINUS && LA76_27 <= MOD)||LA76_27==NEQ||LA76_27==OR||LA76_27==PLUS||LA76_27==PLUSPLUS||LA76_27==QMARK||LA76_27==SHIFTLEFT||LA76_27==SHIFTRIGHT||LA76_27==STAR) ) {s = 12;}
input.seek(index76_27);
if ( s>=0 ) return s;
break;
case 8 :
int LA76_26 = input.LA(1);
int index76_26 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 17;}
else if ( (true) ) {s = 12;}
input.seek(index76_26);
if ( s>=0 ) return s;
break;
case 9 :
int LA76_18 = input.LA(1);
int index76_18 = input.index();
input.rewind();
s = -1;
if ( (LA76_18==RSQUARE) && (synpred28_CivlCParser())) {s = 17;}
else if ( (LA76_18==SUB) ) {s = 20;}
else if ( (LA76_18==IDENTIFIER) ) {s = 21;}
else if ( (LA76_18==AMPERSAND||LA76_18==CHARACTER_CONSTANT||LA76_18==ELLIPSIS||LA76_18==FLOATING_CONSTANT||LA76_18==INTEGER_CONSTANT||LA76_18==LPAREN||LA76_18==MINUSMINUS||LA76_18==NOT||LA76_18==PLUS||LA76_18==PLUSPLUS||LA76_18==STAR||LA76_18==STRING_LITERAL||LA76_18==TILDE||LA76_18==ALIGNOF||LA76_18==BIG_O||LA76_18==CALLS||LA76_18==DERIV||LA76_18==EXISTS||(LA76_18 >= FORALL && LA76_18 <= GENERIC)||LA76_18==HERE||LA76_18==PROCNULL||LA76_18==RESULT||(LA76_18 >= SCOPEOF && LA76_18 <= SELF)||(LA76_18 >= SIZEOF && LA76_18 <= SPAWN)||LA76_18==STATE_NULL||LA76_18==UNIFORM||LA76_18==VALUE_AT||LA76_18==SUM) ) {s = 12;}
input.seek(index76_18);
if ( s>=0 ) return s;
break;
case 10 :
int LA76_20 = input.LA(1);
int index76_20 = input.index();
input.rewind();
s = -1;
if ( (LA76_20==RSQUARE) && (synpred28_CivlCParser())) {s = 17;}
else if ( (LA76_20==SUB) ) {s = 23;}
else if ( (LA76_20==IDENTIFIER) ) {s = 24;}
else if ( (LA76_20==AMPERSAND||LA76_20==CHARACTER_CONSTANT||LA76_20==ELLIPSIS||LA76_20==FLOATING_CONSTANT||LA76_20==INTEGER_CONSTANT||LA76_20==LPAREN||LA76_20==MINUSMINUS||LA76_20==NOT||LA76_20==PLUS||LA76_20==PLUSPLUS||LA76_20==STAR||LA76_20==STRING_LITERAL||LA76_20==TILDE||LA76_20==ALIGNOF||LA76_20==BIG_O||LA76_20==CALLS||LA76_20==DERIV||LA76_20==EXISTS||(LA76_20 >= FORALL && LA76_20 <= GENERIC)||LA76_20==HERE||LA76_20==PROCNULL||LA76_20==RESULT||(LA76_20 >= SCOPEOF && LA76_20 <= SELF)||(LA76_20 >= SIZEOF && LA76_20 <= SPAWN)||LA76_20==STATE_NULL||LA76_20==UNIFORM||LA76_20==VALUE_AT||LA76_20==SUM) ) {s = 12;}
input.seek(index76_20);
if ( s>=0 ) return s;
break;
case 11 :
int LA76_23 = input.LA(1);
int index76_23 = input.index();
input.rewind();
s = -1;
if ( (LA76_23==RSQUARE) && (synpred28_CivlCParser())) {s = 17;}
else if ( (LA76_23==SUB) ) {s = 26;}
else if ( (LA76_23==IDENTIFIER) ) {s = 27;}
else if ( (LA76_23==AMPERSAND||LA76_23==CHARACTER_CONSTANT||LA76_23==ELLIPSIS||LA76_23==FLOATING_CONSTANT||LA76_23==INTEGER_CONSTANT||LA76_23==LPAREN||LA76_23==MINUSMINUS||LA76_23==NOT||LA76_23==PLUS||LA76_23==PLUSPLUS||LA76_23==STAR||LA76_23==STRING_LITERAL||LA76_23==TILDE||LA76_23==ALIGNOF||LA76_23==BIG_O||LA76_23==CALLS||LA76_23==DERIV||LA76_23==EXISTS||(LA76_23 >= FORALL && LA76_23 <= GENERIC)||LA76_23==HERE||LA76_23==PROCNULL||LA76_23==RESULT||(LA76_23 >= SCOPEOF && LA76_23 <= SELF)||(LA76_23 >= SIZEOF && LA76_23 <= SPAWN)||LA76_23==STATE_NULL||LA76_23==UNIFORM||LA76_23==VALUE_AT||LA76_23==SUM) ) {s = 12;}
input.seek(index76_23);
if ( s>=0 ) return s;
break;
case 12 :
int LA76_19 = input.LA(1);
int index76_19 = input.index();
input.rewind();
s = -1;
if ( (LA76_19==RSQUARE) ) {s = 22;}
else if ( (LA76_19==SUB) ) {s = 14;}
else if ( (LA76_19==IDENTIFIER) && (synpred28_CivlCParser())) {s = 15;}
else if ( ((LA76_19 >= AMPERSAND && LA76_19 <= AND)||LA76_19==ARROW||LA76_19==AT||LA76_19==BITOR||LA76_19==BITXOR||LA76_19==DIV||(LA76_19 >= DOT && LA76_19 <= DOTDOT)||LA76_19==EQUALS||(LA76_19 >= GT && LA76_19 <= GTE)||LA76_19==IMPLIES||LA76_19==LEXCON||LA76_19==LPAREN||(LA76_19 >= LSQUARE && LA76_19 <= LTE)||(LA76_19 >= MINUSMINUS && LA76_19 <= MOD)||LA76_19==NEQ||LA76_19==OR||LA76_19==PLUS||LA76_19==PLUSPLUS||LA76_19==QMARK||LA76_19==SHIFTLEFT||LA76_19==SHIFTRIGHT||LA76_19==STAR) ) {s = 12;}
input.seek(index76_19);
if ( s>=0 ) return s;
break;
case 13 :
int LA76_13 = input.LA(1);
int index76_13 = input.index();
input.rewind();
s = -1;
if ( (LA76_13==SUB) ) {s = 14;}
else if ( (LA76_13==IDENTIFIER) && (synpred28_CivlCParser())) {s = 15;}
else if ( (LA76_13==RSQUARE) ) {s = 16;}
else if ( ((LA76_13 >= AMPERSAND && LA76_13 <= AND)||(LA76_13 >= ARROW && LA76_13 <= BITXOREQ)||(LA76_13 >= DIV && LA76_13 <= DOTDOT)||LA76_13==EQUALS||(LA76_13 >= GT && LA76_13 <= GTE)||LA76_13==IMPLIES||LA76_13==LEXCON||LA76_13==LPAREN||(LA76_13 >= LSQUARE && LA76_13 <= LTE)||(LA76_13 >= MINUSMINUS && LA76_13 <= NEQ)||LA76_13==OR||(LA76_13 >= PLUS && LA76_13 <= PLUSPLUS)||LA76_13==QMARK||(LA76_13 >= SHIFTLEFT && LA76_13 <= STAREQ)||LA76_13==SUBEQ) ) {s = 12;}
input.seek(index76_13);
if ( s>=0 ) return s;
break;
case 14 :
int LA76_24 = input.LA(1);
int index76_24 = input.index();
input.rewind();
s = -1;
if ( (LA76_24==RSQUARE) ) {s = 28;}
else if ( (LA76_24==SUB) ) {s = 14;}
else if ( (LA76_24==IDENTIFIER) && (synpred28_CivlCParser())) {s = 15;}
else if ( ((LA76_24 >= AMPERSAND && LA76_24 <= AND)||LA76_24==ARROW||LA76_24==AT||LA76_24==BITOR||LA76_24==BITXOR||LA76_24==DIV||(LA76_24 >= DOT && LA76_24 <= DOTDOT)||LA76_24==EQUALS||(LA76_24 >= GT && LA76_24 <= GTE)||LA76_24==IMPLIES||LA76_24==LEXCON||LA76_24==LPAREN||(LA76_24 >= LSQUARE && LA76_24 <= LTE)||(LA76_24 >= MINUSMINUS && LA76_24 <= MOD)||LA76_24==NEQ||LA76_24==OR||LA76_24==PLUS||LA76_24==PLUSPLUS||LA76_24==QMARK||LA76_24==SHIFTLEFT||LA76_24==SHIFTRIGHT||LA76_24==STAR) ) {s = 12;}
input.seek(index76_24);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 76, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA85_eotS =
"\7\uffff";
static final String DFA85_eofS =
"\7\uffff";
static final String DFA85_minS =
"\2\4\1\uffff\1\4\3\uffff";
static final String DFA85_maxS =
"\2\u0124\1\uffff\1\u0124\3\uffff";
static final String DFA85_acceptS =
"\2\uffff\1\1\1\uffff\1\2\1\3\1\4";
static final String DFA85_specialS =
"\7\uffff}>";
static final String[] DFA85_transitionS = {
"\1\2\17\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\11\uffff\1\2"+
"\5\uffff\1\2\6\uffff\1\2\4\uffff\1\2\7\uffff\1\2\1\uffff\1\2\7\uffff"+
"\1\2\6\uffff\1\3\1\uffff\2\2\1\uffff\1\2\10\uffff\1\2\2\uffff\1\1\1\uffff"+
"\1\2\3\uffff\1\2\10\uffff\1\1\4\uffff\1\2\17\uffff\1\2\3\uffff\1\2\2"+
"\uffff\1\1\7\uffff\1\1\5\uffff\1\2\6\uffff\1\1\1\2\2\uffff\2\2\4\uffff"+
"\2\2\1\uffff\1\2\1\4\14\uffff\1\2\1\uffff\1\1\107\uffff\1\2",
"\1\2\17\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\11\uffff\1"+
"\2\5\uffff\1\2\6\uffff\1\2\4\uffff\1\2\7\uffff\1\2\1\uffff\1\2\7\uffff"+
"\1\2\6\uffff\1\3\1\uffff\2\2\1\uffff\1\2\10\uffff\1\2\2\uffff\1\1\1\uffff"+
"\1\2\3\uffff\1\2\10\uffff\1\1\4\uffff\1\2\17\uffff\1\2\3\uffff\1\2\2"+
"\uffff\1\1\7\uffff\1\1\5\uffff\1\2\6\uffff\1\1\1\2\2\uffff\2\2\4\uffff"+
"\2\2\1\uffff\1\2\1\5\14\uffff\1\2\1\uffff\1\1\107\uffff\1\2",
"",
"\1\2\17\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\11\uffff\1"+
"\2\5\uffff\1\2\6\uffff\1\2\4\uffff\1\2\7\uffff\1\2\1\uffff\1\2\7\uffff"+
"\1\6\6\uffff\1\2\1\uffff\2\2\1\uffff\1\2\10\uffff\1\2\4\uffff\1\2\3\uffff"+
"\1\2\15\uffff\1\2\7\uffff\1\2\6\uffff\2\2\3\uffff\1\2\20\uffff\1\2\7"+
"\uffff\1\2\2\uffff\2\2\4\uffff\2\2\1\uffff\1\2\11\uffff\1\2\3\uffff\1"+
"\2\111\uffff\1\2",
"",
"",
""
};
static final short[] DFA85_eot = DFA.unpackEncodedString(DFA85_eotS);
static final short[] DFA85_eof = DFA.unpackEncodedString(DFA85_eofS);
static final char[] DFA85_min = DFA.unpackEncodedStringToUnsignedChars(DFA85_minS);
static final char[] DFA85_max = DFA.unpackEncodedStringToUnsignedChars(DFA85_maxS);
static final short[] DFA85_accept = DFA.unpackEncodedString(DFA85_acceptS);
static final short[] DFA85_special = DFA.unpackEncodedString(DFA85_specialS);
static final short[][] DFA85_transition;
static {
int numStates = DFA85_transitionS.length;
DFA85_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA85_transition[i] = DFA.unpackEncodedString(DFA85_transitionS[i]);
}
}
protected class DFA85 extends DFA {
public DFA85(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 85;
this.eot = DFA85_eot;
this.eof = DFA85_eof;
this.min = DFA85_min;
this.max = DFA85_max;
this.accept = DFA85_accept;
this.special = DFA85_special;
this.transition = DFA85_transition;
}
@Override
public String getDescription() {
return "1108:4: ( typeQualifierList_opt assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt RSQUARE ) | STATIC typeQualifierList_opt assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression RSQUARE ) | typeQualifierList STATIC assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression RSQUARE ) | typeQualifierList_opt STAR RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt STAR RSQUARE ) )";
}
}
static final String DFA86_eotS =
"\11\uffff";
static final String DFA86_eofS =
"\11\uffff";
static final String DFA86_minS =
"\1\71\1\uffff\1\26\1\uffff\1\42\1\0\1\26\1\uffff\1\0";
static final String DFA86_maxS =
"\1\u00dc\1\uffff\1\u00dc\1\uffff\1\u00dc\1\0\1\u00dc\1\uffff\1\0";
static final String DFA86_acceptS =
"\1\uffff\1\1\1\uffff\1\3\3\uffff\1\2\1\uffff";
static final String DFA86_specialS =
"\5\uffff\1\0\2\uffff\1\1}>";
static final String[] DFA86_transitionS = {
"\1\2\53\uffff\1\3\24\uffff\2\1\3\uffff\2\1\2\uffff\1\1\4\uffff\1\1\4"+
"\uffff\2\1\5\uffff\2\1\1\uffff\2\1\1\uffff\1\1\2\uffff\2\1\1\uffff\1"+
"\1\3\uffff\1\1\4\uffff\3\1\2\uffff\3\1\1\uffff\1\1\6\uffff\2\1\1\uffff"+
"\2\1\1\uffff\1\1\6\uffff\3\1\2\uffff\1\1\1\uffff\1\1\1\uffff\1\1\1\uffff"+
"\1\1\1\uffff\3\1\1\uffff\2\1\2\uffff\2\1",
"",
"\1\4\42\uffff\1\1\17\uffff\1\1\1\uffff\1\1\31\uffff\1\5\10\uffff\1\1"+
"\13\uffff\2\1\3\uffff\2\1\2\uffff\1\1\4\uffff\1\1\4\uffff\2\1\5\uffff"+
"\2\1\1\uffff\2\1\1\uffff\1\1\2\uffff\2\1\1\uffff\1\1\3\uffff\1\1\4\uffff"+
"\3\1\2\uffff\3\1\1\uffff\1\1\6\uffff\2\1\1\uffff\2\1\1\uffff\1\1\6\uffff"+
"\3\1\2\uffff\1\1\1\uffff\1\1\1\uffff\1\1\1\uffff\1\1\1\uffff\3\1\1\uffff"+
"\2\1\2\uffff\2\1",
"",
"\1\1\26\uffff\1\6\100\uffff\2\1\3\uffff\2\1\2\uffff\1\1\4\uffff\1\1"+
"\4\uffff\2\1\5\uffff\2\1\1\uffff\2\1\1\uffff\1\1\2\uffff\2\1\1\uffff"+
"\1\1\3\uffff\1\1\4\uffff\3\1\2\uffff\3\1\1\uffff\1\1\6\uffff\2\1\1\uffff"+
"\2\1\1\uffff\1\1\6\uffff\3\1\2\uffff\1\1\1\uffff\1\1\1\uffff\1\1\1\uffff"+
"\1\1\1\uffff\3\1\1\uffff\2\1\2\uffff\2\1",
"\1\uffff",
"\1\4\42\uffff\1\1\17\uffff\1\1\1\uffff\1\1\31\uffff\1\10\10\uffff\1"+
"\1\13\uffff\2\1\3\uffff\2\1\2\uffff\1\1\4\uffff\1\1\4\uffff\2\1\5\uffff"+
"\2\1\1\uffff\2\1\1\uffff\1\1\2\uffff\2\1\1\uffff\1\1\3\uffff\1\1\4\uffff"+
"\3\1\2\uffff\3\1\1\uffff\1\1\6\uffff\2\1\1\uffff\2\1\1\uffff\1\1\6\uffff"+
"\3\1\2\uffff\1\1\1\uffff\1\1\1\uffff\1\1\1\uffff\1\1\1\uffff\3\1\1\uffff"+
"\2\1\2\uffff\2\1",
"",
"\1\uffff"
};
static final short[] DFA86_eot = DFA.unpackEncodedString(DFA86_eotS);
static final short[] DFA86_eof = DFA.unpackEncodedString(DFA86_eofS);
static final char[] DFA86_min = DFA.unpackEncodedStringToUnsignedChars(DFA86_minS);
static final char[] DFA86_max = DFA.unpackEncodedStringToUnsignedChars(DFA86_maxS);
static final short[] DFA86_accept = DFA.unpackEncodedString(DFA86_acceptS);
static final short[] DFA86_special = DFA.unpackEncodedString(DFA86_specialS);
static final short[][] DFA86_transition;
static {
int numStates = DFA86_transitionS.length;
DFA86_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA86_transition[i] = DFA.unpackEncodedString(DFA86_transitionS[i]);
}
}
protected class DFA86 extends DFA {
public DFA86(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 86;
this.eot = DFA86_eot;
this.eof = DFA86_eof;
this.min = DFA86_min;
this.max = DFA86_max;
this.accept = DFA86_accept;
this.special = DFA86_special;
this.transition = DFA86_transition;
}
@Override
public String getDescription() {
return "1136:4: ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | identifierList RPAREN -> ^( FUNCTION_SUFFIX LPAREN identifierList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) )";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA86_5 = input.LA(1);
int index86_5 = input.index();
input.rewind();
s = -1;
if ( (((isTypeName(input.LT(1).getText()))&&((!Symbols_stack.peek().isFunctionDefinition)||(Symbols_stack.peek().isFunctionDefinition)))) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index86_5);
if ( s>=0 ) return s;
break;
case 1 :
int LA86_8 = input.LA(1);
int index86_8 = input.index();
input.rewind();
s = -1;
if ( (((isTypeName(input.LT(1).getText()))&&((!Symbols_stack.peek().isFunctionDefinition)||(Symbols_stack.peek().isFunctionDefinition)))) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index86_8);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 86, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA98_eotS =
"\6\uffff";
static final String DFA98_eofS =
"\1\uffff\1\4\1\uffff\1\4\2\uffff";
static final String DFA98_minS =
"\1\111\1\25\1\uffff\1\25\2\uffff";
static final String DFA98_maxS =
"\1\156\1\u00dc\1\uffff\1\u00dc\2\uffff";
static final String DFA98_acceptS =
"\2\uffff\1\2\1\uffff\1\1\1\3";
static final String DFA98_specialS =
"\6\uffff}>";
static final String[] DFA98_transitionS = {
"\1\2\1\uffff\1\2\42\uffff\1\1",
"\2\4\42\uffff\1\4\17\uffff\1\5\1\uffff\1\5\31\uffff\1\4\10\uffff\1\1"+
"\20\uffff\1\3\16\uffff\1\3\33\uffff\1\3\7\uffff\1\3\14\uffff\1\3\34\uffff"+
"\1\3",
"",
"\2\4\42\uffff\1\4\17\uffff\1\5\1\uffff\1\5\31\uffff\1\4\10\uffff\1\1"+
"\20\uffff\1\3\16\uffff\1\3\33\uffff\1\3\7\uffff\1\3\14\uffff\1\3\34\uffff"+
"\1\3",
"",
""
};
static final short[] DFA98_eot = DFA.unpackEncodedString(DFA98_eotS);
static final short[] DFA98_eof = DFA.unpackEncodedString(DFA98_eofS);
static final char[] DFA98_min = DFA.unpackEncodedStringToUnsignedChars(DFA98_minS);
static final char[] DFA98_max = DFA.unpackEncodedStringToUnsignedChars(DFA98_maxS);
static final short[] DFA98_accept = DFA.unpackEncodedString(DFA98_acceptS);
static final short[] DFA98_special = DFA.unpackEncodedString(DFA98_specialS);
static final short[][] DFA98_transition;
static {
int numStates = DFA98_transitionS.length;
DFA98_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA98_transition[i] = DFA.unpackEncodedString(DFA98_transitionS[i]);
}
}
protected class DFA98 extends DFA {
public DFA98(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 98;
this.eot = DFA98_eot;
this.eof = DFA98_eof;
this.min = DFA98_min;
this.max = DFA98_max;
this.accept = DFA98_accept;
this.special = DFA98_special;
this.transition = DFA98_transition;
}
@Override
public String getDescription() {
return "1285:1: abstractDeclarator : ( pointer -> ^( ABSTRACT_DECLARATOR pointer ABSENT ) | directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator ) | pointer directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator ) );";
}
}
static final String DFA102_eotS =
"\7\uffff";
static final String DFA102_eofS =
"\7\uffff";
static final String DFA102_minS =
"\2\4\1\uffff\1\4\3\uffff";
static final String DFA102_maxS =
"\2\u0124\1\uffff\1\u0124\3\uffff";
static final String DFA102_acceptS =
"\2\uffff\1\1\1\uffff\1\2\1\3\1\4";
static final String DFA102_specialS =
"\7\uffff}>";
static final String[] DFA102_transitionS = {
"\1\2\17\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\11\uffff\1\2"+
"\5\uffff\1\2\6\uffff\1\2\4\uffff\1\2\7\uffff\1\2\1\uffff\1\2\7\uffff"+
"\1\2\6\uffff\1\3\1\uffff\2\2\1\uffff\1\2\10\uffff\1\2\2\uffff\1\1\1\uffff"+
"\1\2\3\uffff\1\2\10\uffff\1\1\4\uffff\1\2\17\uffff\1\2\3\uffff\1\2\2"+
"\uffff\1\1\7\uffff\1\1\5\uffff\1\2\6\uffff\1\1\1\2\2\uffff\2\2\4\uffff"+
"\2\2\1\uffff\1\2\1\4\14\uffff\1\2\1\uffff\1\1\107\uffff\1\2",
"\1\2\17\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\11\uffff\1"+
"\2\5\uffff\1\2\6\uffff\1\2\4\uffff\1\2\7\uffff\1\2\1\uffff\1\2\7\uffff"+
"\1\2\6\uffff\1\2\1\uffff\2\2\1\uffff\1\2\10\uffff\1\2\2\uffff\1\1\1\uffff"+
"\1\2\3\uffff\1\2\10\uffff\1\1\4\uffff\1\2\17\uffff\1\2\3\uffff\1\2\2"+
"\uffff\1\1\7\uffff\1\1\5\uffff\1\2\6\uffff\1\1\1\2\2\uffff\2\2\4\uffff"+
"\2\2\1\uffff\1\2\1\5\14\uffff\1\2\1\uffff\1\1\107\uffff\1\2",
"",
"\1\2\17\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\11\uffff\1"+
"\2\5\uffff\1\2\6\uffff\1\2\4\uffff\1\2\7\uffff\1\2\1\uffff\1\2\7\uffff"+
"\1\6\6\uffff\1\2\1\uffff\2\2\1\uffff\1\2\10\uffff\1\2\4\uffff\1\2\3\uffff"+
"\1\2\15\uffff\1\2\7\uffff\1\2\6\uffff\2\2\3\uffff\1\2\20\uffff\1\2\7"+
"\uffff\1\2\2\uffff\2\2\4\uffff\2\2\1\uffff\1\2\11\uffff\1\2\3\uffff\1"+
"\2\111\uffff\1\2",
"",
"",
""
};
static final short[] DFA102_eot = DFA.unpackEncodedString(DFA102_eotS);
static final short[] DFA102_eof = DFA.unpackEncodedString(DFA102_eofS);
static final char[] DFA102_min = DFA.unpackEncodedStringToUnsignedChars(DFA102_minS);
static final char[] DFA102_max = DFA.unpackEncodedStringToUnsignedChars(DFA102_maxS);
static final short[] DFA102_accept = DFA.unpackEncodedString(DFA102_acceptS);
static final short[] DFA102_special = DFA.unpackEncodedString(DFA102_specialS);
static final short[][] DFA102_transition;
static {
int numStates = DFA102_transitionS.length;
DFA102_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA102_transition[i] = DFA.unpackEncodedString(DFA102_transitionS[i]);
}
}
protected class DFA102 extends DFA {
public DFA102(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 102;
this.eot = DFA102_eot;
this.eof = DFA102_eof;
this.min = DFA102_min;
this.max = DFA102_max;
this.accept = DFA102_accept;
this.special = DFA102_special;
this.transition = DFA102_transition;
}
@Override
public String getDescription() {
return "1353:7: ( typeQualifierList_opt assignmentExpression_opt RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt ) | STATIC typeQualifierList_opt assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression ) | typeQualifierList STATIC assignmentExpression RSQUARE -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression ) | STAR RSQUARE -> ^( ARRAY_SUFFIX LSQUARE ABSENT ABSENT STAR ) )";
}
}
static final String DFA121_eotS =
"\75\uffff";
static final String DFA121_eofS =
"\75\uffff";
static final String DFA121_minS =
"\1\4\22\uffff\1\0\51\uffff";
static final String DFA121_maxS =
"\1\u0124\22\uffff\1\0\51\uffff";
static final String DFA121_acceptS =
"\1\uffff\1\1\42\uffff\1\2\30\uffff";
static final String DFA121_specialS =
"\23\uffff\1\0\51\uffff}>";
static final String[] DFA121_transitionS = {
"\1\44\17\uffff\1\44\15\uffff\1\44\10\uffff\1\44\15\uffff\1\23\11\uffff"+
"\1\44\5\uffff\1\44\6\uffff\1\44\4\uffff\1\44\7\uffff\1\44\1\uffff\1\44"+
"\11\uffff\1\44\4\uffff\1\44\1\uffff\2\44\1\uffff\1\44\6\uffff\2\1\1\44"+
"\2\uffff\2\1\1\44\1\uffff\1\1\1\uffff\1\44\2\uffff\1\1\4\uffff\2\1\4"+
"\uffff\1\44\2\1\1\uffff\2\1\1\uffff\1\1\1\44\1\uffff\2\1\1\uffff\1\1"+
"\1\uffff\2\44\1\1\2\uffff\1\44\1\uffff\3\1\2\uffff\3\1\1\uffff\1\1\5"+
"\uffff\1\44\2\1\1\uffff\2\1\1\uffff\1\1\1\44\2\uffff\2\44\1\uffff\3\1"+
"\2\44\1\1\1\44\3\1\1\uffff\1\1\1\uffff\3\1\1\44\2\1\1\uffff\1\44\2\1"+
"\107\uffff\1\44",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA121_eot = DFA.unpackEncodedString(DFA121_eotS);
static final short[] DFA121_eof = DFA.unpackEncodedString(DFA121_eofS);
static final char[] DFA121_min = DFA.unpackEncodedStringToUnsignedChars(DFA121_minS);
static final char[] DFA121_max = DFA.unpackEncodedStringToUnsignedChars(DFA121_maxS);
static final short[] DFA121_accept = DFA.unpackEncodedString(DFA121_acceptS);
static final short[] DFA121_special = DFA.unpackEncodedString(DFA121_specialS);
static final short[][] DFA121_transition;
static {
int numStates = DFA121_transitionS.length;
DFA121_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA121_transition[i] = DFA.unpackEncodedString(DFA121_transitionS[i]);
}
}
protected class DFA121 extends DFA {
public DFA121(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 121;
this.eot = DFA121_eot;
this.eof = DFA121_eof;
this.min = DFA121_min;
this.max = DFA121_max;
this.accept = DFA121_accept;
this.special = DFA121_special;
this.transition = DFA121_transition;
}
@Override
public String getDescription() {
return "1588:4: (d= declaration e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope -> ^( FOR $d $e1 $e2 $s $i) |e0= expression_opt SEMI e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope -> ^( FOR $e0 $e1 $e2 $s $i) )";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA121_19 = input.LA(1);
int index121_19 = input.index();
input.rewind();
s = -1;
if ( ((isTypeName(input.LT(1).getText()))) ) {s = 1;}
else if ( (true) ) {s = 36;}
input.seek(index121_19);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 121, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA149_eotS =
"\130\uffff";
static final String DFA149_eofS =
"\130\uffff";
static final String DFA149_minS =
"\1\4\44\0\63\uffff";
static final String DFA149_maxS =
"\1\u0124\44\0\63\uffff";
static final String DFA149_acceptS =
"\45\uffff\1\3\1\4\1\5\1\uffff\1\6\54\uffff\1\1\1\2";
static final String DFA149_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15"+
"\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33"+
"\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43\63\uffff}>";
static final String[] DFA149_transitionS = {
"\1\51\2\uffff\1\47\14\uffff\1\51\15\uffff\1\51\10\uffff\1\51\15\uffff"+
"\1\1\1\51\5\uffff\1\47\2\uffff\1\51\2\uffff\1\51\2\uffff\1\2\6\uffff"+
"\1\51\4\uffff\1\51\7\uffff\1\51\1\uffff\1\51\11\uffff\1\51\4\uffff\1"+
"\3\1\uffff\2\51\1\uffff\1\51\6\uffff\1\34\1\44\2\51\1\uffff\1\23\1\5"+
"\1\51\1\uffff\1\17\3\51\1\uffff\1\7\3\51\1\uffff\1\20\1\31\1\uffff\2"+
"\51\1\uffff\1\51\1\41\1\43\1\51\1\26\1\14\1\uffff\1\25\1\51\1\uffff\1"+
"\5\1\40\1\uffff\1\13\3\51\1\42\1\51\1\uffff\1\51\1\uffff\1\32\1\31\1"+
"\11\2\uffff\1\12\1\30\1\33\1\uffff\1\31\1\uffff\1\51\2\uffff\1\46\1\51"+
"\1\35\1\22\1\uffff\1\21\1\5\1\uffff\1\31\5\51\1\uffff\1\5\1\10\1\15\2"+
"\51\1\36\1\51\1\5\1\45\1\24\1\51\1\37\1\uffff\1\5\1\4\1\27\1\51\1\24"+
"\1\16\2\51\1\6\1\31\3\51\104\uffff\1\51",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA149_eot = DFA.unpackEncodedString(DFA149_eotS);
static final short[] DFA149_eof = DFA.unpackEncodedString(DFA149_eofS);
static final char[] DFA149_min = DFA.unpackEncodedStringToUnsignedChars(DFA149_minS);
static final char[] DFA149_max = DFA.unpackEncodedStringToUnsignedChars(DFA149_maxS);
static final short[] DFA149_accept = DFA.unpackEncodedString(DFA149_acceptS);
static final short[] DFA149_special = DFA.unpackEncodedString(DFA149_specialS);
static final short[][] DFA149_transition;
static {
int numStates = DFA149_transitionS.length;
DFA149_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA149_transition[i] = DFA.unpackEncodedString(DFA149_transitionS[i]);
}
}
protected class DFA149 extends DFA {
public DFA149(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 149;
this.eot = DFA149_eot;
this.eof = DFA149_eof;
this.min = DFA149_min;
this.max = DFA149_max;
this.accept = DFA149_accept;
this.special = DFA149_special;
this.transition = DFA149_transition;
}
@Override
public String getDescription() {
return "1856:1: blockItem : ( ( declarator contract declarationList_opt LCURLY )=> functionDefinition | ( declarationSpecifiers declarator contract declarationList_opt LCURLY )=> functionDefinition | declaration | pragma | annotation | statement );";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA149_1 = input.LA(1);
int index149_1 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( ((isTypeName(input.LT(1).getText()))) ) {s = 37;}
else if ( (true) ) {s = 41;}
input.seek(index149_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA149_2 = input.LA(1);
int index149_2 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 41;}
input.seek(index149_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA149_3 = input.LA(1);
int index149_3 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 41;}
input.seek(index149_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA149_4 = input.LA(1);
int index149_4 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA149_5 = input.LA(1);
int index149_5 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA149_6 = input.LA(1);
int index149_6 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA149_7 = input.LA(1);
int index149_7 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA149_8 = input.LA(1);
int index149_8 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA149_9 = input.LA(1);
int index149_9 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA149_10 = input.LA(1);
int index149_10 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA149_11 = input.LA(1);
int index149_11 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA149_12 = input.LA(1);
int index149_12 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA149_13 = input.LA(1);
int index149_13 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA149_14 = input.LA(1);
int index149_14 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_14);
if ( s>=0 ) return s;
break;
case 14 :
int LA149_15 = input.LA(1);
int index149_15 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_15);
if ( s>=0 ) return s;
break;
case 15 :
int LA149_16 = input.LA(1);
int index149_16 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_16);
if ( s>=0 ) return s;
break;
case 16 :
int LA149_17 = input.LA(1);
int index149_17 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_17);
if ( s>=0 ) return s;
break;
case 17 :
int LA149_18 = input.LA(1);
int index149_18 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_18);
if ( s>=0 ) return s;
break;
case 18 :
int LA149_19 = input.LA(1);
int index149_19 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_19);
if ( s>=0 ) return s;
break;
case 19 :
int LA149_20 = input.LA(1);
int index149_20 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_20);
if ( s>=0 ) return s;
break;
case 20 :
int LA149_21 = input.LA(1);
int index149_21 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_21);
if ( s>=0 ) return s;
break;
case 21 :
int LA149_22 = input.LA(1);
int index149_22 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_22);
if ( s>=0 ) return s;
break;
case 22 :
int LA149_23 = input.LA(1);
int index149_23 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_23);
if ( s>=0 ) return s;
break;
case 23 :
int LA149_24 = input.LA(1);
int index149_24 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_24);
if ( s>=0 ) return s;
break;
case 24 :
int LA149_25 = input.LA(1);
int index149_25 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_25);
if ( s>=0 ) return s;
break;
case 25 :
int LA149_26 = input.LA(1);
int index149_26 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_26);
if ( s>=0 ) return s;
break;
case 26 :
int LA149_27 = input.LA(1);
int index149_27 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_27);
if ( s>=0 ) return s;
break;
case 27 :
int LA149_28 = input.LA(1);
int index149_28 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_28);
if ( s>=0 ) return s;
break;
case 28 :
int LA149_29 = input.LA(1);
int index149_29 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_29);
if ( s>=0 ) return s;
break;
case 29 :
int LA149_30 = input.LA(1);
int index149_30 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_30);
if ( s>=0 ) return s;
break;
case 30 :
int LA149_31 = input.LA(1);
int index149_31 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_31);
if ( s>=0 ) return s;
break;
case 31 :
int LA149_32 = input.LA(1);
int index149_32 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_32);
if ( s>=0 ) return s;
break;
case 32 :
int LA149_33 = input.LA(1);
int index149_33 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_33);
if ( s>=0 ) return s;
break;
case 33 :
int LA149_34 = input.LA(1);
int index149_34 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_34);
if ( s>=0 ) return s;
break;
case 34 :
int LA149_35 = input.LA(1);
int index149_35 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_35);
if ( s>=0 ) return s;
break;
case 35 :
int LA149_36 = input.LA(1);
int index149_36 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 86;}
else if ( (synpred32_CivlCParser()) ) {s = 87;}
else if ( (true) ) {s = 37;}
input.seek(index149_36);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 149, _s, input);
error(nvae);
throw nvae;
}
}
public static final BitSet FOLLOW_quantifier_in_quantifiedExpression1161 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000A00L});
public static final BitSet FOLLOW_intervalSeq_in_quantifiedExpression1163 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_quantifiedExpression1165 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_boundVariableDeclarationList_in_quantifiedExpression1167 = new BitSet(new long[]{0x0000000000001000L,0x0000002000000000L});
public static final BitSet FOLLOW_BITOR_in_quantifiedExpression1179 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_conditionalExpression_in_quantifiedExpression1196 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_quantifiedExpression_in_quantifiedExpression1202 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_quantifiedExpression1217 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_quantifiedExpression1233 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_quantifiedExpression1291 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_quantifiedExpression1307 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumerationConstant_in_constant1375 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_constant1380 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOATING_CONSTANT_in_constant1385 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHARACTER_CONSTANT_in_constant1390 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SELF_in_constant1395 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PROCNULL_in_constant1403 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STATE_NULL_in_constant1411 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RESULT_in_constant1416 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HERE_in_constant1421 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELLIPSIS_in_constant1429 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_enumerationConstant1444 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constant_in_primaryExpression1469 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_primaryExpression1474 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_LITERAL_in_primaryExpression1479 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_primaryExpression1487 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_compoundStatement_in_primaryExpression1489 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_primaryExpression1491 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_primaryExpression1516 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_primaryExpression1518 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_primaryExpression1520 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_genericSelection_in_primaryExpression1545 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_derivativeExpression_in_primaryExpression1550 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GENERIC_in_genericSelection1563 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_genericSelection1565 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_genericSelection1567 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_genericSelection1569 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105826108L,0x0000000019A08180L});
public static final BitSet FOLLOW_genericAssocList_in_genericSelection1571 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_genericSelection1573 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DERIV_in_derivativeExpression1604 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_LSQUARE_in_derivativeExpression1606 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_derivativeExpression1608 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_derivativeExpression1610 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_partialList_in_derivativeExpression1612 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_derivativeExpression1614 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_derivativeExpression1622 = new BitSet(new long[]{0x0200080400100010L,0x100B4020A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_argumentExpressionList_in_derivativeExpression1624 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_derivativeExpression1626 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_partial_in_partialList1670 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_partialList1673 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_partial_in_partialList1675 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_LCURLY_in_partial1699 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_partial1701 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_partial1703 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_partial1705 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_partial1707 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_genericAssociation_in_genericAssocList1738 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_genericAssocList1741 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105826108L,0x0000000019A08180L});
public static final BitSet FOLLOW_genericAssociation_in_genericAssocList1743 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_typeName_in_genericAssociation1775 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_genericAssociation1777 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_genericAssociation1779 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFAULT_in_genericAssociation1802 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_genericAssociation1804 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_genericAssociation1806 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfixExpressionRoot_in_postfixExpression1838 = new BitSet(new long[]{0x0000000010000102L,0x0000000080010A80L});
public static final BitSet FOLLOW_LSQUARE_in_postfixExpression1870 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_postfixExpression1872 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_postfixExpression1874 = new BitSet(new long[]{0x0000000010000102L,0x0000000080010A80L});
public static final BitSet FOLLOW_LPAREN_in_postfixExpression1979 = new BitSet(new long[]{0x0200080400100010L,0x100B4020A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_argumentExpressionList_in_postfixExpression1981 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_postfixExpression1983 = new BitSet(new long[]{0x0000000010000102L,0x0000000080010A80L});
public static final BitSet FOLLOW_LEXCON_in_postfixExpression2055 = new BitSet(new long[]{0x0200080400100010L,0x100B4010A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_argumentExpressionList_in_postfixExpression2059 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_REXCON_in_postfixExpression2061 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_postfixExpression2075 = new BitSet(new long[]{0x0200080400100010L,0x100B4020A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_argumentExpressionList_in_postfixExpression2079 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_postfixExpression2081 = new BitSet(new long[]{0x0000000010000102L,0x0000000080010A80L});
public static final BitSet FOLLOW_DOT_in_postfixExpression2126 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfixExpression2128 = new BitSet(new long[]{0x0000000010000102L,0x0000000080010A80L});
public static final BitSet FOLLOW_ARROW_in_postfixExpression2163 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfixExpression2165 = new BitSet(new long[]{0x0000000010000102L,0x0000000080010A80L});
public static final BitSet FOLLOW_PLUSPLUS_in_postfixExpression2202 = new BitSet(new long[]{0x0000000010000102L,0x0000000080010A80L});
public static final BitSet FOLLOW_MINUSMINUS_in_postfixExpression2260 = new BitSet(new long[]{0x0000000010000102L,0x0000000080010A80L});
public static final BitSet FOLLOW_LPAREN_in_postfixExpressionRoot2347 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_in_postfixExpressionRoot2349 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_postfixExpressionRoot2351 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_postfixExpressionRoot2353 = new BitSet(new long[]{0x0200080410100010L,0x100B4000A0210A48L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_initializerList_in_postfixExpressionRoot2355 = new BitSet(new long[]{0x0000000000400000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_postfixExpressionRoot2361 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_postfixExpressionRoot2367 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_postfixExpressionRoot2369 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primaryExpression_in_postfixExpressionRoot2400 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_argumentExpressionList2416 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_quantifiedExpression_in_argumentExpressionList2422 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_argumentExpressionList2434 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_argumentExpressionList2439 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_quantifiedExpression_in_argumentExpressionList2445 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_postfixExpression_in_unaryExpression2504 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUSPLUS_in_unaryExpression2511 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2513 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUSMINUS_in_unaryExpression2555 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2557 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryOperator_in_unaryExpression2597 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_castExpression_in_unaryExpression2602 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_unaryExpression2608 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unaryExpression2646 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression2648 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_in_unaryExpression2650 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression2652 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unaryExpression2675 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2677 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SCOPEOF_in_unaryExpression2700 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2702 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALIGNOF_in_unaryExpression2723 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression2725 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_in_unaryExpression2727 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression2729 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VALUE_AT_in_unaryExpression2750 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression2752 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_unaryExpression2764 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_unaryExpression2766 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_unaryExpression2778 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_unaryExpression2780 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_unaryExpression2793 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_quantifiedExpression_in_unaryExpression2799 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression2802 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_spawnExpression_in_unaryExpression2827 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_callsExpression_in_unaryExpression2835 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_sumExpression_in_unaryExpression2840 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SPAWN_in_spawnExpression2853 = new BitSet(new long[]{0x0200080400100000L,0x0001000000000208L,0x0100008800080000L,0x0000000000001011L});
public static final BitSet FOLLOW_postfixExpressionRoot_in_spawnExpression2855 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_spawnExpression2857 = new BitSet(new long[]{0x0200080400100010L,0x100B4020A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_argumentExpressionList_in_spawnExpression2859 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_spawnExpression2861 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CALLS_in_callsExpression2910 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_callsExpression2912 = new BitSet(new long[]{0x0200080400100000L,0x0001000000000208L,0x0100008800080000L,0x0000000000001011L});
public static final BitSet FOLLOW_postfixExpressionRoot_in_callsExpression2914 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_callsExpression2916 = new BitSet(new long[]{0x0200080400100010L,0x100B4020A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_argumentExpressionList_in_callsExpression2926 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_callsExpression2928 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_callsExpression2930 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUM_in_sumExpression2988 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_sumExpression2990 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_boundVariableDeclarationList_in_sumExpression2992 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_sumExpression2994 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_sumExpression3004 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_sumExpression3010 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_castExpression3108 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_in_castExpression3110 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_castExpression3112 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_castExpression_in_castExpression3114 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_castExpression3140 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_castExpression_in_remoteExpression3154 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_AT_in_remoteExpression3176 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_castExpression_in_remoteExpression3180 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_remoteExpression_in_multiplicativeExpression3235 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_STAR_in_multiplicativeExpression3257 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_remoteExpression_in_multiplicativeExpression3261 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_DIV_in_multiplicativeExpression3308 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_remoteExpression_in_multiplicativeExpression3312 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_MOD_in_multiplicativeExpression3359 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_remoteExpression_in_multiplicativeExpression3363 = new BitSet(new long[]{0x0000000004000002L,0x0000400000020000L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression3418 = new BitSet(new long[]{0x0000000000000002L,0x0002000020000000L});
public static final BitSet FOLLOW_PLUS_in_additiveExpression3440 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression3444 = new BitSet(new long[]{0x0000000000000002L,0x0002000020000000L});
public static final BitSet FOLLOW_SUB_in_additiveExpression3489 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression3493 = new BitSet(new long[]{0x0000000000000002L,0x0002000020000000L});
public static final BitSet FOLLOW_additiveExpression_in_rangeExpression3547 = new BitSet(new long[]{0x0000000020000002L});
public static final BitSet FOLLOW_DOTDOT_in_rangeExpression3564 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_rangeSuffix_in_rangeExpression3568 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_additiveExpression_in_rangeSuffix3624 = new BitSet(new long[]{0x0001000000000002L});
public static final BitSet FOLLOW_HASH_in_rangeSuffix3641 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_additiveExpression_in_rangeSuffix3645 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression3695 = new BitSet(new long[]{0x0000000000000002L,0x0000140000000000L});
public static final BitSet FOLLOW_SHIFTLEFT_in_shiftExpression3717 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression3721 = new BitSet(new long[]{0x0000000000000002L,0x0000140000000000L});
public static final BitSet FOLLOW_SHIFTRIGHT_in_shiftExpression3766 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression3770 = new BitSet(new long[]{0x0000000000000002L,0x0000140000000000L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression3824 = new BitSet(new long[]{0x0000C00000000002L,0x0000000000003000L});
public static final BitSet FOLLOW_relationalOperator_in_relationalExpression3847 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression3864 = new BitSet(new long[]{0x0000C00000000002L,0x0000000000003000L});
public static final BitSet FOLLOW_relationalExpression_in_equalityExpression3962 = new BitSet(new long[]{0x0000002000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_equalityOperator_in_equalityExpression3984 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_relationalExpression_in_equalityExpression4001 = new BitSet(new long[]{0x0000002000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_quantifiedExpression_in_equalityExpression4007 = new BitSet(new long[]{0x0000002000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_equalityExpression_in_andExpression4097 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_AMPERSAND_in_andExpression4120 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_equalityExpression_in_andExpression4124 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression4180 = new BitSet(new long[]{0x0000000000004002L});
public static final BitSet FOLLOW_BITXOR_in_exclusiveOrExpression4203 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression4207 = new BitSet(new long[]{0x0000000000004002L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4263 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_BITOR_in_inclusiveOrExpression4286 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4290 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_inclusiveOrExpression_in_logicalAndExpression4346 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_AND_in_logicalAndExpression4369 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_inclusiveOrExpression_in_logicalAndExpression4374 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_quantifiedExpression_in_logicalAndExpression4380 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_logicalAndExpression_in_logicalOrExpression4437 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
public static final BitSet FOLLOW_OR_in_logicalOrExpression4460 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_logicalAndExpression_in_logicalOrExpression4465 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
public static final BitSet FOLLOW_quantifiedExpression_in_logicalOrExpression4471 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
public static final BitSet FOLLOW_logicalOrExpression_in_logicalImpliesExpression4530 = new BitSet(new long[]{0x2000000000000002L});
public static final BitSet FOLLOW_IMPLIES_in_logicalImpliesExpression4554 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_logicalImpliesExpression4559 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_logicalImpliesExpression4565 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_conditionalExpression4623 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
public static final BitSet FOLLOW_QMARK_in_conditionalExpression4640 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_conditionalExpression4642 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_conditionalExpression4644 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_conditionalExpression_in_conditionalExpression4661 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_conditionalExpression4667 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LSQUARE_in_interval4812 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_conditionalExpression_in_interval4814 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_interval4816 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_conditionalExpression_in_interval4818 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_interval4820 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interval_in_intervalSeq4860 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
public static final BitSet FOLLOW_interval_in_intervalSeq4865 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
public static final BitSet FOLLOW_LPAREN_in_arrayLambdaExpression4949 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_in_arrayLambdaExpression4951 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_arrayLambdaExpression4953 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
public static final BitSet FOLLOW_LAMBDA_in_arrayLambdaExpression4955 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_arrayLambdaExpression4957 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_boundVariableDeclarationList_in_arrayLambdaExpression4971 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_arrayLambdaExpression4973 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_conditionalExpression_in_arrayLambdaExpression4990 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_quantifiedExpression_in_arrayLambdaExpression4996 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_arrayLambdaExpression5011 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_arrayLambdaExpression5028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_arrayLambdaExpression5034 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_arrayLambdaExpression5068 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_in_arrayLambdaExpression5070 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_arrayLambdaExpression5072 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
public static final BitSet FOLLOW_LAMBDA_in_arrayLambdaExpression5074 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_arrayLambdaExpression5076 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_boundVariableDeclarationList_in_arrayLambdaExpression5086 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_arrayLambdaExpression5088 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_arrayLambdaExpression5101 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_arrayLambdaExpression5107 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeName_in_boundVariableDeclarationSubList5140 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_boundVariableDeclarationSubList5142 = new BitSet(new long[]{0x0000000000600002L});
public static final BitSet FOLLOW_COMMA_in_boundVariableDeclarationSubList5145 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_boundVariableDeclarationSubList5147 = new BitSet(new long[]{0x0000000000600002L});
public static final BitSet FOLLOW_COLON_in_boundVariableDeclarationSubList5152 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_rangeExpression_in_boundVariableDeclarationSubList5154 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_boundVariableDeclarationSubList_in_boundVariableDeclarationList5205 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_boundVariableDeclarationList5208 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_boundVariableDeclarationSubList_in_boundVariableDeclarationList5210 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L});
public static final BitSet FOLLOW_arrayLambdaExpression_in_assignmentExpression5249 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_assignmentExpression5271 = new BitSet(new long[]{0x000000000800AA00L,0x0004A80040040000L});
public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpression5283 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression5296 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_assignmentExpression5302 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_assignmentExpression5335 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_commaExpression5404 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_commaExpression5422 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_commaExpression5426 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_quantifiedExpression_in_expression5471 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_commaExpression_in_expression5475 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_constantExpression5488 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarationSpecifiers_in_declaration5517 = new BitSet(new long[]{0x0200000000000000L,0x0000420000000200L});
public static final BitSet FOLLOW_initDeclaratorList_in_declaration5531 = new BitSet(new long[]{0x0000000000000000L,0x4000020000000000L,0x4800004002040000L});
public static final BitSet FOLLOW_contract_in_declaration5533 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_declaration5535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMI_in_declaration5561 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_staticAssertDeclaration_in_declaration5589 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarationSpecifierList_in_declarationSpecifiers5603 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarationSpecifier_in_declarationSpecifierList5628 = new BitSet(new long[]{0x0200000000000002L,0x8C00000000000000L,0xB605CE1165B06109L,0x0000000019BAA9C0L});
public static final BitSet FOLLOW_declarationSpecifier_in_declarationSpecifierList5640 = new BitSet(new long[]{0x0200000000000002L,0x8C00000000000000L,0xB605CE1165B06109L,0x0000000019BAA9C0L});
public static final BitSet FOLLOW_storageClassSpecifier_in_declarationSpecifier5654 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeSpecifierOrQualifier_in_declarationSpecifier5659 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_functionSpecifier_in_declarationSpecifier5664 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_alignmentSpecifier_in_declarationSpecifier5669 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeSpecifier_in_typeSpecifierOrQualifier5687 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifier_in_typeSpecifierOrQualifier5697 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_initDeclarator_in_initDeclaratorList5712 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_initDeclaratorList5715 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000200L});
public static final BitSet FOLLOW_initDeclarator_in_initDeclaratorList5719 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_declarator_in_initDeclarator5749 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_ASSIGN_in_initDeclarator5774 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210248L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_initializer_in_initDeclarator5778 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPEDEF_in_storageClassSpecifier5809 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_storageClassSpecifier5816 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VOID_in_typeSpecifier5851 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHAR_in_typeSpecifier5855 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHORT_in_typeSpecifier5859 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INT_in_typeSpecifier5863 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LONG_in_typeSpecifier5867 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOAT_in_typeSpecifier5871 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_in_typeSpecifier5875 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIGNED_in_typeSpecifier5880 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_UNSIGNED_in_typeSpecifier5884 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BOOL_in_typeSpecifier5888 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMPLEX_in_typeSpecifier5892 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REAL_in_typeSpecifier5896 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RANGE_in_typeSpecifier5900 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_atomicTypeSpecifier_in_typeSpecifier5905 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_structOrUnionSpecifier_in_typeSpecifier5910 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumSpecifier_in_typeSpecifier5915 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typedefName_in_typeSpecifier5920 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_domainSpecifier_in_typeSpecifier5925 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeofSpecifier_in_typeSpecifier5933 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_memSpecifier_in_typeSpecifier5941 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPEOF_in_typeofSpecifier5957 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_typeofSpecifier5959 = new BitSet(new long[]{0x0200080400100010L,0x900B4000A0210208L,0x9504CC890588612AL,0x000000001DA09799L,0x0000001000000000L});
public static final BitSet FOLLOW_commaExpression_in_typeofSpecifier5971 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_typeofSpecifier5973 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeName_in_typeofSpecifier6007 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_typeofSpecifier6009 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_structOrUnion_in_structOrUnionSpecifier6057 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_IDENTIFIER_in_structOrUnionSpecifier6066 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_structOrUnionSpecifier6068 = new BitSet(new long[]{0x0200000000000000L,0x8000000800000000L,0x9404CC0105806108L,0x0000000019A0C180L});
public static final BitSet FOLLOW_structDeclarationList_in_structOrUnionSpecifier6070 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_structOrUnionSpecifier6072 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_structOrUnionSpecifier6100 = new BitSet(new long[]{0x0200000000000000L,0x8000000800000000L,0x9404CC0105806108L,0x0000000019A0C180L});
public static final BitSet FOLLOW_structDeclarationList_in_structOrUnionSpecifier6102 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_structOrUnionSpecifier6104 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_structOrUnionSpecifier6132 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_structDeclaration_in_structDeclarationList6186 = new BitSet(new long[]{0x0200000000000002L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A0C180L});
public static final BitSet FOLLOW_specifierQualifierList_in_structDeclaration6227 = new BitSet(new long[]{0x0200000000200000L,0x0000420000000200L});
public static final BitSet FOLLOW_structDeclaratorList_in_structDeclaration6256 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_structDeclaration6291 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_staticAssertDeclaration_in_structDeclaration6299 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeSpecifierOrQualifier_in_specifierQualifierList6318 = new BitSet(new long[]{0x0200000000000002L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_structDeclarator_in_structDeclaratorList6355 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_structDeclaratorList6358 = new BitSet(new long[]{0x0200000000200000L,0x0000400000000200L});
public static final BitSet FOLLOW_structDeclarator_in_structDeclaratorList6362 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_declarator_in_structDeclarator6399 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COLON_in_structDeclarator6428 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_constantExpression_in_structDeclarator6430 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_structDeclarator6465 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_constantExpression_in_structDeclarator6467 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ENUM_in_enumSpecifier6502 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_IDENTIFIER_in_enumSpecifier6514 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_enumSpecifier6546 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_enumSpecifier6548 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_enumeratorList_in_enumSpecifier6550 = new BitSet(new long[]{0x0000000000400000L,0x0000000800000000L});
public static final BitSet FOLLOW_COMMA_in_enumSpecifier6552 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_enumSpecifier6555 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_enumSpecifier6587 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_enumeratorList_in_enumSpecifier6589 = new BitSet(new long[]{0x0000000000400000L,0x0000000800000000L});
public static final BitSet FOLLOW_COMMA_in_enumSpecifier6591 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_enumSpecifier6594 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumerator_in_enumeratorList6643 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_enumeratorList6646 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_enumerator_in_enumeratorList6648 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_IDENTIFIER_in_enumerator6681 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_ASSIGN_in_enumerator6722 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_constantExpression_in_enumerator6724 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ATOMIC_in_atomicTypeSpecifier6770 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_atomicTypeSpecifier6772 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_in_atomicTypeSpecifier6774 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_atomicTypeSpecifier6776 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INLINE_in_functionSpecifier6848 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NORETURN_in_functionSpecifier6852 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_abstractSpecifier_in_functionSpecifier6860 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PURE_in_functionSpecifier6868 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STATE_F_in_functionSpecifier6882 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SYSTEM_in_functionSpecifier6905 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_libraryName_in_functionSpecifier6907 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SYSTEM_in_functionSpecifier6924 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FATOMIC_in_functionSpecifier6941 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEVICE_in_functionSpecifier6955 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GLOBAL_in_functionSpecifier6963 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_differentiableSpecifier_in_functionSpecifier6971 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ABSTRACT_in_abstractSpecifier6988 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L,0x0000000000008000L});
public static final BitSet FOLLOW_CONTIN_in_abstractSpecifier7016 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_abstractSpecifier7018 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_abstractSpecifier7020 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_abstractSpecifier7022 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_abstractSpecifier7066 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_STRING_LITERAL_in_abstractSpecifier7068 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_abstractSpecifier7070 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIFFERENTIABLE_in_differentiableSpecifier7126 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_differentiableSpecifier7128 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_differentiableSpecifier7130 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_differentiableSpecifier7132 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000800L});
public static final BitSet FOLLOW_intervalSeq_in_differentiableSpecifier7134 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_differentiableSpecifier7136 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LSQUARE_in_libraryName7160 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_libraryName7164 = new BitSet(new long[]{0x0200000000000000L,0x0002008000000000L});
public static final BitSet FOLLOW_SUB_in_libraryName7169 = new BitSet(new long[]{0x0200000000000000L,0x0002008000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_libraryName7173 = new BitSet(new long[]{0x0200000000000000L,0x0002008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_libraryName7177 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALIGNAS_in_alignmentSpecifier7210 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_alignmentSpecifier7212 = new BitSet(new long[]{0x0200080400100010L,0x900B4000A0210208L,0x9504CC890588612AL,0x000000001DA09799L,0x0000001000000000L});
public static final BitSet FOLLOW_typeName_in_alignmentSpecifier7224 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_alignmentSpecifier7226 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constantExpression_in_alignmentSpecifier7258 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_alignmentSpecifier7260 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directDeclarator_in_declarator7308 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_declarator7327 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_directDeclarator_in_declarator7331 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directDeclaratorPrefix_in_directDeclarator7360 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000A00L});
public static final BitSet FOLLOW_directDeclaratorSuffix_in_directDeclarator7383 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000A00L});
public static final BitSet FOLLOW_IDENTIFIER_in_directDeclaratorPrefix7415 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_directDeclaratorPrefix7424 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000200L});
public static final BitSet FOLLOW_declarator_in_directDeclaratorPrefix7427 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_directDeclaratorPrefix7429 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directDeclaratorArraySuffix_in_directDeclaratorSuffix7442 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directDeclaratorFunctionSuffix_in_directDeclaratorSuffix7447 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LSQUARE_in_directDeclaratorArraySuffix7460 = new BitSet(new long[]{0x0200080400100010L,0x900B4080A0210208L,0x8104048800084022L,0x0000000014003619L,0x0000001000000000L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7467 = new BitSet(new long[]{0x0200080400100010L,0x100B4080A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_opt_in_directDeclaratorArraySuffix7469 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7471 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STATIC_in_directDeclaratorArraySuffix7509 = new BitSet(new long[]{0x0200080400100010L,0x900B4000A0210208L,0x8104048800084022L,0x0000000014001619L,0x0000001000000000L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7511 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_directDeclaratorArraySuffix7513 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7515 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifierList_in_directDeclaratorArraySuffix7555 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_STATIC_in_directDeclaratorArraySuffix7557 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_directDeclaratorArraySuffix7559 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7561 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7601 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_STAR_in_directDeclaratorArraySuffix7603 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7605 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_directDeclaratorFunctionSuffix7664 = new BitSet(new long[]{0x0200000000000000L,0x8C00002000000000L,0xB605CE1165B06109L,0x0000000019BAA9C0L});
public static final BitSet FOLLOW_parameterTypeList_in_directDeclaratorFunctionSuffix7671 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7673 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifierList_in_directDeclaratorFunctionSuffix7698 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7700 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7724 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifier_in_typeQualifierList_opt7754 = new BitSet(new long[]{0x0000000000000002L,0x8000000000000000L,0x8004040000004000L,0x0000000010000000L});
public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression_opt7785 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_part_in_pointer7801 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
public static final BitSet FOLLOW_STAR_in_pointer_part7827 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L,0x8004040000004000L,0x0000000010000000L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_pointer_part7829 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifier_in_typeQualifierList7853 = new BitSet(new long[]{0x0000000000000002L,0x8000000000000000L,0x8004040000004000L,0x0000000010000000L});
public static final BitSet FOLLOW_parameterTypeListWithoutScope_in_parameterTypeList7882 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameterTypeListWithScope_in_parameterTypeList7889 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameterTypeListWithoutScope_in_parameterTypeListWithScope7910 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameterList_in_parameterTypeListWithoutScope7924 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_parameterTypeListWithoutScope7952 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_ELLIPSIS_in_parameterTypeListWithoutScope7954 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameterDeclaration_in_parameterList7999 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_parameterList8002 = new BitSet(new long[]{0x0200000000000000L,0x8C00000000000000L,0xB605CE1165B06109L,0x0000000019BAA9C0L});
public static final BitSet FOLLOW_parameterDeclaration_in_parameterList8004 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_declarationSpecifiers_in_parameterDeclaration8050 = new BitSet(new long[]{0x0200000000000002L,0x0000400000000A00L});
public static final BitSet FOLLOW_declaratorOrAbstractDeclarator_in_parameterDeclaration8082 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarator_in_declaratorOrAbstractDeclarator8147 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_abstractDeclarator_in_declaratorOrAbstractDeclarator8152 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_identifierList8169 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_identifierList8173 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_identifierList8175 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_specifierQualifierList_in_typeName8206 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000A00L});
public static final BitSet FOLLOW_abstractDeclarator_in_typeName8234 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_abstractDeclarator8279 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator8303 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_abstractDeclarator8327 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000A00L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator8329 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_directAbstractDeclarator8364 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000A00L});
public static final BitSet FOLLOW_abstractDeclarator_in_directAbstractDeclarator8366 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclarator8368 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000A00L});
public static final BitSet FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator8370 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000A00L});
public static final BitSet FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator8407 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000A00L});
public static final BitSet FOLLOW_IDENTIFIER_in_typedefName8447 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LSQUARE_in_directAbstractDeclaratorSuffix8480 = new BitSet(new long[]{0x0200080400100010L,0x900B4080A0210208L,0x8104048800084022L,0x0000000014003619L,0x0000001000000000L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_directAbstractDeclaratorSuffix8490 = new BitSet(new long[]{0x0200080400100010L,0x100B4080A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_opt_in_directAbstractDeclaratorSuffix8492 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8494 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STATIC_in_directAbstractDeclaratorSuffix8539 = new BitSet(new long[]{0x0200080400100010L,0x900B4000A0210208L,0x8104048800084022L,0x0000000014001619L,0x0000001000000000L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_directAbstractDeclaratorSuffix8541 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_directAbstractDeclaratorSuffix8543 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8545 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifierList_in_directAbstractDeclaratorSuffix8590 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_STATIC_in_directAbstractDeclaratorSuffix8592 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_directAbstractDeclaratorSuffix8594 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8596 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_directAbstractDeclaratorSuffix8628 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8630 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_directAbstractDeclaratorSuffix8668 = new BitSet(new long[]{0x0200000000000000L,0x8C00002000000000L,0xB605CE1165B06109L,0x0000000019BAA9C0L});
public static final BitSet FOLLOW_parameterTypeList_in_directAbstractDeclaratorSuffix8678 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclaratorSuffix8680 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclaratorSuffix8710 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_initializer8757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_initializer8773 = new BitSet(new long[]{0x0200080410100010L,0x100B4000A0210A48L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_initializerList_in_initializer8775 = new BitSet(new long[]{0x0000000000400000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_initializer8789 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_initializer8803 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_initializer8805 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designatedInitializer_in_initializerList8844 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_COMMA_in_initializerList8847 = new BitSet(new long[]{0x0200080410100010L,0x100B4000A0210A48L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_designatedInitializer_in_initializerList8849 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_initializer_in_designatedInitializer8880 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designation_in_designatedInitializer8898 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210248L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_initializer_in_designatedInitializer8900 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designatorList_in_designation8929 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_ASSIGN_in_designation8931 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designator_in_designatorList8958 = new BitSet(new long[]{0x0000000010000002L,0x0000000000000800L});
public static final BitSet FOLLOW_LSQUARE_in_designator8978 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_constantExpression_in_designator8980 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_designator8982 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_designator9004 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_designator9006 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STATICASSERT_in_staticAssertDeclaration9039 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_staticAssertDeclaration9041 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_constantExpression_in_staticAssertDeclaration9043 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_COMMA_in_staticAssertDeclaration9045 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_STRING_LITERAL_in_staticAssertDeclaration9047 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_staticAssertDeclaration9055 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_staticAssertDeclaration9057 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOMAIN_in_domainSpecifier9089 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_domainSpecifier9107 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_domainSpecifier9109 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_domainSpecifier9111 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MEM_TYPE_in_memSpecifier9142 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_labeledStatement_in_statement9166 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_compoundStatement_in_statement9182 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionStatement_in_statement9198 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_selectionStatement_in_statement9214 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_iterationStatement_in_statement9230 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_jumpStatement_in_statement9246 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_whenStatement_in_statement9262 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_chooseStatement_in_statement9278 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_atomicStatement_in_statement9294 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_runStatement_in_statement9310 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_withStatement_in_statement9326 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_updateStatement_in_statement9342 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_asmStatement_in_statement9358 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_statementWithScope9390 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pragma_in_statementWithScope9395 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statement_in_statementWithScope9398 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_labeledStatement9437 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_labeledStatement9439 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x011000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statement_in_labeledStatement9441 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CASE_in_labeledStatement9465 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_constantExpression_in_labeledStatement9467 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_labeledStatement9469 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x011000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statement_in_labeledStatement9471 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFAULT_in_labeledStatement9497 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_labeledStatement9499 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x011000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statement_in_labeledStatement9501 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_compoundStatement9551 = new BitSet(new long[]{0x0600080400100090L,0xBC0B4208A0210249L,0xB795CEBF6DFB6F7BL,0x00000000FFFBFFDFL,0x0000001000000000L});
public static final BitSet FOLLOW_RCURLY_in_compoundStatement9561 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_blockItemList_in_compoundStatement9591 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_compoundStatement9593 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_blockItem_in_blockItemList9640 = new BitSet(new long[]{0x0600080400100092L,0xBC0B4200A0210249L,0xB795CEBF6DFB6F7BL,0x00000000FFFBFFDFL,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_expressionStatement9669 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_expressionStatement9671 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMI_in_expressionStatement9689 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_selectionStatement9728 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_selectionStatement9730 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_selectionStatement9732 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_selectionStatement9734 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statementWithScope_in_selectionStatement9738 = new BitSet(new long[]{0x0000000800000002L});
public static final BitSet FOLLOW_ELSE_in_selectionStatement9755 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statementWithScope_in_selectionStatement9759 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SWITCH_in_selectionStatement9824 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_selectionStatement9826 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_selectionStatement9828 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_selectionStatement9830 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statementWithScope_in_selectionStatement9834 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHILE_in_iterationStatement9877 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_iterationStatement9879 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_iterationStatement9881 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_iterationStatement9883 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019010AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_invariant_opt_in_iterationStatement9885 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statementWithScope_in_iterationStatement9892 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DO_in_iterationStatement9913 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statementWithScope_in_iterationStatement9917 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
public static final BitSet FOLLOW_WHILE_in_iterationStatement9919 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_iterationStatement9921 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_iterationStatement9923 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_iterationStatement9925 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_invariant_opt_in_iterationStatement9930 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_iterationStatement9932 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_iterationStatement9953 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_iterationStatement9955 = new BitSet(new long[]{0x0200080400100010L,0x9C0B4200A0210208L,0xB705CE9D6DB8612BL,0x000000001DFAFFD9L,0x0000001000000000L});
public static final BitSet FOLLOW_declaration_in_iterationStatement9969 = new BitSet(new long[]{0x0200080400100010L,0x100B4200A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_opt_in_iterationStatement9973 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_iterationStatement9975 = new BitSet(new long[]{0x0200080400100010L,0x100B4020A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_opt_in_iterationStatement9979 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_iterationStatement9986 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019010AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_invariant_opt_in_iterationStatement9990 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statementWithScope_in_iterationStatement9994 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_opt_in_iterationStatement10029 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_iterationStatement10031 = new BitSet(new long[]{0x0200080400100010L,0x100B4200A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_opt_in_iterationStatement10035 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_iterationStatement10037 = new BitSet(new long[]{0x0200080400100010L,0x100B4020A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_opt_in_iterationStatement10046 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_iterationStatement10048 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019010AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_invariant_opt_in_iterationStatement10052 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statementWithScope_in_iterationStatement10061 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CIVLFOR_in_iterationStatement10100 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_PARFOR_in_iterationStatement10106 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_iterationStatement10109 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_opt_in_iterationStatement10118 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_identifierList_in_iterationStatement10122 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COLON_in_iterationStatement10124 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_iterationStatement10128 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_iterationStatement10130 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019010AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_invariant_opt_in_iterationStatement10139 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statementWithScope_in_iterationStatement10143 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_expression_opt10181 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INVARIANT_in_invariant_opt10206 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_invariant_opt10208 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_invariant_opt10210 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_invariant_opt10212 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeName_in_typeName_opt10233 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GOTO_in_jumpStatement10256 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_jumpStatement10258 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_jumpStatement10260 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONTINUE_in_jumpStatement10278 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_jumpStatement10280 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BREAK_in_jumpStatement10296 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_jumpStatement10298 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RETURN_in_jumpStatement10314 = new BitSet(new long[]{0x0200080400100010L,0x100B4200A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_opt_in_jumpStatement10316 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_jumpStatement10318 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PPRAGMA_in_pragma10347 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_pragma10349 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_NEWLINE_in_pragma10351 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PPRAGMA_in_pragma10381 = new BitSet(new long[]{0x0200000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_pragma10383 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFEFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x03FFFFFFFFFFFFFFL});
public static final BitSet FOLLOW_inlineList_in_pragma10385 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_NEWLINE_in_pragma10387 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INLINE_ANNOTATION_START_in_annotation10443 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x03FFFFFFFFFFFFFFL});
public static final BitSet FOLLOW_NEWLINE_in_annotation10452 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_inlineList_in_annotation10482 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_NEWLINE_in_annotation10484 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ANNOTATION_START_in_annotation10521 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_ANNOTATION_END_in_annotation10523 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ANNOTATION_START_in_annotation10551 = new BitSet(new long[]{0xFFFFFFFFFFFFFFB0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x03FFFFFFFFFFFFFFL});
public static final BitSet FOLLOW_annotationBody_in_annotation10553 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_ANNOTATION_END_in_annotation10555 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RUN_in_runStatement10609 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x011000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statement_in_runStatement10611 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WITH_in_withStatement10635 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_withStatement10637 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_withStatement10639 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_withStatement10641 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x011000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statement_in_withStatement10643 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_UPDATE_in_updateStatement10670 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_updateStatement10672 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008800080022L,0x0000000004001619L,0x0000001000000000L});
public static final BitSet FOLLOW_assignmentExpression_in_updateStatement10674 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_updateStatement10676 = new BitSet(new long[]{0x0200080400100000L,0x0001000000000208L,0x0100008800080000L,0x0000000000001011L});
public static final BitSet FOLLOW_postfixExpressionRoot_in_updateStatement10681 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_updateStatement10683 = new BitSet(new long[]{0x0200080400100010L,0x100B4020A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_argumentExpressionList_in_updateStatement10685 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_updateStatement10687 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_updateStatement10689 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_balancedToken10740 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_balancedToken10752 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x03FFFFFFFFFFFFFFL});
public static final BitSet FOLLOW_balancedToken_in_balancedToken10754 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x03FFFFFFFFFFFFFFL});
public static final BitSet FOLLOW_RPAREN_in_balancedToken10757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASM_in_asmStatement10768 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L,0x0000002000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_VOLATILE_in_asmStatement10770 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L,0x0000002000000000L});
public static final BitSet FOLLOW_GOTO_in_asmStatement10773 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_asmStatement10776 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x03FFFFFFFFFFFFFFL});
public static final BitSet FOLLOW_balancedToken_in_asmStatement10781 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x03FFFFFFFFFFFFFFL});
public static final BitSet FOLLOW_RPAREN_in_asmStatement10787 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_SEMI_in_asmStatement10789 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHEN_in_whenStatement10824 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_whenStatement10826 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_whenStatement10828 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_whenStatement10830 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x011000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statement_in_whenStatement10832 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHOOSE_in_chooseStatement10857 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_chooseStatement10859 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x011000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statement_in_chooseStatement10861 = new BitSet(new long[]{0x0600080400100010L,0x300B4208A0210248L,0x011000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_RCURLY_in_chooseStatement10864 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CIVLATOMIC_in_atomicStatement10886 = new BitSet(new long[]{0x0600080400100010L,0x300B4200A0210248L,0x019000AE084B0E72L,0x00000000E641161FL,0x0000001000000000L});
public static final BitSet FOLLOW_statementWithScope_in_atomicStatement10890 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarator_in_functionDefinition10928 = new BitSet(new long[]{0x0200000000000000L,0xCC00000000000040L,0xFE05CE5167B46109L,0x0000000019BAE9C0L});
public static final BitSet FOLLOW_contract_in_functionDefinition10933 = new BitSet(new long[]{0x0200000000000000L,0x8C00000000000040L,0xB605CE1165B06109L,0x0000000019BAE9C0L});
public static final BitSet FOLLOW_declarationList_opt_in_functionDefinition10938 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_compoundStatement_in_functionDefinition10943 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarationSpecifiers_in_functionDefinition10988 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000200L});
public static final BitSet FOLLOW_declarator_in_functionDefinition10993 = new BitSet(new long[]{0x0200000000000000L,0xCC00000000000040L,0xFE05CE5167B46109L,0x0000000019BAE9C0L});
public static final BitSet FOLLOW_contract_in_functionDefinition10998 = new BitSet(new long[]{0x0200000000000000L,0x8C00000000000040L,0xB605CE1165B06109L,0x0000000019BAE9C0L});
public static final BitSet FOLLOW_declarationList_opt_in_functionDefinition11003 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_compoundStatement_in_functionDefinition11008 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_in_declarationList_opt11057 = new BitSet(new long[]{0x0200000000000002L,0x8C00000000000000L,0xB605CE1165B06109L,0x0000000019BAE9C0L});
public static final BitSet FOLLOW_separationLogicItem_in_contractItem11080 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_porItem_in_contractItem11088 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REQUIRES_in_separationLogicItem11108 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_separationLogicItem11110 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_separationLogicItem11112 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_separationLogicItem11114 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ENSURES_in_separationLogicItem11129 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_separationLogicItem11131 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_separationLogicItem11133 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_separationLogicItem11135 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEPENDS_in_porItem11168 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000840L});
public static final BitSet FOLLOW_LSQUARE_in_porItem11171 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_porItem11173 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_porItem11175 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_porItem11179 = new BitSet(new long[]{0x0200080400100010L,0x100B4008A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_argumentExpressionList_in_porItem11181 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_porItem11183 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GUARD_in_porItem11208 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000840L});
public static final BitSet FOLLOW_LSQUARE_in_porItem11211 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_porItem11213 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_porItem11215 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_porItem11219 = new BitSet(new long[]{0x0200080400100010L,0x100B4008A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_argumentExpressionList_in_porItem11221 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_porItem11223 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSIGNS_in_porItem11248 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000840L});
public static final BitSet FOLLOW_LSQUARE_in_porItem11251 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_porItem11253 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_porItem11255 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_porItem11259 = new BitSet(new long[]{0x0200080400100010L,0x100B4008A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_argumentExpressionList_in_porItem11261 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_porItem11263 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_READS_in_porItem11288 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000840L});
public static final BitSet FOLLOW_LSQUARE_in_porItem11291 = new BitSet(new long[]{0x0200080400100010L,0x100B4000A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_expression_in_porItem11293 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_RSQUARE_in_porItem11295 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_porItem11299 = new BitSet(new long[]{0x0200080400100010L,0x100B4008A0210208L,0x0100008C08080022L,0x0000000004401619L,0x0000001000000000L});
public static final BitSet FOLLOW_argumentExpressionList_in_porItem11301 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RCURLY_in_porItem11303 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_contractItem_in_contract11337 = new BitSet(new long[]{0x0000000000000002L,0x4000000000000000L,0x4800004002040000L});
public static final BitSet FOLLOW_blockItem_in_blockItemWithScope11371 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_functionDefinition_in_blockItem11396 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_functionDefinition_in_blockItem11417 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_in_blockItem11422 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pragma_in_blockItem11427 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_annotation_in_blockItem11432 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_blockItem11437 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_blockItem_in_translationUnit11467 = new BitSet(new long[]{0x0600080400100090L,0xBC0B4200A0210249L,0xB795CEBF6DFB6F7BL,0x00000000FFFBFFDFL,0x0000001000000000L});
public static final BitSet FOLLOW_EOF_in_translationUnit11470 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred1_CivlCParser2329 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_in_synpred1_CivlCParser2331 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred1_CivlCParser2333 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_synpred1_CivlCParser2335 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_synpred2_CivlCParser2638 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred2_CivlCParser2640 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_in_synpred2_CivlCParser2642 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred3_CivlCParser3087 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_in_synpred3_CivlCParser3089 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred3_CivlCParser3091 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFBFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x03FFFFFFFFFFFFFFL});
public static final BitSet FOLLOW_set_in_synpred3_CivlCParser3093 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_in_synpred4_CivlCParser3172 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_synpred5_CivlCParser3253 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIV_in_synpred6_CivlCParser3304 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MOD_in_synpred7_CivlCParser3355 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_synpred8_CivlCParser3436 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUB_in_synpred9_CivlCParser3485 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOTDOT_in_synpred10_CivlCParser3560 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HASH_in_synpred11_CivlCParser3637 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHIFTLEFT_in_synpred12_CivlCParser3713 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHIFTRIGHT_in_synpred13_CivlCParser3762 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_relationalOperator_in_synpred14_CivlCParser3843 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_equalityOperator_in_synpred15_CivlCParser3981 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AMPERSAND_in_synpred16_CivlCParser4116 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BITXOR_in_synpred17_CivlCParser4199 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BITOR_in_synpred18_CivlCParser4282 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AND_in_synpred19_CivlCParser4365 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OR_in_synpred20_CivlCParser4456 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IMPLIES_in_synpred21_CivlCParser4550 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_QMARK_in_synpred22_CivlCParser4636 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred23_CivlCParser4904 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_typeName_in_synpred23_CivlCParser4906 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred23_CivlCParser4908 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
public static final BitSet FOLLOW_LAMBDA_in_synpred23_CivlCParser4910 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_synpred23_CivlCParser4912 = new BitSet(new long[]{0x0200000000000000L,0x8000000000000000L,0x9404CC0105806108L,0x0000000019A08180L});
public static final BitSet FOLLOW_boundVariableDeclarationList_in_synpred23_CivlCParser4930 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_synpred23_CivlCParser4932 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arrayLambdaExpression_in_synpred24_CivlCParser5245 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_synpred25_CivlCParser5255 = new BitSet(new long[]{0x000000000800AA00L,0x0004A80040040000L});
public static final BitSet FOLLOW_assignmentOperator_in_synpred25_CivlCParser5257 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_synpred26_CivlCParser5418 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeSpecifier_in_synpred27_CivlCParser5683 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SYSTEM_in_synpred28_CivlCParser6898 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_libraryName_in_synpred28_CivlCParser6900 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarator_in_synpred29_CivlCParser8143 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELSE_in_synpred30_CivlCParser9751 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarator_in_synpred31_CivlCParser11383 = new BitSet(new long[]{0x0200000000000000L,0xCC00000000000040L,0xFE05CE5167B46109L,0x0000000019BAE9C0L});
public static final BitSet FOLLOW_contract_in_synpred31_CivlCParser11385 = new BitSet(new long[]{0x0200000000000000L,0x8C00000000000040L,0xB605CE1165B06109L,0x0000000019BAE9C0L});
public static final BitSet FOLLOW_declarationList_opt_in_synpred31_CivlCParser11387 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_synpred31_CivlCParser11389 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarationSpecifiers_in_synpred32_CivlCParser11402 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000200L});
public static final BitSet FOLLOW_declarator_in_synpred32_CivlCParser11404 = new BitSet(new long[]{0x0200000000000000L,0xCC00000000000040L,0xFE05CE5167B46109L,0x0000000019BAE9C0L});
public static final BitSet FOLLOW_contract_in_synpred32_CivlCParser11406 = new BitSet(new long[]{0x0200000000000000L,0x8C00000000000040L,0xB605CE1165B06109L,0x0000000019BAE9C0L});
public static final BitSet FOLLOW_declarationList_opt_in_synpred32_CivlCParser11408 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_LCURLY_in_synpred32_CivlCParser11410 = new BitSet(new long[]{0x0000000000000002L});
}