OmpParser_CivlCParser.java
// $ANTLR 3.5.2 CivlCParser.g 2023-02-11 20:42:09
package edu.udel.cis.vsl.abc.front.c.parse;
import java.util.Set;
import java.util.HashSet;
import edu.udel.cis.vsl.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 BinaryExponentPart=17;
public static final int CChar=18;
public static final int CHARACTER_CONSTANT=19;
public static final int COLON=20;
public static final int COMMA=21;
public static final int COMMENT=22;
public static final int DEFINE=23;
public static final int DEFINED=24;
public static final int DIV=25;
public static final int DIVEQ=26;
public static final int DOT=27;
public static final int DOTDOT=28;
public static final int DecimalConstant=29;
public static final int DecimalFloatingConstant=30;
public static final int Digit=31;
public static final int ELIF=32;
public static final int ELLIPSIS=33;
public static final int ELSE=34;
public static final int ENDIF=35;
public static final int EQUALS=36;
public static final int EQUIV_ACSL=37;
public static final int ERROR=38;
public static final int EXTENDED_IDENTIFIER=39;
public static final int EscapeSequence=40;
public static final int ExponentPart=41;
public static final int FLOATING_CONSTANT=42;
public static final int FloatingSuffix=43;
public static final int FractionalConstant=44;
public static final int GT=45;
public static final int GTE=46;
public static final int HASH=47;
public static final int HASHHASH=48;
public static final int HexEscape=49;
public static final int HexFractionalConstant=50;
public static final int HexPrefix=51;
public static final int HexQuad=52;
public static final int HexadecimalConstant=53;
public static final int HexadecimalDigit=54;
public static final int HexadecimalFloatingConstant=55;
public static final int IDENTIFIER=56;
public static final int IF=57;
public static final int IFDEF=58;
public static final int IFNDEF=59;
public static final int IMPLIES=60;
public static final int IMPLIES_ACSL=61;
public static final int INCLUDE=62;
public static final int INLINE_ANNOTATION_START=63;
public static final int INLINE_COMMENT=64;
public static final int INTEGER_CONSTANT=65;
public static final int IdentifierNonDigit=66;
public static final int IntegerSuffix=67;
public static final int LCURLY=68;
public static final int LEXCON=69;
public static final int LINE=70;
public static final int LPAREN=71;
public static final int LSLIST=72;
public static final int LSQUARE=73;
public static final int LT=74;
public static final int LTE=75;
public static final int LongLongSuffix=76;
public static final int LongSuffix=77;
public static final int MINUSMINUS=78;
public static final int MOD=79;
public static final int MODEQ=80;
public static final int NEQ=81;
public static final int NEWLINE=82;
public static final int NOT=83;
public static final int NonDigit=84;
public static final int NonZeroDigit=85;
public static final int OR=86;
public static final int OTHER=87;
public static final int OctalConstant=88;
public static final int OctalDigit=89;
public static final int OctalEscape=90;
public static final int PLUS=91;
public static final int PLUSEQ=92;
public static final int PLUSPLUS=93;
public static final int PP_NUMBER=94;
public static final int PRAGMA=95;
public static final int QMARK=96;
public static final int RCURLY=97;
public static final int REXCON=98;
public static final int RPAREN=99;
public static final int RSLIST=100;
public static final int RSQUARE=101;
public static final int SChar=102;
public static final int SEMI=103;
public static final int SHIFTLEFT=104;
public static final int SHIFTLEFTEQ=105;
public static final int SHIFTRIGHT=106;
public static final int SHIFTRIGHTEQ=107;
public static final int STAR=108;
public static final int STAREQ=109;
public static final int STRING_LITERAL=110;
public static final int SUB=111;
public static final int SUBEQ=112;
public static final int TILDE=113;
public static final int UNDEF=114;
public static final int UniversalCharacterName=115;
public static final int UnsignedSuffix=116;
public static final int WS=117;
public static final int XOR_ACSL=118;
public static final int Zero=119;
public static final int ABSTRACT=120;
public static final int ALIGNAS=121;
public static final int ALIGNOF=122;
public static final int ASM=123;
public static final int ASSIGNS=124;
public static final int ATOMIC=125;
public static final int AUTO=126;
public static final int BIG_O=127;
public static final int BODY=128;
public static final int BOOL=129;
public static final int BREAK=130;
public static final int CALLS=131;
public static final int CASE=132;
public static final int CATCH=133;
public static final int CHAR=134;
public static final int CHOOSE=135;
public static final int CIVLATOMIC=136;
public static final int CIVLFOR=137;
public static final int COLLECTIVE=138;
public static final int COMPLEX=139;
public static final int CONST=140;
public static final int CONTIN=141;
public static final int CONTINUE=142;
public static final int DEFAULT=143;
public static final int DEPENDS=144;
public static final int DERIV=145;
public static final int DEVICE=146;
public static final int DIFFERENTIABLE=147;
public static final int DO=148;
public static final int DOMAIN=149;
public static final int DOUBLE=150;
public static final int ENSURES=151;
public static final int ENUM=152;
public static final int EXISTS=153;
public static final int EXPR=154;
public static final int EXTERN=155;
public static final int FATOMIC=156;
public static final int FILE=157;
public static final int FLOAT=158;
public static final int FOR=159;
public static final int FORALL=160;
public static final int GENERIC=161;
public static final int GLOBAL=162;
public static final int GOTO=163;
public static final int GUARD=164;
public static final int HERE=165;
public static final int IMAGINARY=166;
public static final int INLINE=167;
public static final int INPUT=168;
public static final int INT=169;
public static final int INVARIANT=170;
public static final int LAMBDA=171;
public static final int LONG=172;
public static final int MEM_TYPE=173;
public static final int NORETURN=174;
public static final int ORIGINAL=175;
public static final int OUTPUT=176;
public static final int PARAMLIST=177;
public static final int PARFOR=178;
public static final int PELSE=179;
public static final int PIF=180;
public static final int PPRAGMA=181;
public static final int PROCNULL=182;
public static final int PURE=183;
public static final int RANGE=184;
public static final int READS=185;
public static final int REAL=186;
public static final int REGISTER=187;
public static final int REQUIRES=188;
public static final int RESTRICT=189;
public static final int RESULT=190;
public static final int RETURN=191;
public static final int RUN=192;
public static final int SCOPEOF=193;
public static final int SELF=194;
public static final int SEQUENCE=195;
public static final int SHARED=196;
public static final int SHORT=197;
public static final int SIGNED=198;
public static final int SIZEOF=199;
public static final int SPAWN=200;
public static final int STATE_F=201;
public static final int STATE_NULL=202;
public static final int STATIC=203;
public static final int STATICASSERT=204;
public static final int STRUCT=205;
public static final int SWITCH=206;
public static final int SYSTEM=207;
public static final int TEXT_BLOCK=208;
public static final int THREADLOCAL=209;
public static final int TYPEDEF=210;
public static final int TYPEOF=211;
public static final int UNIFORM=212;
public static final int UNION=213;
public static final int UNSIGNED=214;
public static final int UPDATE=215;
public static final int VALUE_AT=216;
public static final int VOID=217;
public static final int VOLATILE=218;
public static final int WHEN=219;
public static final int WHILE=220;
public static final int WITH=221;
public static final int ABSENT=222;
public static final int ABSTRACT_DECLARATOR=223;
public static final int ANNOTATION=224;
public static final int ARGUMENT_LIST=225;
public static final int ARRAY_ELEMENT_DESIGNATOR=226;
public static final int ARRAY_SUFFIX=227;
public static final int BLOCK_ITEM_LIST=228;
public static final int BOUND_VARIABLE_DECLARATION=229;
public static final int BOUND_VARIABLE_DECLARATION_LIST=230;
public static final int BOUND_VARIABLE_NAME_LIST=231;
public static final int BOUND_VARIABLE_RANGE=232;
public static final int BOUND_VARIABLE_RANGE_LIST=233;
public static final int CALL=234;
public static final int CASE_LABELED_STATEMENT=235;
public static final int CAST=236;
public static final int COMPOUND_LITERAL=237;
public static final int COMPOUND_STATEMENT=238;
public static final int CONTRACT=239;
public static final int DECLARATION=240;
public static final int DECLARATION_LIST=241;
public static final int DECLARATION_SPECIFIERS=242;
public static final int DECLARATOR=243;
public static final int DEFAULT_LABELED_STATEMENT=244;
public static final int DERIVATIVE_EXPRESSION=245;
public static final int DESIGNATED_INITIALIZER=246;
public static final int DESIGNATION=247;
public static final int DIRECT_ABSTRACT_DECLARATOR=248;
public static final int DIRECT_DECLARATOR=249;
public static final int ENUMERATION_CONSTANT=250;
public static final int ENUMERATOR=251;
public static final int ENUMERATOR_LIST=252;
public static final int EXPRESSION_STATEMENT=253;
public static final int FIELD_DESIGNATOR=254;
public static final int FUNCTION_DEFINITION=255;
public static final int FUNCTION_SUFFIX=256;
public static final int GENERIC_ASSOCIATION=257;
public static final int GENERIC_ASSOC_LIST=258;
public static final int IDENTIFIER_LABELED_STATEMENT=259;
public static final int IDENTIFIER_LIST=260;
public static final int INDEX=261;
public static final int INITIALIZER_LIST=262;
public static final int INIT_DECLARATOR=263;
public static final int INIT_DECLARATOR_LIST=264;
public static final int INTERVAL=265;
public static final int INTERVAL_SEQ=266;
public static final int LIB_NAME=267;
public static final int OPERATOR=268;
public static final int PARAMETER_DECLARATION=269;
public static final int PARAMETER_LIST=270;
public static final int PARAMETER_TYPE_LIST=271;
public static final int PARENTHESIZED_EXPRESSION=272;
public static final int PARTIAL=273;
public static final int PARTIAL_LIST=274;
public static final int POINTER=275;
public static final int POST_DECREMENT=276;
public static final int POST_INCREMENT=277;
public static final int PRE_DECREMENT=278;
public static final int PRE_INCREMENT=279;
public static final int PROGRAM=280;
public static final int QUANTIFIED=281;
public static final int SCALAR_INITIALIZER=282;
public static final int SPECIFIER_QUALIFIER_LIST=283;
public static final int STATEMENT=284;
public static final int STATEMENT_EXPRESSION=285;
public static final int STRUCT_DECLARATION=286;
public static final int STRUCT_DECLARATION_LIST=287;
public static final int STRUCT_DECLARATOR=288;
public static final int STRUCT_DECLARATOR_LIST=289;
public static final int TOKEN_LIST=290;
public static final int TRANSLATION_UNIT=291;
public static final int TYPE=292;
public static final int TYPEDEF_NAME=293;
public static final int TYPEOF_EXPRESSION=294;
public static final int TYPEOF_TYPE=295;
public static final int TYPE_NAME=296;
public static final int TYPE_QUALIFIER_LIST=297;
public static final int BARRIER=298;
public static final int CAPTURE=299;
public static final int COLLAPSE=300;
public static final int COPYIN=301;
public static final int COPYPRIVATE=302;
public static final int CRITICAL=303;
public static final int DYNAMIC=304;
public static final int FLUSH=305;
public static final int FST_PRIVATE=306;
public static final int GUIDED=307;
public static final int LST_PRIVATE=308;
public static final int MASTER=309;
public static final int NONE=310;
public static final int NOWAIT=311;
public static final int NUM_THREADS=312;
public static final int OMPATOMIC=313;
public static final int ORDERED=314;
public static final int PARALLEL=315;
public static final int PRIVATE=316;
public static final int READ=317;
public static final int REDUCTION=318;
public static final int RUNTIME=319;
public static final int SAFELEN=320;
public static final int SCHEDULE=321;
public static final int SECTION=322;
public static final int SECTIONS=323;
public static final int SEQ_CST=324;
public static final int SIMD=325;
public static final int SIMDLEN=326;
public static final int SINGLE=327;
public static final int THD_PRIVATE=328;
public static final int WRITE=329;
public static final int DATA_CLAUSE=383;
public static final int FOR_CLAUSE=424;
public static final int PARALLEL_FOR=474;
public static final int PARALLEL_SECTIONS=475;
public static final int UNIQUE_FOR=556;
public static final int UNIQUE_PARALLEL=557;
// 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 typedefNameUsed;
}
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 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;
}
public static class quantifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "quantifier"
// CivlCParser.g:198: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:199: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:209: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:210: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:210: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_quantifiedExpression1140);
quantifier2=quantifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifier.add(quantifier2.getTree());
pushFollow(FOLLOW_intervalSeq_in_quantifiedExpression1142);
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_quantifiedExpression1144); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN4);
pushFollow(FOLLOW_boundVariableDeclarationList_in_quantifiedExpression1146);
boundVariableDeclarationList5=boundVariableDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_boundVariableDeclarationList.add(boundVariableDeclarationList5.getTree());
// CivlCParser.g:211: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:211:11: BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN body1= expression
{
BITOR6=(Token)match(input,BITOR,FOLLOW_BITOR_in_quantifiedExpression1158); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR6);
// CivlCParser.g:212: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) ) {
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:212:14: restrict= conditionalExpression
{
pushFollow(FOLLOW_conditionalExpression_in_quantifiedExpression1175);
restrict=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(restrict.getTree());
}
break;
case 2 :
// CivlCParser.g:212:47: restrict= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_quantifiedExpression1181);
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_quantifiedExpression1196); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN7);
pushFollow(FOLLOW_expression_in_quantifiedExpression1212);
body1=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(body1.getTree());
// AST REWRITE
// elements: restrict, intervalSeq, body1, quantifier, boundVariableDeclarationList
// 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();
// 215:13: -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body1 $restrict intervalSeq )
{
// CivlCParser.g:215: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:217:11: RPAREN body2= expression
{
RPAREN8=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_quantifiedExpression1270); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN8);
pushFollow(FOLLOW_expression_in_quantifiedExpression1286);
body2=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(body2.getTree());
// AST REWRITE
// elements: quantifier, body2, boundVariableDeclarationList, intervalSeq
// 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();
// 219:13: -> ^( QUANTIFIED quantifier boundVariableDeclarationList $body2 ABSENT intervalSeq )
{
// CivlCParser.g:219: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:229: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:230: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:230:4: enumerationConstant
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_enumerationConstant_in_constant1354);
enumerationConstant9=enumerationConstant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, enumerationConstant9.getTree());
}
break;
case 2 :
// CivlCParser.g:231:4: INTEGER_CONSTANT
{
root_0 = (Object)adaptor.nil();
INTEGER_CONSTANT10=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_constant1359); 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:232:4: FLOATING_CONSTANT
{
root_0 = (Object)adaptor.nil();
FLOATING_CONSTANT11=(Token)match(input,FLOATING_CONSTANT,FOLLOW_FLOATING_CONSTANT_in_constant1364); 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:233:4: CHARACTER_CONSTANT
{
root_0 = (Object)adaptor.nil();
CHARACTER_CONSTANT12=(Token)match(input,CHARACTER_CONSTANT,FOLLOW_CHARACTER_CONSTANT_in_constant1369); 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:234:4: SELF
{
root_0 = (Object)adaptor.nil();
SELF13=(Token)match(input,SELF,FOLLOW_SELF_in_constant1374); 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:235:7: PROCNULL
{
root_0 = (Object)adaptor.nil();
PROCNULL14=(Token)match(input,PROCNULL,FOLLOW_PROCNULL_in_constant1382); 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:236:7: STATE_NULL
{
root_0 = (Object)adaptor.nil();
STATE_NULL15=(Token)match(input,STATE_NULL,FOLLOW_STATE_NULL_in_constant1390); 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:237:4: RESULT
{
root_0 = (Object)adaptor.nil();
RESULT16=(Token)match(input,RESULT,FOLLOW_RESULT_in_constant1395); 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:238:4: HERE
{
root_0 = (Object)adaptor.nil();
HERE17=(Token)match(input,HERE,FOLLOW_HERE_in_constant1400); 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:239:7: ELLIPSIS
{
root_0 = (Object)adaptor.nil();
ELLIPSIS18=(Token)match(input,ELLIPSIS,FOLLOW_ELLIPSIS_in_constant1408); 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:244: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:245:2: ({...}? IDENTIFIER -> ^( ENUMERATION_CONSTANT IDENTIFIER ) )
// CivlCParser.g:245: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_enumerationConstant1423); 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();
// 245:63: -> ^( ENUMERATION_CONSTANT IDENTIFIER )
{
// CivlCParser.g:246:4: ^( 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:250: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:251: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) ) {
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:251:4: constant
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_constant_in_primaryExpression1447);
constant20=constant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, constant20.getTree());
}
break;
case 2 :
// CivlCParser.g:252:4: IDENTIFIER
{
root_0 = (Object)adaptor.nil();
IDENTIFIER21=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_primaryExpression1452); 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:253:4: STRING_LITERAL
{
root_0 = (Object)adaptor.nil();
STRING_LITERAL22=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_primaryExpression1457); 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:254:7: LPAREN compoundStatement RPAREN
{
LPAREN23=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_primaryExpression1465); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN23);
pushFollow(FOLLOW_compoundStatement_in_primaryExpression1467);
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_primaryExpression1469); 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();
// 255:9: -> ^( STATEMENT_EXPRESSION LPAREN compoundStatement RPAREN )
{
// CivlCParser.g:255: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:256:4: LPAREN expression RPAREN
{
LPAREN26=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_primaryExpression1494); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN26);
pushFollow(FOLLOW_expression_in_primaryExpression1496);
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_primaryExpression1498); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN28);
// AST REWRITE
// elements: expression, 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();
// 257:9: -> ^( PARENTHESIZED_EXPRESSION LPAREN expression RPAREN )
{
// CivlCParser.g:257: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:258:4: genericSelection
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_genericSelection_in_primaryExpression1523);
genericSelection29=genericSelection();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, genericSelection29.getTree());
}
break;
case 7 :
// CivlCParser.g:259:4: derivativeExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_derivativeExpression_in_primaryExpression1528);
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:263: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:264:2: ( GENERIC LPAREN assignmentExpression COMMA genericAssocList RPAREN -> ^( GENERIC assignmentExpression genericAssocList ) )
// CivlCParser.g:264:4: GENERIC LPAREN assignmentExpression COMMA genericAssocList RPAREN
{
GENERIC31=(Token)match(input,GENERIC,FOLLOW_GENERIC_in_genericSelection1541); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GENERIC.add(GENERIC31);
LPAREN32=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_genericSelection1543); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN32);
pushFollow(FOLLOW_assignmentExpression_in_genericSelection1545);
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_genericSelection1547); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA34);
pushFollow(FOLLOW_genericAssocList_in_genericSelection1549);
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_genericSelection1551); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN36);
// AST REWRITE
// elements: GENERIC, assignmentExpression, genericAssocList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 265:9: -> ^( GENERIC assignmentExpression genericAssocList )
{
// CivlCParser.g:265: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:271: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:272:2: ( DERIV LSQUARE IDENTIFIER COMMA partialList RSQUARE LPAREN argumentExpressionList RPAREN -> ^( DERIVATIVE_EXPRESSION IDENTIFIER partialList argumentExpressionList RPAREN ) )
// CivlCParser.g:272:4: DERIV LSQUARE IDENTIFIER COMMA partialList RSQUARE LPAREN argumentExpressionList RPAREN
{
DERIV37=(Token)match(input,DERIV,FOLLOW_DERIV_in_derivativeExpression1582); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DERIV.add(DERIV37);
LSQUARE38=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_derivativeExpression1584); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE38);
IDENTIFIER39=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_derivativeExpression1586); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER39);
COMMA40=(Token)match(input,COMMA,FOLLOW_COMMA_in_derivativeExpression1588); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA40);
pushFollow(FOLLOW_partialList_in_derivativeExpression1590);
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_derivativeExpression1592); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE42);
LPAREN43=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_derivativeExpression1602); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN43);
pushFollow(FOLLOW_argumentExpressionList_in_derivativeExpression1604);
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_derivativeExpression1606); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN45);
// AST REWRITE
// elements: partialList, IDENTIFIER, argumentExpressionList, RPAREN
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 274:9: -> ^( DERIVATIVE_EXPRESSION IDENTIFIER partialList argumentExpressionList RPAREN )
{
// CivlCParser.g:274:12: ^( 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:280: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:281:2: ( partial ( COMMA partial )* -> ^( PARTIAL_LIST ( partial )+ ) )
// CivlCParser.g:281:4: partial ( COMMA partial )*
{
pushFollow(FOLLOW_partial_in_partialList1653);
partial46=partial();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_partial.add(partial46.getTree());
// CivlCParser.g:281: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:281:13: COMMA partial
{
COMMA47=(Token)match(input,COMMA,FOLLOW_COMMA_in_partialList1656); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA47);
pushFollow(FOLLOW_partial_in_partialList1658);
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();
// 281:29: -> ^( PARTIAL_LIST ( partial )+ )
{
// CivlCParser.g:281: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:285: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:286:2: ( LCURLY IDENTIFIER COMMA INTEGER_CONSTANT RCURLY -> ^( PARTIAL IDENTIFIER INTEGER_CONSTANT ) )
// CivlCParser.g:286:4: LCURLY IDENTIFIER COMMA INTEGER_CONSTANT RCURLY
{
LCURLY49=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_partial1682); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY49);
IDENTIFIER50=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_partial1684); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER50);
COMMA51=(Token)match(input,COMMA,FOLLOW_COMMA_in_partial1686); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA51);
INTEGER_CONSTANT52=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_partial1688); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INTEGER_CONSTANT.add(INTEGER_CONSTANT52);
RCURLY53=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_partial1690); 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();
// 287:9: -> ^( PARTIAL IDENTIFIER INTEGER_CONSTANT )
{
// CivlCParser.g:287: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:291: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:292:2: ( genericAssociation ( COMMA genericAssociation )* -> ^( GENERIC_ASSOC_LIST ( genericAssociation )+ ) )
// CivlCParser.g:292:4: genericAssociation ( COMMA genericAssociation )*
{
pushFollow(FOLLOW_genericAssociation_in_genericAssocList1721);
genericAssociation54=genericAssociation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_genericAssociation.add(genericAssociation54.getTree());
// CivlCParser.g:292: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:292:24: COMMA genericAssociation
{
COMMA55=(Token)match(input,COMMA,FOLLOW_COMMA_in_genericAssocList1724); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA55);
pushFollow(FOLLOW_genericAssociation_in_genericAssocList1726);
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();
// 293:9: -> ^( GENERIC_ASSOC_LIST ( genericAssociation )+ )
{
// CivlCParser.g:293: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:297: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:298: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:298:4: typeName COLON assignmentExpression
{
pushFollow(FOLLOW_typeName_in_genericAssociation1758);
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_genericAssociation1760); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON58);
pushFollow(FOLLOW_assignmentExpression_in_genericAssociation1762);
assignmentExpression59=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression59.getTree());
// AST REWRITE
// elements: typeName, 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();
// 299:9: -> ^( GENERIC_ASSOCIATION typeName assignmentExpression )
{
// CivlCParser.g:299: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:300:4: DEFAULT COLON assignmentExpression
{
DEFAULT60=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_genericAssociation1785); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DEFAULT.add(DEFAULT60);
COLON61=(Token)match(input,COLON,FOLLOW_COLON_in_genericAssociation1787); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON61);
pushFollow(FOLLOW_assignmentExpression_in_genericAssociation1789);
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();
// 301:9: -> ^( GENERIC_ASSOCIATION DEFAULT assignmentExpression )
{
// CivlCParser.g:301: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:305: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:306: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:306: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:306:4: ( postfixExpressionRoot -> postfixExpressionRoot )
// CivlCParser.g:306:5: postfixExpressionRoot
{
pushFollow(FOLLOW_postfixExpressionRoot_in_postfixExpression1821);
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();
// 306:27: -> postfixExpressionRoot
{
adaptor.addChild(root_0, stream_postfixExpressionRoot.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:307: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:308:13: l= LSQUARE expression RSQUARE
{
l=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_postfixExpression1853); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(l);
pushFollow(FOLLOW_expression_in_postfixExpression1855);
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_postfixExpression1857); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE65);
// AST REWRITE
// elements: RSQUARE, postfixExpression, 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();
// 309:13: -> ^( OPERATOR INDEX[$l] ^( ARGUMENT_LIST $postfixExpression expression ) RSQUARE )
{
// CivlCParser.g:309: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:311: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:314:13: LPAREN argumentExpressionList RPAREN
{
LPAREN66=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_postfixExpression1962); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN66);
pushFollow(FOLLOW_argumentExpressionList_in_postfixExpression1964);
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_postfixExpression1966); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN68);
// AST REWRITE
// elements: postfixExpression, LPAREN, 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();
// 315:13: -> ^( CALL LPAREN $postfixExpression ABSENT argumentExpressionList RPAREN ABSENT )
{
// CivlCParser.g:315: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:318:13: LEXCON args1= argumentExpressionList REXCON LPAREN args2= argumentExpressionList RPAREN
{
LEXCON69=(Token)match(input,LEXCON,FOLLOW_LEXCON_in_postfixExpression2038); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LEXCON.add(LEXCON69);
pushFollow(FOLLOW_argumentExpressionList_in_postfixExpression2042);
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_postfixExpression2044); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_REXCON.add(REXCON70);
LPAREN71=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_postfixExpression2058); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN71);
pushFollow(FOLLOW_argumentExpressionList_in_postfixExpression2062);
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_postfixExpression2064); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN72);
// AST REWRITE
// elements: args2, postfixExpression, LPAREN, RPAREN, args1
// 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();
// 320:13: -> ^( CALL LPAREN $postfixExpression $args1 $args2 RPAREN ABSENT )
{
// CivlCParser.g:320: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:321:11: DOT IDENTIFIER
{
DOT73=(Token)match(input,DOT,FOLLOW_DOT_in_postfixExpression2109); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT73);
IDENTIFIER74=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfixExpression2111); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER74);
// AST REWRITE
// elements: IDENTIFIER, DOT, postfixExpression
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 322:13: -> ^( DOT $postfixExpression IDENTIFIER )
{
// CivlCParser.g:322: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:323:11: ARROW IDENTIFIER
{
ARROW75=(Token)match(input,ARROW,FOLLOW_ARROW_in_postfixExpression2146); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ARROW.add(ARROW75);
IDENTIFIER76=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfixExpression2148); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER76);
// AST REWRITE
// elements: ARROW, 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();
// 324:13: -> ^( ARROW $postfixExpression IDENTIFIER )
{
// CivlCParser.g:324: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:325:11: p= PLUSPLUS
{
p=(Token)match(input,PLUSPLUS,FOLLOW_PLUSPLUS_in_postfixExpression2185); 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();
// 326:13: -> ^( OPERATOR POST_INCREMENT[$p] ^( ARGUMENT_LIST $postfixExpression) )
{
// CivlCParser.g:326: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:327: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:328:11: m= MINUSMINUS
{
m=(Token)match(input,MINUSMINUS,FOLLOW_MINUSMINUS_in_postfixExpression2243); 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();
// 329:13: -> ^( OPERATOR POST_DECREMENT[$m] ^( ARGUMENT_LIST $postfixExpression) )
{
// CivlCParser.g:329: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:330: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:347: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:348: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:348:4: ( LPAREN typeName RPAREN LCURLY )=> LPAREN typeName RPAREN LCURLY initializerList ( RCURLY | COMMA RCURLY )
{
LPAREN77=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_postfixExpressionRoot2330); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN77);
pushFollow(FOLLOW_typeName_in_postfixExpressionRoot2332);
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_postfixExpressionRoot2334); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN79);
LCURLY80=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_postfixExpressionRoot2336); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY80);
pushFollow(FOLLOW_initializerList_in_postfixExpressionRoot2338);
initializerList81=initializerList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializerList.add(initializerList81.getTree());
// CivlCParser.g:350: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:350:5: RCURLY
{
RCURLY82=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_postfixExpressionRoot2344); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY82);
}
break;
case 2 :
// CivlCParser.g:351:5: COMMA RCURLY
{
COMMA83=(Token)match(input,COMMA,FOLLOW_COMMA_in_postfixExpressionRoot2350); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA83);
RCURLY84=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_postfixExpressionRoot2352); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY84);
}
break;
}
// AST REWRITE
// elements: initializerList, typeName, RCURLY, 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();
// 353:9: -> ^( COMPOUND_LITERAL LPAREN typeName initializerList RCURLY )
{
// CivlCParser.g:353: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:354:4: primaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_primaryExpression_in_postfixExpressionRoot2383);
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:358: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:359: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) ) {
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:359:4: (a+= assignmentExpression |a+= quantifiedExpression ) ( COMMA (a+= assignmentExpression |a+= quantifiedExpression ) )*
{
// CivlCParser.g:359: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) ) {
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:359:5: a+= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_argumentExpressionList2399);
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:359:31: a+= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_argumentExpressionList2405);
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:360: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:360:10: COMMA (a+= assignmentExpression |a+= quantifiedExpression )
{
COMMA86=(Token)match(input,COMMA,FOLLOW_COMMA_in_argumentExpressionList2417); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA86);
// CivlCParser.g:360: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) ) {
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:360:17: a+= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_argumentExpressionList2422);
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:360:43: a+= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_argumentExpressionList2428);
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();
// 361:9: -> ^( ARGUMENT_LIST ( $a)+ )
{
// CivlCParser.g:361: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:362: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();
// 362:7: -> ^( ARGUMENT_LIST )
{
// CivlCParser.g:362: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:366: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 );
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;
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().typedefNameUsed =false;
try {
// CivlCParser.g:372: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 )
int alt17=11;
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;
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:372:4: postfixExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_postfixExpression_in_unaryExpression2487);
postfixExpression87=postfixExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, postfixExpression87.getTree());
}
break;
case 2 :
// CivlCParser.g:373:4: p= PLUSPLUS unaryExpression
{
p=(Token)match(input,PLUSPLUS,FOLLOW_PLUSPLUS_in_unaryExpression2494); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUSPLUS.add(p);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression2496);
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();
// 374:9: -> ^( OPERATOR PRE_INCREMENT[$p] ^( ARGUMENT_LIST unaryExpression ) )
{
// CivlCParser.g:374: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:375: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:376:4: m= MINUSMINUS unaryExpression
{
m=(Token)match(input,MINUSMINUS,FOLLOW_MINUSMINUS_in_unaryExpression2538); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MINUSMINUS.add(m);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression2540);
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();
// 377:9: -> ^( OPERATOR PRE_DECREMENT[$m] ^( ARGUMENT_LIST unaryExpression ) )
{
// CivlCParser.g:377: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:378: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:379:4: unaryOperator (a= castExpression |a= quantifiedExpression )
{
pushFollow(FOLLOW_unaryOperator_in_unaryExpression2580);
unaryOperator90=unaryOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryOperator.add(unaryOperator90.getTree());
// CivlCParser.g:379: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) ) {
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:379:19: a= castExpression
{
pushFollow(FOLLOW_castExpression_in_unaryExpression2585);
a=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(a.getTree());
}
break;
case 2 :
// CivlCParser.g:379:38: a= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_unaryExpression2591);
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();
// 380:9: -> ^( OPERATOR unaryOperator ^( ARGUMENT_LIST $a) )
{
// CivlCParser.g:380: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:380: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:381:4: ( SIZEOF LPAREN typeName )=> SIZEOF LPAREN typeName RPAREN
{
SIZEOF91=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unaryExpression2629); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF91);
LPAREN92=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression2631); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN92);
pushFollow(FOLLOW_typeName_in_unaryExpression2633);
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_unaryExpression2635); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN94);
// AST REWRITE
// elements: SIZEOF, 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();
// 382:9: -> ^( SIZEOF TYPE typeName )
{
// CivlCParser.g:382: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:383:4: SIZEOF unaryExpression
{
SIZEOF95=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unaryExpression2658); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF95);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression2660);
unaryExpression96=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression96.getTree());
// AST REWRITE
// elements: SIZEOF, 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();
// 384:9: -> ^( SIZEOF EXPR unaryExpression )
{
// CivlCParser.g:384: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:385:4: SCOPEOF unaryExpression
{
SCOPEOF97=(Token)match(input,SCOPEOF,FOLLOW_SCOPEOF_in_unaryExpression2683); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SCOPEOF.add(SCOPEOF97);
pushFollow(FOLLOW_unaryExpression_in_unaryExpression2685);
unaryExpression98=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression98.getTree());
// AST REWRITE
// elements: SCOPEOF, 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();
// 386:9: -> ^( SCOPEOF unaryExpression )
{
// CivlCParser.g:386: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:387:4: ALIGNOF LPAREN typeName RPAREN
{
ALIGNOF99=(Token)match(input,ALIGNOF,FOLLOW_ALIGNOF_in_unaryExpression2706); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ALIGNOF.add(ALIGNOF99);
LPAREN100=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression2708); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN100);
pushFollow(FOLLOW_typeName_in_unaryExpression2710);
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_unaryExpression2712); 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();
// 388:9: -> ^( ALIGNOF typeName )
{
// CivlCParser.g:388: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:389: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_unaryExpression2733); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_VALUE_AT.add(VALUE_AT103);
LPAREN104=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpression2735); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN104);
pushFollow(FOLLOW_assignmentExpression_in_unaryExpression2747);
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_unaryExpression2749); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA105);
pushFollow(FOLLOW_assignmentExpression_in_unaryExpression2761);
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_unaryExpression2763); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA106);
// CivlCParser.g:392: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) ) {
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:392:10: b+= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_unaryExpression2776);
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:392:36: b+= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_unaryExpression2782);
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_unaryExpression2785); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN107);
// AST REWRITE
// elements: b, RPAREN, VALUE_AT
// 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();
// 393:9: -> ^( VALUE_AT ( $b)+ RPAREN )
{
// CivlCParser.g:393: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:394:4: spawnExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_spawnExpression_in_unaryExpression2810);
spawnExpression108=spawnExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, spawnExpression108.getTree());
}
break;
case 11 :
// CivlCParser.g:395:7: callsExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_callsExpression_in_unaryExpression2818);
callsExpression109=callsExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, callsExpression109.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:399: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 SPAWN110=null;
Token LPAREN112=null;
Token RPAREN114=null;
ParserRuleReturnScope postfixExpressionRoot111 =null;
ParserRuleReturnScope argumentExpressionList113 =null;
Object SPAWN110_tree=null;
Object LPAREN112_tree=null;
Object RPAREN114_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:400:2: ( SPAWN postfixExpressionRoot LPAREN argumentExpressionList RPAREN -> ^( SPAWN LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) )
// CivlCParser.g:400:4: SPAWN postfixExpressionRoot LPAREN argumentExpressionList RPAREN
{
SPAWN110=(Token)match(input,SPAWN,FOLLOW_SPAWN_in_spawnExpression2831); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SPAWN.add(SPAWN110);
pushFollow(FOLLOW_postfixExpressionRoot_in_spawnExpression2833);
postfixExpressionRoot111=postfixExpressionRoot();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfixExpressionRoot.add(postfixExpressionRoot111.getTree());
LPAREN112=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_spawnExpression2835); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN112);
pushFollow(FOLLOW_argumentExpressionList_in_spawnExpression2837);
argumentExpressionList113=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList113.getTree());
RPAREN114=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_spawnExpression2839); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN114);
// 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();
// 401:9: -> ^( SPAWN LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN )
{
// CivlCParser.g:401: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:406: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 CALLS115=null;
Token LPAREN116=null;
Token LPAREN118=null;
Token RPAREN120=null;
Token RPAREN121=null;
ParserRuleReturnScope postfixExpressionRoot117 =null;
ParserRuleReturnScope argumentExpressionList119 =null;
Object CALLS115_tree=null;
Object LPAREN116_tree=null;
Object LPAREN118_tree=null;
Object RPAREN120_tree=null;
Object RPAREN121_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:407:2: ( CALLS LPAREN postfixExpressionRoot LPAREN argumentExpressionList RPAREN RPAREN -> ^( CALLS LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) )
// CivlCParser.g:407:4: CALLS LPAREN postfixExpressionRoot LPAREN argumentExpressionList RPAREN RPAREN
{
CALLS115=(Token)match(input,CALLS,FOLLOW_CALLS_in_callsExpression2888); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CALLS.add(CALLS115);
LPAREN116=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_callsExpression2890); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN116);
pushFollow(FOLLOW_postfixExpressionRoot_in_callsExpression2892);
postfixExpressionRoot117=postfixExpressionRoot();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfixExpressionRoot.add(postfixExpressionRoot117.getTree());
LPAREN118=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_callsExpression2894); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN118);
pushFollow(FOLLOW_argumentExpressionList_in_callsExpression2904);
argumentExpressionList119=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList119.getTree());
RPAREN120=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_callsExpression2906); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN120);
RPAREN121=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_callsExpression2908); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN121);
// AST REWRITE
// elements: CALLS, LPAREN, argumentExpressionList, RPAREN, 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();
// 409:9: -> ^( CALLS LPAREN postfixExpressionRoot ABSENT argumentExpressionList RPAREN )
{
// CivlCParser.g:409: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 unaryOperator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unaryOperator"
// CivlCParser.g:415: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 set122=null;
Object set122_tree=null;
try {
// CivlCParser.g:416:2: ( AMPERSAND | STAR | PLUS | SUB | TILDE | NOT | BIG_O )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set122=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(set122));
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:425: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 RPAREN124=null;
ParserRuleReturnScope typeName123 =null;
ParserRuleReturnScope castExpression125 =null;
ParserRuleReturnScope unaryExpression126 =null;
Object l_tree=null;
Object RPAREN124_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().typedefNameUsed =false;
try {
// CivlCParser.g:431:2: ( ( LPAREN typeName RPAREN ~ LCURLY )=>l= LPAREN typeName RPAREN castExpression -> ^( CAST typeName castExpression $l) | unaryExpression )
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==LPAREN) ) {
int LA18_1 = input.LA(2);
if ( (synpred3_CivlCParser()) ) {
alt18=1;
}
else if ( (true) ) {
alt18=2;
}
}
else if ( (LA18_0==AMPERSAND||LA18_0==CHARACTER_CONSTANT||LA18_0==ELLIPSIS||LA18_0==FLOATING_CONSTANT||LA18_0==IDENTIFIER||LA18_0==INTEGER_CONSTANT||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) ) {
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:431:4: ( LPAREN typeName RPAREN ~ LCURLY )=>l= LPAREN typeName RPAREN castExpression
{
l=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_castExpression3025); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(l);
pushFollow(FOLLOW_typeName_in_castExpression3027);
typeName123=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName123.getTree());
RPAREN124=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_castExpression3029); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN124);
pushFollow(FOLLOW_castExpression_in_castExpression3031);
castExpression125=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(castExpression125.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();
// 433:9: -> ^( CAST typeName castExpression $l)
{
// CivlCParser.g:433: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:434:4: unaryExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_unaryExpression_in_castExpression3057);
unaryExpression126=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression126.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:439: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 AT128=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope castExpression127 =null;
Object AT128_tree=null;
RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT");
RewriteRuleSubtreeStream stream_castExpression=new RewriteRuleSubtreeStream(adaptor,"rule castExpression");
try {
// CivlCParser.g:440:2: ( ( castExpression -> castExpression ) ( ( AT )=> AT y= castExpression -> ^( OPERATOR AT ^( ARGUMENT_LIST $remoteExpression $y) ) )* )
// CivlCParser.g:440:4: ( castExpression -> castExpression ) ( ( AT )=> AT y= castExpression -> ^( OPERATOR AT ^( ARGUMENT_LIST $remoteExpression $y) ) )*
{
// CivlCParser.g:440:4: ( castExpression -> castExpression )
// CivlCParser.g:440:5: castExpression
{
pushFollow(FOLLOW_castExpression_in_remoteExpression3071);
castExpression127=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(castExpression127.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();
// 440:20: -> castExpression
{
adaptor.addChild(root_0, stream_castExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:441:9: ( ( AT )=> AT y= castExpression -> ^( OPERATOR AT ^( ARGUMENT_LIST $remoteExpression $y) ) )*
loop19:
while (true) {
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==AT) ) {
int LA19_2 = input.LA(2);
if ( (synpred4_CivlCParser()) ) {
alt19=1;
}
}
switch (alt19) {
case 1 :
// CivlCParser.g:441:11: ( AT )=> AT y= castExpression
{
AT128=(Token)match(input,AT,FOLLOW_AT_in_remoteExpression3093); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AT.add(AT128);
pushFollow(FOLLOW_castExpression_in_remoteExpression3097);
y=castExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_castExpression.add(y.getTree());
// AST REWRITE
// elements: remoteExpression, y, AT
// 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();
// 442:13: -> ^( OPERATOR AT ^( ARGUMENT_LIST $remoteExpression $y) )
{
// CivlCParser.g:442: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:442: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 loop19;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
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:447: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 STAR130=null;
Token DIV131=null;
Token MOD132=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope remoteExpression129 =null;
Object STAR130_tree=null;
Object DIV131_tree=null;
Object MOD132_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:448: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:448: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:448:4: ( remoteExpression -> remoteExpression )
// CivlCParser.g:448:5: remoteExpression
{
pushFollow(FOLLOW_remoteExpression_in_multiplicativeExpression3152);
remoteExpression129=remoteExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_remoteExpression.add(remoteExpression129.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();
// 448:22: -> remoteExpression
{
adaptor.addChild(root_0, stream_remoteExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:449: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) ) )*
loop20:
while (true) {
int alt20=4;
switch ( input.LA(1) ) {
case STAR:
{
int LA20_2 = input.LA(2);
if ( (synpred5_CivlCParser()) ) {
alt20=1;
}
}
break;
case DIV:
{
int LA20_3 = input.LA(2);
if ( (synpred6_CivlCParser()) ) {
alt20=2;
}
}
break;
case MOD:
{
int LA20_4 = input.LA(2);
if ( (synpred7_CivlCParser()) ) {
alt20=3;
}
}
break;
}
switch (alt20) {
case 1 :
// CivlCParser.g:449:11: ( STAR )=> STAR y= remoteExpression
{
STAR130=(Token)match(input,STAR,FOLLOW_STAR_in_multiplicativeExpression3174); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR130);
pushFollow(FOLLOW_remoteExpression_in_multiplicativeExpression3178);
y=remoteExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_remoteExpression.add(y.getTree());
// AST REWRITE
// elements: multiplicativeExpression, y, STAR
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 450:13: -> ^( OPERATOR STAR ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// CivlCParser.g:450: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:450: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:451:11: ( DIV )=> DIV y= remoteExpression
{
DIV131=(Token)match(input,DIV,FOLLOW_DIV_in_multiplicativeExpression3225); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DIV.add(DIV131);
pushFollow(FOLLOW_remoteExpression_in_multiplicativeExpression3229);
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();
// 452:13: -> ^( OPERATOR DIV ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// CivlCParser.g:452: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:452: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:453:11: ( MOD )=> MOD y= remoteExpression
{
MOD132=(Token)match(input,MOD,FOLLOW_MOD_in_multiplicativeExpression3276); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MOD.add(MOD132);
pushFollow(FOLLOW_remoteExpression_in_multiplicativeExpression3280);
y=remoteExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_remoteExpression.add(y.getTree());
// AST REWRITE
// elements: MOD, multiplicativeExpression, y
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 454:13: -> ^( OPERATOR MOD ^( ARGUMENT_LIST $multiplicativeExpression $y) )
{
// CivlCParser.g:454: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:454: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 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 "multiplicativeExpression"
public static class additiveExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "additiveExpression"
// CivlCParser.g:459: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 PLUS134=null;
Token SUB135=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope multiplicativeExpression133 =null;
Object PLUS134_tree=null;
Object SUB135_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:460: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:460: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:460:4: ( multiplicativeExpression -> multiplicativeExpression )
// CivlCParser.g:460:5: multiplicativeExpression
{
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression3335);
multiplicativeExpression133=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(multiplicativeExpression133.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();
// 460:30: -> multiplicativeExpression
{
adaptor.addChild(root_0, stream_multiplicativeExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:461:9: ( ( PLUS )=> PLUS y= multiplicativeExpression -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) ) | ( SUB )=> SUB y= multiplicativeExpression -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) ) )*
loop21:
while (true) {
int alt21=3;
int LA21_0 = input.LA(1);
if ( (LA21_0==PLUS) ) {
int LA21_2 = input.LA(2);
if ( (synpred8_CivlCParser()) ) {
alt21=1;
}
}
else if ( (LA21_0==SUB) ) {
int LA21_3 = input.LA(2);
if ( (synpred9_CivlCParser()) ) {
alt21=2;
}
}
switch (alt21) {
case 1 :
// CivlCParser.g:461:11: ( PLUS )=> PLUS y= multiplicativeExpression
{
PLUS134=(Token)match(input,PLUS,FOLLOW_PLUS_in_additiveExpression3357); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS134);
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression3361);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(y.getTree());
// AST REWRITE
// elements: additiveExpression, PLUS, y
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 462:11: -> ^( OPERATOR PLUS ^( ARGUMENT_LIST $additiveExpression $y) )
{
// CivlCParser.g:462: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:462: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:463:11: ( SUB )=> SUB y= multiplicativeExpression
{
SUB135=(Token)match(input,SUB,FOLLOW_SUB_in_additiveExpression3406); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUB.add(SUB135);
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression3410);
y=multiplicativeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multiplicativeExpression.add(y.getTree());
// AST REWRITE
// elements: y, SUB, additiveExpression
// 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();
// 464:11: -> ^( OPERATOR SUB ^( ARGUMENT_LIST $additiveExpression $y) )
{
// CivlCParser.g:464: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:464: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 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 "additiveExpression"
public static class rangeExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "rangeExpression"
// CivlCParser.g:470: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 DOTDOT136=null;
ParserRuleReturnScope x =null;
ParserRuleReturnScope s =null;
Object DOTDOT136_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:471:2: (x= additiveExpression ( ( DOTDOT )=> DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x) )
// CivlCParser.g:471:4: x= additiveExpression ( ( DOTDOT )=> DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x)
{
pushFollow(FOLLOW_additiveExpression_in_rangeExpression3464);
x=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additiveExpression.add(x.getTree());
// CivlCParser.g:472:9: ( ( DOTDOT )=> DOTDOT s= rangeSuffix -> ^( DOTDOT $x $s) | -> $x)
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==DOTDOT) ) {
int LA22_1 = input.LA(2);
if ( (synpred10_CivlCParser()) ) {
alt22=1;
}
else if ( (true) ) {
alt22=2;
}
}
else if ( (LA22_0==EOF||(LA22_0 >= AMPERSAND && LA22_0 <= AND)||(LA22_0 >= ASSIGN && LA22_0 <= BITXOREQ)||(LA22_0 >= COLON && LA22_0 <= COMMA)||(LA22_0 >= DIV && LA22_0 <= DIVEQ)||LA22_0==EQUALS||(LA22_0 >= GT && LA22_0 <= HASH)||LA22_0==IMPLIES||(LA22_0 >= LT && LA22_0 <= LTE)||(LA22_0 >= MOD && LA22_0 <= NEQ)||LA22_0==OR||(LA22_0 >= PLUS && LA22_0 <= PLUSEQ)||(LA22_0 >= QMARK && LA22_0 <= RPAREN)||LA22_0==RSQUARE||(LA22_0 >= SEMI && LA22_0 <= STAREQ)||(LA22_0 >= SUB && LA22_0 <= SUBEQ)||LA22_0==ASSIGNS||LA22_0==DEPENDS||LA22_0==ENSURES||LA22_0==GUARD||LA22_0==READS||LA22_0==REQUIRES) ) {
alt22=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 22, 0, input);
throw nvae;
}
switch (alt22) {
case 1 :
// CivlCParser.g:472:11: ( DOTDOT )=> DOTDOT s= rangeSuffix
{
DOTDOT136=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_rangeExpression3481); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOTDOT.add(DOTDOT136);
pushFollow(FOLLOW_rangeSuffix_in_rangeExpression3485);
s=rangeSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeSuffix.add(s.getTree());
// AST REWRITE
// elements: s, DOTDOT, x
// 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();
// 472:43: -> ^( DOTDOT $x $s)
{
// CivlCParser.g:472: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:473: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();
// 473: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:477: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 HASH137=null;
ParserRuleReturnScope x =null;
ParserRuleReturnScope y =null;
Object HASH137_tree=null;
RewriteRuleTokenStream stream_HASH=new RewriteRuleTokenStream(adaptor,"token HASH");
RewriteRuleSubtreeStream stream_additiveExpression=new RewriteRuleSubtreeStream(adaptor,"rule additiveExpression");
try {
// CivlCParser.g:478:5: (x= additiveExpression ( ( HASH )=> HASH y= additiveExpression -> $x $y| -> $x) )
// CivlCParser.g:478:7: x= additiveExpression ( ( HASH )=> HASH y= additiveExpression -> $x $y| -> $x)
{
pushFollow(FOLLOW_additiveExpression_in_rangeSuffix3541);
x=additiveExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additiveExpression.add(x.getTree());
// CivlCParser.g:479:9: ( ( HASH )=> HASH y= additiveExpression -> $x $y| -> $x)
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==HASH) ) {
int LA23_1 = input.LA(2);
if ( (synpred11_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==DOTDOT||LA23_0==EQUALS||(LA23_0 >= GT && LA23_0 <= GTE)||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:479:11: ( HASH )=> HASH y= additiveExpression
{
HASH137=(Token)match(input,HASH,FOLLOW_HASH_in_rangeSuffix3558); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_HASH.add(HASH137);
pushFollow(FOLLOW_additiveExpression_in_rangeSuffix3562);
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();
// 479: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:480: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();
// 480: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:485: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 SHIFTLEFT139=null;
Token SHIFTRIGHT140=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope rangeExpression138 =null;
Object SHIFTLEFT139_tree=null;
Object SHIFTRIGHT140_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:486: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:486: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:486:4: ( rangeExpression -> rangeExpression )
// CivlCParser.g:486:5: rangeExpression
{
pushFollow(FOLLOW_rangeExpression_in_shiftExpression3612);
rangeExpression138=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(rangeExpression138.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();
// 486:21: -> rangeExpression
{
adaptor.addChild(root_0, stream_rangeExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:487:9: ( ( SHIFTLEFT )=> SHIFTLEFT y= rangeExpression -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) ) | ( SHIFTRIGHT )=> SHIFTRIGHT y= rangeExpression -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) ) )*
loop24:
while (true) {
int alt24=3;
int LA24_0 = input.LA(1);
if ( (LA24_0==SHIFTLEFT) ) {
int LA24_2 = input.LA(2);
if ( (synpred12_CivlCParser()) ) {
alt24=1;
}
}
else if ( (LA24_0==SHIFTRIGHT) ) {
int LA24_3 = input.LA(2);
if ( (synpred13_CivlCParser()) ) {
alt24=2;
}
}
switch (alt24) {
case 1 :
// CivlCParser.g:487:11: ( SHIFTLEFT )=> SHIFTLEFT y= rangeExpression
{
SHIFTLEFT139=(Token)match(input,SHIFTLEFT,FOLLOW_SHIFTLEFT_in_shiftExpression3634); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SHIFTLEFT.add(SHIFTLEFT139);
pushFollow(FOLLOW_rangeExpression_in_shiftExpression3638);
y=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(y.getTree());
// AST REWRITE
// elements: shiftExpression, y, SHIFTLEFT
// 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:11: -> ^( OPERATOR SHIFTLEFT ^( ARGUMENT_LIST $shiftExpression $y) )
{
// CivlCParser.g:488: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:488: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:489:11: ( SHIFTRIGHT )=> SHIFTRIGHT y= rangeExpression
{
SHIFTRIGHT140=(Token)match(input,SHIFTRIGHT,FOLLOW_SHIFTRIGHT_in_shiftExpression3683); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SHIFTRIGHT.add(SHIFTRIGHT140);
pushFollow(FOLLOW_rangeExpression_in_shiftExpression3687);
y=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(y.getTree());
// AST REWRITE
// elements: y, shiftExpression, 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();
// 490:11: -> ^( OPERATOR SHIFTRIGHT ^( ARGUMENT_LIST $shiftExpression $y) )
{
// CivlCParser.g:490: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:490: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 loop24;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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:495: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 shiftExpression141 =null;
ParserRuleReturnScope relationalOperator142 =null;
RewriteRuleSubtreeStream stream_shiftExpression=new RewriteRuleSubtreeStream(adaptor,"rule shiftExpression");
RewriteRuleSubtreeStream stream_relationalOperator=new RewriteRuleSubtreeStream(adaptor,"rule relationalOperator");
try {
// CivlCParser.g:496:2: ( ( shiftExpression -> shiftExpression ) ( ( relationalOperator )=> relationalOperator (y= shiftExpression ) -> ^( OPERATOR relationalOperator ^( ARGUMENT_LIST $relationalExpression $y) ) )* )
// CivlCParser.g:496:4: ( shiftExpression -> shiftExpression ) ( ( relationalOperator )=> relationalOperator (y= shiftExpression ) -> ^( OPERATOR relationalOperator ^( ARGUMENT_LIST $relationalExpression $y) ) )*
{
// CivlCParser.g:496:4: ( shiftExpression -> shiftExpression )
// CivlCParser.g:496:6: shiftExpression
{
pushFollow(FOLLOW_shiftExpression_in_relationalExpression3741);
shiftExpression141=shiftExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_shiftExpression.add(shiftExpression141.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();
// 496:22: -> shiftExpression
{
adaptor.addChild(root_0, stream_shiftExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:497:9: ( ( relationalOperator )=> relationalOperator (y= shiftExpression ) -> ^( OPERATOR relationalOperator ^( ARGUMENT_LIST $relationalExpression $y) ) )*
loop25:
while (true) {
int alt25=2;
int LA25_0 = input.LA(1);
if ( ((LA25_0 >= GT && LA25_0 <= GTE)||(LA25_0 >= LT && LA25_0 <= LTE)) ) {
int LA25_2 = input.LA(2);
if ( (synpred14_CivlCParser()) ) {
alt25=1;
}
}
switch (alt25) {
case 1 :
// CivlCParser.g:497:11: ( relationalOperator )=> relationalOperator (y= shiftExpression )
{
pushFollow(FOLLOW_relationalOperator_in_relationalExpression3764);
relationalOperator142=relationalOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relationalOperator.add(relationalOperator142.getTree());
// CivlCParser.g:498:13: (y= shiftExpression )
// CivlCParser.g:498:14: y= shiftExpression
{
pushFollow(FOLLOW_shiftExpression_in_relationalExpression3781);
y=shiftExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_shiftExpression.add(y.getTree());
}
// AST REWRITE
// elements: relationalOperator, y, relationalExpression
// 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();
// 499:13: -> ^( OPERATOR relationalOperator ^( ARGUMENT_LIST $relationalExpression $y) )
{
// CivlCParser.g:499: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:500: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 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 "relationalExpression"
public static class relationalOperator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "relationalOperator"
// CivlCParser.g:505: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 set143=null;
Object set143_tree=null;
try {
// CivlCParser.g:506:2: ( LT | GT | LTE | GTE )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set143=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(set143));
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:510: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 relationalExpression144 =null;
ParserRuleReturnScope equalityOperator145 =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:511:2: ( ( relationalExpression -> relationalExpression ) ( ( equalityOperator )=> equalityOperator (y= relationalExpression |y= quantifiedExpression ) -> ^( OPERATOR equalityOperator ^( ARGUMENT_LIST $equalityExpression $y) ) )* )
// CivlCParser.g:511:4: ( relationalExpression -> relationalExpression ) ( ( equalityOperator )=> equalityOperator (y= relationalExpression |y= quantifiedExpression ) -> ^( OPERATOR equalityOperator ^( ARGUMENT_LIST $equalityExpression $y) ) )*
{
// CivlCParser.g:511:4: ( relationalExpression -> relationalExpression )
// CivlCParser.g:511:6: relationalExpression
{
pushFollow(FOLLOW_relationalExpression_in_equalityExpression3879);
relationalExpression144=relationalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relationalExpression.add(relationalExpression144.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();
// 511:27: -> relationalExpression
{
adaptor.addChild(root_0, stream_relationalExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:512:9: ( ( equalityOperator )=> equalityOperator (y= relationalExpression |y= quantifiedExpression ) -> ^( OPERATOR equalityOperator ^( ARGUMENT_LIST $equalityExpression $y) ) )*
loop27:
while (true) {
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==EQUALS||LA27_0==NEQ) ) {
int LA27_2 = input.LA(2);
if ( (synpred15_CivlCParser()) ) {
alt27=1;
}
}
switch (alt27) {
case 1 :
// CivlCParser.g:512:11: ( equalityOperator )=> equalityOperator (y= relationalExpression |y= quantifiedExpression )
{
pushFollow(FOLLOW_equalityOperator_in_equalityExpression3901);
equalityOperator145=equalityOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equalityOperator.add(equalityOperator145.getTree());
// CivlCParser.g:513:13: (y= relationalExpression |y= quantifiedExpression )
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==AMPERSAND||LA26_0==CHARACTER_CONSTANT||LA26_0==ELLIPSIS||LA26_0==FLOATING_CONSTANT||LA26_0==IDENTIFIER||LA26_0==INTEGER_CONSTANT||LA26_0==LPAREN||LA26_0==MINUSMINUS||LA26_0==NOT||LA26_0==PLUS||LA26_0==PLUSPLUS||LA26_0==STAR||(LA26_0 >= STRING_LITERAL && LA26_0 <= SUB)||LA26_0==TILDE||LA26_0==ALIGNOF||LA26_0==BIG_O||LA26_0==CALLS||LA26_0==DERIV||LA26_0==GENERIC||LA26_0==HERE||LA26_0==PROCNULL||LA26_0==RESULT||(LA26_0 >= SCOPEOF && LA26_0 <= SELF)||(LA26_0 >= SIZEOF && LA26_0 <= SPAWN)||LA26_0==STATE_NULL||LA26_0==VALUE_AT) ) {
alt26=1;
}
else if ( (LA26_0==EXISTS||LA26_0==FORALL||LA26_0==UNIFORM) ) {
alt26=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 26, 0, input);
throw nvae;
}
switch (alt26) {
case 1 :
// CivlCParser.g:513:14: y= relationalExpression
{
pushFollow(FOLLOW_relationalExpression_in_equalityExpression3918);
y=relationalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relationalExpression.add(y.getTree());
}
break;
case 2 :
// CivlCParser.g:513:39: y= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_equalityExpression3924);
y=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(y.getTree());
}
break;
}
// AST REWRITE
// elements: equalityExpression, y, equalityOperator
// 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();
// 514:13: -> ^( OPERATOR equalityOperator ^( ARGUMENT_LIST $equalityExpression $y) )
{
// CivlCParser.g:514: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:515: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 loop27;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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:520: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 set146=null;
Object set146_tree=null;
try {
// CivlCParser.g:521:2: ( EQUALS | NEQ )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set146=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(set146));
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:525: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 AMPERSAND148=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope equalityExpression147 =null;
Object AMPERSAND148_tree=null;
RewriteRuleTokenStream stream_AMPERSAND=new RewriteRuleTokenStream(adaptor,"token AMPERSAND");
RewriteRuleSubtreeStream stream_equalityExpression=new RewriteRuleSubtreeStream(adaptor,"rule equalityExpression");
try {
// CivlCParser.g:526:2: ( ( equalityExpression -> equalityExpression ) ( ( AMPERSAND )=> AMPERSAND y= equalityExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )* )
// CivlCParser.g:526:4: ( equalityExpression -> equalityExpression ) ( ( AMPERSAND )=> AMPERSAND y= equalityExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )*
{
// CivlCParser.g:526:4: ( equalityExpression -> equalityExpression )
// CivlCParser.g:526:6: equalityExpression
{
pushFollow(FOLLOW_equalityExpression_in_andExpression4014);
equalityExpression147=equalityExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equalityExpression.add(equalityExpression147.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();
// 526:25: -> equalityExpression
{
adaptor.addChild(root_0, stream_equalityExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:527:9: ( ( AMPERSAND )=> AMPERSAND y= equalityExpression -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) ) )*
loop28:
while (true) {
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==AMPERSAND) ) {
int LA28_2 = input.LA(2);
if ( (synpred16_CivlCParser()) ) {
alt28=1;
}
}
switch (alt28) {
case 1 :
// CivlCParser.g:527:11: ( AMPERSAND )=> AMPERSAND y= equalityExpression
{
AMPERSAND148=(Token)match(input,AMPERSAND,FOLLOW_AMPERSAND_in_andExpression4037); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AMPERSAND.add(AMPERSAND148);
pushFollow(FOLLOW_equalityExpression_in_andExpression4041);
y=equalityExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equalityExpression.add(y.getTree());
// AST REWRITE
// elements: andExpression, y, AMPERSAND
// token labels:
// rule labels: y, retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_y=new RewriteRuleSubtreeStream(adaptor,"rule y",y!=null?y.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 528:13: -> ^( OPERATOR AMPERSAND ^( ARGUMENT_LIST $andExpression $y) )
{
// CivlCParser.g:528: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:528: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 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 "andExpression"
public static class exclusiveOrExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "exclusiveOrExpression"
// CivlCParser.g:533: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 BITXOR150=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope andExpression149 =null;
Object BITXOR150_tree=null;
RewriteRuleTokenStream stream_BITXOR=new RewriteRuleTokenStream(adaptor,"token BITXOR");
RewriteRuleSubtreeStream stream_andExpression=new RewriteRuleSubtreeStream(adaptor,"rule andExpression");
try {
// CivlCParser.g:534:2: ( ( andExpression -> andExpression ) ( ( BITXOR )=> BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )* )
// CivlCParser.g:534:4: ( andExpression -> andExpression ) ( ( BITXOR )=> BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )*
{
// CivlCParser.g:534:4: ( andExpression -> andExpression )
// CivlCParser.g:534:6: andExpression
{
pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression4097);
andExpression149=andExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_andExpression.add(andExpression149.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();
// 534:20: -> andExpression
{
adaptor.addChild(root_0, stream_andExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:535:9: ( ( BITXOR )=> BITXOR y= andExpression -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) ) )*
loop29:
while (true) {
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==BITXOR) ) {
int LA29_2 = input.LA(2);
if ( (synpred17_CivlCParser()) ) {
alt29=1;
}
}
switch (alt29) {
case 1 :
// CivlCParser.g:535:11: ( BITXOR )=> BITXOR y= andExpression
{
BITXOR150=(Token)match(input,BITXOR,FOLLOW_BITXOR_in_exclusiveOrExpression4120); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITXOR.add(BITXOR150);
pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression4124);
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();
// 536:13: -> ^( OPERATOR BITXOR ^( ARGUMENT_LIST $exclusiveOrExpression $y) )
{
// CivlCParser.g:536: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:536: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 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 "exclusiveOrExpression"
public static class inclusiveOrExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "inclusiveOrExpression"
// CivlCParser.g:541: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 BITOR152=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope exclusiveOrExpression151 =null;
Object BITOR152_tree=null;
RewriteRuleTokenStream stream_BITOR=new RewriteRuleTokenStream(adaptor,"token BITOR");
RewriteRuleSubtreeStream stream_exclusiveOrExpression=new RewriteRuleSubtreeStream(adaptor,"rule exclusiveOrExpression");
try {
// CivlCParser.g:542:2: ( ( exclusiveOrExpression -> exclusiveOrExpression ) ( ( BITOR )=> BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )* )
// CivlCParser.g:542:4: ( exclusiveOrExpression -> exclusiveOrExpression ) ( ( BITOR )=> BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )*
{
// CivlCParser.g:542:4: ( exclusiveOrExpression -> exclusiveOrExpression )
// CivlCParser.g:542:6: exclusiveOrExpression
{
pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4180);
exclusiveOrExpression151=exclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_exclusiveOrExpression.add(exclusiveOrExpression151.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();
// 542:28: -> exclusiveOrExpression
{
adaptor.addChild(root_0, stream_exclusiveOrExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:543:9: ( ( BITOR )=> BITOR y= exclusiveOrExpression -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) ) )*
loop30:
while (true) {
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==BITOR) ) {
int LA30_2 = input.LA(2);
if ( (synpred18_CivlCParser()) ) {
alt30=1;
}
}
switch (alt30) {
case 1 :
// CivlCParser.g:543:11: ( BITOR )=> BITOR y= exclusiveOrExpression
{
BITOR152=(Token)match(input,BITOR,FOLLOW_BITOR_in_inclusiveOrExpression4203); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR152);
pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4207);
y=exclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_exclusiveOrExpression.add(y.getTree());
// AST REWRITE
// elements: BITOR, inclusiveOrExpression, 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();
// 544:13: -> ^( OPERATOR BITOR ^( ARGUMENT_LIST $inclusiveOrExpression $y) )
{
// CivlCParser.g:544: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:544: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 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 "inclusiveOrExpression"
public static class logicalAndExpression_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logicalAndExpression"
// CivlCParser.g:549: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 AND154=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope inclusiveOrExpression153 =null;
Object AND154_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:550:2: ( ( inclusiveOrExpression -> inclusiveOrExpression ) ( ( AND )=> AND (y= inclusiveOrExpression |y= quantifiedExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $y) ) )* )
// CivlCParser.g:550:4: ( inclusiveOrExpression -> inclusiveOrExpression ) ( ( AND )=> AND (y= inclusiveOrExpression |y= quantifiedExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $y) ) )*
{
// CivlCParser.g:550:4: ( inclusiveOrExpression -> inclusiveOrExpression )
// CivlCParser.g:550:6: inclusiveOrExpression
{
pushFollow(FOLLOW_inclusiveOrExpression_in_logicalAndExpression4263);
inclusiveOrExpression153=inclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inclusiveOrExpression.add(inclusiveOrExpression153.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();
// 550:28: -> inclusiveOrExpression
{
adaptor.addChild(root_0, stream_inclusiveOrExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:551:9: ( ( AND )=> AND (y= inclusiveOrExpression |y= quantifiedExpression ) -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $y) ) )*
loop32:
while (true) {
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==AND) ) {
int LA32_2 = input.LA(2);
if ( (synpred19_CivlCParser()) ) {
alt32=1;
}
}
switch (alt32) {
case 1 :
// CivlCParser.g:551:11: ( AND )=> AND (y= inclusiveOrExpression |y= quantifiedExpression )
{
AND154=(Token)match(input,AND,FOLLOW_AND_in_logicalAndExpression4286); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AND.add(AND154);
// CivlCParser.g:551:23: (y= inclusiveOrExpression |y= quantifiedExpression )
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==AMPERSAND||LA31_0==CHARACTER_CONSTANT||LA31_0==ELLIPSIS||LA31_0==FLOATING_CONSTANT||LA31_0==IDENTIFIER||LA31_0==INTEGER_CONSTANT||LA31_0==LPAREN||LA31_0==MINUSMINUS||LA31_0==NOT||LA31_0==PLUS||LA31_0==PLUSPLUS||LA31_0==STAR||(LA31_0 >= STRING_LITERAL && LA31_0 <= SUB)||LA31_0==TILDE||LA31_0==ALIGNOF||LA31_0==BIG_O||LA31_0==CALLS||LA31_0==DERIV||LA31_0==GENERIC||LA31_0==HERE||LA31_0==PROCNULL||LA31_0==RESULT||(LA31_0 >= SCOPEOF && LA31_0 <= SELF)||(LA31_0 >= SIZEOF && LA31_0 <= SPAWN)||LA31_0==STATE_NULL||LA31_0==VALUE_AT) ) {
alt31=1;
}
else if ( (LA31_0==EXISTS||LA31_0==FORALL||LA31_0==UNIFORM) ) {
alt31=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 31, 0, input);
throw nvae;
}
switch (alt31) {
case 1 :
// CivlCParser.g:551:24: y= inclusiveOrExpression
{
pushFollow(FOLLOW_inclusiveOrExpression_in_logicalAndExpression4291);
y=inclusiveOrExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inclusiveOrExpression.add(y.getTree());
}
break;
case 2 :
// CivlCParser.g:551:50: y= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_logicalAndExpression4297);
y=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(y.getTree());
}
break;
}
// AST REWRITE
// elements: y, AND, 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();
// 552:13: -> ^( OPERATOR AND ^( ARGUMENT_LIST $logicalAndExpression $y) )
{
// CivlCParser.g:552: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:552: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 loop32;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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:557: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 OR156=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope logicalAndExpression155 =null;
Object OR156_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:558:2: ( ( logicalAndExpression -> logicalAndExpression ) ( ( OR )=> OR (y= logicalAndExpression |y= quantifiedExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $y) ) )* )
// CivlCParser.g:558:4: ( logicalAndExpression -> logicalAndExpression ) ( ( OR )=> OR (y= logicalAndExpression |y= quantifiedExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $y) ) )*
{
// CivlCParser.g:558:4: ( logicalAndExpression -> logicalAndExpression )
// CivlCParser.g:558:6: logicalAndExpression
{
pushFollow(FOLLOW_logicalAndExpression_in_logicalOrExpression4354);
logicalAndExpression155=logicalAndExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalAndExpression.add(logicalAndExpression155.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();
// 558:27: -> logicalAndExpression
{
adaptor.addChild(root_0, stream_logicalAndExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:559:9: ( ( OR )=> OR (y= logicalAndExpression |y= quantifiedExpression ) -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $y) ) )*
loop34:
while (true) {
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==OR) ) {
int LA34_2 = input.LA(2);
if ( (synpred20_CivlCParser()) ) {
alt34=1;
}
}
switch (alt34) {
case 1 :
// CivlCParser.g:559:11: ( OR )=> OR (y= logicalAndExpression |y= quantifiedExpression )
{
OR156=(Token)match(input,OR,FOLLOW_OR_in_logicalOrExpression4377); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_OR.add(OR156);
// CivlCParser.g:559:21: (y= logicalAndExpression |y= quantifiedExpression )
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==AMPERSAND||LA33_0==CHARACTER_CONSTANT||LA33_0==ELLIPSIS||LA33_0==FLOATING_CONSTANT||LA33_0==IDENTIFIER||LA33_0==INTEGER_CONSTANT||LA33_0==LPAREN||LA33_0==MINUSMINUS||LA33_0==NOT||LA33_0==PLUS||LA33_0==PLUSPLUS||LA33_0==STAR||(LA33_0 >= STRING_LITERAL && LA33_0 <= SUB)||LA33_0==TILDE||LA33_0==ALIGNOF||LA33_0==BIG_O||LA33_0==CALLS||LA33_0==DERIV||LA33_0==GENERIC||LA33_0==HERE||LA33_0==PROCNULL||LA33_0==RESULT||(LA33_0 >= SCOPEOF && LA33_0 <= SELF)||(LA33_0 >= SIZEOF && LA33_0 <= SPAWN)||LA33_0==STATE_NULL||LA33_0==VALUE_AT) ) {
alt33=1;
}
else if ( (LA33_0==EXISTS||LA33_0==FORALL||LA33_0==UNIFORM) ) {
alt33=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 33, 0, input);
throw nvae;
}
switch (alt33) {
case 1 :
// CivlCParser.g:559:22: y= logicalAndExpression
{
pushFollow(FOLLOW_logicalAndExpression_in_logicalOrExpression4382);
y=logicalAndExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalAndExpression.add(y.getTree());
}
break;
case 2 :
// CivlCParser.g:559:47: y= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_logicalOrExpression4388);
y=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(y.getTree());
}
break;
}
// AST REWRITE
// elements: y, logicalOrExpression, OR
// 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();
// 560:13: -> ^( OPERATOR OR ^( ARGUMENT_LIST $logicalOrExpression $y) )
{
// CivlCParser.g:560: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:560: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 loop34;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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:566: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 IMPLIES157=null;
ParserRuleReturnScope x =null;
ParserRuleReturnScope y =null;
Object IMPLIES157_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:567:2: ( (x= logicalOrExpression -> $x) ( ( IMPLIES )=> IMPLIES (y= logicalImpliesExpression |y= quantifiedExpression ) -> ^( OPERATOR IMPLIES ^( ARGUMENT_LIST $x $y) ) )? )
// CivlCParser.g:567:4: (x= logicalOrExpression -> $x) ( ( IMPLIES )=> IMPLIES (y= logicalImpliesExpression |y= quantifiedExpression ) -> ^( OPERATOR IMPLIES ^( ARGUMENT_LIST $x $y) ) )?
{
// CivlCParser.g:567:4: (x= logicalOrExpression -> $x)
// CivlCParser.g:567:6: x= logicalOrExpression
{
pushFollow(FOLLOW_logicalOrExpression_in_logicalImpliesExpression4447);
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();
// 567:28: -> $x
{
adaptor.addChild(root_0, stream_x.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:568:9: ( ( IMPLIES )=> IMPLIES (y= logicalImpliesExpression |y= quantifiedExpression ) -> ^( OPERATOR IMPLIES ^( ARGUMENT_LIST $x $y) ) )?
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==IMPLIES) ) {
int LA36_1 = input.LA(2);
if ( (synpred21_CivlCParser()) ) {
alt36=1;
}
}
switch (alt36) {
case 1 :
// CivlCParser.g:568:11: ( IMPLIES )=> IMPLIES (y= logicalImpliesExpression |y= quantifiedExpression )
{
IMPLIES157=(Token)match(input,IMPLIES,FOLLOW_IMPLIES_in_logicalImpliesExpression4471); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IMPLIES.add(IMPLIES157);
// CivlCParser.g:568:31: (y= logicalImpliesExpression |y= quantifiedExpression )
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==AMPERSAND||LA35_0==CHARACTER_CONSTANT||LA35_0==ELLIPSIS||LA35_0==FLOATING_CONSTANT||LA35_0==IDENTIFIER||LA35_0==INTEGER_CONSTANT||LA35_0==LPAREN||LA35_0==MINUSMINUS||LA35_0==NOT||LA35_0==PLUS||LA35_0==PLUSPLUS||LA35_0==STAR||(LA35_0 >= STRING_LITERAL && LA35_0 <= SUB)||LA35_0==TILDE||LA35_0==ALIGNOF||LA35_0==BIG_O||LA35_0==CALLS||LA35_0==DERIV||LA35_0==GENERIC||LA35_0==HERE||LA35_0==PROCNULL||LA35_0==RESULT||(LA35_0 >= SCOPEOF && LA35_0 <= SELF)||(LA35_0 >= SIZEOF && LA35_0 <= SPAWN)||LA35_0==STATE_NULL||LA35_0==VALUE_AT) ) {
alt35=1;
}
else if ( (LA35_0==EXISTS||LA35_0==FORALL||LA35_0==UNIFORM) ) {
alt35=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 35, 0, input);
throw nvae;
}
switch (alt35) {
case 1 :
// CivlCParser.g:568:32: y= logicalImpliesExpression
{
pushFollow(FOLLOW_logicalImpliesExpression_in_logicalImpliesExpression4476);
y=logicalImpliesExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalImpliesExpression.add(y.getTree());
}
break;
case 2 :
// CivlCParser.g:568:61: y= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_logicalImpliesExpression4482);
y=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(y.getTree());
}
break;
}
// AST REWRITE
// elements: x, IMPLIES, y
// 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();
// 569:13: -> ^( OPERATOR IMPLIES ^( ARGUMENT_LIST $x $y) )
{
// CivlCParser.g:569: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:569: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:575: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 QMARK159=null;
Token COLON161=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope logicalImpliesExpression158 =null;
ParserRuleReturnScope expression160 =null;
Object QMARK159_tree=null;
Object COLON161_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:576:2: ( logicalImpliesExpression ( ( QMARK )=> QMARK expression COLON (y= conditionalExpression |y= quantifiedExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST logicalImpliesExpression expression $y) ) | -> logicalImpliesExpression ) )
// CivlCParser.g:576:4: logicalImpliesExpression ( ( QMARK )=> QMARK expression COLON (y= conditionalExpression |y= quantifiedExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST logicalImpliesExpression expression $y) ) | -> logicalImpliesExpression )
{
pushFollow(FOLLOW_logicalImpliesExpression_in_conditionalExpression4540);
logicalImpliesExpression158=logicalImpliesExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logicalImpliesExpression.add(logicalImpliesExpression158.getTree());
// CivlCParser.g:577:9: ( ( QMARK )=> QMARK expression COLON (y= conditionalExpression |y= quantifiedExpression ) -> ^( OPERATOR QMARK ^( ARGUMENT_LIST logicalImpliesExpression expression $y) ) | -> logicalImpliesExpression )
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==QMARK) ) {
int LA38_1 = input.LA(2);
if ( (synpred22_CivlCParser()) ) {
alt38=1;
}
else if ( (true) ) {
alt38=2;
}
}
else if ( (LA38_0==EOF||(LA38_0 >= AMPERSAND && LA38_0 <= AND)||(LA38_0 >= ASSIGN && LA38_0 <= BITXOREQ)||(LA38_0 >= COLON && LA38_0 <= COMMA)||(LA38_0 >= DIV && LA38_0 <= DIVEQ)||LA38_0==DOTDOT||LA38_0==EQUALS||(LA38_0 >= GT && LA38_0 <= HASH)||LA38_0==IMPLIES||(LA38_0 >= LT && LA38_0 <= LTE)||(LA38_0 >= MOD && LA38_0 <= NEQ)||LA38_0==OR||(LA38_0 >= PLUS && LA38_0 <= PLUSEQ)||(LA38_0 >= RCURLY && LA38_0 <= RPAREN)||LA38_0==RSQUARE||(LA38_0 >= SEMI && LA38_0 <= STAREQ)||(LA38_0 >= SUB && LA38_0 <= SUBEQ)||LA38_0==ASSIGNS||LA38_0==DEPENDS||LA38_0==ENSURES||LA38_0==GUARD||LA38_0==READS||LA38_0==REQUIRES) ) {
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:577:11: ( QMARK )=> QMARK expression COLON (y= conditionalExpression |y= quantifiedExpression )
{
QMARK159=(Token)match(input,QMARK,FOLLOW_QMARK_in_conditionalExpression4557); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_QMARK.add(QMARK159);
pushFollow(FOLLOW_expression_in_conditionalExpression4559);
expression160=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression160.getTree());
COLON161=(Token)match(input,COLON,FOLLOW_COLON_in_conditionalExpression4561); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON161);
// CivlCParser.g:578:13: (y= conditionalExpression |y= quantifiedExpression )
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==AMPERSAND||LA37_0==CHARACTER_CONSTANT||LA37_0==ELLIPSIS||LA37_0==FLOATING_CONSTANT||LA37_0==IDENTIFIER||LA37_0==INTEGER_CONSTANT||LA37_0==LPAREN||LA37_0==MINUSMINUS||LA37_0==NOT||LA37_0==PLUS||LA37_0==PLUSPLUS||LA37_0==STAR||(LA37_0 >= STRING_LITERAL && LA37_0 <= SUB)||LA37_0==TILDE||LA37_0==ALIGNOF||LA37_0==BIG_O||LA37_0==CALLS||LA37_0==DERIV||LA37_0==GENERIC||LA37_0==HERE||LA37_0==PROCNULL||LA37_0==RESULT||(LA37_0 >= SCOPEOF && LA37_0 <= SELF)||(LA37_0 >= SIZEOF && LA37_0 <= SPAWN)||LA37_0==STATE_NULL||LA37_0==VALUE_AT) ) {
alt37=1;
}
else if ( (LA37_0==EXISTS||LA37_0==FORALL||LA37_0==UNIFORM) ) {
alt37=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 37, 0, input);
throw nvae;
}
switch (alt37) {
case 1 :
// CivlCParser.g:578:14: y= conditionalExpression
{
pushFollow(FOLLOW_conditionalExpression_in_conditionalExpression4578);
y=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(y.getTree());
}
break;
case 2 :
// CivlCParser.g:578:40: y= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_conditionalExpression4584);
y=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(y.getTree());
}
break;
}
// AST REWRITE
// elements: logicalImpliesExpression, expression, QMARK, 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();
// 579:13: -> ^( OPERATOR QMARK ^( ARGUMENT_LIST logicalImpliesExpression expression $y) )
{
// CivlCParser.g:579: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:580: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:584: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();
// 584: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:589: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 LSQUARE162=null;
Token COMMA164=null;
Token RSQUARE166=null;
ParserRuleReturnScope conditionalExpression163 =null;
ParserRuleReturnScope conditionalExpression165 =null;
Object LSQUARE162_tree=null;
Object COMMA164_tree=null;
Object RSQUARE166_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:590:5: ( LSQUARE conditionalExpression COMMA conditionalExpression RSQUARE -> ^( INTERVAL conditionalExpression conditionalExpression ) )
// CivlCParser.g:590:7: LSQUARE conditionalExpression COMMA conditionalExpression RSQUARE
{
LSQUARE162=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_interval4729); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE162);
pushFollow(FOLLOW_conditionalExpression_in_interval4731);
conditionalExpression163=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(conditionalExpression163.getTree());
COMMA164=(Token)match(input,COMMA,FOLLOW_COMMA_in_interval4733); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA164);
pushFollow(FOLLOW_conditionalExpression_in_interval4735);
conditionalExpression165=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(conditionalExpression165.getTree());
RSQUARE166=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_interval4737); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE166);
// 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();
// 591:9: -> ^( INTERVAL conditionalExpression conditionalExpression )
{
// CivlCParser.g:591: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:595: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:596:5: (i+= interval (i+= interval )* -> ^( INTERVAL_SEQ ( $i)+ ) | -> ABSENT )
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==LSQUARE) ) {
alt40=1;
}
else if ( (LA40_0==LPAREN||LA40_0==RPAREN) ) {
alt40=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 40, 0, input);
throw nvae;
}
switch (alt40) {
case 1 :
// CivlCParser.g:596:7: i+= interval (i+= interval )*
{
pushFollow(FOLLOW_interval_in_intervalSeq4777);
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:596:21: (i+= interval )*
loop39:
while (true) {
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==LSQUARE) ) {
alt39=1;
}
switch (alt39) {
case 1 :
// CivlCParser.g:596:21: i+= interval
{
pushFollow(FOLLOW_interval_in_intervalSeq4782);
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 loop39;
}
}
// 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();
// 596:34: -> ^( INTERVAL_SEQ ( $i)+ )
{
// CivlCParser.g:596: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:597: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();
// 597: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:604: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 LPAREN167=null;
Token RPAREN169=null;
Token LAMBDA170=null;
Token LPAREN171=null;
Token BITOR173=null;
Token RPAREN174=null;
Token LPAREN175=null;
Token RPAREN177=null;
Token LAMBDA178=null;
Token LPAREN179=null;
Token RPAREN181=null;
ParserRuleReturnScope restrict =null;
ParserRuleReturnScope cond1 =null;
ParserRuleReturnScope cond2 =null;
ParserRuleReturnScope typeName168 =null;
ParserRuleReturnScope boundVariableDeclarationList172 =null;
ParserRuleReturnScope typeName176 =null;
ParserRuleReturnScope boundVariableDeclarationList180 =null;
Object LPAREN167_tree=null;
Object RPAREN169_tree=null;
Object LAMBDA170_tree=null;
Object LPAREN171_tree=null;
Object BITOR173_tree=null;
Object RPAREN174_tree=null;
Object LPAREN175_tree=null;
Object RPAREN177_tree=null;
Object LAMBDA178_tree=null;
Object LPAREN179_tree=null;
Object RPAREN181_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:605: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 alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==LPAREN) ) {
int LA44_1 = input.LA(2);
if ( (synpred23_CivlCParser()) ) {
alt44=1;
}
else if ( (true) ) {
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:605: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:605: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:605:5: ( LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR )=> LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR (restrict= conditionalExpression |restrict= quantifiedExpression ) RPAREN (cond1= assignmentExpression |cond1= quantifiedExpression )
{
LPAREN167=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_arrayLambdaExpression4866); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN167);
pushFollow(FOLLOW_typeName_in_arrayLambdaExpression4868);
typeName168=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName168.getTree());
RPAREN169=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_arrayLambdaExpression4870); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN169);
LAMBDA170=(Token)match(input,LAMBDA,FOLLOW_LAMBDA_in_arrayLambdaExpression4872); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LAMBDA.add(LAMBDA170);
LPAREN171=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_arrayLambdaExpression4874); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN171);
pushFollow(FOLLOW_boundVariableDeclarationList_in_arrayLambdaExpression4888);
boundVariableDeclarationList172=boundVariableDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_boundVariableDeclarationList.add(boundVariableDeclarationList172.getTree());
BITOR173=(Token)match(input,BITOR,FOLLOW_BITOR_in_arrayLambdaExpression4890); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BITOR.add(BITOR173);
// CivlCParser.g:609:13: (restrict= conditionalExpression |restrict= quantifiedExpression )
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==AMPERSAND||LA41_0==CHARACTER_CONSTANT||LA41_0==ELLIPSIS||LA41_0==FLOATING_CONSTANT||LA41_0==IDENTIFIER||LA41_0==INTEGER_CONSTANT||LA41_0==LPAREN||LA41_0==MINUSMINUS||LA41_0==NOT||LA41_0==PLUS||LA41_0==PLUSPLUS||LA41_0==STAR||(LA41_0 >= STRING_LITERAL && LA41_0 <= SUB)||LA41_0==TILDE||LA41_0==ALIGNOF||LA41_0==BIG_O||LA41_0==CALLS||LA41_0==DERIV||LA41_0==GENERIC||LA41_0==HERE||LA41_0==PROCNULL||LA41_0==RESULT||(LA41_0 >= SCOPEOF && LA41_0 <= SELF)||(LA41_0 >= SIZEOF && LA41_0 <= SPAWN)||LA41_0==STATE_NULL||LA41_0==VALUE_AT) ) {
alt41=1;
}
else if ( (LA41_0==EXISTS||LA41_0==FORALL||LA41_0==UNIFORM) ) {
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:609:14: restrict= conditionalExpression
{
pushFollow(FOLLOW_conditionalExpression_in_arrayLambdaExpression4907);
restrict=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_conditionalExpression.add(restrict.getTree());
}
break;
case 2 :
// CivlCParser.g:609:47: restrict= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_arrayLambdaExpression4913);
restrict=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(restrict.getTree());
}
break;
}
RPAREN174=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_arrayLambdaExpression4928); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN174);
// CivlCParser.g:611:13: (cond1= assignmentExpression |cond1= 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) ) {
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:611:14: cond1= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_arrayLambdaExpression4945);
cond1=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(cond1.getTree());
}
break;
case 2 :
// CivlCParser.g:611:43: cond1= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_arrayLambdaExpression4951);
cond1=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(cond1.getTree());
}
break;
}
}
// AST REWRITE
// elements: typeName, restrict, cond1, 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();
// 612:9: -> ^( LAMBDA typeName boundVariableDeclarationList $cond1 $restrict)
{
// CivlCParser.g:612: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:613:7: LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList RPAREN (cond2= assignmentExpression |cond2= quantifiedExpression )
{
LPAREN175=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_arrayLambdaExpression4985); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN175);
pushFollow(FOLLOW_typeName_in_arrayLambdaExpression4987);
typeName176=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName176.getTree());
RPAREN177=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_arrayLambdaExpression4989); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN177);
LAMBDA178=(Token)match(input,LAMBDA,FOLLOW_LAMBDA_in_arrayLambdaExpression4991); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LAMBDA.add(LAMBDA178);
LPAREN179=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_arrayLambdaExpression4993); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN179);
pushFollow(FOLLOW_boundVariableDeclarationList_in_arrayLambdaExpression5003);
boundVariableDeclarationList180=boundVariableDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_boundVariableDeclarationList.add(boundVariableDeclarationList180.getTree());
RPAREN181=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_arrayLambdaExpression5005); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN181);
// CivlCParser.g:615:9: (cond2= assignmentExpression |cond2= 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) ) {
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:615:10: cond2= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_arrayLambdaExpression5018);
cond2=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(cond2.getTree());
}
break;
case 2 :
// CivlCParser.g:615:39: cond2= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_arrayLambdaExpression5024);
cond2=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(cond2.getTree());
}
break;
}
// AST REWRITE
// elements: typeName, cond2, LAMBDA, boundVariableDeclarationList
// 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();
// 616:9: -> ^( LAMBDA typeName boundVariableDeclarationList $cond2)
{
// CivlCParser.g:616: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:619: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 IDENTIFIER183=null;
Token COMMA184=null;
Token IDENTIFIER185=null;
Token COLON186=null;
ParserRuleReturnScope typeName182 =null;
ParserRuleReturnScope rangeExpression187 =null;
Object IDENTIFIER183_tree=null;
Object COMMA184_tree=null;
Object IDENTIFIER185_tree=null;
Object COLON186_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:620:2: ( typeName IDENTIFIER ( COMMA IDENTIFIER )* ( COLON rangeExpression )? -> ^( BOUND_VARIABLE_DECLARATION typeName ^( BOUND_VARIABLE_NAME_LIST ( IDENTIFIER )+ ) ( rangeExpression )? ) )
// CivlCParser.g:620:4: typeName IDENTIFIER ( COMMA IDENTIFIER )* ( COLON rangeExpression )?
{
pushFollow(FOLLOW_typeName_in_boundVariableDeclarationSubList5057);
typeName182=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName182.getTree());
IDENTIFIER183=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_boundVariableDeclarationSubList5059); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER183);
// CivlCParser.g:620:24: ( COMMA IDENTIFIER )*
loop45:
while (true) {
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==COMMA) ) {
alt45=1;
}
switch (alt45) {
case 1 :
// CivlCParser.g:620:25: COMMA IDENTIFIER
{
COMMA184=(Token)match(input,COMMA,FOLLOW_COMMA_in_boundVariableDeclarationSubList5062); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA184);
IDENTIFIER185=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_boundVariableDeclarationSubList5064); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER185);
}
break;
default :
break loop45;
}
}
// CivlCParser.g:620:44: ( COLON rangeExpression )?
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==COLON) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// CivlCParser.g:620:45: COLON rangeExpression
{
COLON186=(Token)match(input,COLON,FOLLOW_COLON_in_boundVariableDeclarationSubList5069); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON186);
pushFollow(FOLLOW_rangeExpression_in_boundVariableDeclarationSubList5071);
rangeExpression187=rangeExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_rangeExpression.add(rangeExpression187.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();
// 621:9: -> ^( BOUND_VARIABLE_DECLARATION typeName ^( BOUND_VARIABLE_NAME_LIST ( IDENTIFIER )+ ) ( rangeExpression )? )
{
// CivlCParser.g:621: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:622: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:622: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:625: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 SEMI189=null;
ParserRuleReturnScope boundVariableDeclarationSubList188 =null;
ParserRuleReturnScope boundVariableDeclarationSubList190 =null;
Object SEMI189_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_boundVariableDeclarationSubList=new RewriteRuleSubtreeStream(adaptor,"rule boundVariableDeclarationSubList");
try {
// CivlCParser.g:626:2: ( boundVariableDeclarationSubList ( SEMI boundVariableDeclarationSubList )* -> ^( BOUND_VARIABLE_DECLARATION_LIST ( boundVariableDeclarationSubList )+ ) )
// CivlCParser.g:626:4: boundVariableDeclarationSubList ( SEMI boundVariableDeclarationSubList )*
{
pushFollow(FOLLOW_boundVariableDeclarationSubList_in_boundVariableDeclarationList5122);
boundVariableDeclarationSubList188=boundVariableDeclarationSubList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_boundVariableDeclarationSubList.add(boundVariableDeclarationSubList188.getTree());
// CivlCParser.g:626:36: ( SEMI boundVariableDeclarationSubList )*
loop47:
while (true) {
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==SEMI) ) {
alt47=1;
}
switch (alt47) {
case 1 :
// CivlCParser.g:626:37: SEMI boundVariableDeclarationSubList
{
SEMI189=(Token)match(input,SEMI,FOLLOW_SEMI_in_boundVariableDeclarationList5125); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI189);
pushFollow(FOLLOW_boundVariableDeclarationSubList_in_boundVariableDeclarationList5127);
boundVariableDeclarationSubList190=boundVariableDeclarationSubList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_boundVariableDeclarationSubList.add(boundVariableDeclarationSubList190.getTree());
}
break;
default :
break loop47;
}
}
// 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();
// 627:9: -> ^( BOUND_VARIABLE_DECLARATION_LIST ( boundVariableDeclarationSubList )+ )
{
// CivlCParser.g:627: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:640: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 arrayLambdaExpression191 =null;
ParserRuleReturnScope conditionalExpression192 =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:641:2: ( ( arrayLambdaExpression )=> arrayLambdaExpression | ( unaryExpression assignmentOperator )=>lhs= unaryExpression op= assignmentOperator (rhs= assignmentExpression |rhs= quantifiedExpression ) -> ^( OPERATOR $op ^( ARGUMENT_LIST $lhs $rhs) ) | conditionalExpression )
int alt49=3;
switch ( input.LA(1) ) {
case LPAREN:
{
int LA49_1 = input.LA(2);
if ( (synpred24_CivlCParser()) ) {
alt49=1;
}
else if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case IDENTIFIER:
{
int LA49_2 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case INTEGER_CONSTANT:
{
int LA49_3 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case FLOATING_CONSTANT:
{
int LA49_4 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case CHARACTER_CONSTANT:
{
int LA49_5 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case SELF:
{
int LA49_6 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case PROCNULL:
{
int LA49_7 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case STATE_NULL:
{
int LA49_8 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case RESULT:
{
int LA49_9 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case HERE:
{
int LA49_10 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case ELLIPSIS:
{
int LA49_11 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case STRING_LITERAL:
{
int LA49_12 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case GENERIC:
{
int LA49_13 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case DERIV:
{
int LA49_14 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case PLUSPLUS:
{
int LA49_15 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case MINUSMINUS:
{
int LA49_16 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case AMPERSAND:
case NOT:
case PLUS:
case STAR:
case SUB:
case TILDE:
case BIG_O:
{
int LA49_17 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case SIZEOF:
{
int LA49_18 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case SCOPEOF:
{
int LA49_19 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case ALIGNOF:
{
int LA49_20 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case VALUE_AT:
{
int LA49_21 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case SPAWN:
{
int LA49_22 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
case CALLS:
{
int LA49_23 = input.LA(2);
if ( (synpred25_CivlCParser()) ) {
alt49=2;
}
else if ( (true) ) {
alt49=3;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 49, 0, input);
throw nvae;
}
switch (alt49) {
case 1 :
// CivlCParser.g:641:4: ( arrayLambdaExpression )=> arrayLambdaExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_arrayLambdaExpression_in_assignmentExpression5166);
arrayLambdaExpression191=arrayLambdaExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arrayLambdaExpression191.getTree());
}
break;
case 2 :
// CivlCParser.g:642:4: ( unaryExpression assignmentOperator )=>lhs= unaryExpression op= assignmentOperator (rhs= assignmentExpression |rhs= quantifiedExpression )
{
pushFollow(FOLLOW_unaryExpression_in_assignmentExpression5188);
lhs=unaryExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unaryExpression.add(lhs.getTree());
pushFollow(FOLLOW_assignmentOperator_in_assignmentExpression5200);
op=assignmentOperator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentOperator.add(op.getTree());
// CivlCParser.g:645:9: (rhs= assignmentExpression |rhs= quantifiedExpression )
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==AMPERSAND||LA48_0==CHARACTER_CONSTANT||LA48_0==ELLIPSIS||LA48_0==FLOATING_CONSTANT||LA48_0==IDENTIFIER||LA48_0==INTEGER_CONSTANT||LA48_0==LPAREN||LA48_0==MINUSMINUS||LA48_0==NOT||LA48_0==PLUS||LA48_0==PLUSPLUS||LA48_0==STAR||(LA48_0 >= STRING_LITERAL && LA48_0 <= SUB)||LA48_0==TILDE||LA48_0==ALIGNOF||LA48_0==BIG_O||LA48_0==CALLS||LA48_0==DERIV||LA48_0==GENERIC||LA48_0==HERE||LA48_0==PROCNULL||LA48_0==RESULT||(LA48_0 >= SCOPEOF && LA48_0 <= SELF)||(LA48_0 >= SIZEOF && LA48_0 <= SPAWN)||LA48_0==STATE_NULL||LA48_0==VALUE_AT) ) {
alt48=1;
}
else if ( (LA48_0==EXISTS||LA48_0==FORALL||LA48_0==UNIFORM) ) {
alt48=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 48, 0, input);
throw nvae;
}
switch (alt48) {
case 1 :
// CivlCParser.g:645:10: rhs= assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression5213);
rhs=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(rhs.getTree());
}
break;
case 2 :
// CivlCParser.g:645:37: rhs= quantifiedExpression
{
pushFollow(FOLLOW_quantifiedExpression_in_assignmentExpression5219);
rhs=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifiedExpression.add(rhs.getTree());
}
break;
}
// AST REWRITE
// elements: rhs, lhs, op
// 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();
// 646:9: -> ^( OPERATOR $op ^( ARGUMENT_LIST $lhs $rhs) )
{
// CivlCParser.g:646: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:646: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:647:4: conditionalExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpression_in_assignmentExpression5252);
conditionalExpression192=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, conditionalExpression192.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:651: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 set193=null;
Object set193_tree=null;
try {
// CivlCParser.g:652:2: ( ASSIGN | STAREQ | DIVEQ | MODEQ | PLUSEQ | SUBEQ | SHIFTLEFTEQ | SHIFTRIGHTEQ | BITANDEQ | BITXOREQ | BITOREQ )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set193=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(set193));
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:664: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 COMMA195=null;
ParserRuleReturnScope y =null;
ParserRuleReturnScope assignmentExpression194 =null;
Object COMMA195_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_assignmentExpression=new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression");
try {
// CivlCParser.g:665:2: ( ( assignmentExpression -> assignmentExpression ) ( ( COMMA )=> COMMA y= assignmentExpression -> ^( OPERATOR COMMA ^( ARGUMENT_LIST $commaExpression $y) ) )* )
// CivlCParser.g:665:4: ( assignmentExpression -> assignmentExpression ) ( ( COMMA )=> COMMA y= assignmentExpression -> ^( OPERATOR COMMA ^( ARGUMENT_LIST $commaExpression $y) ) )*
{
// CivlCParser.g:665:4: ( assignmentExpression -> assignmentExpression )
// CivlCParser.g:665:6: assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_commaExpression5321);
assignmentExpression194=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression194.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();
// 665:27: -> assignmentExpression
{
adaptor.addChild(root_0, stream_assignmentExpression.nextTree());
}
retval.tree = root_0;
}
}
// CivlCParser.g:666:4: ( ( COMMA )=> COMMA y= assignmentExpression -> ^( OPERATOR COMMA ^( ARGUMENT_LIST $commaExpression $y) ) )*
loop50:
while (true) {
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==COMMA) ) {
int LA50_2 = input.LA(2);
if ( (synpred26_CivlCParser()) ) {
alt50=1;
}
}
switch (alt50) {
case 1 :
// CivlCParser.g:666:6: ( COMMA )=> COMMA y= assignmentExpression
{
COMMA195=(Token)match(input,COMMA,FOLLOW_COMMA_in_commaExpression5339); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA195);
pushFollow(FOLLOW_assignmentExpression_in_commaExpression5343);
y=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(y.getTree());
// AST REWRITE
// elements: commaExpression, y, COMMA
// 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();
// 667:6: -> ^( OPERATOR COMMA ^( ARGUMENT_LIST $commaExpression $y) )
{
// CivlCParser.g:667: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:667: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 loop50;
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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:672: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 quantifiedExpression196 =null;
ParserRuleReturnScope commaExpression197 =null;
try {
// CivlCParser.g:673:5: ( quantifiedExpression | commaExpression )
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==EXISTS||LA51_0==FORALL||LA51_0==UNIFORM) ) {
alt51=1;
}
else if ( (LA51_0==AMPERSAND||LA51_0==CHARACTER_CONSTANT||LA51_0==ELLIPSIS||LA51_0==FLOATING_CONSTANT||LA51_0==IDENTIFIER||LA51_0==INTEGER_CONSTANT||LA51_0==LPAREN||LA51_0==MINUSMINUS||LA51_0==NOT||LA51_0==PLUS||LA51_0==PLUSPLUS||LA51_0==STAR||(LA51_0 >= STRING_LITERAL && LA51_0 <= SUB)||LA51_0==TILDE||LA51_0==ALIGNOF||LA51_0==BIG_O||LA51_0==CALLS||LA51_0==DERIV||LA51_0==GENERIC||LA51_0==HERE||LA51_0==PROCNULL||LA51_0==RESULT||(LA51_0 >= SCOPEOF && LA51_0 <= SELF)||(LA51_0 >= SIZEOF && LA51_0 <= SPAWN)||LA51_0==STATE_NULL||LA51_0==VALUE_AT) ) {
alt51=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 51, 0, input);
throw nvae;
}
switch (alt51) {
case 1 :
// CivlCParser.g:673:7: quantifiedExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_quantifiedExpression_in_expression5388);
quantifiedExpression196=quantifiedExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, quantifiedExpression196.getTree());
}
break;
case 2 :
// CivlCParser.g:673:30: commaExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_commaExpression_in_expression5392);
commaExpression197=commaExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, commaExpression197.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:681: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 conditionalExpression198 =null;
try {
// CivlCParser.g:682:2: ( conditionalExpression )
// CivlCParser.g:682:4: conditionalExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_conditionalExpression_in_constantExpression5405);
conditionalExpression198=conditionalExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, conditionalExpression198.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:709: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 SEMI200=null;
Token SEMI201=null;
ParserRuleReturnScope d =null;
ParserRuleReturnScope i =null;
ParserRuleReturnScope contract199 =null;
ParserRuleReturnScope staticAssertDeclaration202 =null;
Object SEMI200_tree=null;
Object SEMI201_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().typedefNameUsed =false;
try {
// CivlCParser.g:715:2: (d= declarationSpecifiers (i= initDeclaratorList contract SEMI -> ^( DECLARATION $d $i contract ) | SEMI -> ^( DECLARATION $d ABSENT ABSENT ) ) | staticAssertDeclaration )
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==IDENTIFIER||(LA53_0 >= ABSTRACT && LA53_0 <= ALIGNAS)||(LA53_0 >= ATOMIC && LA53_0 <= AUTO)||LA53_0==BOOL||LA53_0==CHAR||(LA53_0 >= COMPLEX && LA53_0 <= CONST)||(LA53_0 >= DEVICE && LA53_0 <= DIFFERENTIABLE)||(LA53_0 >= DOMAIN && LA53_0 <= DOUBLE)||LA53_0==ENUM||(LA53_0 >= EXTERN && LA53_0 <= FATOMIC)||LA53_0==FLOAT||LA53_0==GLOBAL||(LA53_0 >= INLINE && LA53_0 <= INT)||(LA53_0 >= LONG && LA53_0 <= NORETURN)||LA53_0==OUTPUT||(LA53_0 >= PURE && LA53_0 <= RANGE)||(LA53_0 >= REAL && LA53_0 <= REGISTER)||LA53_0==RESTRICT||(LA53_0 >= SHARED && LA53_0 <= SIGNED)||LA53_0==STATE_F||LA53_0==STATIC||LA53_0==STRUCT||LA53_0==SYSTEM||(LA53_0 >= THREADLOCAL && LA53_0 <= TYPEOF)||(LA53_0 >= UNION && LA53_0 <= UNSIGNED)||(LA53_0 >= VOID && LA53_0 <= VOLATILE)) ) {
alt53=1;
}
else if ( (LA53_0==STATICASSERT) ) {
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:715:4: d= declarationSpecifiers (i= initDeclaratorList contract SEMI -> ^( DECLARATION $d $i contract ) | SEMI -> ^( DECLARATION $d ABSENT ABSENT ) )
{
pushFollow(FOLLOW_declarationSpecifiers_in_declaration5434);
d=declarationSpecifiers();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationSpecifiers.add(d.getTree());
// CivlCParser.g:716:4: (i= initDeclaratorList contract SEMI -> ^( DECLARATION $d $i contract ) | SEMI -> ^( DECLARATION $d ABSENT ABSENT ) )
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==IDENTIFIER||LA52_0==LPAREN||LA52_0==STAR) ) {
alt52=1;
}
else if ( (LA52_0==SEMI) ) {
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:717:6: i= initDeclaratorList contract SEMI
{
pushFollow(FOLLOW_initDeclaratorList_in_declaration5448);
i=initDeclaratorList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initDeclaratorList.add(i.getTree());
pushFollow(FOLLOW_contract_in_declaration5450);
contract199=contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_contract.add(contract199.getTree());
SEMI200=(Token)match(input,SEMI,FOLLOW_SEMI_in_declaration5452); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI200);
// AST REWRITE
// elements: i, contract, d
// 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();
// 718:6: -> ^( DECLARATION $d $i contract )
{
// CivlCParser.g:718: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:719:6: SEMI
{
SEMI201=(Token)match(input,SEMI,FOLLOW_SEMI_in_declaration5478); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI201);
// 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();
// 720:6: -> ^( DECLARATION $d ABSENT ABSENT )
{
// CivlCParser.g:720: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:722:4: staticAssertDeclaration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_staticAssertDeclaration_in_declaration5506);
staticAssertDeclaration202=staticAssertDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, staticAssertDeclaration202.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:730:1: declarationSpecifiers : l= 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 l =null;
RewriteRuleSubtreeStream stream_declarationSpecifierList=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifierList");
try {
// CivlCParser.g:731:2: (l= declarationSpecifierList -> ^( DECLARATION_SPECIFIERS declarationSpecifierList ) )
// CivlCParser.g:731:4: l= declarationSpecifierList
{
pushFollow(FOLLOW_declarationSpecifierList_in_declarationSpecifiers5522);
l=declarationSpecifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationSpecifierList.add(l.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();
// 732:4: -> ^( DECLARATION_SPECIFIERS declarationSpecifierList )
{
// CivlCParser.g:732: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:737:1: declarationSpecifierList : ({...}?s= 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 s =null;
try {
// CivlCParser.g:738:2: ( ({...}?s= declarationSpecifier )+ )
// CivlCParser.g:738:4: ({...}?s= declarationSpecifier )+
{
root_0 = (Object)adaptor.nil();
// CivlCParser.g:738:4: ({...}?s= declarationSpecifier )+
int cnt54=0;
loop54:
while (true) {
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==IDENTIFIER) ) {
int LA54_1 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText())))) ) {
alt54=1;
}
}
else if ( ((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;
}
switch (alt54) {
case 1 :
// CivlCParser.g:739:6: {...}?s= declarationSpecifier
{
if ( !((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "declarationSpecifierList", "!$DeclarationScope::isTypedef || input.LT(2).getType() != SEMI ");
}
pushFollow(FOLLOW_declarationSpecifier_in_declarationSpecifierList5562);
s=declarationSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, s.getTree());
}
break;
default :
if ( cnt54 >= 1 ) break loop54;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(54, input);
throw eee;
}
cnt54++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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:744:1: declarationSpecifier : (s= 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 s =null;
ParserRuleReturnScope typeSpecifierOrQualifier203 =null;
ParserRuleReturnScope functionSpecifier204 =null;
ParserRuleReturnScope alignmentSpecifier205 =null;
try {
// CivlCParser.g:745:2: (s= storageClassSpecifier | typeSpecifierOrQualifier | functionSpecifier | alignmentSpecifier )
int alt55=4;
switch ( input.LA(1) ) {
case AUTO:
case EXTERN:
case REGISTER:
case SHARED:
case STATIC:
case THREADLOCAL:
case TYPEDEF:
{
alt55=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:
{
alt55=2;
}
break;
case ABSTRACT:
case DEVICE:
case DIFFERENTIABLE:
case FATOMIC:
case GLOBAL:
case INLINE:
case NORETURN:
case PURE:
case STATE_F:
case SYSTEM:
{
alt55=3;
}
break;
case ALIGNAS:
{
alt55=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 55, 0, input);
throw nvae;
}
switch (alt55) {
case 1 :
// CivlCParser.g:745:4: s= storageClassSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_storageClassSpecifier_in_declarationSpecifier5581);
s=storageClassSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, s.getTree());
}
break;
case 2 :
// CivlCParser.g:746:4: typeSpecifierOrQualifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeSpecifierOrQualifier_in_declarationSpecifier5586);
typeSpecifierOrQualifier203=typeSpecifierOrQualifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeSpecifierOrQualifier203.getTree());
}
break;
case 3 :
// CivlCParser.g:747:4: functionSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_functionSpecifier_in_declarationSpecifier5591);
functionSpecifier204=functionSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, functionSpecifier204.getTree());
}
break;
case 4 :
// CivlCParser.g:748:4: alignmentSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_alignmentSpecifier_in_declarationSpecifier5596);
alignmentSpecifier205=alignmentSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, alignmentSpecifier205.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:759: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 typeSpecifier206 =null;
ParserRuleReturnScope typeQualifier207 =null;
try {
// CivlCParser.g:760:2: ( ( typeSpecifier )=> typeSpecifier | typeQualifier )
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==VOID) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==CHAR) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==SHORT) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==INT) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==LONG) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==FLOAT) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==DOUBLE) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==SIGNED) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==UNSIGNED) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==BOOL) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==COMPLEX) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==REAL) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==RANGE) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==ATOMIC) ) {
int LA56_14 = input.LA(2);
if ( (synpred27_CivlCParser()) ) {
alt56=1;
}
else if ( (true) ) {
alt56=2;
}
}
else if ( (LA56_0==STRUCT||LA56_0==UNION) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==ENUM) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==IDENTIFIER) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==DOMAIN) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==TYPEOF) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==MEM_TYPE) && (synpred27_CivlCParser())) {
alt56=1;
}
else if ( (LA56_0==CONST||LA56_0==INPUT||LA56_0==OUTPUT||LA56_0==RESTRICT||LA56_0==VOLATILE) ) {
alt56=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 56, 0, input);
throw nvae;
}
switch (alt56) {
case 1 :
// CivlCParser.g:760:4: ( typeSpecifier )=> typeSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeSpecifier_in_typeSpecifierOrQualifier5614);
typeSpecifier206=typeSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeSpecifier206.getTree());
}
break;
case 2 :
// CivlCParser.g:761:11: typeQualifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeQualifier_in_typeSpecifierOrQualifier5626);
typeQualifier207=typeQualifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeQualifier207.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:768: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 COMMA208=null;
List<Object> list_i=null;
RuleReturnScope i = null;
Object COMMA208_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_initDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule initDeclarator");
try {
// CivlCParser.g:769:2: (i+= initDeclarator ( COMMA i+= initDeclarator )* -> ^( INIT_DECLARATOR_LIST ( $i)+ ) )
// CivlCParser.g:769:4: i+= initDeclarator ( COMMA i+= initDeclarator )*
{
pushFollow(FOLLOW_initDeclarator_in_initDeclaratorList5641);
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:769:22: ( COMMA i+= initDeclarator )*
loop57:
while (true) {
int alt57=2;
int LA57_0 = input.LA(1);
if ( (LA57_0==COMMA) ) {
alt57=1;
}
switch (alt57) {
case 1 :
// CivlCParser.g:769:23: COMMA i+= initDeclarator
{
COMMA208=(Token)match(input,COMMA,FOLLOW_COMMA_in_initDeclaratorList5644); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA208);
pushFollow(FOLLOW_initDeclarator_in_initDeclaratorList5648);
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 loop57;
}
}
// 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();
// 770:4: -> ^( INIT_DECLARATOR_LIST ( $i)+ )
{
// CivlCParser.g:770: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:778: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 ASSIGN209=null;
ParserRuleReturnScope d =null;
ParserRuleReturnScope i =null;
Object ASSIGN209_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:779:2: (d= declarator ( -> ^( INIT_DECLARATOR $d ABSENT ) | ( ASSIGN i= initializer ) -> ^( INIT_DECLARATOR $d $i) ) )
// CivlCParser.g:779:4: d= declarator ( -> ^( INIT_DECLARATOR $d ABSENT ) | ( ASSIGN i= initializer ) -> ^( INIT_DECLARATOR $d $i) )
{
pushFollow(FOLLOW_declarator_in_initDeclarator5678);
d=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(d.getTree());
// CivlCParser.g:780:4: ( -> ^( INIT_DECLARATOR $d ABSENT ) | ( ASSIGN i= initializer ) -> ^( INIT_DECLARATOR $d $i) )
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==COMMA||LA58_0==IDENTIFIER||LA58_0==LCURLY||LA58_0==SEMI||(LA58_0 >= ABSTRACT && LA58_0 <= ALIGNAS)||(LA58_0 >= ASSIGNS && LA58_0 <= AUTO)||LA58_0==BOOL||LA58_0==CHAR||(LA58_0 >= COMPLEX && LA58_0 <= CONST)||LA58_0==DEPENDS||(LA58_0 >= DEVICE && LA58_0 <= DIFFERENTIABLE)||(LA58_0 >= DOMAIN && LA58_0 <= ENUM)||(LA58_0 >= EXTERN && LA58_0 <= FATOMIC)||LA58_0==FLOAT||LA58_0==GLOBAL||LA58_0==GUARD||(LA58_0 >= INLINE && LA58_0 <= INT)||(LA58_0 >= LONG && LA58_0 <= NORETURN)||LA58_0==OUTPUT||(LA58_0 >= PURE && LA58_0 <= RESTRICT)||(LA58_0 >= SHARED && LA58_0 <= SIGNED)||LA58_0==STATE_F||(LA58_0 >= STATIC && LA58_0 <= STRUCT)||LA58_0==SYSTEM||(LA58_0 >= THREADLOCAL && LA58_0 <= TYPEOF)||(LA58_0 >= UNION && LA58_0 <= UNSIGNED)||(LA58_0 >= VOID && LA58_0 <= VOLATILE)) ) {
alt58=1;
}
else if ( (LA58_0==ASSIGN) ) {
alt58=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 58, 0, input);
throw nvae;
}
switch (alt58) {
case 1 :
// CivlCParser.g:780: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();
// 780:7: -> ^( INIT_DECLARATOR $d ABSENT )
{
// CivlCParser.g:780: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:781:6: ( ASSIGN i= initializer )
{
// CivlCParser.g:781:6: ( ASSIGN i= initializer )
// CivlCParser.g:781:7: ASSIGN i= initializer
{
ASSIGN209=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_initDeclarator5703); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN209);
pushFollow(FOLLOW_initializer_in_initDeclarator5707);
i=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(i.getTree());
}
// AST REWRITE
// elements: i, d
// 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();
// 781:29: -> ^( INIT_DECLARATOR $d $i)
{
// CivlCParser.g:781: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:786: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 TYPEDEF210=null;
Token set211=null;
Object TYPEDEF210_tree=null;
Object set211_tree=null;
try {
// CivlCParser.g:787:2: ( TYPEDEF | ( EXTERN | STATIC | THREADLOCAL | AUTO | REGISTER | SHARED ) )
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==TYPEDEF) ) {
alt59=1;
}
else if ( (LA59_0==AUTO||LA59_0==EXTERN||LA59_0==REGISTER||LA59_0==SHARED||LA59_0==STATIC||LA59_0==THREADLOCAL) ) {
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:787:4: TYPEDEF
{
root_0 = (Object)adaptor.nil();
TYPEDEF210=(Token)match(input,TYPEDEF,FOLLOW_TYPEDEF_in_storageClassSpecifier5738); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TYPEDEF210_tree = (Object)adaptor.create(TYPEDEF210);
adaptor.addChild(root_0, TYPEDEF210_tree);
}
if ( state.backtracking==0 ) {DeclarationScope_stack.peek().isTypedef = true;}
}
break;
case 2 :
// CivlCParser.g:788:4: ( EXTERN | STATIC | THREADLOCAL | AUTO | REGISTER | SHARED )
{
root_0 = (Object)adaptor.nil();
set211=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(set211));
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:792: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 VOID212=null;
Token CHAR213=null;
Token SHORT214=null;
Token INT215=null;
Token LONG216=null;
Token FLOAT217=null;
Token DOUBLE218=null;
Token SIGNED219=null;
Token UNSIGNED220=null;
Token BOOL221=null;
Token COMPLEX222=null;
Token REAL223=null;
Token RANGE224=null;
ParserRuleReturnScope atomicTypeSpecifier225 =null;
ParserRuleReturnScope structOrUnionSpecifier226 =null;
ParserRuleReturnScope enumSpecifier227 =null;
ParserRuleReturnScope typedefName228 =null;
ParserRuleReturnScope domainSpecifier229 =null;
ParserRuleReturnScope typeofSpecifier230 =null;
ParserRuleReturnScope memSpecifier231 =null;
Object VOID212_tree=null;
Object CHAR213_tree=null;
Object SHORT214_tree=null;
Object INT215_tree=null;
Object LONG216_tree=null;
Object FLOAT217_tree=null;
Object DOUBLE218_tree=null;
Object SIGNED219_tree=null;
Object UNSIGNED220_tree=null;
Object BOOL221_tree=null;
Object COMPLEX222_tree=null;
Object REAL223_tree=null;
Object RANGE224_tree=null;
try {
// CivlCParser.g:793:2: ( VOID | CHAR | SHORT | INT | LONG | FLOAT | DOUBLE | SIGNED | UNSIGNED | BOOL | COMPLEX | REAL | RANGE | atomicTypeSpecifier | structOrUnionSpecifier | enumSpecifier | typedefName | domainSpecifier | typeofSpecifier | memSpecifier )
int alt60=20;
switch ( input.LA(1) ) {
case VOID:
{
alt60=1;
}
break;
case CHAR:
{
alt60=2;
}
break;
case SHORT:
{
alt60=3;
}
break;
case INT:
{
alt60=4;
}
break;
case LONG:
{
alt60=5;
}
break;
case FLOAT:
{
alt60=6;
}
break;
case DOUBLE:
{
alt60=7;
}
break;
case SIGNED:
{
alt60=8;
}
break;
case UNSIGNED:
{
alt60=9;
}
break;
case BOOL:
{
alt60=10;
}
break;
case COMPLEX:
{
alt60=11;
}
break;
case REAL:
{
alt60=12;
}
break;
case RANGE:
{
alt60=13;
}
break;
case ATOMIC:
{
alt60=14;
}
break;
case STRUCT:
case UNION:
{
alt60=15;
}
break;
case ENUM:
{
alt60=16;
}
break;
case IDENTIFIER:
{
alt60=17;
}
break;
case DOMAIN:
{
alt60=18;
}
break;
case TYPEOF:
{
alt60=19;
}
break;
case MEM_TYPE:
{
alt60=20;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 60, 0, input);
throw nvae;
}
switch (alt60) {
case 1 :
// CivlCParser.g:793:4: VOID
{
root_0 = (Object)adaptor.nil();
VOID212=(Token)match(input,VOID,FOLLOW_VOID_in_typeSpecifier5780); if (state.failed) return retval;
if ( state.backtracking==0 ) {
VOID212_tree = (Object)adaptor.create(VOID212);
adaptor.addChild(root_0, VOID212_tree);
}
}
break;
case 2 :
// CivlCParser.g:793:11: CHAR
{
root_0 = (Object)adaptor.nil();
CHAR213=(Token)match(input,CHAR,FOLLOW_CHAR_in_typeSpecifier5784); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CHAR213_tree = (Object)adaptor.create(CHAR213);
adaptor.addChild(root_0, CHAR213_tree);
}
}
break;
case 3 :
// CivlCParser.g:793:18: SHORT
{
root_0 = (Object)adaptor.nil();
SHORT214=(Token)match(input,SHORT,FOLLOW_SHORT_in_typeSpecifier5788); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SHORT214_tree = (Object)adaptor.create(SHORT214);
adaptor.addChild(root_0, SHORT214_tree);
}
}
break;
case 4 :
// CivlCParser.g:793:26: INT
{
root_0 = (Object)adaptor.nil();
INT215=(Token)match(input,INT,FOLLOW_INT_in_typeSpecifier5792); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INT215_tree = (Object)adaptor.create(INT215);
adaptor.addChild(root_0, INT215_tree);
}
}
break;
case 5 :
// CivlCParser.g:793:32: LONG
{
root_0 = (Object)adaptor.nil();
LONG216=(Token)match(input,LONG,FOLLOW_LONG_in_typeSpecifier5796); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LONG216_tree = (Object)adaptor.create(LONG216);
adaptor.addChild(root_0, LONG216_tree);
}
}
break;
case 6 :
// CivlCParser.g:793:39: FLOAT
{
root_0 = (Object)adaptor.nil();
FLOAT217=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_typeSpecifier5800); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FLOAT217_tree = (Object)adaptor.create(FLOAT217);
adaptor.addChild(root_0, FLOAT217_tree);
}
}
break;
case 7 :
// CivlCParser.g:793:47: DOUBLE
{
root_0 = (Object)adaptor.nil();
DOUBLE218=(Token)match(input,DOUBLE,FOLLOW_DOUBLE_in_typeSpecifier5804); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLE218_tree = (Object)adaptor.create(DOUBLE218);
adaptor.addChild(root_0, DOUBLE218_tree);
}
}
break;
case 8 :
// CivlCParser.g:794:4: SIGNED
{
root_0 = (Object)adaptor.nil();
SIGNED219=(Token)match(input,SIGNED,FOLLOW_SIGNED_in_typeSpecifier5809); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SIGNED219_tree = (Object)adaptor.create(SIGNED219);
adaptor.addChild(root_0, SIGNED219_tree);
}
}
break;
case 9 :
// CivlCParser.g:794:13: UNSIGNED
{
root_0 = (Object)adaptor.nil();
UNSIGNED220=(Token)match(input,UNSIGNED,FOLLOW_UNSIGNED_in_typeSpecifier5813); if (state.failed) return retval;
if ( state.backtracking==0 ) {
UNSIGNED220_tree = (Object)adaptor.create(UNSIGNED220);
adaptor.addChild(root_0, UNSIGNED220_tree);
}
}
break;
case 10 :
// CivlCParser.g:794:24: BOOL
{
root_0 = (Object)adaptor.nil();
BOOL221=(Token)match(input,BOOL,FOLLOW_BOOL_in_typeSpecifier5817); if (state.failed) return retval;
if ( state.backtracking==0 ) {
BOOL221_tree = (Object)adaptor.create(BOOL221);
adaptor.addChild(root_0, BOOL221_tree);
}
}
break;
case 11 :
// CivlCParser.g:794:31: COMPLEX
{
root_0 = (Object)adaptor.nil();
COMPLEX222=(Token)match(input,COMPLEX,FOLLOW_COMPLEX_in_typeSpecifier5821); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMPLEX222_tree = (Object)adaptor.create(COMPLEX222);
adaptor.addChild(root_0, COMPLEX222_tree);
}
}
break;
case 12 :
// CivlCParser.g:794:41: REAL
{
root_0 = (Object)adaptor.nil();
REAL223=(Token)match(input,REAL,FOLLOW_REAL_in_typeSpecifier5825); if (state.failed) return retval;
if ( state.backtracking==0 ) {
REAL223_tree = (Object)adaptor.create(REAL223);
adaptor.addChild(root_0, REAL223_tree);
}
}
break;
case 13 :
// CivlCParser.g:794:48: RANGE
{
root_0 = (Object)adaptor.nil();
RANGE224=(Token)match(input,RANGE,FOLLOW_RANGE_in_typeSpecifier5829); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RANGE224_tree = (Object)adaptor.create(RANGE224);
adaptor.addChild(root_0, RANGE224_tree);
}
}
break;
case 14 :
// CivlCParser.g:795:4: atomicTypeSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_atomicTypeSpecifier_in_typeSpecifier5834);
atomicTypeSpecifier225=atomicTypeSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, atomicTypeSpecifier225.getTree());
}
break;
case 15 :
// CivlCParser.g:796:4: structOrUnionSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_structOrUnionSpecifier_in_typeSpecifier5839);
structOrUnionSpecifier226=structOrUnionSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, structOrUnionSpecifier226.getTree());
}
break;
case 16 :
// CivlCParser.g:797:4: enumSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_enumSpecifier_in_typeSpecifier5844);
enumSpecifier227=enumSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, enumSpecifier227.getTree());
}
break;
case 17 :
// CivlCParser.g:798:4: typedefName
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typedefName_in_typeSpecifier5849);
typedefName228=typedefName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typedefName228.getTree());
}
break;
case 18 :
// CivlCParser.g:799:4: domainSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_domainSpecifier_in_typeSpecifier5854);
domainSpecifier229=domainSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, domainSpecifier229.getTree());
}
break;
case 19 :
// CivlCParser.g:800:7: typeofSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeofSpecifier_in_typeSpecifier5862);
typeofSpecifier230=typeofSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeofSpecifier230.getTree());
}
break;
case 20 :
// CivlCParser.g:801:7: memSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_memSpecifier_in_typeSpecifier5870);
memSpecifier231=memSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, memSpecifier231.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:817: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 TYPEOF232=null;
Token LPAREN233=null;
Token RPAREN235=null;
Token RPAREN237=null;
ParserRuleReturnScope commaExpression234 =null;
ParserRuleReturnScope typeName236 =null;
Object TYPEOF232_tree=null;
Object LPAREN233_tree=null;
Object RPAREN235_tree=null;
Object RPAREN237_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:818:5: ( TYPEOF LPAREN ( commaExpression RPAREN -> ^( TYPEOF_EXPRESSION LPAREN commaExpression RPAREN ) | typeName RPAREN -> ^( TYPEOF_TYPE LPAREN typeName RPAREN ) ) )
// CivlCParser.g:818:7: TYPEOF LPAREN ( commaExpression RPAREN -> ^( TYPEOF_EXPRESSION LPAREN commaExpression RPAREN ) | typeName RPAREN -> ^( TYPEOF_TYPE LPAREN typeName RPAREN ) )
{
TYPEOF232=(Token)match(input,TYPEOF,FOLLOW_TYPEOF_in_typeofSpecifier5886); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TYPEOF.add(TYPEOF232);
LPAREN233=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_typeofSpecifier5888); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN233);
// CivlCParser.g:819:9: ( commaExpression RPAREN -> ^( TYPEOF_EXPRESSION LPAREN commaExpression RPAREN ) | typeName RPAREN -> ^( TYPEOF_TYPE LPAREN typeName RPAREN ) )
int alt61=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:
{
alt61=1;
}
break;
case IDENTIFIER:
{
int LA61_2 = input.LA(2);
if ( (!(((!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText()))))) ) {
alt61=1;
}
else if ( ((!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText()))) ) {
alt61=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 61, 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:
{
alt61=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 61, 0, input);
throw nvae;
}
switch (alt61) {
case 1 :
// CivlCParser.g:819:11: commaExpression RPAREN
{
pushFollow(FOLLOW_commaExpression_in_typeofSpecifier5900);
commaExpression234=commaExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_commaExpression.add(commaExpression234.getTree());
RPAREN235=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_typeofSpecifier5902); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN235);
// 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();
// 820:11: -> ^( TYPEOF_EXPRESSION LPAREN commaExpression RPAREN )
{
// CivlCParser.g:820: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:821:11: typeName RPAREN
{
pushFollow(FOLLOW_typeName_in_typeofSpecifier5936);
typeName236=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName236.getTree());
RPAREN237=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_typeofSpecifier5938); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN237);
// AST REWRITE
// elements: typeName, 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();
// 822:11: -> ^( TYPEOF_TYPE LPAREN typeName RPAREN )
{
// CivlCParser.g:822: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:831: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 IDENTIFIER239=null;
Token LCURLY240=null;
Token RCURLY242=null;
Token LCURLY243=null;
Token RCURLY245=null;
Token IDENTIFIER246=null;
ParserRuleReturnScope structOrUnion238 =null;
ParserRuleReturnScope structDeclarationList241 =null;
ParserRuleReturnScope structDeclarationList244 =null;
Object IDENTIFIER239_tree=null;
Object LCURLY240_tree=null;
Object RCURLY242_tree=null;
Object LCURLY243_tree=null;
Object RCURLY245_tree=null;
Object IDENTIFIER246_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:832:2: ( structOrUnion ( IDENTIFIER LCURLY structDeclarationList RCURLY -> ^( structOrUnion IDENTIFIER structDeclarationList RCURLY ) | LCURLY structDeclarationList RCURLY -> ^( structOrUnion ABSENT structDeclarationList RCURLY ) | IDENTIFIER -> ^( structOrUnion IDENTIFIER ABSENT ) ) )
// CivlCParser.g:832: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_structOrUnionSpecifier5986);
structOrUnion238=structOrUnion();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structOrUnion.add(structOrUnion238.getTree());
// CivlCParser.g:833:6: ( IDENTIFIER LCURLY structDeclarationList RCURLY -> ^( structOrUnion IDENTIFIER structDeclarationList RCURLY ) | LCURLY structDeclarationList RCURLY -> ^( structOrUnion ABSENT structDeclarationList RCURLY ) | IDENTIFIER -> ^( structOrUnion IDENTIFIER ABSENT ) )
int alt62=3;
int LA62_0 = input.LA(1);
if ( (LA62_0==IDENTIFIER) ) {
int LA62_1 = input.LA(2);
if ( (LA62_1==LCURLY) ) {
alt62=1;
}
else if ( (LA62_1==EOF||(LA62_1 >= COLON && LA62_1 <= COMMA)||LA62_1==IDENTIFIER||LA62_1==LPAREN||LA62_1==LSQUARE||LA62_1==RPAREN||LA62_1==SEMI||LA62_1==STAR||(LA62_1 >= ABSTRACT && LA62_1 <= ALIGNAS)||(LA62_1 >= ATOMIC && LA62_1 <= AUTO)||LA62_1==BOOL||LA62_1==CHAR||(LA62_1 >= COMPLEX && LA62_1 <= CONST)||(LA62_1 >= DEVICE && LA62_1 <= DIFFERENTIABLE)||(LA62_1 >= DOMAIN && LA62_1 <= DOUBLE)||LA62_1==ENUM||(LA62_1 >= EXTERN && LA62_1 <= FATOMIC)||LA62_1==FLOAT||LA62_1==GLOBAL||(LA62_1 >= INLINE && LA62_1 <= INT)||(LA62_1 >= LONG && LA62_1 <= NORETURN)||LA62_1==OUTPUT||(LA62_1 >= PURE && LA62_1 <= RANGE)||(LA62_1 >= REAL && LA62_1 <= REGISTER)||LA62_1==RESTRICT||(LA62_1 >= SHARED && LA62_1 <= SIGNED)||LA62_1==STATE_F||LA62_1==STATIC||LA62_1==STRUCT||LA62_1==SYSTEM||(LA62_1 >= THREADLOCAL && LA62_1 <= TYPEOF)||(LA62_1 >= UNION && LA62_1 <= UNSIGNED)||(LA62_1 >= VOID && LA62_1 <= VOLATILE)) ) {
alt62=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 62, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA62_0==LCURLY) ) {
alt62=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 62, 0, input);
throw nvae;
}
switch (alt62) {
case 1 :
// CivlCParser.g:833:8: IDENTIFIER LCURLY structDeclarationList RCURLY
{
IDENTIFIER239=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_structOrUnionSpecifier5995); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER239);
LCURLY240=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_structOrUnionSpecifier5997); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY240);
pushFollow(FOLLOW_structDeclarationList_in_structOrUnionSpecifier5999);
structDeclarationList241=structDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structDeclarationList.add(structDeclarationList241.getTree());
RCURLY242=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_structOrUnionSpecifier6001); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY242);
// AST REWRITE
// elements: structOrUnion, IDENTIFIER, 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();
// 834:8: -> ^( structOrUnion IDENTIFIER structDeclarationList RCURLY )
{
// CivlCParser.g:834: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:835:8: LCURLY structDeclarationList RCURLY
{
LCURLY243=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_structOrUnionSpecifier6029); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY243);
pushFollow(FOLLOW_structDeclarationList_in_structOrUnionSpecifier6031);
structDeclarationList244=structDeclarationList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structDeclarationList.add(structDeclarationList244.getTree());
RCURLY245=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_structOrUnionSpecifier6033); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY245);
// AST REWRITE
// elements: structDeclarationList, structOrUnion, 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();
// 836:8: -> ^( structOrUnion ABSENT structDeclarationList RCURLY )
{
// CivlCParser.g:836: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:837:8: IDENTIFIER
{
IDENTIFIER246=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_structOrUnionSpecifier6061); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER246);
// AST REWRITE
// elements: IDENTIFIER, structOrUnion
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 838:8: -> ^( structOrUnion IDENTIFIER ABSENT )
{
// CivlCParser.g:838: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:843: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 set247=null;
Object set247_tree=null;
try {
// CivlCParser.g:844:2: ( STRUCT | UNION )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set247=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(set247));
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:851: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 structDeclaration248 =null;
RewriteRuleSubtreeStream stream_structDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule structDeclaration");
try {
// CivlCParser.g:852:2: ( ( structDeclaration )* -> ^( STRUCT_DECLARATION_LIST ( structDeclaration )* ) )
// CivlCParser.g:852:4: ( structDeclaration )*
{
// CivlCParser.g:852:4: ( structDeclaration )*
loop63:
while (true) {
int alt63=2;
int LA63_0 = input.LA(1);
if ( (LA63_0==IDENTIFIER||LA63_0==ATOMIC||LA63_0==BOOL||LA63_0==CHAR||(LA63_0 >= COMPLEX && LA63_0 <= CONST)||(LA63_0 >= DOMAIN && LA63_0 <= DOUBLE)||LA63_0==ENUM||LA63_0==FLOAT||(LA63_0 >= INPUT && LA63_0 <= INT)||(LA63_0 >= LONG && LA63_0 <= MEM_TYPE)||LA63_0==OUTPUT||LA63_0==RANGE||LA63_0==REAL||LA63_0==RESTRICT||(LA63_0 >= SHORT && LA63_0 <= SIGNED)||(LA63_0 >= STATICASSERT && LA63_0 <= STRUCT)||LA63_0==TYPEOF||(LA63_0 >= UNION && LA63_0 <= UNSIGNED)||(LA63_0 >= VOID && LA63_0 <= VOLATILE)) ) {
alt63=1;
}
switch (alt63) {
case 1 :
// CivlCParser.g:852:4: structDeclaration
{
pushFollow(FOLLOW_structDeclaration_in_structDeclarationList6115);
structDeclaration248=structDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structDeclaration.add(structDeclaration248.getTree());
}
break;
default :
break loop63;
}
}
// 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();
// 853:4: -> ^( STRUCT_DECLARATION_LIST ( structDeclaration )* )
{
// CivlCParser.g:853: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:853: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:867: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 SEMI250=null;
ParserRuleReturnScope s =null;
ParserRuleReturnScope structDeclaratorList249 =null;
ParserRuleReturnScope staticAssertDeclaration251 =null;
Object SEMI250_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().typedefNameUsed = false;
try {
// CivlCParser.g:873:5: (s= specifierQualifierList ( -> ^( STRUCT_DECLARATION $s ABSENT ) | structDeclaratorList -> ^( STRUCT_DECLARATION $s structDeclaratorList ) ) SEMI | staticAssertDeclaration )
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==IDENTIFIER||LA65_0==ATOMIC||LA65_0==BOOL||LA65_0==CHAR||(LA65_0 >= COMPLEX && LA65_0 <= CONST)||(LA65_0 >= DOMAIN && LA65_0 <= DOUBLE)||LA65_0==ENUM||LA65_0==FLOAT||(LA65_0 >= INPUT && LA65_0 <= INT)||(LA65_0 >= LONG && LA65_0 <= MEM_TYPE)||LA65_0==OUTPUT||LA65_0==RANGE||LA65_0==REAL||LA65_0==RESTRICT||(LA65_0 >= SHORT && LA65_0 <= SIGNED)||LA65_0==STRUCT||LA65_0==TYPEOF||(LA65_0 >= UNION && LA65_0 <= UNSIGNED)||(LA65_0 >= VOID && LA65_0 <= VOLATILE)) ) {
alt65=1;
}
else if ( (LA65_0==STATICASSERT) ) {
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:873:7: s= specifierQualifierList ( -> ^( STRUCT_DECLARATION $s ABSENT ) | structDeclaratorList -> ^( STRUCT_DECLARATION $s structDeclaratorList ) ) SEMI
{
pushFollow(FOLLOW_specifierQualifierList_in_structDeclaration6156);
s=specifierQualifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_specifierQualifierList.add(s.getTree());
// CivlCParser.g:874:7: ( -> ^( STRUCT_DECLARATION $s ABSENT ) | structDeclaratorList -> ^( STRUCT_DECLARATION $s structDeclaratorList ) )
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==SEMI) ) {
alt64=1;
}
else if ( (LA64_0==COLON||LA64_0==IDENTIFIER||LA64_0==LPAREN||LA64_0==STAR) ) {
alt64=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 64, 0, input);
throw nvae;
}
switch (alt64) {
case 1 :
// CivlCParser.g:874: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();
// 874:9: -> ^( STRUCT_DECLARATION $s ABSENT )
{
// CivlCParser.g:874: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:875:9: structDeclaratorList
{
pushFollow(FOLLOW_structDeclaratorList_in_structDeclaration6185);
structDeclaratorList249=structDeclaratorList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_structDeclaratorList.add(structDeclaratorList249.getTree());
// AST REWRITE
// elements: structDeclaratorList, 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();
// 876:9: -> ^( STRUCT_DECLARATION $s structDeclaratorList )
{
// CivlCParser.g:876: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;
}
SEMI250=(Token)match(input,SEMI,FOLLOW_SEMI_in_structDeclaration6220); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI250);
}
break;
case 2 :
// CivlCParser.g:879:7: staticAssertDeclaration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_staticAssertDeclaration_in_structDeclaration6228);
staticAssertDeclaration251=staticAssertDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, staticAssertDeclaration251.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:886: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 typeSpecifierOrQualifier252 =null;
RewriteRuleSubtreeStream stream_typeSpecifierOrQualifier=new RewriteRuleSubtreeStream(adaptor,"rule typeSpecifierOrQualifier");
try {
// CivlCParser.g:887:5: ( ( typeSpecifierOrQualifier )+ -> ^( SPECIFIER_QUALIFIER_LIST ( typeSpecifierOrQualifier )+ ) )
// CivlCParser.g:887:7: ( typeSpecifierOrQualifier )+
{
// CivlCParser.g:887:7: ( typeSpecifierOrQualifier )+
int cnt66=0;
loop66:
while (true) {
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==IDENTIFIER) ) {
int LA66_2 = input.LA(2);
if ( ((!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText()))) ) {
alt66=1;
}
}
else if ( (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;
}
switch (alt66) {
case 1 :
// CivlCParser.g:887:7: typeSpecifierOrQualifier
{
pushFollow(FOLLOW_typeSpecifierOrQualifier_in_specifierQualifierList6247);
typeSpecifierOrQualifier252=typeSpecifierOrQualifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeSpecifierOrQualifier.add(typeSpecifierOrQualifier252.getTree());
}
break;
default :
if ( cnt66 >= 1 ) break loop66;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(66, input);
throw eee;
}
cnt66++;
}
// 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();
// 888:7: -> ^( SPECIFIER_QUALIFIER_LIST ( typeSpecifierOrQualifier )+ )
{
// CivlCParser.g:888: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:895: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 COMMA253=null;
List<Object> list_s=null;
RuleReturnScope s = null;
Object COMMA253_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_structDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule structDeclarator");
try {
// CivlCParser.g:896:5: (s+= structDeclarator ( COMMA s+= structDeclarator )* -> ^( STRUCT_DECLARATOR_LIST ( $s)+ ) )
// CivlCParser.g:896:7: s+= structDeclarator ( COMMA s+= structDeclarator )*
{
pushFollow(FOLLOW_structDeclarator_in_structDeclaratorList6284);
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:896:27: ( COMMA s+= structDeclarator )*
loop67:
while (true) {
int alt67=2;
int LA67_0 = input.LA(1);
if ( (LA67_0==COMMA) ) {
alt67=1;
}
switch (alt67) {
case 1 :
// CivlCParser.g:896:28: COMMA s+= structDeclarator
{
COMMA253=(Token)match(input,COMMA,FOLLOW_COMMA_in_structDeclaratorList6287); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA253);
pushFollow(FOLLOW_structDeclarator_in_structDeclaratorList6291);
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 loop67;
}
}
// 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();
// 897:7: -> ^( STRUCT_DECLARATOR_LIST ( $s)+ )
{
// CivlCParser.g:897: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:905: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 COLON255=null;
Token COLON257=null;
ParserRuleReturnScope declarator254 =null;
ParserRuleReturnScope constantExpression256 =null;
ParserRuleReturnScope constantExpression258 =null;
Object COLON255_tree=null;
Object COLON257_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:906:5: ( declarator ( -> ^( STRUCT_DECLARATOR declarator ABSENT ) | COLON constantExpression -> ^( STRUCT_DECLARATOR declarator constantExpression ) ) | COLON constantExpression -> ^( STRUCT_DECLARATOR ABSENT constantExpression ) )
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==IDENTIFIER||LA69_0==LPAREN||LA69_0==STAR) ) {
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:906:7: declarator ( -> ^( STRUCT_DECLARATOR declarator ABSENT ) | COLON constantExpression -> ^( STRUCT_DECLARATOR declarator constantExpression ) )
{
pushFollow(FOLLOW_declarator_in_structDeclarator6328);
declarator254=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator254.getTree());
// CivlCParser.g:907:7: ( -> ^( STRUCT_DECLARATOR declarator ABSENT ) | COLON constantExpression -> ^( STRUCT_DECLARATOR declarator constantExpression ) )
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==COMMA||LA68_0==SEMI) ) {
alt68=1;
}
else if ( (LA68_0==COLON) ) {
alt68=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 68, 0, input);
throw nvae;
}
switch (alt68) {
case 1 :
// CivlCParser.g:907: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();
// 907:10: -> ^( STRUCT_DECLARATOR declarator ABSENT )
{
// CivlCParser.g:907: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:908:9: COLON constantExpression
{
COLON255=(Token)match(input,COLON,FOLLOW_COLON_in_structDeclarator6357); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON255);
pushFollow(FOLLOW_constantExpression_in_structDeclarator6359);
constantExpression256=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression256.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();
// 909:10: -> ^( STRUCT_DECLARATOR declarator constantExpression )
{
// CivlCParser.g:909: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:911:7: COLON constantExpression
{
COLON257=(Token)match(input,COLON,FOLLOW_COLON_in_structDeclarator6394); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON257);
pushFollow(FOLLOW_constantExpression_in_structDeclarator6396);
constantExpression258=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression258.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();
// 912:7: -> ^( STRUCT_DECLARATOR ABSENT constantExpression )
{
// CivlCParser.g:912: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:920: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 ENUM259=null;
Token IDENTIFIER260=null;
Token IDENTIFIER261=null;
Token LCURLY262=null;
Token COMMA264=null;
Token RCURLY265=null;
Token LCURLY266=null;
Token COMMA268=null;
Token RCURLY269=null;
ParserRuleReturnScope enumeratorList263 =null;
ParserRuleReturnScope enumeratorList267 =null;
Object ENUM259_tree=null;
Object IDENTIFIER260_tree=null;
Object IDENTIFIER261_tree=null;
Object LCURLY262_tree=null;
Object COMMA264_tree=null;
Object RCURLY265_tree=null;
Object LCURLY266_tree=null;
Object COMMA268_tree=null;
Object RCURLY269_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:921:5: ( ENUM ( IDENTIFIER -> ^( ENUM IDENTIFIER ABSENT ) | IDENTIFIER LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM IDENTIFIER enumeratorList ) | LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM ABSENT enumeratorList ) ) )
// CivlCParser.g:921:7: ENUM ( IDENTIFIER -> ^( ENUM IDENTIFIER ABSENT ) | IDENTIFIER LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM IDENTIFIER enumeratorList ) | LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM ABSENT enumeratorList ) )
{
ENUM259=(Token)match(input,ENUM,FOLLOW_ENUM_in_enumSpecifier6431); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ENUM.add(ENUM259);
// CivlCParser.g:922:9: ( IDENTIFIER -> ^( ENUM IDENTIFIER ABSENT ) | IDENTIFIER LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM IDENTIFIER enumeratorList ) | LCURLY enumeratorList ( COMMA )? RCURLY -> ^( ENUM ABSENT enumeratorList ) )
int alt72=3;
int LA72_0 = input.LA(1);
if ( (LA72_0==IDENTIFIER) ) {
int LA72_1 = input.LA(2);
if ( (LA72_1==LCURLY) ) {
alt72=2;
}
else if ( (LA72_1==EOF||(LA72_1 >= COLON && LA72_1 <= COMMA)||LA72_1==IDENTIFIER||LA72_1==LPAREN||LA72_1==LSQUARE||LA72_1==RPAREN||LA72_1==SEMI||LA72_1==STAR||(LA72_1 >= ABSTRACT && LA72_1 <= ALIGNAS)||(LA72_1 >= ATOMIC && LA72_1 <= AUTO)||LA72_1==BOOL||LA72_1==CHAR||(LA72_1 >= COMPLEX && LA72_1 <= CONST)||(LA72_1 >= DEVICE && LA72_1 <= DIFFERENTIABLE)||(LA72_1 >= DOMAIN && LA72_1 <= DOUBLE)||LA72_1==ENUM||(LA72_1 >= EXTERN && LA72_1 <= FATOMIC)||LA72_1==FLOAT||LA72_1==GLOBAL||(LA72_1 >= INLINE && LA72_1 <= INT)||(LA72_1 >= LONG && LA72_1 <= NORETURN)||LA72_1==OUTPUT||(LA72_1 >= PURE && LA72_1 <= RANGE)||(LA72_1 >= REAL && LA72_1 <= REGISTER)||LA72_1==RESTRICT||(LA72_1 >= SHARED && LA72_1 <= SIGNED)||LA72_1==STATE_F||LA72_1==STATIC||LA72_1==STRUCT||LA72_1==SYSTEM||(LA72_1 >= THREADLOCAL && LA72_1 <= TYPEOF)||(LA72_1 >= UNION && LA72_1 <= UNSIGNED)||(LA72_1 >= VOID && LA72_1 <= VOLATILE)) ) {
alt72=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 72, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA72_0==LCURLY) ) {
alt72=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 0, input);
throw nvae;
}
switch (alt72) {
case 1 :
// CivlCParser.g:922:11: IDENTIFIER
{
IDENTIFIER260=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumSpecifier6443); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER260);
// AST REWRITE
// elements: ENUM, 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();
// 923:11: -> ^( ENUM IDENTIFIER ABSENT )
{
// CivlCParser.g:923: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:924:11: IDENTIFIER LCURLY enumeratorList ( COMMA )? RCURLY
{
IDENTIFIER261=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumSpecifier6475); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER261);
LCURLY262=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_enumSpecifier6477); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY262);
pushFollow(FOLLOW_enumeratorList_in_enumSpecifier6479);
enumeratorList263=enumeratorList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_enumeratorList.add(enumeratorList263.getTree());
// CivlCParser.g:924:44: ( COMMA )?
int alt70=2;
int LA70_0 = input.LA(1);
if ( (LA70_0==COMMA) ) {
alt70=1;
}
switch (alt70) {
case 1 :
// CivlCParser.g:924:44: COMMA
{
COMMA264=(Token)match(input,COMMA,FOLLOW_COMMA_in_enumSpecifier6481); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA264);
}
break;
}
RCURLY265=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_enumSpecifier6484); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY265);
// AST REWRITE
// elements: ENUM, enumeratorList, 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();
// 925:11: -> ^( ENUM IDENTIFIER enumeratorList )
{
// CivlCParser.g:925: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:926:11: LCURLY enumeratorList ( COMMA )? RCURLY
{
LCURLY266=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_enumSpecifier6516); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY266);
pushFollow(FOLLOW_enumeratorList_in_enumSpecifier6518);
enumeratorList267=enumeratorList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_enumeratorList.add(enumeratorList267.getTree());
// CivlCParser.g:926:33: ( COMMA )?
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==COMMA) ) {
alt71=1;
}
switch (alt71) {
case 1 :
// CivlCParser.g:926:33: COMMA
{
COMMA268=(Token)match(input,COMMA,FOLLOW_COMMA_in_enumSpecifier6520); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA268);
}
break;
}
RCURLY269=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_enumSpecifier6523); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY269);
// 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();
// 927:11: -> ^( ENUM ABSENT enumeratorList )
{
// CivlCParser.g:927: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:935: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 COMMA271=null;
ParserRuleReturnScope enumerator270 =null;
ParserRuleReturnScope enumerator272 =null;
Object COMMA271_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_enumerator=new RewriteRuleSubtreeStream(adaptor,"rule enumerator");
try {
// CivlCParser.g:936:5: ( enumerator ( COMMA enumerator )* -> ^( ENUMERATOR_LIST ( enumerator )+ ) )
// CivlCParser.g:936:7: enumerator ( COMMA enumerator )*
{
pushFollow(FOLLOW_enumerator_in_enumeratorList6572);
enumerator270=enumerator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_enumerator.add(enumerator270.getTree());
// CivlCParser.g:936:18: ( COMMA enumerator )*
loop73:
while (true) {
int alt73=2;
int LA73_0 = input.LA(1);
if ( (LA73_0==COMMA) ) {
int LA73_1 = input.LA(2);
if ( (LA73_1==IDENTIFIER) ) {
alt73=1;
}
}
switch (alt73) {
case 1 :
// CivlCParser.g:936:19: COMMA enumerator
{
COMMA271=(Token)match(input,COMMA,FOLLOW_COMMA_in_enumeratorList6575); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA271);
pushFollow(FOLLOW_enumerator_in_enumeratorList6577);
enumerator272=enumerator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_enumerator.add(enumerator272.getTree());
}
break;
default :
break loop73;
}
}
// 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();
// 937:7: -> ^( ENUMERATOR_LIST ( enumerator )+ )
{
// CivlCParser.g:937: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:945: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 IDENTIFIER273=null;
Token ASSIGN274=null;
ParserRuleReturnScope constantExpression275 =null;
Object IDENTIFIER273_tree=null;
Object ASSIGN274_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:946:2: ( IDENTIFIER ( -> ^( ENUMERATOR IDENTIFIER ABSENT ) | ( ASSIGN constantExpression ) -> ^( ENUMERATOR IDENTIFIER constantExpression ) ) )
// CivlCParser.g:946:4: IDENTIFIER ( -> ^( ENUMERATOR IDENTIFIER ABSENT ) | ( ASSIGN constantExpression ) -> ^( ENUMERATOR IDENTIFIER constantExpression ) )
{
IDENTIFIER273=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumerator6610); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER273);
if ( state.backtracking==0 ) {
Symbols_stack.peek().enumerationConstants.add((IDENTIFIER273!=null?IDENTIFIER273.getText():null));
// System.err.println("define enum constant "+(IDENTIFIER273!=null?IDENTIFIER273.getText():null));
}
// CivlCParser.g:951:8: ( -> ^( ENUMERATOR IDENTIFIER ABSENT ) | ( ASSIGN constantExpression ) -> ^( ENUMERATOR IDENTIFIER constantExpression ) )
int alt74=2;
int LA74_0 = input.LA(1);
if ( (LA74_0==COMMA||LA74_0==RCURLY) ) {
alt74=1;
}
else if ( (LA74_0==ASSIGN) ) {
alt74=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 74, 0, input);
throw nvae;
}
switch (alt74) {
case 1 :
// CivlCParser.g:951: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();
// 951:11: -> ^( ENUMERATOR IDENTIFIER ABSENT )
{
// CivlCParser.g:951: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:952:10: ( ASSIGN constantExpression )
{
// CivlCParser.g:952:10: ( ASSIGN constantExpression )
// CivlCParser.g:952:11: ASSIGN constantExpression
{
ASSIGN274=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_enumerator6651); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN274);
pushFollow(FOLLOW_constantExpression_in_enumerator6653);
constantExpression275=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression275.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();
// 953:11: -> ^( ENUMERATOR IDENTIFIER constantExpression )
{
// CivlCParser.g:953: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:958: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 ATOMIC276=null;
Token LPAREN277=null;
Token RPAREN279=null;
ParserRuleReturnScope typeName278 =null;
Object ATOMIC276_tree=null;
Object LPAREN277_tree=null;
Object RPAREN279_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:959:5: ( ATOMIC LPAREN typeName RPAREN -> ^( ATOMIC typeName ) )
// CivlCParser.g:959:7: ATOMIC LPAREN typeName RPAREN
{
ATOMIC276=(Token)match(input,ATOMIC,FOLLOW_ATOMIC_in_atomicTypeSpecifier6699); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ATOMIC.add(ATOMIC276);
LPAREN277=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_atomicTypeSpecifier6701); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN277);
pushFollow(FOLLOW_typeName_in_atomicTypeSpecifier6703);
typeName278=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName278.getTree());
RPAREN279=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_atomicTypeSpecifier6705); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN279);
// AST REWRITE
// elements: ATOMIC, 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();
// 960:7: -> ^( ATOMIC typeName )
{
// CivlCParser.g:960: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:964: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 set280=null;
Object set280_tree=null;
try {
// CivlCParser.g:965:5: ( CONST | RESTRICT | VOLATILE | ATOMIC | INPUT | OUTPUT )
// CivlCParser.g:
{
root_0 = (Object)adaptor.nil();
set280=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(set280));
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:974:1: functionSpecifier : ( INLINE | NORETURN | ABSTRACT CONTIN LPAREN INTEGER_CONSTANT RPAREN -> ^( ABSTRACT INTEGER_CONSTANT ) | ABSTRACT -> ^( ABSTRACT ) | 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 INLINE281=null;
Token NORETURN282=null;
Token ABSTRACT283=null;
Token CONTIN284=null;
Token LPAREN285=null;
Token INTEGER_CONSTANT286=null;
Token RPAREN287=null;
Token ABSTRACT288=null;
Token PURE289=null;
Token STATE_F290=null;
Token SYSTEM291=null;
Token SYSTEM293=null;
Token FATOMIC294=null;
Token DEVICE295=null;
Token GLOBAL296=null;
ParserRuleReturnScope libraryName292 =null;
ParserRuleReturnScope differentiableSpecifier297 =null;
Object INLINE281_tree=null;
Object NORETURN282_tree=null;
Object ABSTRACT283_tree=null;
Object CONTIN284_tree=null;
Object LPAREN285_tree=null;
Object INTEGER_CONSTANT286_tree=null;
Object RPAREN287_tree=null;
Object ABSTRACT288_tree=null;
Object PURE289_tree=null;
Object STATE_F290_tree=null;
Object SYSTEM291_tree=null;
Object SYSTEM293_tree=null;
Object FATOMIC294_tree=null;
Object DEVICE295_tree=null;
Object GLOBAL296_tree=null;
RewriteRuleTokenStream stream_SYSTEM=new RewriteRuleTokenStream(adaptor,"token SYSTEM");
RewriteRuleTokenStream stream_FATOMIC=new RewriteRuleTokenStream(adaptor,"token FATOMIC");
RewriteRuleTokenStream stream_CONTIN=new RewriteRuleTokenStream(adaptor,"token CONTIN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_ABSTRACT=new RewriteRuleTokenStream(adaptor,"token ABSTRACT");
RewriteRuleTokenStream stream_PURE=new RewriteRuleTokenStream(adaptor,"token PURE");
RewriteRuleTokenStream stream_INTEGER_CONSTANT=new RewriteRuleTokenStream(adaptor,"token INTEGER_CONSTANT");
RewriteRuleTokenStream stream_STATE_F=new RewriteRuleTokenStream(adaptor,"token STATE_F");
RewriteRuleSubtreeStream stream_libraryName=new RewriteRuleSubtreeStream(adaptor,"rule libraryName");
try {
// CivlCParser.g:975:5: ( INLINE | NORETURN | ABSTRACT CONTIN LPAREN INTEGER_CONSTANT RPAREN -> ^( ABSTRACT INTEGER_CONSTANT ) | ABSTRACT -> ^( ABSTRACT ) | PURE -> ^( PURE ) | STATE_F -> ^( STATE_F ) | ( ( SYSTEM libraryName )=> SYSTEM libraryName ) -> ^( SYSTEM libraryName ) | SYSTEM -> ^( SYSTEM ABSENT ) | FATOMIC -> ^( FATOMIC ) | DEVICE | GLOBAL | differentiableSpecifier )
int alt75=12;
alt75 = dfa75.predict(input);
switch (alt75) {
case 1 :
// CivlCParser.g:975:7: INLINE
{
root_0 = (Object)adaptor.nil();
INLINE281=(Token)match(input,INLINE,FOLLOW_INLINE_in_functionSpecifier6777); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INLINE281_tree = (Object)adaptor.create(INLINE281);
adaptor.addChild(root_0, INLINE281_tree);
}
}
break;
case 2 :
// CivlCParser.g:975:16: NORETURN
{
root_0 = (Object)adaptor.nil();
NORETURN282=(Token)match(input,NORETURN,FOLLOW_NORETURN_in_functionSpecifier6781); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NORETURN282_tree = (Object)adaptor.create(NORETURN282);
adaptor.addChild(root_0, NORETURN282_tree);
}
}
break;
case 3 :
// CivlCParser.g:976:7: ABSTRACT CONTIN LPAREN INTEGER_CONSTANT RPAREN
{
ABSTRACT283=(Token)match(input,ABSTRACT,FOLLOW_ABSTRACT_in_functionSpecifier6789); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ABSTRACT.add(ABSTRACT283);
CONTIN284=(Token)match(input,CONTIN,FOLLOW_CONTIN_in_functionSpecifier6791); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CONTIN.add(CONTIN284);
LPAREN285=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_functionSpecifier6793); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN285);
INTEGER_CONSTANT286=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_functionSpecifier6795); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INTEGER_CONSTANT.add(INTEGER_CONSTANT286);
RPAREN287=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_functionSpecifier6797); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN287);
// AST REWRITE
// elements: INTEGER_CONSTANT, 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();
// 977:7: -> ^( ABSTRACT INTEGER_CONSTANT )
{
// CivlCParser.g:977:10: ^( 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 4 :
// CivlCParser.g:978:7: ABSTRACT
{
ABSTRACT288=(Token)match(input,ABSTRACT,FOLLOW_ABSTRACT_in_functionSpecifier6819); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ABSTRACT.add(ABSTRACT288);
// 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();
// 978:16: -> ^( ABSTRACT )
{
// CivlCParser.g:978:19: ^( 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 5 :
// CivlCParser.g:979:7: PURE
{
PURE289=(Token)match(input,PURE,FOLLOW_PURE_in_functionSpecifier6833); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PURE.add(PURE289);
// 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();
// 979:12: -> ^( PURE )
{
// CivlCParser.g:979: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 6 :
// CivlCParser.g:980:7: STATE_F
{
STATE_F290=(Token)match(input,STATE_F,FOLLOW_STATE_F_in_functionSpecifier6847); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATE_F.add(STATE_F290);
// 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();
// 980:15: -> ^( STATE_F )
{
// CivlCParser.g:980: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 7 :
// CivlCParser.g:981:7: ( ( SYSTEM libraryName )=> SYSTEM libraryName )
{
// CivlCParser.g:981:7: ( ( SYSTEM libraryName )=> SYSTEM libraryName )
// CivlCParser.g:981:8: ( SYSTEM libraryName )=> SYSTEM libraryName
{
SYSTEM291=(Token)match(input,SYSTEM,FOLLOW_SYSTEM_in_functionSpecifier6870); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SYSTEM.add(SYSTEM291);
pushFollow(FOLLOW_libraryName_in_functionSpecifier6872);
libraryName292=libraryName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_libraryName.add(libraryName292.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();
// 981:52: -> ^( SYSTEM libraryName )
{
// CivlCParser.g:981: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 8 :
// CivlCParser.g:982:7: SYSTEM
{
SYSTEM293=(Token)match(input,SYSTEM,FOLLOW_SYSTEM_in_functionSpecifier6889); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SYSTEM.add(SYSTEM293);
// 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();
// 982:15: -> ^( SYSTEM ABSENT )
{
// CivlCParser.g:982: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 9 :
// CivlCParser.g:983:7: FATOMIC
{
FATOMIC294=(Token)match(input,FATOMIC,FOLLOW_FATOMIC_in_functionSpecifier6906); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FATOMIC.add(FATOMIC294);
// 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();
// 983:15: -> ^( FATOMIC )
{
// CivlCParser.g:983: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 10 :
// CivlCParser.g:984:7: DEVICE
{
root_0 = (Object)adaptor.nil();
DEVICE295=(Token)match(input,DEVICE,FOLLOW_DEVICE_in_functionSpecifier6920); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DEVICE295_tree = (Object)adaptor.create(DEVICE295);
adaptor.addChild(root_0, DEVICE295_tree);
}
}
break;
case 11 :
// CivlCParser.g:985:7: GLOBAL
{
root_0 = (Object)adaptor.nil();
GLOBAL296=(Token)match(input,GLOBAL,FOLLOW_GLOBAL_in_functionSpecifier6928); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GLOBAL296_tree = (Object)adaptor.create(GLOBAL296);
adaptor.addChild(root_0, GLOBAL296_tree);
}
}
break;
case 12 :
// CivlCParser.g:986:7: differentiableSpecifier
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_differentiableSpecifier_in_functionSpecifier6936);
differentiableSpecifier297=differentiableSpecifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, differentiableSpecifier297.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 differentiableSpecifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "differentiableSpecifier"
// CivlCParser.g:990: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 DIFFERENTIABLE298=null;
Token LPAREN299=null;
Token INTEGER_CONSTANT300=null;
Token COMMA301=null;
Token RPAREN303=null;
ParserRuleReturnScope intervalSeq302 =null;
Object DIFFERENTIABLE298_tree=null;
Object LPAREN299_tree=null;
Object INTEGER_CONSTANT300_tree=null;
Object COMMA301_tree=null;
Object RPAREN303_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:991:2: ( DIFFERENTIABLE LPAREN INTEGER_CONSTANT COMMA intervalSeq RPAREN -> ^( DIFFERENTIABLE INTEGER_CONSTANT intervalSeq ) )
// CivlCParser.g:991:4: DIFFERENTIABLE LPAREN INTEGER_CONSTANT COMMA intervalSeq RPAREN
{
DIFFERENTIABLE298=(Token)match(input,DIFFERENTIABLE,FOLLOW_DIFFERENTIABLE_in_differentiableSpecifier6951); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DIFFERENTIABLE.add(DIFFERENTIABLE298);
LPAREN299=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_differentiableSpecifier6953); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN299);
INTEGER_CONSTANT300=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_differentiableSpecifier6955); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INTEGER_CONSTANT.add(INTEGER_CONSTANT300);
COMMA301=(Token)match(input,COMMA,FOLLOW_COMMA_in_differentiableSpecifier6957); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA301);
pushFollow(FOLLOW_intervalSeq_in_differentiableSpecifier6959);
intervalSeq302=intervalSeq();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_intervalSeq.add(intervalSeq302.getTree());
RPAREN303=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_differentiableSpecifier6961); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN303);
// AST REWRITE
// elements: intervalSeq, DIFFERENTIABLE, 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();
// 992:4: -> ^( DIFFERENTIABLE INTEGER_CONSTANT intervalSeq )
{
// CivlCParser.g:993:4: ^( 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:996: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 LSQUARE304=null;
Token RSQUARE305=null;
Token i1=null;
List<Object> list_i1=null;
Object i0_tree=null;
Object LSQUARE304_tree=null;
Object RSQUARE305_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:997:2: ( LSQUARE i0= IDENTIFIER i1+= ( SUB | IDENTIFIER )* RSQUARE -> ^( LIB_NAME $i0 ( $i1)* ) )
// CivlCParser.g:997:4: LSQUARE i0= IDENTIFIER i1+= ( SUB | IDENTIFIER )* RSQUARE
{
LSQUARE304=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_libraryName6988); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE304);
i0=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_libraryName6992); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(i0);
// CivlCParser.g:997:30: ( SUB | IDENTIFIER )*
loop76:
while (true) {
int alt76=3;
int LA76_0 = input.LA(1);
if ( (LA76_0==SUB) ) {
alt76=1;
}
else if ( (LA76_0==IDENTIFIER) ) {
alt76=2;
}
switch (alt76) {
case 1 :
// CivlCParser.g:997:31: SUB
{
i1=(Token)match(input,SUB,FOLLOW_SUB_in_libraryName6997); 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:997:37: IDENTIFIER
{
i1=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_libraryName7001); 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 loop76;
}
}
RSQUARE305=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_libraryName7005); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE305);
// 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();
// 998:2: -> ^( LIB_NAME $i0 ( $i1)* )
{
// CivlCParser.g:998:4: ^( 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:998:20: ( $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:1008: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 ALIGNAS306=null;
Token LPAREN307=null;
Token RPAREN309=null;
Token RPAREN311=null;
ParserRuleReturnScope typeName308 =null;
ParserRuleReturnScope constantExpression310 =null;
Object ALIGNAS306_tree=null;
Object LPAREN307_tree=null;
Object RPAREN309_tree=null;
Object RPAREN311_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:1009:5: ( ALIGNAS LPAREN ( typeName RPAREN -> ^( ALIGNAS TYPE typeName ) | constantExpression RPAREN -> ^( ALIGNAS EXPR constantExpression ) ) )
// CivlCParser.g:1009:7: ALIGNAS LPAREN ( typeName RPAREN -> ^( ALIGNAS TYPE typeName ) | constantExpression RPAREN -> ^( ALIGNAS EXPR constantExpression ) )
{
ALIGNAS306=(Token)match(input,ALIGNAS,FOLLOW_ALIGNAS_in_alignmentSpecifier7035); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ALIGNAS.add(ALIGNAS306);
LPAREN307=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_alignmentSpecifier7037); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN307);
// CivlCParser.g:1010:9: ( typeName RPAREN -> ^( ALIGNAS TYPE typeName ) | constantExpression RPAREN -> ^( ALIGNAS EXPR constantExpression ) )
int alt77=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:
{
alt77=1;
}
break;
case IDENTIFIER:
{
int LA77_17 = input.LA(2);
if ( ((!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText()))) ) {
alt77=1;
}
else if ( (true) ) {
alt77=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:
{
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:1010:11: typeName RPAREN
{
pushFollow(FOLLOW_typeName_in_alignmentSpecifier7049);
typeName308=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName.add(typeName308.getTree());
RPAREN309=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_alignmentSpecifier7051); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN309);
// 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();
// 1011:11: -> ^( ALIGNAS TYPE typeName )
{
// CivlCParser.g:1011: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:1012:11: constantExpression RPAREN
{
pushFollow(FOLLOW_constantExpression_in_alignmentSpecifier7083);
constantExpression310=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression310.getTree());
RPAREN311=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_alignmentSpecifier7085); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN311);
// AST REWRITE
// elements: constantExpression, ALIGNAS
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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:11: -> ^( ALIGNAS EXPR constantExpression )
{
// CivlCParser.g:1013: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:1022: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 pointer312 =null;
RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer");
RewriteRuleSubtreeStream stream_directDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule directDeclarator");
try {
// CivlCParser.g:1023:2: (d= directDeclarator -> ^( DECLARATOR ABSENT $d) | pointer d= directDeclarator -> ^( DECLARATOR pointer $d) )
int alt78=2;
int LA78_0 = input.LA(1);
if ( (LA78_0==IDENTIFIER||LA78_0==LPAREN) ) {
alt78=1;
}
else if ( (LA78_0==STAR) ) {
alt78=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 78, 0, input);
throw nvae;
}
switch (alt78) {
case 1 :
// CivlCParser.g:1023:4: d= directDeclarator
{
pushFollow(FOLLOW_directDeclarator_in_declarator7133);
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();
// 1024:4: -> ^( DECLARATOR ABSENT $d)
{
// CivlCParser.g:1024: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:1025:4: pointer d= directDeclarator
{
pushFollow(FOLLOW_pointer_in_declarator7152);
pointer312=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer312.getTree());
pushFollow(FOLLOW_directDeclarator_in_declarator7156);
d=directDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directDeclarator.add(d.getTree());
// AST REWRITE
// elements: d, pointer
// 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();
// 1026:4: -> ^( DECLARATOR pointer $d)
{
// CivlCParser.g:1026: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:1034: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:1035:2: (p= directDeclaratorPrefix ( -> ^( DIRECT_DECLARATOR $p) | (s+= directDeclaratorSuffix )+ -> ^( DIRECT_DECLARATOR $p ( $s)+ ) ) )
// CivlCParser.g:1035:4: p= directDeclaratorPrefix ( -> ^( DIRECT_DECLARATOR $p) | (s+= directDeclaratorSuffix )+ -> ^( DIRECT_DECLARATOR $p ( $s)+ ) )
{
pushFollow(FOLLOW_directDeclaratorPrefix_in_directDeclarator7185);
p=directDeclaratorPrefix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directDeclaratorPrefix.add(p.getTree());
// CivlCParser.g:1036:4: ( -> ^( DIRECT_DECLARATOR $p) | (s+= directDeclaratorSuffix )+ -> ^( DIRECT_DECLARATOR $p ( $s)+ ) )
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==EOF||LA80_0==ASSIGN||(LA80_0 >= COLON && LA80_0 <= COMMA)||LA80_0==IDENTIFIER||LA80_0==LCURLY||LA80_0==RPAREN||LA80_0==SEMI||(LA80_0 >= ABSTRACT && LA80_0 <= ALIGNAS)||(LA80_0 >= ASSIGNS && LA80_0 <= AUTO)||LA80_0==BOOL||LA80_0==CHAR||(LA80_0 >= COMPLEX && LA80_0 <= CONST)||LA80_0==DEPENDS||(LA80_0 >= DEVICE && LA80_0 <= DIFFERENTIABLE)||(LA80_0 >= DOMAIN && LA80_0 <= ENUM)||(LA80_0 >= EXTERN && LA80_0 <= FATOMIC)||LA80_0==FLOAT||LA80_0==GLOBAL||LA80_0==GUARD||(LA80_0 >= INLINE && LA80_0 <= INT)||(LA80_0 >= LONG && LA80_0 <= NORETURN)||LA80_0==OUTPUT||(LA80_0 >= PURE && LA80_0 <= RESTRICT)||(LA80_0 >= SHARED && LA80_0 <= SIGNED)||LA80_0==STATE_F||(LA80_0 >= STATIC && LA80_0 <= STRUCT)||LA80_0==SYSTEM||(LA80_0 >= THREADLOCAL && LA80_0 <= TYPEOF)||(LA80_0 >= UNION && LA80_0 <= UNSIGNED)||(LA80_0 >= VOID && LA80_0 <= VOLATILE)) ) {
alt80=1;
}
else if ( (LA80_0==LPAREN||LA80_0==LSQUARE) ) {
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:1036: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();
// 1036:6: -> ^( DIRECT_DECLARATOR $p)
{
// CivlCParser.g:1036: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:1037:6: (s+= directDeclaratorSuffix )+
{
// CivlCParser.g:1037:7: (s+= directDeclaratorSuffix )+
int cnt79=0;
loop79:
while (true) {
int alt79=2;
int LA79_0 = input.LA(1);
if ( (LA79_0==LPAREN||LA79_0==LSQUARE) ) {
alt79=1;
}
switch (alt79) {
case 1 :
// CivlCParser.g:1037:7: s+= directDeclaratorSuffix
{
pushFollow(FOLLOW_directDeclaratorSuffix_in_directDeclarator7208);
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 ( cnt79 >= 1 ) break loop79;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(79, input);
throw eee;
}
cnt79++;
}
// 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();
// 1037:33: -> ^( DIRECT_DECLARATOR $p ( $s)+ )
{
// CivlCParser.g:1037:35: ^( 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:1044: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 IDENTIFIER313=null;
Token LPAREN314=null;
Token RPAREN316=null;
ParserRuleReturnScope declarator315 =null;
Object IDENTIFIER313_tree=null;
Object LPAREN314_tree=null;
Object RPAREN316_tree=null;
try {
// CivlCParser.g:1045:2: ( IDENTIFIER | LPAREN ! declarator RPAREN !)
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==IDENTIFIER) ) {
alt81=1;
}
else if ( (LA81_0==LPAREN) ) {
alt81=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 81, 0, input);
throw nvae;
}
switch (alt81) {
case 1 :
// CivlCParser.g:1045:4: IDENTIFIER
{
root_0 = (Object)adaptor.nil();
IDENTIFIER313=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_directDeclaratorPrefix7239); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IDENTIFIER313_tree = (Object)adaptor.create(IDENTIFIER313);
adaptor.addChild(root_0, IDENTIFIER313_tree);
}
if ( state.backtracking==0 ) {
if (DeclarationScope_stack.peek().isTypedef) {
Symbols_stack.peek().types.add((IDENTIFIER313!=null?IDENTIFIER313.getText():null));
//System.err.println("define type "+(IDENTIFIER313!=null?IDENTIFIER313.getText():null));
}else{
//Symbols_stack.peek().types.remove((IDENTIFIER313!=null?IDENTIFIER313.getText():null));
}
}
}
break;
case 2 :
// CivlCParser.g:1054:4: LPAREN ! declarator RPAREN !
{
root_0 = (Object)adaptor.nil();
LPAREN314=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directDeclaratorPrefix7248); if (state.failed) return retval;
pushFollow(FOLLOW_declarator_in_directDeclaratorPrefix7251);
declarator315=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declarator315.getTree());
RPAREN316=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directDeclaratorPrefix7253); 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:1058: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 directDeclaratorArraySuffix317 =null;
ParserRuleReturnScope directDeclaratorFunctionSuffix318 =null;
try {
// CivlCParser.g:1059:2: ( directDeclaratorArraySuffix | directDeclaratorFunctionSuffix )
int alt82=2;
int LA82_0 = input.LA(1);
if ( (LA82_0==LSQUARE) ) {
alt82=1;
}
else if ( (LA82_0==LPAREN) ) {
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:1059:4: directDeclaratorArraySuffix
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_directDeclaratorArraySuffix_in_directDeclaratorSuffix7266);
directDeclaratorArraySuffix317=directDeclaratorArraySuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, directDeclaratorArraySuffix317.getTree());
}
break;
case 2 :
// CivlCParser.g:1060:4: directDeclaratorFunctionSuffix
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_directDeclaratorFunctionSuffix_in_directDeclaratorSuffix7271);
directDeclaratorFunctionSuffix318=directDeclaratorFunctionSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, directDeclaratorFunctionSuffix318.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:1072: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 LSQUARE319=null;
Token RSQUARE322=null;
Token STATIC323=null;
Token RSQUARE326=null;
Token STATIC328=null;
Token RSQUARE330=null;
Token STAR332=null;
Token RSQUARE333=null;
ParserRuleReturnScope typeQualifierList_opt320 =null;
ParserRuleReturnScope assignmentExpression_opt321 =null;
ParserRuleReturnScope typeQualifierList_opt324 =null;
ParserRuleReturnScope assignmentExpression325 =null;
ParserRuleReturnScope typeQualifierList327 =null;
ParserRuleReturnScope assignmentExpression329 =null;
ParserRuleReturnScope typeQualifierList_opt331 =null;
Object LSQUARE319_tree=null;
Object RSQUARE322_tree=null;
Object STATIC323_tree=null;
Object RSQUARE326_tree=null;
Object STATIC328_tree=null;
Object RSQUARE330_tree=null;
Object STAR332_tree=null;
Object RSQUARE333_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:1073: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:1073: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 ) )
{
LSQUARE319=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_directDeclaratorArraySuffix7284); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE319);
// CivlCParser.g:1074: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 alt83=4;
alt83 = dfa83.predict(input);
switch (alt83) {
case 1 :
// CivlCParser.g:1074:6: typeQualifierList_opt assignmentExpression_opt RSQUARE
{
pushFollow(FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7291);
typeQualifierList_opt320=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt320.getTree());
pushFollow(FOLLOW_assignmentExpression_opt_in_directDeclaratorArraySuffix7293);
assignmentExpression_opt321=assignmentExpression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression_opt.add(assignmentExpression_opt321.getTree());
RSQUARE322=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7295); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE322);
// AST REWRITE
// elements: RSQUARE, assignmentExpression_opt, 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();
// 1075:6: -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt RSQUARE )
{
// CivlCParser.g:1075: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:1077:6: STATIC typeQualifierList_opt assignmentExpression RSQUARE
{
STATIC323=(Token)match(input,STATIC,FOLLOW_STATIC_in_directDeclaratorArraySuffix7333); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATIC.add(STATIC323);
pushFollow(FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7335);
typeQualifierList_opt324=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt324.getTree());
pushFollow(FOLLOW_assignmentExpression_in_directDeclaratorArraySuffix7337);
assignmentExpression325=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression325.getTree());
RSQUARE326=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7339); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE326);
// AST REWRITE
// elements: LSQUARE, assignmentExpression, STATIC, RSQUARE, 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();
// 1078:6: -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression RSQUARE )
{
// CivlCParser.g:1078: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:1080:8: typeQualifierList STATIC assignmentExpression RSQUARE
{
pushFollow(FOLLOW_typeQualifierList_in_directDeclaratorArraySuffix7379);
typeQualifierList327=typeQualifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList.add(typeQualifierList327.getTree());
STATIC328=(Token)match(input,STATIC,FOLLOW_STATIC_in_directDeclaratorArraySuffix7381); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATIC.add(STATIC328);
pushFollow(FOLLOW_assignmentExpression_in_directDeclaratorArraySuffix7383);
assignmentExpression329=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression329.getTree());
RSQUARE330=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7385); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE330);
// AST REWRITE
// elements: RSQUARE, typeQualifierList, assignmentExpression, LSQUARE, STATIC
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1081:6: -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression RSQUARE )
{
// CivlCParser.g:1081: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:1083:8: typeQualifierList_opt STAR RSQUARE
{
pushFollow(FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7425);
typeQualifierList_opt331=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt331.getTree());
STAR332=(Token)match(input,STAR,FOLLOW_STAR_in_directDeclaratorArraySuffix7427); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR332);
RSQUARE333=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7429); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE333);
// AST REWRITE
// elements: LSQUARE, STAR, RSQUARE, 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();
// 1084:6: -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt STAR RSQUARE )
{
// CivlCParser.g:1084: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:1095: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 LPAREN334=null;
Token RPAREN336=null;
Token RPAREN338=null;
Token RPAREN339=null;
ParserRuleReturnScope parameterTypeList335 =null;
ParserRuleReturnScope identifierList337 =null;
Object LPAREN334_tree=null;
Object RPAREN336_tree=null;
Object RPAREN338_tree=null;
Object RPAREN339_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().typedefNameUsed = false;
try {
// CivlCParser.g:1101:2: ( LPAREN ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | identifierList RPAREN -> ^( FUNCTION_SUFFIX LPAREN identifierList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) ) )
// CivlCParser.g:1101:4: LPAREN ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | identifierList RPAREN -> ^( FUNCTION_SUFFIX LPAREN identifierList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) )
{
LPAREN334=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directDeclaratorFunctionSuffix7488); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN334);
// CivlCParser.g:1102:4: ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | identifierList RPAREN -> ^( FUNCTION_SUFFIX LPAREN identifierList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) )
int alt84=3;
alt84 = dfa84.predict(input);
switch (alt84) {
case 1 :
// CivlCParser.g:1102:6: parameterTypeList RPAREN
{
pushFollow(FOLLOW_parameterTypeList_in_directDeclaratorFunctionSuffix7495);
parameterTypeList335=parameterTypeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameterTypeList.add(parameterTypeList335.getTree());
RPAREN336=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7497); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN336);
// 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();
// 1103:6: -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN )
{
// CivlCParser.g:1103: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:1104:6: identifierList RPAREN
{
pushFollow(FOLLOW_identifierList_in_directDeclaratorFunctionSuffix7522);
identifierList337=identifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_identifierList.add(identifierList337.getTree());
RPAREN338=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7524); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN338);
// 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();
// 1105:6: -> ^( FUNCTION_SUFFIX LPAREN identifierList RPAREN )
{
// CivlCParser.g:1105: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:1106:6: RPAREN
{
RPAREN339=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7548); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN339);
// 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();
// 1106:13: -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN )
{
// CivlCParser.g:1106: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:1114: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 typeQualifier340 =null;
RewriteRuleSubtreeStream stream_typeQualifier=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifier");
try {
// CivlCParser.g:1115:2: ( ( typeQualifier )* -> ^( TYPE_QUALIFIER_LIST ( typeQualifier )* ) )
// CivlCParser.g:1115:4: ( typeQualifier )*
{
// CivlCParser.g:1115:4: ( typeQualifier )*
loop85:
while (true) {
int alt85=2;
int LA85_0 = input.LA(1);
if ( (LA85_0==ATOMIC||LA85_0==CONST||LA85_0==INPUT||LA85_0==OUTPUT||LA85_0==RESTRICT||LA85_0==VOLATILE) ) {
alt85=1;
}
switch (alt85) {
case 1 :
// CivlCParser.g:1115:4: typeQualifier
{
pushFollow(FOLLOW_typeQualifier_in_typeQualifierList_opt7578);
typeQualifier340=typeQualifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifier.add(typeQualifier340.getTree());
}
break;
default :
break loop85;
}
}
// 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();
// 1115:19: -> ^( TYPE_QUALIFIER_LIST ( typeQualifier )* )
{
// CivlCParser.g:1115: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:1115: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:1121: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 assignmentExpression341 =null;
try {
// CivlCParser.g:1122:2: ( -> ABSENT | assignmentExpression )
int alt86=2;
int LA86_0 = input.LA(1);
if ( (LA86_0==RSQUARE) ) {
alt86=1;
}
else if ( (LA86_0==AMPERSAND||LA86_0==CHARACTER_CONSTANT||LA86_0==ELLIPSIS||LA86_0==FLOATING_CONSTANT||LA86_0==IDENTIFIER||LA86_0==INTEGER_CONSTANT||LA86_0==LPAREN||LA86_0==MINUSMINUS||LA86_0==NOT||LA86_0==PLUS||LA86_0==PLUSPLUS||LA86_0==STAR||(LA86_0 >= STRING_LITERAL && LA86_0 <= SUB)||LA86_0==TILDE||LA86_0==ALIGNOF||LA86_0==BIG_O||LA86_0==CALLS||LA86_0==DERIV||LA86_0==GENERIC||LA86_0==HERE||LA86_0==PROCNULL||LA86_0==RESULT||(LA86_0 >= SCOPEOF && LA86_0 <= SELF)||(LA86_0 >= SIZEOF && LA86_0 <= SPAWN)||LA86_0==STATE_NULL||LA86_0==VALUE_AT) ) {
alt86=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 86, 0, input);
throw nvae;
}
switch (alt86) {
case 1 :
// CivlCParser.g:1122: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();
// 1122:5: -> ABSENT
{
adaptor.addChild(root_0, (Object)adaptor.create(ABSENT, "ABSENT"));
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1123:4: assignmentExpression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression_opt7609);
assignmentExpression341=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assignmentExpression341.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:1130: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_part342 =null;
RewriteRuleSubtreeStream stream_pointer_part=new RewriteRuleSubtreeStream(adaptor,"rule pointer_part");
try {
// CivlCParser.g:1131:5: ( ( pointer_part )+ -> ^( POINTER ( pointer_part )+ ) )
// CivlCParser.g:1131:7: ( pointer_part )+
{
// CivlCParser.g:1131:7: ( pointer_part )+
int cnt87=0;
loop87:
while (true) {
int alt87=2;
int LA87_0 = input.LA(1);
if ( (LA87_0==STAR) ) {
alt87=1;
}
switch (alt87) {
case 1 :
// CivlCParser.g:1131:7: pointer_part
{
pushFollow(FOLLOW_pointer_part_in_pointer7625);
pointer_part342=pointer_part();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer_part.add(pointer_part342.getTree());
}
break;
default :
if ( cnt87 >= 1 ) break loop87;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(87, input);
throw eee;
}
cnt87++;
}
// 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();
// 1131:21: -> ^( POINTER ( pointer_part )+ )
{
// CivlCParser.g:1131: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:1138: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 STAR343=null;
ParserRuleReturnScope typeQualifierList_opt344 =null;
Object STAR343_tree=null;
RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR");
RewriteRuleSubtreeStream stream_typeQualifierList_opt=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifierList_opt");
try {
// CivlCParser.g:1139:2: ( STAR typeQualifierList_opt -> ^( STAR typeQualifierList_opt ) )
// CivlCParser.g:1139:4: STAR typeQualifierList_opt
{
STAR343=(Token)match(input,STAR,FOLLOW_STAR_in_pointer_part7651); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR343);
pushFollow(FOLLOW_typeQualifierList_opt_in_pointer_part7653);
typeQualifierList_opt344=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt344.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();
// 1140:2: -> ^( STAR typeQualifierList_opt )
{
// CivlCParser.g:1140:5: ^( 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:1147: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 typeQualifier345 =null;
RewriteRuleSubtreeStream stream_typeQualifier=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifier");
try {
// CivlCParser.g:1148:5: ( ( typeQualifier )+ -> ^( TYPE_QUALIFIER_LIST ( typeQualifier )+ ) )
// CivlCParser.g:1148:7: ( typeQualifier )+
{
// CivlCParser.g:1148:7: ( typeQualifier )+
int cnt88=0;
loop88:
while (true) {
int alt88=2;
int LA88_0 = input.LA(1);
if ( (LA88_0==ATOMIC||LA88_0==CONST||LA88_0==INPUT||LA88_0==OUTPUT||LA88_0==RESTRICT||LA88_0==VOLATILE) ) {
alt88=1;
}
switch (alt88) {
case 1 :
// CivlCParser.g:1148:7: typeQualifier
{
pushFollow(FOLLOW_typeQualifier_in_typeQualifierList7678);
typeQualifier345=typeQualifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifier.add(typeQualifier345.getTree());
}
break;
default :
if ( cnt88 >= 1 ) break loop88;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(88, input);
throw eee;
}
cnt88++;
}
// 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();
// 1148:22: -> ^( TYPE_QUALIFIER_LIST ( typeQualifier )+ )
{
// CivlCParser.g:1148: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:1162: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 parameterTypeListWithoutScope346 =null;
ParserRuleReturnScope parameterTypeListWithScope347 =null;
try {
// CivlCParser.g:1163:2: ({...}? parameterTypeListWithoutScope | parameterTypeListWithScope )
int alt89=2;
switch ( input.LA(1) ) {
case TYPEDEF:
{
int LA89_1 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case AUTO:
case EXTERN:
case REGISTER:
case SHARED:
case STATIC:
case THREADLOCAL:
{
int LA89_2 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case VOID:
{
int LA89_3 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
{
int LA89_4 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SHORT:
{
int LA89_5 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INT:
{
int LA89_6 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case LONG:
{
int LA89_7 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FLOAT:
{
int LA89_8 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOUBLE:
{
int LA89_9 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 9, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SIGNED:
{
int LA89_10 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case UNSIGNED:
{
int LA89_11 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 11, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case BOOL:
{
int LA89_12 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 12, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case COMPLEX:
{
int LA89_13 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 13, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case REAL:
{
int LA89_14 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 14, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case RANGE:
{
int LA89_15 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 15, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ATOMIC:
{
int LA89_16 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 16, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case STRUCT:
case UNION:
{
int LA89_17 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 17, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ENUM:
{
int LA89_18 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 18, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENTIFIER:
{
int LA89_19 = input.LA(2);
if ( ((((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText())))&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText())))) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 19, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOMAIN:
{
int LA89_20 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 20, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case TYPEOF:
{
int LA89_21 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 21, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case MEM_TYPE:
{
int LA89_22 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 22, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CONST:
case INPUT:
case OUTPUT:
case RESTRICT:
case VOLATILE:
{
int LA89_23 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 23, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INLINE:
{
int LA89_24 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 24, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case NORETURN:
{
int LA89_25 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 25, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ABSTRACT:
{
int LA89_26 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 26, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PURE:
{
int LA89_27 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 27, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case STATE_F:
{
int LA89_28 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 28, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SYSTEM:
{
int LA89_29 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 29, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FATOMIC:
{
int LA89_30 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 30, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DEVICE:
{
int LA89_31 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 31, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case GLOBAL:
{
int LA89_32 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 32, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DIFFERENTIABLE:
{
int LA89_33 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 33, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ALIGNAS:
{
int LA89_34 = input.LA(2);
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(Symbols_stack.peek().isFunctionDefinition))) ) {
alt89=1;
}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 89, 34, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 89, 0, input);
throw nvae;
}
switch (alt89) {
case 1 :
// CivlCParser.g:1163: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_parameterTypeList7707);
parameterTypeListWithoutScope346=parameterTypeListWithoutScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parameterTypeListWithoutScope346.getTree());
}
break;
case 2 :
// CivlCParser.g:1164:4: parameterTypeListWithScope
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_parameterTypeListWithScope_in_parameterTypeList7712);
parameterTypeListWithScope347=parameterTypeListWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parameterTypeListWithScope347.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:1167: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 parameterTypeListWithoutScope348 =null;
Symbols_stack.peek().types = new HashSet<String>();
Symbols_stack.peek().enumerationConstants = new HashSet<String>();
Symbols_stack.peek().isFunctionDefinition = false;
try {
// CivlCParser.g:1174:2: ( parameterTypeListWithoutScope )
// CivlCParser.g:1174:4: parameterTypeListWithoutScope
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_parameterTypeListWithoutScope_in_parameterTypeListWithScope7733);
parameterTypeListWithoutScope348=parameterTypeListWithoutScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parameterTypeListWithoutScope348.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:1177: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 COMMA350=null;
Token ELLIPSIS351=null;
ParserRuleReturnScope parameterList349 =null;
Object COMMA350_tree=null;
Object ELLIPSIS351_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:1178:5: ( parameterList ( -> ^( PARAMETER_TYPE_LIST parameterList ABSENT ) | COMMA ELLIPSIS -> ^( PARAMETER_TYPE_LIST parameterList ELLIPSIS ) ) )
// CivlCParser.g:1178:7: parameterList ( -> ^( PARAMETER_TYPE_LIST parameterList ABSENT ) | COMMA ELLIPSIS -> ^( PARAMETER_TYPE_LIST parameterList ELLIPSIS ) )
{
pushFollow(FOLLOW_parameterList_in_parameterTypeListWithoutScope7747);
parameterList349=parameterList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameterList.add(parameterList349.getTree());
// CivlCParser.g:1179:7: ( -> ^( PARAMETER_TYPE_LIST parameterList ABSENT ) | COMMA ELLIPSIS -> ^( PARAMETER_TYPE_LIST parameterList ELLIPSIS ) )
int alt90=2;
int LA90_0 = input.LA(1);
if ( (LA90_0==RPAREN) ) {
alt90=1;
}
else if ( (LA90_0==COMMA) ) {
alt90=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 90, 0, input);
throw nvae;
}
switch (alt90) {
case 1 :
// CivlCParser.g:1179: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();
// 1179:9: -> ^( PARAMETER_TYPE_LIST parameterList ABSENT )
{
// CivlCParser.g:1179: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:1180:9: COMMA ELLIPSIS
{
COMMA350=(Token)match(input,COMMA,FOLLOW_COMMA_in_parameterTypeListWithoutScope7775); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA350);
ELLIPSIS351=(Token)match(input,ELLIPSIS,FOLLOW_ELLIPSIS_in_parameterTypeListWithoutScope7777); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ELLIPSIS.add(ELLIPSIS351);
// 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();
// 1181:9: -> ^( PARAMETER_TYPE_LIST parameterList ELLIPSIS )
{
// CivlCParser.g:1181: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:1189: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 COMMA353=null;
ParserRuleReturnScope parameterDeclaration352 =null;
ParserRuleReturnScope parameterDeclaration354 =null;
Object COMMA353_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_parameterDeclaration=new RewriteRuleSubtreeStream(adaptor,"rule parameterDeclaration");
try {
// CivlCParser.g:1190:5: ( parameterDeclaration ( COMMA parameterDeclaration )* -> ^( PARAMETER_LIST ( parameterDeclaration )+ ) )
// CivlCParser.g:1190:7: parameterDeclaration ( COMMA parameterDeclaration )*
{
pushFollow(FOLLOW_parameterDeclaration_in_parameterList7822);
parameterDeclaration352=parameterDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameterDeclaration.add(parameterDeclaration352.getTree());
// CivlCParser.g:1190:28: ( COMMA parameterDeclaration )*
loop91:
while (true) {
int alt91=2;
int LA91_0 = input.LA(1);
if ( (LA91_0==COMMA) ) {
int LA91_2 = input.LA(2);
if ( (LA91_2==IDENTIFIER||(LA91_2 >= ABSTRACT && LA91_2 <= ALIGNAS)||(LA91_2 >= ATOMIC && LA91_2 <= AUTO)||LA91_2==BOOL||LA91_2==CHAR||(LA91_2 >= COMPLEX && LA91_2 <= CONST)||(LA91_2 >= DEVICE && LA91_2 <= DIFFERENTIABLE)||(LA91_2 >= DOMAIN && LA91_2 <= DOUBLE)||LA91_2==ENUM||(LA91_2 >= EXTERN && LA91_2 <= FATOMIC)||LA91_2==FLOAT||LA91_2==GLOBAL||(LA91_2 >= INLINE && LA91_2 <= INT)||(LA91_2 >= LONG && LA91_2 <= NORETURN)||LA91_2==OUTPUT||(LA91_2 >= PURE && LA91_2 <= RANGE)||(LA91_2 >= REAL && LA91_2 <= REGISTER)||LA91_2==RESTRICT||(LA91_2 >= SHARED && LA91_2 <= SIGNED)||LA91_2==STATE_F||LA91_2==STATIC||LA91_2==STRUCT||LA91_2==SYSTEM||(LA91_2 >= THREADLOCAL && LA91_2 <= TYPEOF)||(LA91_2 >= UNION && LA91_2 <= UNSIGNED)||(LA91_2 >= VOID && LA91_2 <= VOLATILE)) ) {
alt91=1;
}
}
switch (alt91) {
case 1 :
// CivlCParser.g:1190:29: COMMA parameterDeclaration
{
COMMA353=(Token)match(input,COMMA,FOLLOW_COMMA_in_parameterList7825); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA353);
pushFollow(FOLLOW_parameterDeclaration_in_parameterList7827);
parameterDeclaration354=parameterDeclaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameterDeclaration.add(parameterDeclaration354.getTree());
}
break;
default :
break loop91;
}
}
// 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();
// 1191:7: -> ^( PARAMETER_LIST ( parameterDeclaration )+ )
{
// CivlCParser.g:1191: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:1199: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 declarationSpecifiers355 =null;
ParserRuleReturnScope declaratorOrAbstractDeclarator356 =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().typedefNameUsed = false;
//System.err.println("parameter declaration start");
try {
// CivlCParser.g:1206:5: ( declarationSpecifiers ( -> ^( PARAMETER_DECLARATION declarationSpecifiers ABSENT ) | declaratorOrAbstractDeclarator -> ^( PARAMETER_DECLARATION declarationSpecifiers declaratorOrAbstractDeclarator ) ) )
// CivlCParser.g:1206:7: declarationSpecifiers ( -> ^( PARAMETER_DECLARATION declarationSpecifiers ABSENT ) | declaratorOrAbstractDeclarator -> ^( PARAMETER_DECLARATION declarationSpecifiers declaratorOrAbstractDeclarator ) )
{
pushFollow(FOLLOW_declarationSpecifiers_in_parameterDeclaration7873);
declarationSpecifiers355=declarationSpecifiers();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers355.getTree());
// CivlCParser.g:1207:7: ( -> ^( PARAMETER_DECLARATION declarationSpecifiers ABSENT ) | declaratorOrAbstractDeclarator -> ^( PARAMETER_DECLARATION declarationSpecifiers declaratorOrAbstractDeclarator ) )
int alt92=2;
int LA92_0 = input.LA(1);
if ( (LA92_0==COMMA||LA92_0==RPAREN) ) {
alt92=1;
}
else if ( (LA92_0==IDENTIFIER||LA92_0==LPAREN||LA92_0==LSQUARE||LA92_0==STAR) ) {
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:1207:9:
{
// 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();
// 1207:9: -> ^( PARAMETER_DECLARATION declarationSpecifiers ABSENT )
{
// CivlCParser.g:1207:12: ^( 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:1208:9: declaratorOrAbstractDeclarator
{
pushFollow(FOLLOW_declaratorOrAbstractDeclarator_in_parameterDeclaration7901);
declaratorOrAbstractDeclarator356=declaratorOrAbstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaratorOrAbstractDeclarator.add(declaratorOrAbstractDeclarator356.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();
// 1209:9: -> ^( PARAMETER_DECLARATION declarationSpecifiers declaratorOrAbstractDeclarator )
{
// CivlCParser.g:1209:12: ^( 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:1217: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 declarator357 =null;
ParserRuleReturnScope abstractDeclarator358 =null;
try {
// CivlCParser.g:1218:2: ( ( declarator )=> declarator | abstractDeclarator )
int alt93=2;
int LA93_0 = input.LA(1);
if ( (LA93_0==IDENTIFIER) && (synpred29_CivlCParser())) {
alt93=1;
}
else if ( (LA93_0==LPAREN) ) {
int LA93_2 = input.LA(2);
if ( (synpred29_CivlCParser()) ) {
alt93=1;
}
else if ( (true) ) {
alt93=2;
}
}
else if ( (LA93_0==STAR) ) {
int LA93_3 = input.LA(2);
if ( (synpred29_CivlCParser()) ) {
alt93=1;
}
else if ( (true) ) {
alt93=2;
}
}
else if ( (LA93_0==LSQUARE) ) {
alt93=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 93, 0, input);
throw nvae;
}
switch (alt93) {
case 1 :
// CivlCParser.g:1218:4: ( declarator )=> declarator
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_declarator_in_declaratorOrAbstractDeclarator7962);
declarator357=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declarator357.getTree());
}
break;
case 2 :
// CivlCParser.g:1219:4: abstractDeclarator
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_abstractDeclarator_in_declaratorOrAbstractDeclarator7967);
abstractDeclarator358=abstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractDeclarator358.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:1227: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 IDENTIFIER359=null;
Token COMMA360=null;
Token IDENTIFIER361=null;
Object IDENTIFIER359_tree=null;
Object COMMA360_tree=null;
Object IDENTIFIER361_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// CivlCParser.g:1228:5: ( IDENTIFIER ( COMMA IDENTIFIER )* -> ^( IDENTIFIER_LIST ( IDENTIFIER )+ ) )
// CivlCParser.g:1228:7: IDENTIFIER ( COMMA IDENTIFIER )*
{
IDENTIFIER359=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_identifierList7984); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER359);
// CivlCParser.g:1228:18: ( COMMA IDENTIFIER )*
loop94:
while (true) {
int alt94=2;
int LA94_0 = input.LA(1);
if ( (LA94_0==COMMA) ) {
alt94=1;
}
switch (alt94) {
case 1 :
// CivlCParser.g:1228:20: COMMA IDENTIFIER
{
COMMA360=(Token)match(input,COMMA,FOLLOW_COMMA_in_identifierList7988); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA360);
IDENTIFIER361=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_identifierList7990); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER361);
}
break;
default :
break loop94;
}
}
// 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();
// 1229:7: -> ^( IDENTIFIER_LIST ( IDENTIFIER )+ )
{
// CivlCParser.g:1229:10: ^( 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:1238: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 specifierQualifierList362 =null;
ParserRuleReturnScope abstractDeclarator363 =null;
RewriteRuleSubtreeStream stream_specifierQualifierList=new RewriteRuleSubtreeStream(adaptor,"rule specifierQualifierList");
RewriteRuleSubtreeStream stream_abstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule abstractDeclarator");
try {
// CivlCParser.g:1239:5: ( specifierQualifierList ( -> ^( TYPE_NAME specifierQualifierList ABSENT ) | abstractDeclarator -> ^( TYPE_NAME specifierQualifierList abstractDeclarator ) ) )
// CivlCParser.g:1239:7: specifierQualifierList ( -> ^( TYPE_NAME specifierQualifierList ABSENT ) | abstractDeclarator -> ^( TYPE_NAME specifierQualifierList abstractDeclarator ) )
{
pushFollow(FOLLOW_specifierQualifierList_in_typeName8027);
specifierQualifierList362=specifierQualifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_specifierQualifierList.add(specifierQualifierList362.getTree());
// CivlCParser.g:1240:7: ( -> ^( TYPE_NAME specifierQualifierList ABSENT ) | abstractDeclarator -> ^( TYPE_NAME specifierQualifierList abstractDeclarator ) )
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==EOF||LA95_0==COLON||LA95_0==IDENTIFIER||LA95_0==RPAREN) ) {
alt95=1;
}
else if ( (LA95_0==LPAREN||LA95_0==LSQUARE||LA95_0==STAR) ) {
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:1240: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();
// 1240:9: -> ^( TYPE_NAME specifierQualifierList ABSENT )
{
// CivlCParser.g:1240: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:1241:9: abstractDeclarator
{
pushFollow(FOLLOW_abstractDeclarator_in_typeName8055);
abstractDeclarator363=abstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator363.getTree());
// AST REWRITE
// elements: specifierQualifierList, abstractDeclarator
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1242:9: -> ^( TYPE_NAME specifierQualifierList abstractDeclarator )
{
// CivlCParser.g:1242: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:1254: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 pointer364 =null;
ParserRuleReturnScope directAbstractDeclarator365 =null;
ParserRuleReturnScope pointer366 =null;
ParserRuleReturnScope directAbstractDeclarator367 =null;
RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer");
RewriteRuleSubtreeStream stream_directAbstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule directAbstractDeclarator");
try {
// CivlCParser.g:1255:5: ( pointer -> ^( ABSTRACT_DECLARATOR pointer ABSENT ) | directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator ) | pointer directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator ) )
int alt96=3;
alt96 = dfa96.predict(input);
switch (alt96) {
case 1 :
// CivlCParser.g:1255:7: pointer
{
pushFollow(FOLLOW_pointer_in_abstractDeclarator8100);
pointer364=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer364.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();
// 1256:7: -> ^( ABSTRACT_DECLARATOR pointer ABSENT )
{
// CivlCParser.g:1256: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:1257:7: directAbstractDeclarator
{
pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator8124);
directAbstractDeclarator365=directAbstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator365.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();
// 1258:7: -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator )
{
// CivlCParser.g:1258: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:1259:7: pointer directAbstractDeclarator
{
pushFollow(FOLLOW_pointer_in_abstractDeclarator8148);
pointer366=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer366.getTree());
pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator8150);
directAbstractDeclarator367=directAbstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator367.getTree());
// AST REWRITE
// elements: pointer, directAbstractDeclarator
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1260:7: -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator )
{
// CivlCParser.g:1260: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:1273: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 LPAREN368=null;
Token RPAREN370=null;
ParserRuleReturnScope abstractDeclarator369 =null;
ParserRuleReturnScope directAbstractDeclaratorSuffix371 =null;
ParserRuleReturnScope directAbstractDeclaratorSuffix372 =null;
Object LPAREN368_tree=null;
Object RPAREN370_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:1274:5: ( LPAREN abstractDeclarator RPAREN ( directAbstractDeclaratorSuffix )* -> ^( DIRECT_ABSTRACT_DECLARATOR abstractDeclarator ( directAbstractDeclaratorSuffix )* ) | ( directAbstractDeclaratorSuffix )+ -> ^( DIRECT_ABSTRACT_DECLARATOR ABSENT ( directAbstractDeclaratorSuffix )+ ) )
int alt99=2;
int LA99_0 = input.LA(1);
if ( (LA99_0==LPAREN) ) {
int LA99_1 = input.LA(2);
if ( (LA99_1==LPAREN||LA99_1==LSQUARE||LA99_1==STAR) ) {
alt99=1;
}
else if ( (LA99_1==IDENTIFIER||LA99_1==RPAREN||(LA99_1 >= ABSTRACT && LA99_1 <= ALIGNAS)||(LA99_1 >= ATOMIC && LA99_1 <= AUTO)||LA99_1==BOOL||LA99_1==CHAR||(LA99_1 >= COMPLEX && LA99_1 <= CONST)||(LA99_1 >= DEVICE && LA99_1 <= DIFFERENTIABLE)||(LA99_1 >= DOMAIN && LA99_1 <= DOUBLE)||LA99_1==ENUM||(LA99_1 >= EXTERN && LA99_1 <= FATOMIC)||LA99_1==FLOAT||LA99_1==GLOBAL||(LA99_1 >= INLINE && LA99_1 <= INT)||(LA99_1 >= LONG && LA99_1 <= NORETURN)||LA99_1==OUTPUT||(LA99_1 >= PURE && LA99_1 <= RANGE)||(LA99_1 >= REAL && LA99_1 <= REGISTER)||LA99_1==RESTRICT||(LA99_1 >= SHARED && LA99_1 <= SIGNED)||LA99_1==STATE_F||LA99_1==STATIC||LA99_1==STRUCT||LA99_1==SYSTEM||(LA99_1 >= THREADLOCAL && LA99_1 <= TYPEOF)||(LA99_1 >= UNION && LA99_1 <= UNSIGNED)||(LA99_1 >= VOID && LA99_1 <= VOLATILE)) ) {
alt99=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 99, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA99_0==LSQUARE) ) {
alt99=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 99, 0, input);
throw nvae;
}
switch (alt99) {
case 1 :
// CivlCParser.g:1274:7: LPAREN abstractDeclarator RPAREN ( directAbstractDeclaratorSuffix )*
{
LPAREN368=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directAbstractDeclarator8185); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN368);
pushFollow(FOLLOW_abstractDeclarator_in_directAbstractDeclarator8187);
abstractDeclarator369=abstractDeclarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator369.getTree());
RPAREN370=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directAbstractDeclarator8189); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN370);
// CivlCParser.g:1274:40: ( directAbstractDeclaratorSuffix )*
loop97:
while (true) {
int alt97=2;
int LA97_0 = input.LA(1);
if ( (LA97_0==LPAREN||LA97_0==LSQUARE) ) {
alt97=1;
}
switch (alt97) {
case 1 :
// CivlCParser.g:1274:40: directAbstractDeclaratorSuffix
{
pushFollow(FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator8191);
directAbstractDeclaratorSuffix371=directAbstractDeclaratorSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclaratorSuffix.add(directAbstractDeclaratorSuffix371.getTree());
}
break;
default :
break loop97;
}
}
// AST REWRITE
// elements: abstractDeclarator, directAbstractDeclaratorSuffix
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1275:7: -> ^( DIRECT_ABSTRACT_DECLARATOR abstractDeclarator ( directAbstractDeclaratorSuffix )* )
{
// CivlCParser.g:1275: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:1276: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:1277:7: ( directAbstractDeclaratorSuffix )+
{
// CivlCParser.g:1277:7: ( directAbstractDeclaratorSuffix )+
int cnt98=0;
loop98:
while (true) {
int alt98=2;
int LA98_0 = input.LA(1);
if ( (LA98_0==LPAREN||LA98_0==LSQUARE) ) {
alt98=1;
}
switch (alt98) {
case 1 :
// CivlCParser.g:1277:7: directAbstractDeclaratorSuffix
{
pushFollow(FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator8228);
directAbstractDeclaratorSuffix372=directAbstractDeclaratorSuffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_directAbstractDeclaratorSuffix.add(directAbstractDeclaratorSuffix372.getTree());
}
break;
default :
if ( cnt98 >= 1 ) break loop98;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(98, input);
throw eee;
}
cnt98++;
}
// 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();
// 1278:7: -> ^( DIRECT_ABSTRACT_DECLARATOR ABSENT ( directAbstractDeclaratorSuffix )+ )
{
// CivlCParser.g:1278: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:1302: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 IDENTIFIER373=null;
Object IDENTIFIER373_tree=null;
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// CivlCParser.g:1307:5: ({...}? IDENTIFIER -> ^( TYPEDEF_NAME IDENTIFIER ) )
// CivlCParser.g:1307:7: {...}? IDENTIFIER
{
if ( !((!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText()))) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "typedefName", "!$DeclarationScope::typedefNameUsed && isTypeName(input.LT(1).getText())");
}
IDENTIFIER373=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_typedefName8278); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER373);
// 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();
// 1309:7: -> ^( TYPEDEF_NAME IDENTIFIER )
{
// CivlCParser.g:1309: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);
}
if ( state.backtracking==0 ) {
if(!DeclarationScope_stack.peek().typedefNameUsed)
DeclarationScope_stack.peek().typedefNameUsed =true;
}
}
catch (RecognitionException re) {
reportError(re);
recover(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:1323: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 LSQUARE374=null;
Token RSQUARE377=null;
Token STATIC378=null;
Token RSQUARE381=null;
Token STATIC383=null;
Token RSQUARE385=null;
Token STAR386=null;
Token RSQUARE387=null;
Token LPAREN388=null;
Token RPAREN390=null;
Token RPAREN391=null;
ParserRuleReturnScope typeQualifierList_opt375 =null;
ParserRuleReturnScope assignmentExpression_opt376 =null;
ParserRuleReturnScope typeQualifierList_opt379 =null;
ParserRuleReturnScope assignmentExpression380 =null;
ParserRuleReturnScope typeQualifierList382 =null;
ParserRuleReturnScope assignmentExpression384 =null;
ParserRuleReturnScope parameterTypeList389 =null;
Object LSQUARE374_tree=null;
Object RSQUARE377_tree=null;
Object STATIC378_tree=null;
Object RSQUARE381_tree=null;
Object STATIC383_tree=null;
Object RSQUARE385_tree=null;
Object STAR386_tree=null;
Object RSQUARE387_tree=null;
Object LPAREN388_tree=null;
Object RPAREN390_tree=null;
Object RPAREN391_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:1324: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 alt102=2;
int LA102_0 = input.LA(1);
if ( (LA102_0==LSQUARE) ) {
alt102=1;
}
else if ( (LA102_0==LPAREN) ) {
alt102=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 102, 0, input);
throw nvae;
}
switch (alt102) {
case 1 :
// CivlCParser.g:1324: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 ) )
{
LSQUARE374=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_directAbstractDeclaratorSuffix8311); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE374);
// CivlCParser.g:1325: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 alt100=4;
alt100 = dfa100.predict(input);
switch (alt100) {
case 1 :
// CivlCParser.g:1325:9: typeQualifierList_opt assignmentExpression_opt RSQUARE
{
pushFollow(FOLLOW_typeQualifierList_opt_in_directAbstractDeclaratorSuffix8321);
typeQualifierList_opt375=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt375.getTree());
pushFollow(FOLLOW_assignmentExpression_opt_in_directAbstractDeclaratorSuffix8323);
assignmentExpression_opt376=assignmentExpression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression_opt.add(assignmentExpression_opt376.getTree());
RSQUARE377=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8325); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE377);
// 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();
// 1326:9: -> ^( ARRAY_SUFFIX LSQUARE ABSENT typeQualifierList_opt assignmentExpression_opt )
{
// CivlCParser.g:1326: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:1328:9: STATIC typeQualifierList_opt assignmentExpression RSQUARE
{
STATIC378=(Token)match(input,STATIC,FOLLOW_STATIC_in_directAbstractDeclaratorSuffix8370); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATIC.add(STATIC378);
pushFollow(FOLLOW_typeQualifierList_opt_in_directAbstractDeclaratorSuffix8372);
typeQualifierList_opt379=typeQualifierList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList_opt.add(typeQualifierList_opt379.getTree());
pushFollow(FOLLOW_assignmentExpression_in_directAbstractDeclaratorSuffix8374);
assignmentExpression380=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression380.getTree());
RSQUARE381=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8376); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE381);
// AST REWRITE
// elements: LSQUARE, assignmentExpression, STATIC, 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();
// 1329:9: -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList_opt assignmentExpression )
{
// CivlCParser.g:1329: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:1331:9: typeQualifierList STATIC assignmentExpression RSQUARE
{
pushFollow(FOLLOW_typeQualifierList_in_directAbstractDeclaratorSuffix8421);
typeQualifierList382=typeQualifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeQualifierList.add(typeQualifierList382.getTree());
STATIC383=(Token)match(input,STATIC,FOLLOW_STATIC_in_directAbstractDeclaratorSuffix8423); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATIC.add(STATIC383);
pushFollow(FOLLOW_assignmentExpression_in_directAbstractDeclaratorSuffix8425);
assignmentExpression384=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression384.getTree());
RSQUARE385=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8427); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE385);
// AST REWRITE
// elements: STATIC, assignmentExpression, LSQUARE, typeQualifierList
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1332:9: -> ^( ARRAY_SUFFIX LSQUARE STATIC typeQualifierList assignmentExpression )
{
// CivlCParser.g:1332: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:1333:9: STAR RSQUARE
{
STAR386=(Token)match(input,STAR,FOLLOW_STAR_in_directAbstractDeclaratorSuffix8459); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STAR.add(STAR386);
RSQUARE387=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8461); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE387);
// 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();
// 1334:9: -> ^( ARRAY_SUFFIX LSQUARE ABSENT ABSENT STAR )
{
// CivlCParser.g:1334: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:1336:7: LPAREN ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) )
{
LPAREN388=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directAbstractDeclaratorSuffix8499); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN388);
// CivlCParser.g:1337:7: ( parameterTypeList RPAREN -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN ) | RPAREN -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN ) )
int alt101=2;
int LA101_0 = input.LA(1);
if ( (LA101_0==IDENTIFIER||(LA101_0 >= ABSTRACT && LA101_0 <= ALIGNAS)||(LA101_0 >= ATOMIC && LA101_0 <= AUTO)||LA101_0==BOOL||LA101_0==CHAR||(LA101_0 >= COMPLEX && LA101_0 <= CONST)||(LA101_0 >= DEVICE && LA101_0 <= DIFFERENTIABLE)||(LA101_0 >= DOMAIN && LA101_0 <= DOUBLE)||LA101_0==ENUM||(LA101_0 >= EXTERN && LA101_0 <= FATOMIC)||LA101_0==FLOAT||LA101_0==GLOBAL||(LA101_0 >= INLINE && LA101_0 <= INT)||(LA101_0 >= LONG && LA101_0 <= NORETURN)||LA101_0==OUTPUT||(LA101_0 >= PURE && LA101_0 <= RANGE)||(LA101_0 >= REAL && LA101_0 <= REGISTER)||LA101_0==RESTRICT||(LA101_0 >= SHARED && LA101_0 <= SIGNED)||LA101_0==STATE_F||LA101_0==STATIC||LA101_0==STRUCT||LA101_0==SYSTEM||(LA101_0 >= THREADLOCAL && LA101_0 <= TYPEOF)||(LA101_0 >= UNION && LA101_0 <= UNSIGNED)||(LA101_0 >= VOID && LA101_0 <= VOLATILE)) ) {
alt101=1;
}
else if ( (LA101_0==RPAREN) ) {
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:1337:9: parameterTypeList RPAREN
{
pushFollow(FOLLOW_parameterTypeList_in_directAbstractDeclaratorSuffix8509);
parameterTypeList389=parameterTypeList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameterTypeList.add(parameterTypeList389.getTree());
RPAREN390=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directAbstractDeclaratorSuffix8511); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN390);
// AST REWRITE
// elements: RPAREN, parameterTypeList, 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();
// 1338:9: -> ^( FUNCTION_SUFFIX LPAREN parameterTypeList RPAREN )
{
// CivlCParser.g:1338: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:1339:9: RPAREN
{
RPAREN391=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directAbstractDeclaratorSuffix8541); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN391);
// 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();
// 1340:9: -> ^( FUNCTION_SUFFIX LPAREN ABSENT RPAREN )
{
// CivlCParser.g:1340: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:1345: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 LCURLY393=null;
Token RCURLY395=null;
Token COMMA396=null;
Token RCURLY397=null;
ParserRuleReturnScope assignmentExpression392 =null;
ParserRuleReturnScope initializerList394 =null;
Object LCURLY393_tree=null;
Object RCURLY395_tree=null;
Object COMMA396_tree=null;
Object RCURLY397_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:1346:5: ( assignmentExpression -> ^( SCALAR_INITIALIZER assignmentExpression ) | LCURLY initializerList ( RCURLY | COMMA RCURLY ) -> initializerList )
int alt104=2;
int LA104_0 = input.LA(1);
if ( (LA104_0==AMPERSAND||LA104_0==CHARACTER_CONSTANT||LA104_0==ELLIPSIS||LA104_0==FLOATING_CONSTANT||LA104_0==IDENTIFIER||LA104_0==INTEGER_CONSTANT||LA104_0==LPAREN||LA104_0==MINUSMINUS||LA104_0==NOT||LA104_0==PLUS||LA104_0==PLUSPLUS||LA104_0==STAR||(LA104_0 >= STRING_LITERAL && LA104_0 <= SUB)||LA104_0==TILDE||LA104_0==ALIGNOF||LA104_0==BIG_O||LA104_0==CALLS||LA104_0==DERIV||LA104_0==GENERIC||LA104_0==HERE||LA104_0==PROCNULL||LA104_0==RESULT||(LA104_0 >= SCOPEOF && LA104_0 <= SELF)||(LA104_0 >= SIZEOF && LA104_0 <= SPAWN)||LA104_0==STATE_NULL||LA104_0==VALUE_AT) ) {
alt104=1;
}
else if ( (LA104_0==LCURLY) ) {
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:1346:7: assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_initializer8588);
assignmentExpression392=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression392.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();
// 1346:28: -> ^( SCALAR_INITIALIZER assignmentExpression )
{
// CivlCParser.g:1346: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:1347:7: LCURLY initializerList ( RCURLY | COMMA RCURLY )
{
LCURLY393=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_initializer8604); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY393);
pushFollow(FOLLOW_initializerList_in_initializer8606);
initializerList394=initializerList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializerList.add(initializerList394.getTree());
// CivlCParser.g:1348:9: ( RCURLY | COMMA RCURLY )
int alt103=2;
int LA103_0 = input.LA(1);
if ( (LA103_0==RCURLY) ) {
alt103=1;
}
else if ( (LA103_0==COMMA) ) {
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:1348:13: RCURLY
{
RCURLY395=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_initializer8620); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY395);
}
break;
case 2 :
// CivlCParser.g:1349:13: COMMA RCURLY
{
COMMA396=(Token)match(input,COMMA,FOLLOW_COMMA_in_initializer8634); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA396);
RCURLY397=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_initializer8636); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY397);
}
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();
// 1351: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:1355: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 COMMA399=null;
ParserRuleReturnScope designatedInitializer398 =null;
ParserRuleReturnScope designatedInitializer400 =null;
Object COMMA399_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_designatedInitializer=new RewriteRuleSubtreeStream(adaptor,"rule designatedInitializer");
try {
// CivlCParser.g:1356:5: ( designatedInitializer ( COMMA designatedInitializer )* -> ^( INITIALIZER_LIST ( designatedInitializer )+ ) )
// CivlCParser.g:1356:7: designatedInitializer ( COMMA designatedInitializer )*
{
pushFollow(FOLLOW_designatedInitializer_in_initializerList8675);
designatedInitializer398=designatedInitializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designatedInitializer.add(designatedInitializer398.getTree());
// CivlCParser.g:1356:29: ( COMMA designatedInitializer )*
loop105:
while (true) {
int alt105=2;
int LA105_0 = input.LA(1);
if ( (LA105_0==COMMA) ) {
int LA105_2 = input.LA(2);
if ( (LA105_2==AMPERSAND||LA105_2==CHARACTER_CONSTANT||LA105_2==DOT||LA105_2==ELLIPSIS||LA105_2==FLOATING_CONSTANT||LA105_2==IDENTIFIER||LA105_2==INTEGER_CONSTANT||LA105_2==LCURLY||LA105_2==LPAREN||LA105_2==LSQUARE||LA105_2==MINUSMINUS||LA105_2==NOT||LA105_2==PLUS||LA105_2==PLUSPLUS||LA105_2==STAR||(LA105_2 >= STRING_LITERAL && LA105_2 <= SUB)||LA105_2==TILDE||LA105_2==ALIGNOF||LA105_2==BIG_O||LA105_2==CALLS||LA105_2==DERIV||LA105_2==GENERIC||LA105_2==HERE||LA105_2==PROCNULL||LA105_2==RESULT||(LA105_2 >= SCOPEOF && LA105_2 <= SELF)||(LA105_2 >= SIZEOF && LA105_2 <= SPAWN)||LA105_2==STATE_NULL||LA105_2==VALUE_AT) ) {
alt105=1;
}
}
switch (alt105) {
case 1 :
// CivlCParser.g:1356:30: COMMA designatedInitializer
{
COMMA399=(Token)match(input,COMMA,FOLLOW_COMMA_in_initializerList8678); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA399);
pushFollow(FOLLOW_designatedInitializer_in_initializerList8680);
designatedInitializer400=designatedInitializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designatedInitializer.add(designatedInitializer400.getTree());
}
break;
default :
break loop105;
}
}
// 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();
// 1357:7: -> ^( INITIALIZER_LIST ( designatedInitializer )+ )
{
// CivlCParser.g:1357: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:1360: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 initializer401 =null;
ParserRuleReturnScope designation402 =null;
ParserRuleReturnScope initializer403 =null;
RewriteRuleSubtreeStream stream_designation=new RewriteRuleSubtreeStream(adaptor,"rule designation");
RewriteRuleSubtreeStream stream_initializer=new RewriteRuleSubtreeStream(adaptor,"rule initializer");
try {
// CivlCParser.g:1361:2: ( initializer -> ^( DESIGNATED_INITIALIZER ABSENT initializer ) | designation initializer -> ^( DESIGNATED_INITIALIZER designation initializer ) )
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==LCURLY||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) ) {
alt106=1;
}
else if ( (LA106_0==DOT||LA106_0==LSQUARE) ) {
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:1361:4: initializer
{
pushFollow(FOLLOW_initializer_in_designatedInitializer8711);
initializer401=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(initializer401.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();
// 1362:4: -> ^( DESIGNATED_INITIALIZER ABSENT initializer )
{
// CivlCParser.g:1362: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:1363:4: designation initializer
{
pushFollow(FOLLOW_designation_in_designatedInitializer8729);
designation402=designation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designation.add(designation402.getTree());
pushFollow(FOLLOW_initializer_in_designatedInitializer8731);
initializer403=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(initializer403.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();
// 1364:4: -> ^( DESIGNATED_INITIALIZER designation initializer )
{
// CivlCParser.g:1364: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:1368: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 ASSIGN405=null;
ParserRuleReturnScope designatorList404 =null;
Object ASSIGN405_tree=null;
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_designatorList=new RewriteRuleSubtreeStream(adaptor,"rule designatorList");
try {
// CivlCParser.g:1369:5: ( designatorList ASSIGN -> ^( DESIGNATION designatorList ) )
// CivlCParser.g:1369:7: designatorList ASSIGN
{
pushFollow(FOLLOW_designatorList_in_designation8760);
designatorList404=designatorList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designatorList.add(designatorList404.getTree());
ASSIGN405=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_designation8762); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN405);
// 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();
// 1369:29: -> ^( DESIGNATION designatorList )
{
// CivlCParser.g:1369: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:1373: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 designator406 =null;
try {
// CivlCParser.g:1374:5: ( ( designator )+ )
// CivlCParser.g:1374:7: ( designator )+
{
root_0 = (Object)adaptor.nil();
// CivlCParser.g:1374:7: ( designator )+
int cnt107=0;
loop107:
while (true) {
int alt107=2;
int LA107_0 = input.LA(1);
if ( (LA107_0==DOT||LA107_0==LSQUARE) ) {
alt107=1;
}
switch (alt107) {
case 1 :
// CivlCParser.g:1374:7: designator
{
pushFollow(FOLLOW_designator_in_designatorList8789);
designator406=designator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, designator406.getTree());
}
break;
default :
if ( cnt107 >= 1 ) break loop107;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(107, input);
throw eee;
}
cnt107++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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:1378: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 LSQUARE407=null;
Token RSQUARE409=null;
Token DOT410=null;
Token IDENTIFIER411=null;
ParserRuleReturnScope constantExpression408 =null;
Object LSQUARE407_tree=null;
Object RSQUARE409_tree=null;
Object DOT410_tree=null;
Object IDENTIFIER411_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:1379:5: ( LSQUARE constantExpression RSQUARE -> ^( ARRAY_ELEMENT_DESIGNATOR constantExpression ) | DOT IDENTIFIER -> ^( FIELD_DESIGNATOR IDENTIFIER ) )
int alt108=2;
int LA108_0 = input.LA(1);
if ( (LA108_0==LSQUARE) ) {
alt108=1;
}
else if ( (LA108_0==DOT) ) {
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:1379:7: LSQUARE constantExpression RSQUARE
{
LSQUARE407=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_designator8809); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE407);
pushFollow(FOLLOW_constantExpression_in_designator8811);
constantExpression408=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression408.getTree());
RSQUARE409=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_designator8813); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE409);
// 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();
// 1380:7: -> ^( ARRAY_ELEMENT_DESIGNATOR constantExpression )
{
// CivlCParser.g:1380: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:1381:7: DOT IDENTIFIER
{
DOT410=(Token)match(input,DOT,FOLLOW_DOT_in_designator8835); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT410);
IDENTIFIER411=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_designator8837); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER411);
// 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();
// 1382:7: -> ^( FIELD_DESIGNATOR IDENTIFIER )
{
// CivlCParser.g:1382: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:1386: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 STATICASSERT412=null;
Token LPAREN413=null;
Token COMMA415=null;
Token STRING_LITERAL416=null;
Token RPAREN417=null;
Token SEMI418=null;
ParserRuleReturnScope constantExpression414 =null;
Object STATICASSERT412_tree=null;
Object LPAREN413_tree=null;
Object COMMA415_tree=null;
Object STRING_LITERAL416_tree=null;
Object RPAREN417_tree=null;
Object SEMI418_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:1387:5: ( STATICASSERT LPAREN constantExpression COMMA STRING_LITERAL RPAREN SEMI -> ^( STATICASSERT constantExpression STRING_LITERAL ) )
// CivlCParser.g:1387:7: STATICASSERT LPAREN constantExpression COMMA STRING_LITERAL RPAREN SEMI
{
STATICASSERT412=(Token)match(input,STATICASSERT,FOLLOW_STATICASSERT_in_staticAssertDeclaration8870); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STATICASSERT.add(STATICASSERT412);
LPAREN413=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_staticAssertDeclaration8872); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN413);
pushFollow(FOLLOW_constantExpression_in_staticAssertDeclaration8874);
constantExpression414=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression414.getTree());
COMMA415=(Token)match(input,COMMA,FOLLOW_COMMA_in_staticAssertDeclaration8876); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA415);
STRING_LITERAL416=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_staticAssertDeclaration8878); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL416);
RPAREN417=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_staticAssertDeclaration8886); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN417);
SEMI418=(Token)match(input,SEMI,FOLLOW_SEMI_in_staticAssertDeclaration8888); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI418);
// AST REWRITE
// elements: constantExpression, STATICASSERT, 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();
// 1389:7: -> ^( STATICASSERT constantExpression STRING_LITERAL )
{
// CivlCParser.g:1389: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:1393: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 DOMAIN419=null;
Token LPAREN420=null;
Token INTEGER_CONSTANT421=null;
Token RPAREN422=null;
Object DOMAIN419_tree=null;
Object LPAREN420_tree=null;
Object INTEGER_CONSTANT421_tree=null;
Object RPAREN422_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:1394:2: ( DOMAIN ( -> ^( DOMAIN ) | LPAREN INTEGER_CONSTANT RPAREN -> ^( DOMAIN INTEGER_CONSTANT RPAREN ) ) )
// CivlCParser.g:1394:4: DOMAIN ( -> ^( DOMAIN ) | LPAREN INTEGER_CONSTANT RPAREN -> ^( DOMAIN INTEGER_CONSTANT RPAREN ) )
{
DOMAIN419=(Token)match(input,DOMAIN,FOLLOW_DOMAIN_in_domainSpecifier8920); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOMAIN.add(DOMAIN419);
// CivlCParser.g:1395:4: ( -> ^( DOMAIN ) | LPAREN INTEGER_CONSTANT RPAREN -> ^( DOMAIN INTEGER_CONSTANT RPAREN ) )
int alt109=2;
int LA109_0 = input.LA(1);
if ( (LA109_0==EOF||(LA109_0 >= COLON && LA109_0 <= COMMA)||LA109_0==IDENTIFIER||LA109_0==LSQUARE||LA109_0==RPAREN||LA109_0==SEMI||LA109_0==STAR||(LA109_0 >= ABSTRACT && LA109_0 <= ALIGNAS)||(LA109_0 >= ATOMIC && LA109_0 <= AUTO)||LA109_0==BOOL||LA109_0==CHAR||(LA109_0 >= COMPLEX && LA109_0 <= CONST)||(LA109_0 >= DEVICE && LA109_0 <= DIFFERENTIABLE)||(LA109_0 >= DOMAIN && LA109_0 <= DOUBLE)||LA109_0==ENUM||(LA109_0 >= EXTERN && LA109_0 <= FATOMIC)||LA109_0==FLOAT||LA109_0==GLOBAL||(LA109_0 >= INLINE && LA109_0 <= INT)||(LA109_0 >= LONG && LA109_0 <= NORETURN)||LA109_0==OUTPUT||(LA109_0 >= PURE && LA109_0 <= RANGE)||(LA109_0 >= REAL && LA109_0 <= REGISTER)||LA109_0==RESTRICT||(LA109_0 >= SHARED && LA109_0 <= SIGNED)||LA109_0==STATE_F||LA109_0==STATIC||LA109_0==STRUCT||LA109_0==SYSTEM||(LA109_0 >= THREADLOCAL && LA109_0 <= TYPEOF)||(LA109_0 >= UNION && LA109_0 <= UNSIGNED)||(LA109_0 >= VOID && LA109_0 <= VOLATILE)) ) {
alt109=1;
}
else if ( (LA109_0==LPAREN) ) {
int LA109_2 = input.LA(2);
if ( (LA109_2==INTEGER_CONSTANT) ) {
alt109=2;
}
else if ( (LA109_2==IDENTIFIER||LA109_2==LPAREN||LA109_2==LSQUARE||LA109_2==RPAREN||LA109_2==STAR||(LA109_2 >= ABSTRACT && LA109_2 <= ALIGNAS)||(LA109_2 >= ATOMIC && LA109_2 <= AUTO)||LA109_2==BOOL||LA109_2==CHAR||(LA109_2 >= COMPLEX && LA109_2 <= CONST)||(LA109_2 >= DEVICE && LA109_2 <= DIFFERENTIABLE)||(LA109_2 >= DOMAIN && LA109_2 <= DOUBLE)||LA109_2==ENUM||(LA109_2 >= EXTERN && LA109_2 <= FATOMIC)||LA109_2==FLOAT||LA109_2==GLOBAL||(LA109_2 >= INLINE && LA109_2 <= INT)||(LA109_2 >= LONG && LA109_2 <= NORETURN)||LA109_2==OUTPUT||(LA109_2 >= PURE && LA109_2 <= RANGE)||(LA109_2 >= REAL && LA109_2 <= REGISTER)||LA109_2==RESTRICT||(LA109_2 >= SHARED && LA109_2 <= SIGNED)||LA109_2==STATE_F||LA109_2==STATIC||LA109_2==STRUCT||LA109_2==SYSTEM||(LA109_2 >= THREADLOCAL && LA109_2 <= TYPEOF)||(LA109_2 >= UNION && LA109_2 <= UNSIGNED)||(LA109_2 >= VOID && LA109_2 <= VOLATILE)) ) {
alt109=1;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 109, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 109, 0, input);
throw nvae;
}
switch (alt109) {
case 1 :
// CivlCParser.g:1395: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();
// 1395:6: -> ^( DOMAIN )
{
// CivlCParser.g:1395: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:1396:6: LPAREN INTEGER_CONSTANT RPAREN
{
LPAREN420=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_domainSpecifier8938); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN420);
INTEGER_CONSTANT421=(Token)match(input,INTEGER_CONSTANT,FOLLOW_INTEGER_CONSTANT_in_domainSpecifier8940); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INTEGER_CONSTANT.add(INTEGER_CONSTANT421);
RPAREN422=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_domainSpecifier8942); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN422);
// AST REWRITE
// elements: RPAREN, DOMAIN, 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();
// 1396:37: -> ^( DOMAIN INTEGER_CONSTANT RPAREN )
{
// CivlCParser.g:1396: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:1401: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_TYPE423=null;
Object MEM_TYPE423_tree=null;
RewriteRuleTokenStream stream_MEM_TYPE=new RewriteRuleTokenStream(adaptor,"token MEM_TYPE");
try {
// CivlCParser.g:1402:5: ( MEM_TYPE -> ^( MEM_TYPE ) )
// CivlCParser.g:1402:7: MEM_TYPE
{
MEM_TYPE423=(Token)match(input,MEM_TYPE,FOLLOW_MEM_TYPE_in_memSpecifier8973); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MEM_TYPE.add(MEM_TYPE423);
// 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();
// 1402:16: -> ^( MEM_TYPE )
{
// CivlCParser.g:1402: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:1408: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 labeledStatement424 =null;
ParserRuleReturnScope compoundStatement425 =null;
ParserRuleReturnScope expressionStatement426 =null;
ParserRuleReturnScope selectionStatement427 =null;
ParserRuleReturnScope iterationStatement428 =null;
ParserRuleReturnScope jumpStatement429 =null;
ParserRuleReturnScope whenStatement430 =null;
ParserRuleReturnScope chooseStatement431 =null;
ParserRuleReturnScope atomicStatement432 =null;
ParserRuleReturnScope runStatement433 =null;
ParserRuleReturnScope withStatement434 =null;
ParserRuleReturnScope updateStatement435 =null;
ParserRuleReturnScope asmStatement436 =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:1409: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 alt110=13;
switch ( input.LA(1) ) {
case IDENTIFIER:
{
int LA110_1 = input.LA(2);
if ( (LA110_1==COLON) ) {
alt110=1;
}
else if ( ((LA110_1 >= AMPERSAND && LA110_1 <= AND)||(LA110_1 >= ARROW && LA110_1 <= BITXOREQ)||LA110_1==COMMA||(LA110_1 >= DIV && LA110_1 <= DOTDOT)||LA110_1==EQUALS||(LA110_1 >= GT && LA110_1 <= GTE)||LA110_1==IMPLIES||LA110_1==LEXCON||LA110_1==LPAREN||(LA110_1 >= LSQUARE && LA110_1 <= LTE)||(LA110_1 >= MINUSMINUS && LA110_1 <= NEQ)||LA110_1==OR||(LA110_1 >= PLUS && LA110_1 <= PLUSPLUS)||LA110_1==QMARK||(LA110_1 >= SEMI && LA110_1 <= STAREQ)||(LA110_1 >= SUB && LA110_1 <= SUBEQ)) ) {
alt110=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 110, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CASE:
case DEFAULT:
{
alt110=1;
}
break;
case LCURLY:
{
alt110=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:
{
alt110=3;
}
break;
case IF:
case SWITCH:
{
alt110=4;
}
break;
case CIVLFOR:
case DO:
case FOR:
case PARFOR:
case WHILE:
{
alt110=5;
}
break;
case BREAK:
case CONTINUE:
case GOTO:
case RETURN:
{
alt110=6;
}
break;
case WHEN:
{
alt110=7;
}
break;
case CHOOSE:
{
alt110=8;
}
break;
case CIVLATOMIC:
{
alt110=9;
}
break;
case RUN:
{
alt110=10;
}
break;
case WITH:
{
alt110=11;
}
break;
case UPDATE:
{
alt110=12;
}
break;
case ASM:
{
alt110=13;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 110, 0, input);
throw nvae;
}
switch (alt110) {
case 1 :
// CivlCParser.g:1409:7: labeledStatement
{
pushFollow(FOLLOW_labeledStatement_in_statement8997);
labeledStatement424=labeledStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_labeledStatement.add(labeledStatement424.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();
// 1409:24: -> ^( STATEMENT labeledStatement )
{
// CivlCParser.g:1409: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:1410:7: compoundStatement
{
pushFollow(FOLLOW_compoundStatement_in_statement9013);
compoundStatement425=compoundStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_compoundStatement.add(compoundStatement425.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();
// 1410:25: -> ^( STATEMENT compoundStatement )
{
// CivlCParser.g:1410: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:1411:7: expressionStatement
{
pushFollow(FOLLOW_expressionStatement_in_statement9029);
expressionStatement426=expressionStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expressionStatement.add(expressionStatement426.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();
// 1411:27: -> ^( STATEMENT expressionStatement )
{
// CivlCParser.g:1411: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:1412:7: selectionStatement
{
pushFollow(FOLLOW_selectionStatement_in_statement9045);
selectionStatement427=selectionStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_selectionStatement.add(selectionStatement427.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();
// 1412:26: -> ^( STATEMENT selectionStatement )
{
// CivlCParser.g:1412: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:1413:7: iterationStatement
{
pushFollow(FOLLOW_iterationStatement_in_statement9061);
iterationStatement428=iterationStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_iterationStatement.add(iterationStatement428.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();
// 1413:26: -> ^( STATEMENT iterationStatement )
{
// CivlCParser.g:1413: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:1414:7: jumpStatement
{
pushFollow(FOLLOW_jumpStatement_in_statement9077);
jumpStatement429=jumpStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_jumpStatement.add(jumpStatement429.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();
// 1414:21: -> ^( STATEMENT jumpStatement )
{
// CivlCParser.g:1414: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:1415:7: whenStatement
{
pushFollow(FOLLOW_whenStatement_in_statement9093);
whenStatement430=whenStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_whenStatement.add(whenStatement430.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();
// 1415:21: -> ^( STATEMENT whenStatement )
{
// CivlCParser.g:1415: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:1416:7: chooseStatement
{
pushFollow(FOLLOW_chooseStatement_in_statement9109);
chooseStatement431=chooseStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_chooseStatement.add(chooseStatement431.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();
// 1416:23: -> ^( STATEMENT chooseStatement )
{
// CivlCParser.g:1416: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:1417:7: atomicStatement
{
pushFollow(FOLLOW_atomicStatement_in_statement9125);
atomicStatement432=atomicStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_atomicStatement.add(atomicStatement432.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();
// 1417:23: -> ^( STATEMENT atomicStatement )
{
// CivlCParser.g:1417: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:1418:7: runStatement
{
pushFollow(FOLLOW_runStatement_in_statement9141);
runStatement433=runStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_runStatement.add(runStatement433.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();
// 1418:20: -> ^( STATEMENT runStatement )
{
// CivlCParser.g:1418: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:1419:7: withStatement
{
pushFollow(FOLLOW_withStatement_in_statement9157);
withStatement434=withStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_withStatement.add(withStatement434.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();
// 1419:21: -> ^( STATEMENT withStatement )
{
// CivlCParser.g:1419: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:1420:7: updateStatement
{
pushFollow(FOLLOW_updateStatement_in_statement9173);
updateStatement435=updateStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_updateStatement.add(updateStatement435.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();
// 1420:23: -> ^( STATEMENT updateStatement )
{
// CivlCParser.g:1420: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:1421:7: asmStatement
{
pushFollow(FOLLOW_asmStatement_in_statement9189);
asmStatement436=asmStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_asmStatement.add(asmStatement436.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();
// 1421:20: -> ^( STATEMENT asmStatement )
{
// CivlCParser.g:1421: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:1424: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 statement437 =null;
ParserRuleReturnScope pragma438 =null;
ParserRuleReturnScope statement439 =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:1431:2: ( statement | ( pragma )+ statement -> ^( STATEMENT ^( COMPOUND_STATEMENT ABSENT ^( BLOCK_ITEM_LIST ( pragma )+ statement ) ABSENT ) ) )
int alt112=2;
int LA112_0 = input.LA(1);
if ( (LA112_0==AMPERSAND||LA112_0==CHARACTER_CONSTANT||LA112_0==ELLIPSIS||LA112_0==FLOATING_CONSTANT||(LA112_0 >= IDENTIFIER && LA112_0 <= IF)||LA112_0==INTEGER_CONSTANT||LA112_0==LCURLY||LA112_0==LPAREN||LA112_0==MINUSMINUS||LA112_0==NOT||LA112_0==PLUS||LA112_0==PLUSPLUS||LA112_0==SEMI||LA112_0==STAR||(LA112_0 >= STRING_LITERAL && LA112_0 <= SUB)||LA112_0==TILDE||(LA112_0 >= ALIGNOF && LA112_0 <= ASM)||LA112_0==BIG_O||(LA112_0 >= BREAK && LA112_0 <= CASE)||(LA112_0 >= CHOOSE && LA112_0 <= CIVLFOR)||(LA112_0 >= CONTINUE && LA112_0 <= DEFAULT)||LA112_0==DERIV||LA112_0==DO||LA112_0==EXISTS||(LA112_0 >= FOR && LA112_0 <= GENERIC)||LA112_0==GOTO||LA112_0==HERE||LA112_0==PARFOR||LA112_0==PROCNULL||(LA112_0 >= RESULT && LA112_0 <= SELF)||(LA112_0 >= SIZEOF && LA112_0 <= SPAWN)||LA112_0==STATE_NULL||LA112_0==SWITCH||LA112_0==UNIFORM||(LA112_0 >= UPDATE && LA112_0 <= VALUE_AT)||(LA112_0 >= WHEN && LA112_0 <= WITH)) ) {
alt112=1;
}
else if ( (LA112_0==PPRAGMA) ) {
alt112=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 112, 0, input);
throw nvae;
}
switch (alt112) {
case 1 :
// CivlCParser.g:1431:4: statement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statement_in_statementWithScope9221);
statement437=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement437.getTree());
}
break;
case 2 :
// CivlCParser.g:1432:4: ( pragma )+ statement
{
// CivlCParser.g:1432:4: ( pragma )+
int cnt111=0;
loop111:
while (true) {
int alt111=2;
int LA111_0 = input.LA(1);
if ( (LA111_0==PPRAGMA) ) {
alt111=1;
}
switch (alt111) {
case 1 :
// CivlCParser.g:1432:4: pragma
{
pushFollow(FOLLOW_pragma_in_statementWithScope9226);
pragma438=pragma();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pragma.add(pragma438.getTree());
}
break;
default :
if ( cnt111 >= 1 ) break loop111;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(111, input);
throw eee;
}
cnt111++;
}
pushFollow(FOLLOW_statement_in_statementWithScope9229);
statement439=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement439.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();
// 1432:22: -> ^( STATEMENT ^( COMPOUND_STATEMENT ABSENT ^( BLOCK_ITEM_LIST ( pragma )+ statement ) ABSENT ) )
{
// CivlCParser.g:1432: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:1432: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:1432: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:1451: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 IDENTIFIER440=null;
Token COLON441=null;
Token CASE443=null;
Token COLON445=null;
Token DEFAULT447=null;
Token COLON448=null;
ParserRuleReturnScope statement442 =null;
ParserRuleReturnScope constantExpression444 =null;
ParserRuleReturnScope statement446 =null;
ParserRuleReturnScope statement449 =null;
Object IDENTIFIER440_tree=null;
Object COLON441_tree=null;
Object CASE443_tree=null;
Object COLON445_tree=null;
Object DEFAULT447_tree=null;
Object COLON448_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:1452: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 alt113=3;
switch ( input.LA(1) ) {
case IDENTIFIER:
{
alt113=1;
}
break;
case CASE:
{
alt113=2;
}
break;
case DEFAULT:
{
alt113=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 113, 0, input);
throw nvae;
}
switch (alt113) {
case 1 :
// CivlCParser.g:1452:7: IDENTIFIER COLON statement
{
IDENTIFIER440=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_labeledStatement9268); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER440);
COLON441=(Token)match(input,COLON,FOLLOW_COLON_in_labeledStatement9270); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON441);
pushFollow(FOLLOW_statement_in_labeledStatement9272);
statement442=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement442.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();
// 1453:7: -> ^( IDENTIFIER_LABELED_STATEMENT IDENTIFIER statement )
{
// CivlCParser.g:1453: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:1454:7: CASE constantExpression COLON statement
{
CASE443=(Token)match(input,CASE,FOLLOW_CASE_in_labeledStatement9296); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CASE.add(CASE443);
pushFollow(FOLLOW_constantExpression_in_labeledStatement9298);
constantExpression444=constantExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constantExpression.add(constantExpression444.getTree());
COLON445=(Token)match(input,COLON,FOLLOW_COLON_in_labeledStatement9300); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON445);
pushFollow(FOLLOW_statement_in_labeledStatement9302);
statement446=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement446.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();
// 1455:7: -> ^( CASE_LABELED_STATEMENT CASE constantExpression statement )
{
// CivlCParser.g:1455: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:1456:7: DEFAULT COLON statement
{
DEFAULT447=(Token)match(input,DEFAULT,FOLLOW_DEFAULT_in_labeledStatement9328); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DEFAULT.add(DEFAULT447);
COLON448=(Token)match(input,COLON,FOLLOW_COLON_in_labeledStatement9330); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON448);
pushFollow(FOLLOW_statement_in_labeledStatement9332);
statement449=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement449.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();
// 1457:7: -> ^( DEFAULT_LABELED_STATEMENT DEFAULT statement )
{
// CivlCParser.g:1457: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:1466: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 LCURLY450=null;
Token RCURLY451=null;
Token RCURLY453=null;
ParserRuleReturnScope blockItemList452 =null;
Object LCURLY450_tree=null;
Object RCURLY451_tree=null;
Object RCURLY453_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().typedefNameUsed = false;
try {
// CivlCParser.g:1476:5: ( LCURLY ( RCURLY -> ^( COMPOUND_STATEMENT LCURLY ABSENT RCURLY ) | blockItemList RCURLY -> ^( COMPOUND_STATEMENT LCURLY blockItemList RCURLY ) ) )
// CivlCParser.g:1476:7: LCURLY ( RCURLY -> ^( COMPOUND_STATEMENT LCURLY ABSENT RCURLY ) | blockItemList RCURLY -> ^( COMPOUND_STATEMENT LCURLY blockItemList RCURLY ) )
{
LCURLY450=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_compoundStatement9382); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY450);
// CivlCParser.g:1477:7: ( RCURLY -> ^( COMPOUND_STATEMENT LCURLY ABSENT RCURLY ) | blockItemList RCURLY -> ^( COMPOUND_STATEMENT LCURLY blockItemList RCURLY ) )
int alt114=2;
int LA114_0 = input.LA(1);
if ( (LA114_0==RCURLY) ) {
alt114=1;
}
else if ( (LA114_0==AMPERSAND||LA114_0==ANNOTATION_START||LA114_0==CHARACTER_CONSTANT||LA114_0==ELLIPSIS||LA114_0==FLOATING_CONSTANT||(LA114_0 >= IDENTIFIER && LA114_0 <= IF)||LA114_0==INLINE_ANNOTATION_START||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 >= ABSTRACT && LA114_0 <= ASM)||(LA114_0 >= ATOMIC && LA114_0 <= BIG_O)||(LA114_0 >= BOOL && LA114_0 <= CASE)||(LA114_0 >= CHAR && LA114_0 <= CIVLFOR)||(LA114_0 >= COMPLEX && LA114_0 <= CONST)||(LA114_0 >= CONTINUE && LA114_0 <= DEFAULT)||(LA114_0 >= DERIV && LA114_0 <= DOUBLE)||(LA114_0 >= ENUM && LA114_0 <= EXISTS)||(LA114_0 >= EXTERN && LA114_0 <= FATOMIC)||(LA114_0 >= FLOAT && LA114_0 <= GOTO)||LA114_0==HERE||(LA114_0 >= INLINE && LA114_0 <= INT)||(LA114_0 >= LONG && LA114_0 <= NORETURN)||LA114_0==OUTPUT||LA114_0==PARFOR||(LA114_0 >= PPRAGMA && LA114_0 <= RANGE)||(LA114_0 >= REAL && LA114_0 <= REGISTER)||(LA114_0 >= RESTRICT && LA114_0 <= SELF)||(LA114_0 >= SHARED && LA114_0 <= SYSTEM)||(LA114_0 >= THREADLOCAL && LA114_0 <= WITH)) ) {
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:1477:9: RCURLY
{
RCURLY451=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_compoundStatement9392); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY451);
// 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();
// 1478:9: -> ^( COMPOUND_STATEMENT LCURLY ABSENT RCURLY )
{
// CivlCParser.g:1478: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:1479:9: blockItemList RCURLY
{
pushFollow(FOLLOW_blockItemList_in_compoundStatement9422);
blockItemList452=blockItemList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_blockItemList.add(blockItemList452.getTree());
RCURLY453=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_compoundStatement9424); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY453);
// AST REWRITE
// elements: blockItemList, RCURLY, 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();
// 1480:9: -> ^( COMPOUND_STATEMENT LCURLY blockItemList RCURLY )
{
// CivlCParser.g:1480: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:1485: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 blockItem454 =null;
RewriteRuleSubtreeStream stream_blockItem=new RewriteRuleSubtreeStream(adaptor,"rule blockItem");
try {
// CivlCParser.g:1486:5: ( ( blockItem )+ -> ^( BLOCK_ITEM_LIST ( blockItem )+ ) )
// CivlCParser.g:1486:7: ( blockItem )+
{
// CivlCParser.g:1486:7: ( blockItem )+
int cnt115=0;
loop115:
while (true) {
int alt115=2;
int LA115_0 = input.LA(1);
if ( (LA115_0==AMPERSAND||LA115_0==ANNOTATION_START||LA115_0==CHARACTER_CONSTANT||LA115_0==ELLIPSIS||LA115_0==FLOATING_CONSTANT||(LA115_0 >= IDENTIFIER && LA115_0 <= IF)||LA115_0==INLINE_ANNOTATION_START||LA115_0==INTEGER_CONSTANT||LA115_0==LCURLY||LA115_0==LPAREN||LA115_0==MINUSMINUS||LA115_0==NOT||LA115_0==PLUS||LA115_0==PLUSPLUS||LA115_0==SEMI||LA115_0==STAR||(LA115_0 >= STRING_LITERAL && LA115_0 <= SUB)||LA115_0==TILDE||(LA115_0 >= ABSTRACT && LA115_0 <= ASM)||(LA115_0 >= ATOMIC && LA115_0 <= BIG_O)||(LA115_0 >= BOOL && LA115_0 <= CASE)||(LA115_0 >= CHAR && LA115_0 <= CIVLFOR)||(LA115_0 >= COMPLEX && LA115_0 <= CONST)||(LA115_0 >= CONTINUE && LA115_0 <= DEFAULT)||(LA115_0 >= DERIV && LA115_0 <= DOUBLE)||(LA115_0 >= ENUM && LA115_0 <= EXISTS)||(LA115_0 >= EXTERN && LA115_0 <= FATOMIC)||(LA115_0 >= FLOAT && LA115_0 <= GOTO)||LA115_0==HERE||(LA115_0 >= INLINE && LA115_0 <= INT)||(LA115_0 >= LONG && LA115_0 <= NORETURN)||LA115_0==OUTPUT||LA115_0==PARFOR||(LA115_0 >= PPRAGMA && LA115_0 <= RANGE)||(LA115_0 >= REAL && LA115_0 <= REGISTER)||(LA115_0 >= RESTRICT && LA115_0 <= SELF)||(LA115_0 >= SHARED && LA115_0 <= SYSTEM)||(LA115_0 >= THREADLOCAL && LA115_0 <= WITH)) ) {
alt115=1;
}
switch (alt115) {
case 1 :
// CivlCParser.g:1486:7: blockItem
{
pushFollow(FOLLOW_blockItem_in_blockItemList9471);
blockItem454=blockItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_blockItem.add(blockItem454.getTree());
}
break;
default :
if ( cnt115 >= 1 ) break loop115;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(115, input);
throw eee;
}
cnt115++;
}
// 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();
// 1486:18: -> ^( BLOCK_ITEM_LIST ( blockItem )+ )
{
// CivlCParser.g:1486: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:1496: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 SEMI456=null;
Token SEMI457=null;
ParserRuleReturnScope expression455 =null;
Object SEMI456_tree=null;
Object SEMI457_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_expression=new RewriteRuleSubtreeStream(adaptor,"rule expression");
try {
// CivlCParser.g:1497:5: ( expression SEMI -> ^( EXPRESSION_STATEMENT expression SEMI ) | SEMI -> ^( EXPRESSION_STATEMENT ABSENT SEMI ) )
int alt116=2;
int LA116_0 = input.LA(1);
if ( (LA116_0==AMPERSAND||LA116_0==CHARACTER_CONSTANT||LA116_0==ELLIPSIS||LA116_0==FLOATING_CONSTANT||LA116_0==IDENTIFIER||LA116_0==INTEGER_CONSTANT||LA116_0==LPAREN||LA116_0==MINUSMINUS||LA116_0==NOT||LA116_0==PLUS||LA116_0==PLUSPLUS||LA116_0==STAR||(LA116_0 >= STRING_LITERAL && LA116_0 <= SUB)||LA116_0==TILDE||LA116_0==ALIGNOF||LA116_0==BIG_O||LA116_0==CALLS||LA116_0==DERIV||LA116_0==EXISTS||(LA116_0 >= FORALL && LA116_0 <= GENERIC)||LA116_0==HERE||LA116_0==PROCNULL||LA116_0==RESULT||(LA116_0 >= SCOPEOF && LA116_0 <= SELF)||(LA116_0 >= SIZEOF && LA116_0 <= SPAWN)||LA116_0==STATE_NULL||LA116_0==UNIFORM||LA116_0==VALUE_AT) ) {
alt116=1;
}
else if ( (LA116_0==SEMI) ) {
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:1497:7: expression SEMI
{
pushFollow(FOLLOW_expression_in_expressionStatement9502);
expression455=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression455.getTree());
SEMI456=(Token)match(input,SEMI,FOLLOW_SEMI_in_expressionStatement9504); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI456);
// 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();
// 1497:23: -> ^( EXPRESSION_STATEMENT expression SEMI )
{
// CivlCParser.g:1497: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:1498:7: SEMI
{
SEMI457=(Token)match(input,SEMI,FOLLOW_SEMI_in_expressionStatement9522); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI457);
// 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();
// 1498:12: -> ^( EXPRESSION_STATEMENT ABSENT SEMI )
{
// CivlCParser.g:1498: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:1513: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 IF458=null;
Token LPAREN459=null;
Token RPAREN461=null;
Token ELSE462=null;
Token SWITCH463=null;
Token LPAREN464=null;
Token RPAREN466=null;
ParserRuleReturnScope s1 =null;
ParserRuleReturnScope s2 =null;
ParserRuleReturnScope s =null;
ParserRuleReturnScope expression460 =null;
ParserRuleReturnScope expression465 =null;
Object IF458_tree=null;
Object LPAREN459_tree=null;
Object RPAREN461_tree=null;
Object ELSE462_tree=null;
Object SWITCH463_tree=null;
Object LPAREN464_tree=null;
Object RPAREN466_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:1520: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 alt118=2;
int LA118_0 = input.LA(1);
if ( (LA118_0==IF) ) {
alt118=1;
}
else if ( (LA118_0==SWITCH) ) {
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:1520:7: IF LPAREN expression RPAREN s1= statementWithScope ( ( ELSE )=> ELSE s2= statementWithScope -> ^( IF expression $s1 $s2) | -> ^( IF expression $s1 ABSENT ) )
{
IF458=(Token)match(input,IF,FOLLOW_IF_in_selectionStatement9561); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IF.add(IF458);
LPAREN459=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_selectionStatement9563); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN459);
pushFollow(FOLLOW_expression_in_selectionStatement9565);
expression460=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression460.getTree());
RPAREN461=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_selectionStatement9567); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN461);
pushFollow(FOLLOW_statementWithScope_in_selectionStatement9571);
s1=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s1.getTree());
// CivlCParser.g:1521:9: ( ( ELSE )=> ELSE s2= statementWithScope -> ^( IF expression $s1 $s2) | -> ^( IF expression $s1 ABSENT ) )
int alt117=2;
int LA117_0 = input.LA(1);
if ( (LA117_0==ELSE) ) {
int LA117_1 = input.LA(2);
if ( (synpred30_CivlCParser()) ) {
alt117=1;
}
else if ( (true) ) {
alt117=2;
}
}
else if ( (LA117_0==EOF||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==RCURLY||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)) ) {
alt117=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 117, 0, input);
throw nvae;
}
switch (alt117) {
case 1 :
// CivlCParser.g:1521:11: ( ELSE )=> ELSE s2= statementWithScope
{
ELSE462=(Token)match(input,ELSE,FOLLOW_ELSE_in_selectionStatement9588); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ELSE.add(ELSE462);
pushFollow(FOLLOW_statementWithScope_in_selectionStatement9592);
s2=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s2.getTree());
// AST REWRITE
// elements: s1, expression, s2, IF
// 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();
// 1522:11: -> ^( IF expression $s1 $s2)
{
// CivlCParser.g:1522: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:1523: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();
// 1523:11: -> ^( IF expression $s1 ABSENT )
{
// CivlCParser.g:1523: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:1525:7: SWITCH LPAREN expression RPAREN s= statementWithScope
{
SWITCH463=(Token)match(input,SWITCH,FOLLOW_SWITCH_in_selectionStatement9657); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SWITCH.add(SWITCH463);
LPAREN464=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_selectionStatement9659); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN464);
pushFollow(FOLLOW_expression_in_selectionStatement9661);
expression465=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression465.getTree());
RPAREN466=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_selectionStatement9663); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN466);
pushFollow(FOLLOW_statementWithScope_in_selectionStatement9667);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: SWITCH, expression, 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();
// 1526:7: -> ^( SWITCH expression $s)
{
// CivlCParser.g:1526: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:1548: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 WHILE467=null;
Token LPAREN468=null;
Token RPAREN470=null;
Token DO472=null;
Token WHILE473=null;
Token LPAREN474=null;
Token RPAREN476=null;
Token SEMI478=null;
Token FOR479=null;
Token LPAREN480=null;
Token SEMI481=null;
Token RPAREN482=null;
Token SEMI483=null;
Token SEMI484=null;
Token RPAREN485=null;
Token LPAREN486=null;
Token COLON487=null;
Token RPAREN488=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 expression469 =null;
ParserRuleReturnScope invariant_opt471 =null;
ParserRuleReturnScope expression475 =null;
ParserRuleReturnScope invariant_opt477 =null;
Object f_tree=null;
Object WHILE467_tree=null;
Object LPAREN468_tree=null;
Object RPAREN470_tree=null;
Object DO472_tree=null;
Object WHILE473_tree=null;
Object LPAREN474_tree=null;
Object RPAREN476_tree=null;
Object SEMI478_tree=null;
Object FOR479_tree=null;
Object LPAREN480_tree=null;
Object SEMI481_tree=null;
Object RPAREN482_tree=null;
Object SEMI483_tree=null;
Object SEMI484_tree=null;
Object RPAREN485_tree=null;
Object LPAREN486_tree=null;
Object COLON487_tree=null;
Object RPAREN488_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:1555: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 alt121=4;
switch ( input.LA(1) ) {
case WHILE:
{
alt121=1;
}
break;
case DO:
{
alt121=2;
}
break;
case FOR:
{
alt121=3;
}
break;
case CIVLFOR:
case PARFOR:
{
alt121=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 121, 0, input);
throw nvae;
}
switch (alt121) {
case 1 :
// CivlCParser.g:1555:4: WHILE LPAREN expression RPAREN invariant_opt s= statementWithScope
{
WHILE467=(Token)match(input,WHILE,FOLLOW_WHILE_in_iterationStatement9710); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WHILE.add(WHILE467);
LPAREN468=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_iterationStatement9712); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN468);
pushFollow(FOLLOW_expression_in_iterationStatement9714);
expression469=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression469.getTree());
RPAREN470=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_iterationStatement9716); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN470);
pushFollow(FOLLOW_invariant_opt_in_iterationStatement9718);
invariant_opt471=invariant_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_opt.add(invariant_opt471.getTree());
pushFollow(FOLLOW_statementWithScope_in_iterationStatement9725);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: invariant_opt, WHILE, s, 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();
// 1557:4: -> ^( WHILE expression $s invariant_opt )
{
// CivlCParser.g:1557: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:1558:4: DO s= statementWithScope WHILE LPAREN expression RPAREN invariant_opt SEMI
{
DO472=(Token)match(input,DO,FOLLOW_DO_in_iterationStatement9746); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DO.add(DO472);
pushFollow(FOLLOW_statementWithScope_in_iterationStatement9750);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
WHILE473=(Token)match(input,WHILE,FOLLOW_WHILE_in_iterationStatement9752); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WHILE.add(WHILE473);
LPAREN474=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_iterationStatement9754); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN474);
pushFollow(FOLLOW_expression_in_iterationStatement9756);
expression475=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression475.getTree());
RPAREN476=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_iterationStatement9758); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN476);
pushFollow(FOLLOW_invariant_opt_in_iterationStatement9763);
invariant_opt477=invariant_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_opt.add(invariant_opt477.getTree());
SEMI478=(Token)match(input,SEMI,FOLLOW_SEMI_in_iterationStatement9765); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI478);
// AST REWRITE
// elements: DO, expression, s, invariant_opt
// 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();
// 1560:4: -> ^( DO $s expression invariant_opt )
{
// CivlCParser.g:1560: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:1561: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) )
{
FOR479=(Token)match(input,FOR,FOLLOW_FOR_in_iterationStatement9786); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FOR.add(FOR479);
LPAREN480=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_iterationStatement9788); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN480);
// CivlCParser.g:1562: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 alt119=2;
alt119 = dfa119.predict(input);
switch (alt119) {
case 1 :
// CivlCParser.g:1563:6: d= declaration e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope
{
pushFollow(FOLLOW_declaration_in_iterationStatement9802);
d=declaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration.add(d.getTree());
pushFollow(FOLLOW_expression_opt_in_iterationStatement9806);
e1=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(e1.getTree());
SEMI481=(Token)match(input,SEMI,FOLLOW_SEMI_in_iterationStatement9808); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI481);
pushFollow(FOLLOW_expression_opt_in_iterationStatement9812);
e2=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(e2.getTree());
RPAREN482=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_iterationStatement9819); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN482);
pushFollow(FOLLOW_invariant_opt_in_iterationStatement9823);
i=invariant_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_opt.add(i.getTree());
pushFollow(FOLLOW_statementWithScope_in_iterationStatement9827);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: e1, i, e2, d, FOR, s
// 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();
// 1565:6: -> ^( FOR $d $e1 $e2 $s $i)
{
// CivlCParser.g:1565: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:1566:6: e0= expression_opt SEMI e1= expression_opt SEMI e2= expression_opt RPAREN i= invariant_opt s= statementWithScope
{
pushFollow(FOLLOW_expression_opt_in_iterationStatement9862);
e0=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(e0.getTree());
SEMI483=(Token)match(input,SEMI,FOLLOW_SEMI_in_iterationStatement9864); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI483);
pushFollow(FOLLOW_expression_opt_in_iterationStatement9868);
e1=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(e1.getTree());
SEMI484=(Token)match(input,SEMI,FOLLOW_SEMI_in_iterationStatement9870); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI484);
pushFollow(FOLLOW_expression_opt_in_iterationStatement9879);
e2=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(e2.getTree());
RPAREN485=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_iterationStatement9881); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN485);
pushFollow(FOLLOW_invariant_opt_in_iterationStatement9885);
i=invariant_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_opt.add(i.getTree());
pushFollow(FOLLOW_statementWithScope_in_iterationStatement9894);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: s, FOR, e2, e0, e1, i
// 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();
// 1569:6: -> ^( FOR $e0 $e1 $e2 $s $i)
{
// CivlCParser.g:1569: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:1571:4: (f= CIVLFOR |f= PARFOR ) LPAREN t= typeName_opt v= identifierList COLON e= expression RPAREN i= invariant_opt s= statementWithScope
{
// CivlCParser.g:1571:4: (f= CIVLFOR |f= PARFOR )
int alt120=2;
int LA120_0 = input.LA(1);
if ( (LA120_0==CIVLFOR) ) {
alt120=1;
}
else if ( (LA120_0==PARFOR) ) {
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:1571:5: f= CIVLFOR
{
f=(Token)match(input,CIVLFOR,FOLLOW_CIVLFOR_in_iterationStatement9933); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CIVLFOR.add(f);
}
break;
case 2 :
// CivlCParser.g:1571:17: f= PARFOR
{
f=(Token)match(input,PARFOR,FOLLOW_PARFOR_in_iterationStatement9939); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PARFOR.add(f);
}
break;
}
LPAREN486=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_iterationStatement9942); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN486);
pushFollow(FOLLOW_typeName_opt_in_iterationStatement9951);
t=typeName_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_typeName_opt.add(t.getTree());
pushFollow(FOLLOW_identifierList_in_iterationStatement9955);
v=identifierList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_identifierList.add(v.getTree());
COLON487=(Token)match(input,COLON,FOLLOW_COLON_in_iterationStatement9957); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON487);
pushFollow(FOLLOW_expression_in_iterationStatement9961);
e=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(e.getTree());
RPAREN488=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_iterationStatement9963); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN488);
pushFollow(FOLLOW_invariant_opt_in_iterationStatement9972);
i=invariant_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_opt.add(i.getTree());
pushFollow(FOLLOW_statementWithScope_in_iterationStatement9976);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: v, s, i, f, e, t
// 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();
// 1574:6: -> ^( $f $t $v $e $s $i)
{
// CivlCParser.g:1574: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:1577: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 expression489 =null;
try {
// CivlCParser.g:1578:2: ( expression | -> ABSENT )
int alt122=2;
int LA122_0 = input.LA(1);
if ( (LA122_0==AMPERSAND||LA122_0==CHARACTER_CONSTANT||LA122_0==ELLIPSIS||LA122_0==FLOATING_CONSTANT||LA122_0==IDENTIFIER||LA122_0==INTEGER_CONSTANT||LA122_0==LPAREN||LA122_0==MINUSMINUS||LA122_0==NOT||LA122_0==PLUS||LA122_0==PLUSPLUS||LA122_0==STAR||(LA122_0 >= STRING_LITERAL && LA122_0 <= SUB)||LA122_0==TILDE||LA122_0==ALIGNOF||LA122_0==BIG_O||LA122_0==CALLS||LA122_0==DERIV||LA122_0==EXISTS||(LA122_0 >= FORALL && LA122_0 <= GENERIC)||LA122_0==HERE||LA122_0==PROCNULL||LA122_0==RESULT||(LA122_0 >= SCOPEOF && LA122_0 <= SELF)||(LA122_0 >= SIZEOF && LA122_0 <= SPAWN)||LA122_0==STATE_NULL||LA122_0==UNIFORM||LA122_0==VALUE_AT) ) {
alt122=1;
}
else if ( (LA122_0==RPAREN||LA122_0==SEMI) ) {
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:1578:4: expression
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_expression_in_expression_opt10014);
expression489=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expression489.getTree());
}
break;
case 2 :
// CivlCParser.g:1579: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();
// 1579: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:1582: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 INVARIANT490=null;
Token LPAREN491=null;
Token RPAREN493=null;
ParserRuleReturnScope expression492 =null;
Object INVARIANT490_tree=null;
Object LPAREN491_tree=null;
Object RPAREN493_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:1583:2: ( -> ABSENT | INVARIANT LPAREN expression RPAREN -> ^( INVARIANT expression ) )
int alt123=2;
int LA123_0 = input.LA(1);
if ( (LA123_0==AMPERSAND||LA123_0==CHARACTER_CONSTANT||LA123_0==ELLIPSIS||LA123_0==FLOATING_CONSTANT||(LA123_0 >= IDENTIFIER && LA123_0 <= IF)||LA123_0==INTEGER_CONSTANT||LA123_0==LCURLY||LA123_0==LPAREN||LA123_0==MINUSMINUS||LA123_0==NOT||LA123_0==PLUS||LA123_0==PLUSPLUS||LA123_0==SEMI||LA123_0==STAR||(LA123_0 >= STRING_LITERAL && LA123_0 <= SUB)||LA123_0==TILDE||(LA123_0 >= ALIGNOF && LA123_0 <= ASM)||LA123_0==BIG_O||(LA123_0 >= BREAK && LA123_0 <= CASE)||(LA123_0 >= CHOOSE && LA123_0 <= CIVLFOR)||(LA123_0 >= CONTINUE && LA123_0 <= DEFAULT)||LA123_0==DERIV||LA123_0==DO||LA123_0==EXISTS||(LA123_0 >= FOR && LA123_0 <= GENERIC)||LA123_0==GOTO||LA123_0==HERE||LA123_0==PARFOR||(LA123_0 >= PPRAGMA && LA123_0 <= PROCNULL)||(LA123_0 >= RESULT && LA123_0 <= SELF)||(LA123_0 >= SIZEOF && LA123_0 <= SPAWN)||LA123_0==STATE_NULL||LA123_0==SWITCH||LA123_0==UNIFORM||(LA123_0 >= UPDATE && LA123_0 <= VALUE_AT)||(LA123_0 >= WHEN && LA123_0 <= WITH)) ) {
alt123=1;
}
else if ( (LA123_0==INVARIANT) ) {
alt123=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 123, 0, input);
throw nvae;
}
switch (alt123) {
case 1 :
// CivlCParser.g:1583: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();
// 1583:4: -> ABSENT
{
adaptor.addChild(root_0, (Object)adaptor.create(ABSENT, "ABSENT"));
}
retval.tree = root_0;
}
}
break;
case 2 :
// CivlCParser.g:1584:4: INVARIANT LPAREN expression RPAREN
{
INVARIANT490=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_invariant_opt10039); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT490);
LPAREN491=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_invariant_opt10041); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN491);
pushFollow(FOLLOW_expression_in_invariant_opt10043);
expression492=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression492.getTree());
RPAREN493=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_invariant_opt10045); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN493);
// AST REWRITE
// elements: INVARIANT, 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();
// 1585:3: -> ^( INVARIANT expression )
{
// CivlCParser.g:1585: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:1588: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 typeName494 =null;
try {
// CivlCParser.g:1589:2: ( typeName | -> ABSENT )
int alt124=2;
int LA124_0 = input.LA(1);
if ( (LA124_0==ATOMIC||LA124_0==BOOL||LA124_0==CHAR||(LA124_0 >= COMPLEX && LA124_0 <= CONST)||(LA124_0 >= DOMAIN && LA124_0 <= DOUBLE)||LA124_0==ENUM||LA124_0==FLOAT||(LA124_0 >= INPUT && LA124_0 <= INT)||(LA124_0 >= LONG && LA124_0 <= MEM_TYPE)||LA124_0==OUTPUT||LA124_0==RANGE||LA124_0==REAL||LA124_0==RESTRICT||(LA124_0 >= SHORT && LA124_0 <= SIGNED)||LA124_0==STRUCT||LA124_0==TYPEOF||(LA124_0 >= UNION && LA124_0 <= UNSIGNED)||(LA124_0 >= VOID && LA124_0 <= VOLATILE)) ) {
alt124=1;
}
else if ( (LA124_0==IDENTIFIER) ) {
int LA124_2 = input.LA(2);
if ( (LA124_2==IDENTIFIER||LA124_2==LPAREN||LA124_2==LSQUARE||LA124_2==STAR||LA124_2==ATOMIC||LA124_2==BOOL||LA124_2==CHAR||(LA124_2 >= COMPLEX && LA124_2 <= CONST)||(LA124_2 >= DOMAIN && LA124_2 <= DOUBLE)||LA124_2==ENUM||LA124_2==FLOAT||(LA124_2 >= INPUT && LA124_2 <= INT)||(LA124_2 >= LONG && LA124_2 <= MEM_TYPE)||LA124_2==OUTPUT||LA124_2==RANGE||LA124_2==REAL||LA124_2==RESTRICT||(LA124_2 >= SHORT && LA124_2 <= SIGNED)||LA124_2==STRUCT||LA124_2==TYPEOF||(LA124_2 >= UNION && LA124_2 <= UNSIGNED)||(LA124_2 >= VOID && LA124_2 <= VOLATILE)) ) {
alt124=1;
}
else if ( ((LA124_2 >= COLON && LA124_2 <= COMMA)) ) {
alt124=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 124, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
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:1589:4: typeName
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_typeName_in_typeName_opt10066);
typeName494=typeName();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, typeName494.getTree());
}
break;
case 2 :
// CivlCParser.g:1590: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();
// 1590: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:1610: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 GOTO495=null;
Token IDENTIFIER496=null;
Token SEMI497=null;
Token CONTINUE498=null;
Token SEMI499=null;
Token BREAK500=null;
Token SEMI501=null;
Token RETURN502=null;
Token SEMI504=null;
ParserRuleReturnScope expression_opt503 =null;
Object GOTO495_tree=null;
Object IDENTIFIER496_tree=null;
Object SEMI497_tree=null;
Object CONTINUE498_tree=null;
Object SEMI499_tree=null;
Object BREAK500_tree=null;
Object SEMI501_tree=null;
Object RETURN502_tree=null;
Object SEMI504_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:1611:5: ( GOTO IDENTIFIER SEMI -> ^( GOTO IDENTIFIER SEMI ) | CONTINUE SEMI -> ^( CONTINUE SEMI ) | BREAK SEMI -> ^( BREAK SEMI ) | RETURN expression_opt SEMI -> ^( RETURN expression_opt SEMI ) )
int alt125=4;
switch ( input.LA(1) ) {
case GOTO:
{
alt125=1;
}
break;
case CONTINUE:
{
alt125=2;
}
break;
case BREAK:
{
alt125=3;
}
break;
case RETURN:
{
alt125=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 125, 0, input);
throw nvae;
}
switch (alt125) {
case 1 :
// CivlCParser.g:1611:7: GOTO IDENTIFIER SEMI
{
GOTO495=(Token)match(input,GOTO,FOLLOW_GOTO_in_jumpStatement10089); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GOTO.add(GOTO495);
IDENTIFIER496=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_jumpStatement10091); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER496);
SEMI497=(Token)match(input,SEMI,FOLLOW_SEMI_in_jumpStatement10093); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI497);
// 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();
// 1611:28: -> ^( GOTO IDENTIFIER SEMI )
{
// CivlCParser.g:1611: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:1612:7: CONTINUE SEMI
{
CONTINUE498=(Token)match(input,CONTINUE,FOLLOW_CONTINUE_in_jumpStatement10111); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CONTINUE.add(CONTINUE498);
SEMI499=(Token)match(input,SEMI,FOLLOW_SEMI_in_jumpStatement10113); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI499);
// 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();
// 1612:21: -> ^( CONTINUE SEMI )
{
// CivlCParser.g:1612: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:1613:7: BREAK SEMI
{
BREAK500=(Token)match(input,BREAK,FOLLOW_BREAK_in_jumpStatement10129); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BREAK.add(BREAK500);
SEMI501=(Token)match(input,SEMI,FOLLOW_SEMI_in_jumpStatement10131); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI501);
// 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();
// 1613:18: -> ^( BREAK SEMI )
{
// CivlCParser.g:1613: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:1614:7: RETURN expression_opt SEMI
{
RETURN502=(Token)match(input,RETURN,FOLLOW_RETURN_in_jumpStatement10147); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RETURN.add(RETURN502);
pushFollow(FOLLOW_expression_opt_in_jumpStatement10149);
expression_opt503=expression_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression_opt.add(expression_opt503.getTree());
SEMI504=(Token)match(input,SEMI,FOLLOW_SEMI_in_jumpStatement10151); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI504);
// AST REWRITE
// elements: RETURN, SEMI, expression_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();
// 1614:34: -> ^( RETURN expression_opt SEMI )
{
// CivlCParser.g:1614: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:1627: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 PPRAGMA505=null;
Token IDENTIFIER506=null;
Token NEWLINE507=null;
Token PPRAGMA508=null;
Token IDENTIFIER509=null;
Token NEWLINE511=null;
ParserRuleReturnScope inlineList510 =null;
Object PPRAGMA505_tree=null;
Object IDENTIFIER506_tree=null;
Object NEWLINE507_tree=null;
Object PPRAGMA508_tree=null;
Object IDENTIFIER509_tree=null;
Object NEWLINE511_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:1628:5: ( PPRAGMA IDENTIFIER NEWLINE -> ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST ) NEWLINE ) | PPRAGMA IDENTIFIER inlineList NEWLINE -> ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST inlineList ) NEWLINE ) )
int alt126=2;
int LA126_0 = input.LA(1);
if ( (LA126_0==PPRAGMA) ) {
int LA126_1 = input.LA(2);
if ( (LA126_1==IDENTIFIER) ) {
int LA126_2 = input.LA(3);
if ( (LA126_2==NEWLINE) ) {
alt126=1;
}
else if ( ((LA126_2 >= AMPERSAND && LA126_2 <= NEQ)||(LA126_2 >= NOT && LA126_2 <= 565)) ) {
alt126=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("", 126, 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("", 126, 1, 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:1628:7: PPRAGMA IDENTIFIER NEWLINE
{
PPRAGMA505=(Token)match(input,PPRAGMA,FOLLOW_PPRAGMA_in_pragma10180); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PPRAGMA.add(PPRAGMA505);
IDENTIFIER506=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_pragma10182); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER506);
NEWLINE507=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_pragma10184); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEWLINE.add(NEWLINE507);
// AST REWRITE
// elements: IDENTIFIER, NEWLINE, PPRAGMA
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1629:9: -> ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST ) NEWLINE )
{
// CivlCParser.g:1629: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:1629: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:1630:7: PPRAGMA IDENTIFIER inlineList NEWLINE
{
PPRAGMA508=(Token)match(input,PPRAGMA,FOLLOW_PPRAGMA_in_pragma10214); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PPRAGMA.add(PPRAGMA508);
IDENTIFIER509=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_pragma10216); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER509);
pushFollow(FOLLOW_inlineList_in_pragma10218);
inlineList510=inlineList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inlineList.add(inlineList510.getTree());
NEWLINE511=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_pragma10220); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEWLINE.add(NEWLINE511);
// AST REWRITE
// elements: NEWLINE, IDENTIFIER, inlineList, PPRAGMA
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1631:9: -> ^( PPRAGMA IDENTIFIER ^( TOKEN_LIST inlineList ) NEWLINE )
{
// CivlCParser.g:1631: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:1631: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:1635: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 set512=null;
Object set512_tree=null;
try {
// CivlCParser.g:1635:12: ( (~ NEWLINE )+ )
// CivlCParser.g:1635:14: (~ NEWLINE )+
{
root_0 = (Object)adaptor.nil();
// CivlCParser.g:1635:14: (~ NEWLINE )+
int cnt127=0;
loop127:
while (true) {
int alt127=2;
int LA127_0 = input.LA(1);
if ( ((LA127_0 >= AMPERSAND && LA127_0 <= NEQ)||(LA127_0 >= NOT && LA127_0 <= 565)) ) {
alt127=1;
}
switch (alt127) {
case 1 :
// CivlCParser.g:
{
set512=input.LT(1);
if ( (input.LA(1) >= AMPERSAND && input.LA(1) <= NEQ)||(input.LA(1) >= NOT && input.LA(1) <= 565) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set512));
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 ( cnt127 >= 1 ) break loop127;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(127, input);
throw eee;
}
cnt127++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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:1645: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_START513=null;
Token NEWLINE514=null;
Token NEWLINE516=null;
Token ANNOTATION_START517=null;
Token ANNOTATION_END518=null;
Token ANNOTATION_START519=null;
Token ANNOTATION_END521=null;
ParserRuleReturnScope inlineList515 =null;
ParserRuleReturnScope annotationBody520 =null;
Object INLINE_ANNOTATION_START513_tree=null;
Object NEWLINE514_tree=null;
Object NEWLINE516_tree=null;
Object ANNOTATION_START517_tree=null;
Object ANNOTATION_END518_tree=null;
Object ANNOTATION_START519_tree=null;
Object ANNOTATION_END521_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:1646: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 alt129=3;
int LA129_0 = input.LA(1);
if ( (LA129_0==INLINE_ANNOTATION_START) ) {
alt129=1;
}
else if ( (LA129_0==ANNOTATION_START) ) {
int LA129_2 = input.LA(2);
if ( (LA129_2==ANNOTATION_END) ) {
alt129=2;
}
else if ( ((LA129_2 >= AMPERSAND && LA129_2 <= AND)||(LA129_2 >= ANNOTATION_START && LA129_2 <= 565)) ) {
alt129=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 129, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 129, 0, input);
throw nvae;
}
switch (alt129) {
case 1 :
// CivlCParser.g:1646:6: INLINE_ANNOTATION_START ( NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST ) NEWLINE ) | inlineList NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST inlineList ) NEWLINE ) )
{
INLINE_ANNOTATION_START513=(Token)match(input,INLINE_ANNOTATION_START,FOLLOW_INLINE_ANNOTATION_START_in_annotation10277); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INLINE_ANNOTATION_START.add(INLINE_ANNOTATION_START513);
// CivlCParser.g:1647:6: ( NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST ) NEWLINE ) | inlineList NEWLINE -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST inlineList ) NEWLINE ) )
int alt128=2;
int LA128_0 = input.LA(1);
if ( (LA128_0==NEWLINE) ) {
alt128=1;
}
else if ( ((LA128_0 >= AMPERSAND && LA128_0 <= NEQ)||(LA128_0 >= NOT && LA128_0 <= 565)) ) {
alt128=2;
}
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:1647:8: NEWLINE
{
NEWLINE514=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_annotation10286); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEWLINE.add(NEWLINE514);
// AST REWRITE
// elements: NEWLINE, INLINE_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();
// 1648:8: -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST ) NEWLINE )
{
// CivlCParser.g:1648: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:1648: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:1649:8: inlineList NEWLINE
{
pushFollow(FOLLOW_inlineList_in_annotation10316);
inlineList515=inlineList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_inlineList.add(inlineList515.getTree());
NEWLINE516=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_annotation10318); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NEWLINE.add(NEWLINE516);
// AST REWRITE
// elements: inlineList, 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();
// 1650:8: -> ^( ANNOTATION INLINE_ANNOTATION_START ^( TOKEN_LIST inlineList ) NEWLINE )
{
// CivlCParser.g:1650: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:1650: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:1652:6: ANNOTATION_START ANNOTATION_END
{
ANNOTATION_START517=(Token)match(input,ANNOTATION_START,FOLLOW_ANNOTATION_START_in_annotation10355); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ANNOTATION_START.add(ANNOTATION_START517);
ANNOTATION_END518=(Token)match(input,ANNOTATION_END,FOLLOW_ANNOTATION_END_in_annotation10357); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ANNOTATION_END.add(ANNOTATION_END518);
// AST REWRITE
// elements: ANNOTATION_START, 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();
// 1653:8: -> ^( ANNOTATION ANNOTATION_START ^( TOKEN_LIST ) ANNOTATION_END )
{
// CivlCParser.g:1653: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:1653: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:1654:6: ANNOTATION_START annotationBody ANNOTATION_END
{
ANNOTATION_START519=(Token)match(input,ANNOTATION_START,FOLLOW_ANNOTATION_START_in_annotation10385); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ANNOTATION_START.add(ANNOTATION_START519);
pushFollow(FOLLOW_annotationBody_in_annotation10387);
annotationBody520=annotationBody();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_annotationBody.add(annotationBody520.getTree());
ANNOTATION_END521=(Token)match(input,ANNOTATION_END,FOLLOW_ANNOTATION_END_in_annotation10389); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ANNOTATION_END.add(ANNOTATION_END521);
// AST REWRITE
// elements: ANNOTATION_END, annotationBody, 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();
// 1655:8: -> ^( ANNOTATION ANNOTATION_START ^( TOKEN_LIST annotationBody ) ANNOTATION_END )
{
// CivlCParser.g:1655: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:1655: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:1658: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 set522=null;
Object set522_tree=null;
try {
// CivlCParser.g:1658:16: ( (~ ANNOTATION_END )+ )
// CivlCParser.g:1658:18: (~ ANNOTATION_END )+
{
root_0 = (Object)adaptor.nil();
// CivlCParser.g:1658:18: (~ ANNOTATION_END )+
int cnt130=0;
loop130:
while (true) {
int alt130=2;
int LA130_0 = input.LA(1);
if ( ((LA130_0 >= AMPERSAND && LA130_0 <= AND)||(LA130_0 >= ANNOTATION_START && LA130_0 <= 565)) ) {
alt130=1;
}
switch (alt130) {
case 1 :
// CivlCParser.g:
{
set522=input.LT(1);
if ( (input.LA(1) >= AMPERSAND && input.LA(1) <= AND)||(input.LA(1) >= ANNOTATION_START && input.LA(1) <= 565) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set522));
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 ( cnt130 >= 1 ) break loop130;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(130, input);
throw eee;
}
cnt130++;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(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:1668: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 RUN523=null;
ParserRuleReturnScope statement524 =null;
Object RUN523_tree=null;
RewriteRuleTokenStream stream_RUN=new RewriteRuleTokenStream(adaptor,"token RUN");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
try {
// CivlCParser.g:1669:6: ( RUN statement -> ^( RUN statement ) )
// CivlCParser.g:1669:8: RUN statement
{
RUN523=(Token)match(input,RUN,FOLLOW_RUN_in_runStatement10445); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RUN.add(RUN523);
pushFollow(FOLLOW_statement_in_runStatement10447);
statement524=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement524.getTree());
// AST REWRITE
// elements: statement, RUN
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1669:22: -> ^( RUN statement )
{
// CivlCParser.g:1669:25: ^( 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:1675: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 WITH525=null;
Token LPAREN526=null;
Token RPAREN528=null;
ParserRuleReturnScope assignmentExpression527 =null;
ParserRuleReturnScope statement529 =null;
Object WITH525_tree=null;
Object LPAREN526_tree=null;
Object RPAREN528_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:1676:2: ( WITH LPAREN assignmentExpression RPAREN statement -> ^( WITH assignmentExpression statement ) )
// CivlCParser.g:1676:4: WITH LPAREN assignmentExpression RPAREN statement
{
WITH525=(Token)match(input,WITH,FOLLOW_WITH_in_withStatement10471); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WITH.add(WITH525);
LPAREN526=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_withStatement10473); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN526);
pushFollow(FOLLOW_assignmentExpression_in_withStatement10475);
assignmentExpression527=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression527.getTree());
RPAREN528=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_withStatement10477); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN528);
pushFollow(FOLLOW_statement_in_withStatement10479);
statement529=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement529.getTree());
// AST REWRITE
// elements: WITH, statement, 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();
// 1677:13: -> ^( WITH assignmentExpression statement )
{
// CivlCParser.g:1677:16: ^( 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:1680: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 UPDATE530=null;
Token LPAREN531=null;
Token RPAREN533=null;
Token LPAREN535=null;
Token RPAREN537=null;
Token SEMI538=null;
ParserRuleReturnScope assignmentExpression532 =null;
ParserRuleReturnScope postfixExpressionRoot534 =null;
ParserRuleReturnScope argumentExpressionList536 =null;
Object UPDATE530_tree=null;
Object LPAREN531_tree=null;
Object RPAREN533_tree=null;
Object LPAREN535_tree=null;
Object RPAREN537_tree=null;
Object SEMI538_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:1681:2: ( UPDATE LPAREN assignmentExpression RPAREN postfixExpressionRoot LPAREN argumentExpressionList RPAREN SEMI -> ^( UPDATE assignmentExpression ^( CALL ABSENT postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) ) )
// CivlCParser.g:1681:4: UPDATE LPAREN assignmentExpression RPAREN postfixExpressionRoot LPAREN argumentExpressionList RPAREN SEMI
{
UPDATE530=(Token)match(input,UPDATE,FOLLOW_UPDATE_in_updateStatement10512); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_UPDATE.add(UPDATE530);
LPAREN531=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_updateStatement10514); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN531);
pushFollow(FOLLOW_assignmentExpression_in_updateStatement10516);
assignmentExpression532=assignmentExpression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assignmentExpression.add(assignmentExpression532.getTree());
RPAREN533=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_updateStatement10518); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN533);
pushFollow(FOLLOW_postfixExpressionRoot_in_updateStatement10523);
postfixExpressionRoot534=postfixExpressionRoot();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfixExpressionRoot.add(postfixExpressionRoot534.getTree());
LPAREN535=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_updateStatement10525); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN535);
pushFollow(FOLLOW_argumentExpressionList_in_updateStatement10527);
argumentExpressionList536=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList536.getTree());
RPAREN537=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_updateStatement10529); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN537);
SEMI538=(Token)match(input,SEMI,FOLLOW_SEMI_in_updateStatement10531); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI538);
// AST REWRITE
// elements: argumentExpressionList, postfixExpressionRoot, UPDATE, RPAREN, 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();
// 1683:4: -> ^( UPDATE assignmentExpression ^( CALL ABSENT postfixExpressionRoot ABSENT argumentExpressionList RPAREN ) )
{
// CivlCParser.g:1683: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:1684:5: ^( 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:1688: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 set539=null;
Token LPAREN540=null;
Token RPAREN542=null;
ParserRuleReturnScope balancedToken541 =null;
Object set539_tree=null;
Object LPAREN540_tree=null;
Object RPAREN542_tree=null;
try {
// CivlCParser.g:1689:2: (~ ( LPAREN | RPAREN ) | LPAREN ( balancedToken )* RPAREN )
int alt132=2;
int LA132_0 = input.LA(1);
if ( ((LA132_0 >= AMPERSAND && LA132_0 <= LINE)||(LA132_0 >= LSLIST && LA132_0 <= REXCON)||(LA132_0 >= RSLIST && LA132_0 <= 565)) ) {
alt132=1;
}
else if ( (LA132_0==LPAREN) ) {
alt132=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 132, 0, input);
throw nvae;
}
switch (alt132) {
case 1 :
// CivlCParser.g:1689:4: ~ ( LPAREN | RPAREN )
{
root_0 = (Object)adaptor.nil();
set539=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) <= 565) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set539));
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:1690:4: LPAREN ( balancedToken )* RPAREN
{
root_0 = (Object)adaptor.nil();
LPAREN540=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_balancedToken10591); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LPAREN540_tree = (Object)adaptor.create(LPAREN540);
adaptor.addChild(root_0, LPAREN540_tree);
}
// CivlCParser.g:1690:11: ( balancedToken )*
loop131:
while (true) {
int alt131=2;
int LA131_0 = input.LA(1);
if ( ((LA131_0 >= AMPERSAND && LA131_0 <= REXCON)||(LA131_0 >= RSLIST && LA131_0 <= 565)) ) {
alt131=1;
}
switch (alt131) {
case 1 :
// CivlCParser.g:1690:11: balancedToken
{
pushFollow(FOLLOW_balancedToken_in_balancedToken10593);
balancedToken541=balancedToken();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, balancedToken541.getTree());
}
break;
default :
break loop131;
}
}
RPAREN542=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_balancedToken10596); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RPAREN542_tree = (Object)adaptor.create(RPAREN542);
adaptor.addChild(root_0, RPAREN542_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:1693: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 ASM543=null;
Token VOLATILE544=null;
Token GOTO545=null;
Token LPAREN546=null;
Token RPAREN548=null;
Token SEMI549=null;
ParserRuleReturnScope balancedToken547 =null;
Object ASM543_tree=null;
Object VOLATILE544_tree=null;
Object GOTO545_tree=null;
Object LPAREN546_tree=null;
Object RPAREN548_tree=null;
Object SEMI549_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:1694:2: ( ASM ( VOLATILE )? ( GOTO )? LPAREN ( balancedToken )* RPAREN SEMI -> ^( ASM ( VOLATILE )? ( GOTO )? ^( TOKEN_LIST ( balancedToken )* ) ) )
// CivlCParser.g:1694:4: ASM ( VOLATILE )? ( GOTO )? LPAREN ( balancedToken )* RPAREN SEMI
{
ASM543=(Token)match(input,ASM,FOLLOW_ASM_in_asmStatement10607); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASM.add(ASM543);
// CivlCParser.g:1694:8: ( VOLATILE )?
int alt133=2;
int LA133_0 = input.LA(1);
if ( (LA133_0==VOLATILE) ) {
alt133=1;
}
switch (alt133) {
case 1 :
// CivlCParser.g:1694:8: VOLATILE
{
VOLATILE544=(Token)match(input,VOLATILE,FOLLOW_VOLATILE_in_asmStatement10609); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_VOLATILE.add(VOLATILE544);
}
break;
}
// CivlCParser.g:1694:18: ( GOTO )?
int alt134=2;
int LA134_0 = input.LA(1);
if ( (LA134_0==GOTO) ) {
alt134=1;
}
switch (alt134) {
case 1 :
// CivlCParser.g:1694:18: GOTO
{
GOTO545=(Token)match(input,GOTO,FOLLOW_GOTO_in_asmStatement10612); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GOTO.add(GOTO545);
}
break;
}
LPAREN546=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_asmStatement10615); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN546);
// CivlCParser.g:1695:4: ( balancedToken )*
loop135:
while (true) {
int alt135=2;
int LA135_0 = input.LA(1);
if ( ((LA135_0 >= AMPERSAND && LA135_0 <= REXCON)||(LA135_0 >= RSLIST && LA135_0 <= 565)) ) {
alt135=1;
}
switch (alt135) {
case 1 :
// CivlCParser.g:1695:4: balancedToken
{
pushFollow(FOLLOW_balancedToken_in_asmStatement10620);
balancedToken547=balancedToken();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_balancedToken.add(balancedToken547.getTree());
}
break;
default :
break loop135;
}
}
RPAREN548=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_asmStatement10626); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN548);
SEMI549=(Token)match(input,SEMI,FOLLOW_SEMI_in_asmStatement10628); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI549);
// AST REWRITE
// elements: VOLATILE, GOTO, ASM, balancedToken
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1697:4: -> ^( ASM ( VOLATILE )? ( GOTO )? ^( TOKEN_LIST ( balancedToken )* ) )
{
// CivlCParser.g:1697: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:1697:13: ( VOLATILE )?
if ( stream_VOLATILE.hasNext() ) {
adaptor.addChild(root_1, stream_VOLATILE.nextNode());
}
stream_VOLATILE.reset();
// CivlCParser.g:1697:23: ( GOTO )?
if ( stream_GOTO.hasNext() ) {
adaptor.addChild(root_1, stream_GOTO.nextNode());
}
stream_GOTO.reset();
// CivlCParser.g:1697: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:1697: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:1708: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 WHEN550=null;
Token LPAREN551=null;
Token RPAREN553=null;
ParserRuleReturnScope expression552 =null;
ParserRuleReturnScope statement554 =null;
Object WHEN550_tree=null;
Object LPAREN551_tree=null;
Object RPAREN553_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:1709:2: ( WHEN LPAREN expression RPAREN statement -> ^( WHEN expression statement ) )
// CivlCParser.g:1709:4: WHEN LPAREN expression RPAREN statement
{
WHEN550=(Token)match(input,WHEN,FOLLOW_WHEN_in_whenStatement10663); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WHEN.add(WHEN550);
LPAREN551=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_whenStatement10665); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN551);
pushFollow(FOLLOW_expression_in_whenStatement10667);
expression552=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression552.getTree());
RPAREN553=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_whenStatement10669); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN553);
pushFollow(FOLLOW_statement_in_whenStatement10671);
statement554=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement554.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();
// 1710:3: -> ^( WHEN expression statement )
{
// CivlCParser.g:1710: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:1719: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 CHOOSE555=null;
Token LCURLY556=null;
Token RCURLY558=null;
ParserRuleReturnScope statement557 =null;
Object CHOOSE555_tree=null;
Object LCURLY556_tree=null;
Object RCURLY558_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:1720:2: ( CHOOSE LCURLY ( statement )+ RCURLY -> ^( CHOOSE ( statement )+ ) )
// CivlCParser.g:1720:4: CHOOSE LCURLY ( statement )+ RCURLY
{
CHOOSE555=(Token)match(input,CHOOSE,FOLLOW_CHOOSE_in_chooseStatement10696); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CHOOSE.add(CHOOSE555);
LCURLY556=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_chooseStatement10698); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY556);
// CivlCParser.g:1720:18: ( statement )+
int cnt136=0;
loop136:
while (true) {
int alt136=2;
int LA136_0 = input.LA(1);
if ( (LA136_0==AMPERSAND||LA136_0==CHARACTER_CONSTANT||LA136_0==ELLIPSIS||LA136_0==FLOATING_CONSTANT||(LA136_0 >= IDENTIFIER && LA136_0 <= IF)||LA136_0==INTEGER_CONSTANT||LA136_0==LCURLY||LA136_0==LPAREN||LA136_0==MINUSMINUS||LA136_0==NOT||LA136_0==PLUS||LA136_0==PLUSPLUS||LA136_0==SEMI||LA136_0==STAR||(LA136_0 >= STRING_LITERAL && LA136_0 <= SUB)||LA136_0==TILDE||(LA136_0 >= ALIGNOF && LA136_0 <= ASM)||LA136_0==BIG_O||(LA136_0 >= BREAK && LA136_0 <= CASE)||(LA136_0 >= CHOOSE && LA136_0 <= CIVLFOR)||(LA136_0 >= CONTINUE && LA136_0 <= DEFAULT)||LA136_0==DERIV||LA136_0==DO||LA136_0==EXISTS||(LA136_0 >= FOR && LA136_0 <= GENERIC)||LA136_0==GOTO||LA136_0==HERE||LA136_0==PARFOR||LA136_0==PROCNULL||(LA136_0 >= RESULT && LA136_0 <= SELF)||(LA136_0 >= SIZEOF && LA136_0 <= SPAWN)||LA136_0==STATE_NULL||LA136_0==SWITCH||LA136_0==UNIFORM||(LA136_0 >= UPDATE && LA136_0 <= VALUE_AT)||(LA136_0 >= WHEN && LA136_0 <= WITH)) ) {
alt136=1;
}
switch (alt136) {
case 1 :
// CivlCParser.g:1720:18: statement
{
pushFollow(FOLLOW_statement_in_chooseStatement10700);
statement557=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement557.getTree());
}
break;
default :
if ( cnt136 >= 1 ) break loop136;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(136, input);
throw eee;
}
cnt136++;
}
RCURLY558=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_chooseStatement10703); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY558);
// 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();
// 1721:3: -> ^( CHOOSE ( statement )+ )
{
// CivlCParser.g:1721:6: ^( 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:1730: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 CIVLATOMIC559=null;
ParserRuleReturnScope s =null;
Object CIVLATOMIC559_tree=null;
RewriteRuleTokenStream stream_CIVLATOMIC=new RewriteRuleTokenStream(adaptor,"token CIVLATOMIC");
RewriteRuleSubtreeStream stream_statementWithScope=new RewriteRuleSubtreeStream(adaptor,"rule statementWithScope");
try {
// CivlCParser.g:1731:2: ( CIVLATOMIC s= statementWithScope -> ^( CIVLATOMIC $s) )
// CivlCParser.g:1731:4: CIVLATOMIC s= statementWithScope
{
CIVLATOMIC559=(Token)match(input,CIVLATOMIC,FOLLOW_CIVLATOMIC_in_atomicStatement10727); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CIVLATOMIC.add(CIVLATOMIC559);
pushFollow(FOLLOW_statementWithScope_in_atomicStatement10731);
s=statementWithScope();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statementWithScope.add(s.getTree());
// AST REWRITE
// elements: s, CIVLATOMIC
// 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();
// 1732:3: -> ^( CIVLATOMIC $s)
{
// CivlCParser.g:1732:6: ^( 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:1744: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 declarator560 =null;
ParserRuleReturnScope contract561 =null;
ParserRuleReturnScope declarationList_opt562 =null;
ParserRuleReturnScope compoundStatement563 =null;
ParserRuleReturnScope declarationSpecifiers564 =null;
ParserRuleReturnScope declarator565 =null;
ParserRuleReturnScope contract566 =null;
ParserRuleReturnScope declarationList_opt567 =null;
ParserRuleReturnScope compoundStatement568 =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().typedefNameUsed =false;
try {
// CivlCParser.g:1754: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 alt137=2;
switch ( input.LA(1) ) {
case IDENTIFIER:
{
int LA137_1 = input.LA(2);
if ( (!((((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText())))))) ) {
alt137=1;
}
else if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText())))) ) {
alt137=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 137, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case LPAREN:
case STAR:
{
alt137=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:
{
alt137=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 137, 0, input);
throw nvae;
}
switch (alt137) {
case 1 :
// CivlCParser.g:1754:4: declarator contract declarationList_opt compoundStatement
{
pushFollow(FOLLOW_declarator_in_functionDefinition10771);
declarator560=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator560.getTree());
pushFollow(FOLLOW_contract_in_functionDefinition10776);
contract561=contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_contract.add(contract561.getTree());
pushFollow(FOLLOW_declarationList_opt_in_functionDefinition10781);
declarationList_opt562=declarationList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationList_opt.add(declarationList_opt562.getTree());
pushFollow(FOLLOW_compoundStatement_in_functionDefinition10786);
compoundStatement563=compoundStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_compoundStatement.add(compoundStatement563.getTree());
// AST REWRITE
// elements: declarator, compoundStatement, declarationList_opt, contract
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1758:4: -> ^( FUNCTION_DEFINITION ^( DECLARATION_SPECIFIERS ) declarator declarationList_opt compoundStatement contract )
{
// CivlCParser.g:1758: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:1758: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:1761:7: declarationSpecifiers declarator contract declarationList_opt compoundStatement
{
pushFollow(FOLLOW_declarationSpecifiers_in_functionDefinition10831);
declarationSpecifiers564=declarationSpecifiers();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers564.getTree());
pushFollow(FOLLOW_declarator_in_functionDefinition10836);
declarator565=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator565.getTree());
pushFollow(FOLLOW_contract_in_functionDefinition10841);
contract566=contract();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_contract.add(contract566.getTree());
pushFollow(FOLLOW_declarationList_opt_in_functionDefinition10846);
declarationList_opt567=declarationList_opt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarationList_opt.add(declarationList_opt567.getTree());
pushFollow(FOLLOW_compoundStatement_in_functionDefinition10851);
compoundStatement568=compoundStatement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_compoundStatement.add(compoundStatement568.getTree());
// AST REWRITE
// elements: compoundStatement, declarationList_opt, declarationSpecifiers, 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();
// 1766:4: -> ^( FUNCTION_DEFINITION declarationSpecifiers declarator declarationList_opt compoundStatement contract )
{
// CivlCParser.g:1766: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:1776: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 declaration569 =null;
RewriteRuleSubtreeStream stream_declaration=new RewriteRuleSubtreeStream(adaptor,"rule declaration");
try {
// CivlCParser.g:1777:2: ( ( declaration )* -> ^( DECLARATION_LIST ( declaration )* ) )
// CivlCParser.g:1777:4: ( declaration )*
{
// CivlCParser.g:1777:4: ( declaration )*
loop138:
while (true) {
int alt138=2;
int LA138_0 = input.LA(1);
if ( (LA138_0==IDENTIFIER||(LA138_0 >= ABSTRACT && LA138_0 <= ALIGNAS)||(LA138_0 >= ATOMIC && LA138_0 <= AUTO)||LA138_0==BOOL||LA138_0==CHAR||(LA138_0 >= COMPLEX && LA138_0 <= CONST)||(LA138_0 >= DEVICE && LA138_0 <= DIFFERENTIABLE)||(LA138_0 >= DOMAIN && LA138_0 <= DOUBLE)||LA138_0==ENUM||(LA138_0 >= EXTERN && LA138_0 <= FATOMIC)||LA138_0==FLOAT||LA138_0==GLOBAL||(LA138_0 >= INLINE && LA138_0 <= INT)||(LA138_0 >= LONG && LA138_0 <= NORETURN)||LA138_0==OUTPUT||(LA138_0 >= PURE && LA138_0 <= RANGE)||(LA138_0 >= REAL && LA138_0 <= REGISTER)||LA138_0==RESTRICT||(LA138_0 >= SHARED && LA138_0 <= SIGNED)||LA138_0==STATE_F||(LA138_0 >= STATIC && LA138_0 <= STRUCT)||LA138_0==SYSTEM||(LA138_0 >= THREADLOCAL && LA138_0 <= TYPEOF)||(LA138_0 >= UNION && LA138_0 <= UNSIGNED)||(LA138_0 >= VOID && LA138_0 <= VOLATILE)) ) {
alt138=1;
}
switch (alt138) {
case 1 :
// CivlCParser.g:1777:4: declaration
{
pushFollow(FOLLOW_declaration_in_declarationList_opt10900);
declaration569=declaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration.add(declaration569.getTree());
}
break;
default :
break loop138;
}
}
// 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();
// 1777:17: -> ^( DECLARATION_LIST ( declaration )* )
{
// CivlCParser.g:1777: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:1777: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:1785: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 separationLogicItem570 =null;
ParserRuleReturnScope porItem571 =null;
try {
// CivlCParser.g:1786:2: ( separationLogicItem | porItem )
int alt139=2;
int LA139_0 = input.LA(1);
if ( (LA139_0==ENSURES||LA139_0==REQUIRES) ) {
alt139=1;
}
else if ( (LA139_0==ASSIGNS||LA139_0==DEPENDS||LA139_0==GUARD||LA139_0==READS) ) {
alt139=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 139, 0, input);
throw nvae;
}
switch (alt139) {
case 1 :
// CivlCParser.g:1786:4: separationLogicItem
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_separationLogicItem_in_contractItem10923);
separationLogicItem570=separationLogicItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, separationLogicItem570.getTree());
}
break;
case 2 :
// CivlCParser.g:1787:7: porItem
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_porItem_in_contractItem10931);
porItem571=porItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, porItem571.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:1790: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 REQUIRES572=null;
Token LCURLY573=null;
Token RCURLY575=null;
Token ENSURES576=null;
Token LCURLY577=null;
Token RCURLY579=null;
ParserRuleReturnScope expression574 =null;
ParserRuleReturnScope expression578 =null;
Object REQUIRES572_tree=null;
Object LCURLY573_tree=null;
Object RCURLY575_tree=null;
Object ENSURES576_tree=null;
Object LCURLY577_tree=null;
Object RCURLY579_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:1791:5: ( REQUIRES LCURLY expression RCURLY -> ^( REQUIRES expression RCURLY ) | ENSURES LCURLY expression RCURLY -> ^( ENSURES expression RCURLY ) )
int alt140=2;
int LA140_0 = input.LA(1);
if ( (LA140_0==REQUIRES) ) {
alt140=1;
}
else if ( (LA140_0==ENSURES) ) {
alt140=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 140, 0, input);
throw nvae;
}
switch (alt140) {
case 1 :
// CivlCParser.g:1792:7: REQUIRES LCURLY expression RCURLY
{
REQUIRES572=(Token)match(input,REQUIRES,FOLLOW_REQUIRES_in_separationLogicItem10951); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_REQUIRES.add(REQUIRES572);
LCURLY573=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_separationLogicItem10953); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY573);
pushFollow(FOLLOW_expression_in_separationLogicItem10955);
expression574=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression574.getTree());
RCURLY575=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_separationLogicItem10957); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY575);
// AST REWRITE
// elements: expression, RCURLY, REQUIRES
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1792:41: -> ^( REQUIRES expression RCURLY )
{
// CivlCParser.g:1792: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:1793:4: ENSURES LCURLY expression RCURLY
{
ENSURES576=(Token)match(input,ENSURES,FOLLOW_ENSURES_in_separationLogicItem10972); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ENSURES.add(ENSURES576);
LCURLY577=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_separationLogicItem10974); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY577);
pushFollow(FOLLOW_expression_in_separationLogicItem10976);
expression578=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression578.getTree());
RCURLY579=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_separationLogicItem10978); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY579);
// AST REWRITE
// elements: expression, ENSURES, 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();
// 1793:37: -> ^( ENSURES expression RCURLY )
{
// CivlCParser.g:1793: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:1796: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 DEPENDS580=null;
Token LSQUARE581=null;
Token RSQUARE583=null;
Token LCURLY584=null;
Token RCURLY586=null;
Token GUARD587=null;
Token LSQUARE588=null;
Token RSQUARE590=null;
Token LCURLY591=null;
Token RCURLY593=null;
Token ASSIGNS594=null;
Token LSQUARE595=null;
Token RSQUARE597=null;
Token LCURLY598=null;
Token RCURLY600=null;
Token READS601=null;
Token LSQUARE602=null;
Token RSQUARE604=null;
Token LCURLY605=null;
Token RCURLY607=null;
ParserRuleReturnScope expression582 =null;
ParserRuleReturnScope argumentExpressionList585 =null;
ParserRuleReturnScope expression589 =null;
ParserRuleReturnScope argumentExpressionList592 =null;
ParserRuleReturnScope expression596 =null;
ParserRuleReturnScope argumentExpressionList599 =null;
ParserRuleReturnScope expression603 =null;
ParserRuleReturnScope argumentExpressionList606 =null;
Object DEPENDS580_tree=null;
Object LSQUARE581_tree=null;
Object RSQUARE583_tree=null;
Object LCURLY584_tree=null;
Object RCURLY586_tree=null;
Object GUARD587_tree=null;
Object LSQUARE588_tree=null;
Object RSQUARE590_tree=null;
Object LCURLY591_tree=null;
Object RCURLY593_tree=null;
Object ASSIGNS594_tree=null;
Object LSQUARE595_tree=null;
Object RSQUARE597_tree=null;
Object LCURLY598_tree=null;
Object RCURLY600_tree=null;
Object READS601_tree=null;
Object LSQUARE602_tree=null;
Object RSQUARE604_tree=null;
Object LCURLY605_tree=null;
Object RCURLY607_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:1797: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 alt145=4;
switch ( input.LA(1) ) {
case DEPENDS:
{
alt145=1;
}
break;
case GUARD:
{
alt145=2;
}
break;
case ASSIGNS:
{
alt145=3;
}
break;
case READS:
{
alt145=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 145, 0, input);
throw nvae;
}
switch (alt145) {
case 1 :
// CivlCParser.g:1798:7: DEPENDS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY
{
DEPENDS580=(Token)match(input,DEPENDS,FOLLOW_DEPENDS_in_porItem11011); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DEPENDS.add(DEPENDS580);
// CivlCParser.g:1798:15: ( LSQUARE expression RSQUARE )?
int alt141=2;
int LA141_0 = input.LA(1);
if ( (LA141_0==LSQUARE) ) {
alt141=1;
}
switch (alt141) {
case 1 :
// CivlCParser.g:1798:16: LSQUARE expression RSQUARE
{
LSQUARE581=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_porItem11014); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE581);
pushFollow(FOLLOW_expression_in_porItem11016);
expression582=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression582.getTree());
RSQUARE583=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_porItem11018); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE583);
}
break;
}
LCURLY584=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_porItem11022); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY584);
pushFollow(FOLLOW_argumentExpressionList_in_porItem11024);
argumentExpressionList585=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList585.getTree());
RCURLY586=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_porItem11026); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY586);
// 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();
// 1798:82: -> ^( DEPENDS ( expression )? argumentExpressionList )
{
// CivlCParser.g:1798:85: ^( DEPENDS ( expression )? argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_DEPENDS.nextNode(), root_1);
// CivlCParser.g:1798:95: ( 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:1799:7: GUARD ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY
{
GUARD587=(Token)match(input,GUARD,FOLLOW_GUARD_in_porItem11045); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GUARD.add(GUARD587);
// CivlCParser.g:1799:13: ( LSQUARE expression RSQUARE )?
int alt142=2;
int LA142_0 = input.LA(1);
if ( (LA142_0==LSQUARE) ) {
alt142=1;
}
switch (alt142) {
case 1 :
// CivlCParser.g:1799:14: LSQUARE expression RSQUARE
{
LSQUARE588=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_porItem11048); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE588);
pushFollow(FOLLOW_expression_in_porItem11050);
expression589=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression589.getTree());
RSQUARE590=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_porItem11052); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE590);
}
break;
}
LCURLY591=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_porItem11056); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY591);
pushFollow(FOLLOW_argumentExpressionList_in_porItem11058);
argumentExpressionList592=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList592.getTree());
RCURLY593=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_porItem11060); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY593);
// 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();
// 1799:80: -> ^( GUARD ( expression )? argumentExpressionList )
{
// CivlCParser.g:1799:83: ^( GUARD ( expression )? argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_GUARD.nextNode(), root_1);
// CivlCParser.g:1799:91: ( 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:1800:7: ASSIGNS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY
{
ASSIGNS594=(Token)match(input,ASSIGNS,FOLLOW_ASSIGNS_in_porItem11079); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGNS.add(ASSIGNS594);
// CivlCParser.g:1800: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:1800:16: LSQUARE expression RSQUARE
{
LSQUARE595=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_porItem11082); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE595);
pushFollow(FOLLOW_expression_in_porItem11084);
expression596=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression596.getTree());
RSQUARE597=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_porItem11086); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE597);
}
break;
}
LCURLY598=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_porItem11090); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY598);
pushFollow(FOLLOW_argumentExpressionList_in_porItem11092);
argumentExpressionList599=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList599.getTree());
RCURLY600=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_porItem11094); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY600);
// AST REWRITE
// elements: ASSIGNS, 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();
// 1800:82: -> ^( ASSIGNS ( expression )? argumentExpressionList )
{
// CivlCParser.g:1800:85: ^( ASSIGNS ( expression )? argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ASSIGNS.nextNode(), root_1);
// CivlCParser.g:1800:95: ( 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:1801:7: READS ( LSQUARE expression RSQUARE )? LCURLY argumentExpressionList RCURLY
{
READS601=(Token)match(input,READS,FOLLOW_READS_in_porItem11113); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_READS.add(READS601);
// CivlCParser.g:1801: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:1801:14: LSQUARE expression RSQUARE
{
LSQUARE602=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_porItem11116); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE602);
pushFollow(FOLLOW_expression_in_porItem11118);
expression603=expression();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expression.add(expression603.getTree());
RSQUARE604=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_porItem11120); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE604);
}
break;
}
LCURLY605=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_porItem11124); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY605);
pushFollow(FOLLOW_argumentExpressionList_in_porItem11126);
argumentExpressionList606=argumentExpressionList();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argumentExpressionList.add(argumentExpressionList606.getTree());
RCURLY607=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_porItem11128); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY607);
// AST REWRITE
// elements: expression, argumentExpressionList, READS
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 1801:80: -> ^( READS ( expression )? argumentExpressionList )
{
// CivlCParser.g:1801:83: ^( READS ( expression )? argumentExpressionList )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_READS.nextNode(), root_1);
// CivlCParser.g:1801:91: ( 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:1810: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 contractItem608 =null;
RewriteRuleSubtreeStream stream_contractItem=new RewriteRuleSubtreeStream(adaptor,"rule contractItem");
try {
// CivlCParser.g:1811:2: ( ( contractItem )* -> ^( CONTRACT ( contractItem )* ) )
// CivlCParser.g:1811:4: ( contractItem )*
{
// CivlCParser.g:1811:4: ( contractItem )*
loop146:
while (true) {
int alt146=2;
int LA146_0 = input.LA(1);
if ( (LA146_0==ASSIGNS||LA146_0==DEPENDS||LA146_0==ENSURES||LA146_0==GUARD||LA146_0==READS||LA146_0==REQUIRES) ) {
alt146=1;
}
switch (alt146) {
case 1 :
// CivlCParser.g:1811:4: contractItem
{
pushFollow(FOLLOW_contractItem_in_contract11156);
contractItem608=contractItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_contractItem.add(contractItem608.getTree());
}
break;
default :
break loop146;
}
}
// 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();
// 1811:18: -> ^( CONTRACT ( contractItem )* )
{
// CivlCParser.g:1811:21: ^( CONTRACT ( contractItem )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONTRACT, "CONTRACT"), root_1);
// CivlCParser.g:1811: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:1818: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 blockItem609 =null;
DeclarationScope_stack.peek().isTypedef = false;
DeclarationScope_stack.peek().typedefNameUsed = false;
try {
// CivlCParser.g:1824:2: ( blockItem )
// CivlCParser.g:1824:4: blockItem
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_blockItem_in_blockItemWithScope11190);
blockItem609=blockItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, blockItem609.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:1830: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 functionDefinition610 =null;
ParserRuleReturnScope functionDefinition611 =null;
ParserRuleReturnScope declaration612 =null;
ParserRuleReturnScope pragma613 =null;
ParserRuleReturnScope annotation614 =null;
ParserRuleReturnScope statement615 =null;
try {
// CivlCParser.g:1831:2: ( ( declarator contract declarationList_opt LCURLY )=> functionDefinition | ( declarationSpecifiers declarator contract declarationList_opt LCURLY )=> functionDefinition | declaration | pragma | annotation | statement )
int alt147=6;
alt147 = dfa147.predict(input);
switch (alt147) {
case 1 :
// CivlCParser.g:1831:3: ( declarator contract declarationList_opt LCURLY )=> functionDefinition
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_functionDefinition_in_blockItem11214);
functionDefinition610=functionDefinition();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, functionDefinition610.getTree());
}
break;
case 2 :
// CivlCParser.g:1833:4: ( declarationSpecifiers declarator contract declarationList_opt LCURLY )=> functionDefinition
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_functionDefinition_in_blockItem11235);
functionDefinition611=functionDefinition();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, functionDefinition611.getTree());
}
break;
case 3 :
// CivlCParser.g:1835:4: declaration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_declaration_in_blockItem11240);
declaration612=declaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declaration612.getTree());
}
break;
case 4 :
// CivlCParser.g:1836:4: pragma
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_pragma_in_blockItem11245);
pragma613=pragma();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, pragma613.getTree());
}
break;
case 5 :
// CivlCParser.g:1837:4: annotation
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_annotation_in_blockItem11250);
annotation614=annotation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, annotation614.getTree());
}
break;
case 6 :
// CivlCParser.g:1838:4: statement
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_statement_in_blockItem11255);
statement615=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, statement615.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:1853: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 EOF617=null;
ParserRuleReturnScope blockItem616 =null;
Object EOF617_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().typedefNameUsed = false;
try {
// CivlCParser.g:1863:2: ( ( blockItem )* EOF -> ^( TRANSLATION_UNIT ( blockItem )* ) )
// CivlCParser.g:1863:4: ( blockItem )* EOF
{
// CivlCParser.g:1863:4: ( blockItem )*
loop148:
while (true) {
int alt148=2;
int LA148_0 = input.LA(1);
if ( (LA148_0==AMPERSAND||LA148_0==ANNOTATION_START||LA148_0==CHARACTER_CONSTANT||LA148_0==ELLIPSIS||LA148_0==FLOATING_CONSTANT||(LA148_0 >= IDENTIFIER && LA148_0 <= IF)||LA148_0==INLINE_ANNOTATION_START||LA148_0==INTEGER_CONSTANT||LA148_0==LCURLY||LA148_0==LPAREN||LA148_0==MINUSMINUS||LA148_0==NOT||LA148_0==PLUS||LA148_0==PLUSPLUS||LA148_0==SEMI||LA148_0==STAR||(LA148_0 >= STRING_LITERAL && LA148_0 <= SUB)||LA148_0==TILDE||(LA148_0 >= ABSTRACT && LA148_0 <= ASM)||(LA148_0 >= ATOMIC && LA148_0 <= BIG_O)||(LA148_0 >= BOOL && LA148_0 <= CASE)||(LA148_0 >= CHAR && LA148_0 <= CIVLFOR)||(LA148_0 >= COMPLEX && LA148_0 <= CONST)||(LA148_0 >= CONTINUE && LA148_0 <= DEFAULT)||(LA148_0 >= DERIV && LA148_0 <= DOUBLE)||(LA148_0 >= ENUM && LA148_0 <= EXISTS)||(LA148_0 >= EXTERN && LA148_0 <= FATOMIC)||(LA148_0 >= FLOAT && LA148_0 <= GOTO)||LA148_0==HERE||(LA148_0 >= INLINE && LA148_0 <= INT)||(LA148_0 >= LONG && LA148_0 <= NORETURN)||LA148_0==OUTPUT||LA148_0==PARFOR||(LA148_0 >= PPRAGMA && LA148_0 <= RANGE)||(LA148_0 >= REAL && LA148_0 <= REGISTER)||(LA148_0 >= RESTRICT && LA148_0 <= SELF)||(LA148_0 >= SHARED && LA148_0 <= SYSTEM)||(LA148_0 >= THREADLOCAL && LA148_0 <= WITH)) ) {
alt148=1;
}
switch (alt148) {
case 1 :
// CivlCParser.g:1863:4: blockItem
{
pushFollow(FOLLOW_blockItem_in_translationUnit11285);
blockItem616=blockItem();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_blockItem.add(blockItem616.getTree());
}
break;
default :
break loop148;
}
}
EOF617=(Token)match(input,EOF,FOLLOW_EOF_in_translationUnit11288); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EOF.add(EOF617);
// 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();
// 1864:3: -> ^( TRANSLATION_UNIT ( blockItem )* )
{
// CivlCParser.g:1864:6: ^( 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:1864:25: ( 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:348:4: ( LPAREN typeName RPAREN LCURLY )
// CivlCParser.g:348:5: LPAREN typeName RPAREN LCURLY
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred1_CivlCParser2312); if (state.failed) return;
pushFollow(FOLLOW_typeName_in_synpred1_CivlCParser2314);
typeName();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred1_CivlCParser2316); if (state.failed) return;
match(input,LCURLY,FOLLOW_LCURLY_in_synpred1_CivlCParser2318); if (state.failed) return;
}
}
// $ANTLR end synpred1_CivlCParser
// $ANTLR start synpred2_CivlCParser
public final void synpred2_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:381:4: ( SIZEOF LPAREN typeName )
// CivlCParser.g:381:5: SIZEOF LPAREN typeName
{
match(input,SIZEOF,FOLLOW_SIZEOF_in_synpred2_CivlCParser2621); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred2_CivlCParser2623); if (state.failed) return;
pushFollow(FOLLOW_typeName_in_synpred2_CivlCParser2625);
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:431:4: ( LPAREN typeName RPAREN ~ LCURLY )
// CivlCParser.g:431:5: LPAREN typeName RPAREN ~ LCURLY
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred3_CivlCParser3004); if (state.failed) return;
pushFollow(FOLLOW_typeName_in_synpred3_CivlCParser3006);
typeName();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred3_CivlCParser3008); if (state.failed) return;
if ( (input.LA(1) >= AMPERSAND && input.LA(1) <= IntegerSuffix)||(input.LA(1) >= LEXCON && input.LA(1) <= 565) ) {
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:441:11: ( AT )
// CivlCParser.g:441:12: AT
{
match(input,AT,FOLLOW_AT_in_synpred4_CivlCParser3089); if (state.failed) return;
}
}
// $ANTLR end synpred4_CivlCParser
// $ANTLR start synpred5_CivlCParser
public final void synpred5_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:449:11: ( STAR )
// CivlCParser.g:449:12: STAR
{
match(input,STAR,FOLLOW_STAR_in_synpred5_CivlCParser3170); if (state.failed) return;
}
}
// $ANTLR end synpred5_CivlCParser
// $ANTLR start synpred6_CivlCParser
public final void synpred6_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:451:11: ( DIV )
// CivlCParser.g:451:12: DIV
{
match(input,DIV,FOLLOW_DIV_in_synpred6_CivlCParser3221); if (state.failed) return;
}
}
// $ANTLR end synpred6_CivlCParser
// $ANTLR start synpred7_CivlCParser
public final void synpred7_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:453:11: ( MOD )
// CivlCParser.g:453:12: MOD
{
match(input,MOD,FOLLOW_MOD_in_synpred7_CivlCParser3272); if (state.failed) return;
}
}
// $ANTLR end synpred7_CivlCParser
// $ANTLR start synpred8_CivlCParser
public final void synpred8_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:461:11: ( PLUS )
// CivlCParser.g:461:12: PLUS
{
match(input,PLUS,FOLLOW_PLUS_in_synpred8_CivlCParser3353); if (state.failed) return;
}
}
// $ANTLR end synpred8_CivlCParser
// $ANTLR start synpred9_CivlCParser
public final void synpred9_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:463:11: ( SUB )
// CivlCParser.g:463:12: SUB
{
match(input,SUB,FOLLOW_SUB_in_synpred9_CivlCParser3402); if (state.failed) return;
}
}
// $ANTLR end synpred9_CivlCParser
// $ANTLR start synpred10_CivlCParser
public final void synpred10_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:472:11: ( DOTDOT )
// CivlCParser.g:472:12: DOTDOT
{
match(input,DOTDOT,FOLLOW_DOTDOT_in_synpred10_CivlCParser3477); if (state.failed) return;
}
}
// $ANTLR end synpred10_CivlCParser
// $ANTLR start synpred11_CivlCParser
public final void synpred11_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:479:11: ( HASH )
// CivlCParser.g:479:12: HASH
{
match(input,HASH,FOLLOW_HASH_in_synpred11_CivlCParser3554); if (state.failed) return;
}
}
// $ANTLR end synpred11_CivlCParser
// $ANTLR start synpred12_CivlCParser
public final void synpred12_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:487:11: ( SHIFTLEFT )
// CivlCParser.g:487:12: SHIFTLEFT
{
match(input,SHIFTLEFT,FOLLOW_SHIFTLEFT_in_synpred12_CivlCParser3630); if (state.failed) return;
}
}
// $ANTLR end synpred12_CivlCParser
// $ANTLR start synpred13_CivlCParser
public final void synpred13_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:489:11: ( SHIFTRIGHT )
// CivlCParser.g:489:12: SHIFTRIGHT
{
match(input,SHIFTRIGHT,FOLLOW_SHIFTRIGHT_in_synpred13_CivlCParser3679); if (state.failed) return;
}
}
// $ANTLR end synpred13_CivlCParser
// $ANTLR start synpred14_CivlCParser
public final void synpred14_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:497:11: ( relationalOperator )
// CivlCParser.g:497:12: relationalOperator
{
pushFollow(FOLLOW_relationalOperator_in_synpred14_CivlCParser3760);
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:512:11: ( equalityOperator )
// CivlCParser.g:512:12: equalityOperator
{
pushFollow(FOLLOW_equalityOperator_in_synpred15_CivlCParser3898);
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:527:11: ( AMPERSAND )
// CivlCParser.g:527:12: AMPERSAND
{
match(input,AMPERSAND,FOLLOW_AMPERSAND_in_synpred16_CivlCParser4033); if (state.failed) return;
}
}
// $ANTLR end synpred16_CivlCParser
// $ANTLR start synpred17_CivlCParser
public final void synpred17_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:535:11: ( BITXOR )
// CivlCParser.g:535:12: BITXOR
{
match(input,BITXOR,FOLLOW_BITXOR_in_synpred17_CivlCParser4116); if (state.failed) return;
}
}
// $ANTLR end synpred17_CivlCParser
// $ANTLR start synpred18_CivlCParser
public final void synpred18_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:543:11: ( BITOR )
// CivlCParser.g:543:12: BITOR
{
match(input,BITOR,FOLLOW_BITOR_in_synpred18_CivlCParser4199); if (state.failed) return;
}
}
// $ANTLR end synpred18_CivlCParser
// $ANTLR start synpred19_CivlCParser
public final void synpred19_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:551:11: ( AND )
// CivlCParser.g:551:12: AND
{
match(input,AND,FOLLOW_AND_in_synpred19_CivlCParser4282); if (state.failed) return;
}
}
// $ANTLR end synpred19_CivlCParser
// $ANTLR start synpred20_CivlCParser
public final void synpred20_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:559:11: ( OR )
// CivlCParser.g:559:12: OR
{
match(input,OR,FOLLOW_OR_in_synpred20_CivlCParser4373); if (state.failed) return;
}
}
// $ANTLR end synpred20_CivlCParser
// $ANTLR start synpred21_CivlCParser
public final void synpred21_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:568:11: ( IMPLIES )
// CivlCParser.g:568:12: IMPLIES
{
match(input,IMPLIES,FOLLOW_IMPLIES_in_synpred21_CivlCParser4467); if (state.failed) return;
}
}
// $ANTLR end synpred21_CivlCParser
// $ANTLR start synpred22_CivlCParser
public final void synpred22_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:577:11: ( QMARK )
// CivlCParser.g:577:12: QMARK
{
match(input,QMARK,FOLLOW_QMARK_in_synpred22_CivlCParser4553); if (state.failed) return;
}
}
// $ANTLR end synpred22_CivlCParser
// $ANTLR start synpred23_CivlCParser
public final void synpred23_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:605:5: ( LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR )
// CivlCParser.g:605:6: LPAREN typeName RPAREN LAMBDA LPAREN boundVariableDeclarationList BITOR
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred23_CivlCParser4821); if (state.failed) return;
pushFollow(FOLLOW_typeName_in_synpred23_CivlCParser4823);
typeName();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred23_CivlCParser4825); if (state.failed) return;
match(input,LAMBDA,FOLLOW_LAMBDA_in_synpred23_CivlCParser4827); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred23_CivlCParser4829); if (state.failed) return;
pushFollow(FOLLOW_boundVariableDeclarationList_in_synpred23_CivlCParser4847);
boundVariableDeclarationList();
state._fsp--;
if (state.failed) return;
match(input,BITOR,FOLLOW_BITOR_in_synpred23_CivlCParser4849); if (state.failed) return;
}
}
// $ANTLR end synpred23_CivlCParser
// $ANTLR start synpred24_CivlCParser
public final void synpred24_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:641:4: ( arrayLambdaExpression )
// CivlCParser.g:641:5: arrayLambdaExpression
{
pushFollow(FOLLOW_arrayLambdaExpression_in_synpred24_CivlCParser5162);
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:642:4: ( unaryExpression assignmentOperator )
// CivlCParser.g:642:5: unaryExpression assignmentOperator
{
pushFollow(FOLLOW_unaryExpression_in_synpred25_CivlCParser5172);
unaryExpression();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_assignmentOperator_in_synpred25_CivlCParser5174);
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:666:6: ( COMMA )
// CivlCParser.g:666:7: COMMA
{
match(input,COMMA,FOLLOW_COMMA_in_synpred26_CivlCParser5335); if (state.failed) return;
}
}
// $ANTLR end synpred26_CivlCParser
// $ANTLR start synpred27_CivlCParser
public final void synpred27_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:760:4: ( typeSpecifier )
// CivlCParser.g:760:5: typeSpecifier
{
pushFollow(FOLLOW_typeSpecifier_in_synpred27_CivlCParser5610);
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:981:8: ( SYSTEM libraryName )
// CivlCParser.g:981:9: SYSTEM libraryName
{
match(input,SYSTEM,FOLLOW_SYSTEM_in_synpred28_CivlCParser6863); if (state.failed) return;
pushFollow(FOLLOW_libraryName_in_synpred28_CivlCParser6865);
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:1218:4: ( declarator )
// CivlCParser.g:1218:5: declarator
{
pushFollow(FOLLOW_declarator_in_synpred29_CivlCParser7958);
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:1521:11: ( ELSE )
// CivlCParser.g:1521:12: ELSE
{
match(input,ELSE,FOLLOW_ELSE_in_synpred30_CivlCParser9584); if (state.failed) return;
}
}
// $ANTLR end synpred30_CivlCParser
// $ANTLR start synpred31_CivlCParser
public final void synpred31_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:1831:3: ( declarator contract declarationList_opt LCURLY )
// CivlCParser.g:1831:4: declarator contract declarationList_opt LCURLY
{
pushFollow(FOLLOW_declarator_in_synpred31_CivlCParser11201);
declarator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_contract_in_synpred31_CivlCParser11203);
contract();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declarationList_opt_in_synpred31_CivlCParser11205);
declarationList_opt();
state._fsp--;
if (state.failed) return;
match(input,LCURLY,FOLLOW_LCURLY_in_synpred31_CivlCParser11207); if (state.failed) return;
}
}
// $ANTLR end synpred31_CivlCParser
// $ANTLR start synpred32_CivlCParser
public final void synpred32_CivlCParser_fragment() throws RecognitionException {
// CivlCParser.g:1833:4: ( declarationSpecifiers declarator contract declarationList_opt LCURLY )
// CivlCParser.g:1833:5: declarationSpecifiers declarator contract declarationList_opt LCURLY
{
pushFollow(FOLLOW_declarationSpecifiers_in_synpred32_CivlCParser11220);
declarationSpecifiers();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declarator_in_synpred32_CivlCParser11222);
declarator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_contract_in_synpred32_CivlCParser11224);
contract();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declarationList_opt_in_synpred32_CivlCParser11226);
declarationList_opt();
state._fsp--;
if (state.failed) return;
match(input,LCURLY,FOLLOW_LCURLY_in_synpred32_CivlCParser11228); 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 DFA75 dfa75 = new DFA75(this);
protected DFA83 dfa83 = new DFA83(this);
protected DFA84 dfa84 = new DFA84(this);
protected DFA96 dfa96 = new DFA96(this);
protected DFA100 dfa100 = new DFA100(this);
protected DFA119 dfa119 = new DFA119(this);
protected DFA147 dfa147 = new DFA147(this);
static final String DFA75_eotS =
"\40\uffff";
static final String DFA75_eofS =
"\40\uffff";
static final String DFA75_minS =
"\1\170\2\uffff\1\25\2\uffff\1\25\6\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 DFA75_maxS =
"\1\u00cf\2\uffff\1\u00da\2\uffff\1\u00da\6\uffff\1\u00da\1\uffff\1\160"+
"\1\u00d8\1\uffff\1\0\1\uffff\1\u00d8\1\157\1\u00d8\1\157\1\0\1\u00d8\1"+
"\157\2\0\1\157\2\0";
static final String DFA75_acceptS =
"\1\uffff\1\1\1\2\1\uffff\1\5\1\6\1\uffff\1\11\1\12\1\13\1\14\1\3\1\4\1"+
"\uffff\1\10\2\uffff\1\7\1\uffff\1\7\14\uffff";
static final String DFA75_specialS =
"\17\uffff\1\13\1\4\1\uffff\1\6\1\uffff\1\14\1\3\1\15\1\0\1\7\1\16\1\5"+
"\1\10\1\1\1\2\1\11\1\12}>";
static final String[] DFA75_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\16\uffff\1\14\1\uffff\1\14\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\1\13\4\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\16\42\uffff\1\16\16\uffff\1\16\1\uffff\1\15\31\uffff\1\16\3\uffff"+
"\1\16\4\uffff\1\16\13\uffff\2\16\3\uffff\2\16\2\uffff\1\16\4\uffff\1"+
"\16\4\uffff\2\16\5\uffff\2\16\1\uffff\2\16\1\uffff\1\16\2\uffff\2\16"+
"\1\uffff\1\16\3\uffff\1\16\4\uffff\3\16\2\uffff\3\16\1\uffff\1\16\6\uffff"+
"\2\16\1\uffff\2\16\1\uffff\1\16\6\uffff\3\16\2\uffff\1\16\1\uffff\1\16"+
"\1\uffff\1\16\1\uffff\1\16\1\uffff\3\16\1\uffff\2\16\2\uffff\2\16",
"",
"",
"",
"",
"",
"",
"\1\16\16\uffff\1\16\15\uffff\1\16\10\uffff\1\16\15\uffff\1\17\10\uffff"+
"\1\16\5\uffff\1\16\6\uffff\1\16\4\uffff\1\16\7\uffff\1\16\1\uffff\1\16"+
"\7\uffff\1\16\6\uffff\1\16\1\uffff\2\16\1\uffff\1\16\10\uffff\1\16\2"+
"\uffff\1\16\1\uffff\1\16\3\uffff\1\16\10\uffff\1\16\4\uffff\1\16\17\uffff"+
"\1\16\3\uffff\1\16\2\uffff\1\16\7\uffff\1\16\5\uffff\1\16\6\uffff\2\16"+
"\2\uffff\2\16\4\uffff\2\16\1\uffff\2\16\14\uffff\1\16\1\uffff\1\16",
"",
"\2\16\2\uffff\10\16\11\uffff\4\16\7\uffff\1\16\10\uffff\2\16\11\uffff"+
"\1\21\3\uffff\1\16\10\uffff\1\16\1\uffff\1\16\1\uffff\3\16\2\uffff\4"+
"\16\4\uffff\1\16\4\uffff\3\16\2\uffff\1\16\4\uffff\1\22\2\uffff\6\16"+
"\1\uffff\1\20\1\16",
"\1\16\16\uffff\1\16\15\uffff\1\16\10\uffff\1\16\15\uffff\1\25\10\uffff"+
"\1\16\5\uffff\1\16\6\uffff\1\16\4\uffff\1\16\7\uffff\1\16\1\uffff\1\16"+
"\7\uffff\1\23\6\uffff\1\16\1\uffff\1\16\1\24\1\uffff\1\16\10\uffff\1"+
"\16\4\uffff\1\16\3\uffff\1\16\15\uffff\1\16\17\uffff\1\16\3\uffff\1\16"+
"\20\uffff\1\16\7\uffff\1\16\2\uffff\2\16\4\uffff\2\16\1\uffff\1\16\15"+
"\uffff\1\16",
"",
"\1\uffff",
"",
"\1\16\16\uffff\1\16\15\uffff\1\16\10\uffff\1\16\15\uffff\1\27\10\uffff"+
"\1\16\5\uffff\1\16\6\uffff\1\16\4\uffff\1\16\7\uffff\1\16\1\uffff\1\16"+
"\7\uffff\1\23\6\uffff\1\16\1\uffff\1\16\1\26\1\uffff\1\16\10\uffff\1"+
"\16\4\uffff\1\16\3\uffff\1\16\15\uffff\1\16\7\uffff\1\16\6\uffff\2\16"+
"\3\uffff\1\16\20\uffff\1\16\7\uffff\1\16\2\uffff\2\16\4\uffff\2\16\1"+
"\uffff\1\16\11\uffff\1\16\3\uffff\1\16",
"\2\16\2\uffff\1\16\1\uffff\1\16\1\uffff\1\16\1\uffff\1\16\12\uffff\1"+
"\16\1\uffff\2\16\7\uffff\1\16\10\uffff\2\16\11\uffff\1\21\3\uffff\1\16"+
"\10\uffff\1\16\1\uffff\1\16\1\uffff\3\16\2\uffff\2\16\1\uffff\1\16\4"+
"\uffff\1\16\4\uffff\1\16\1\uffff\1\16\2\uffff\1\16\4\uffff\1\30\2\uffff"+
"\1\16\1\uffff\1\16\1\uffff\1\16\2\uffff\1\20",
"\1\16\16\uffff\1\16\15\uffff\1\16\10\uffff\1\16\15\uffff\1\32\10\uffff"+
"\1\16\5\uffff\1\16\6\uffff\1\16\4\uffff\1\16\7\uffff\1\16\1\uffff\1\16"+
"\7\uffff\1\23\6\uffff\1\16\1\uffff\1\16\1\31\1\uffff\1\16\10\uffff\1"+
"\16\4\uffff\1\16\3\uffff\1\16\15\uffff\1\16\7\uffff\1\16\6\uffff\2\16"+
"\3\uffff\1\16\20\uffff\1\16\7\uffff\1\16\2\uffff\2\16\4\uffff\2\16\1"+
"\uffff\1\16\11\uffff\1\16\3\uffff\1\16",
"\2\16\2\uffff\1\16\1\uffff\1\16\1\uffff\1\16\1\uffff\1\16\12\uffff\1"+
"\16\1\uffff\2\16\7\uffff\1\16\10\uffff\2\16\11\uffff\1\21\3\uffff\1\16"+
"\10\uffff\1\16\1\uffff\1\16\1\uffff\3\16\2\uffff\2\16\1\uffff\1\16\4"+
"\uffff\1\16\4\uffff\1\16\1\uffff\1\16\2\uffff\1\16\4\uffff\1\33\2\uffff"+
"\1\16\1\uffff\1\16\1\uffff\1\16\2\uffff\1\20",
"\1\uffff",
"\1\16\16\uffff\1\16\15\uffff\1\16\10\uffff\1\16\15\uffff\1\35\10\uffff"+
"\1\16\5\uffff\1\16\6\uffff\1\16\4\uffff\1\16\7\uffff\1\16\1\uffff\1\16"+
"\7\uffff\1\23\6\uffff\1\16\1\uffff\1\16\1\34\1\uffff\1\16\10\uffff\1"+
"\16\4\uffff\1\16\3\uffff\1\16\15\uffff\1\16\7\uffff\1\16\6\uffff\2\16"+
"\3\uffff\1\16\20\uffff\1\16\7\uffff\1\16\2\uffff\2\16\4\uffff\2\16\1"+
"\uffff\1\16\11\uffff\1\16\3\uffff\1\16",
"\2\16\2\uffff\1\16\1\uffff\1\16\1\uffff\1\16\1\uffff\1\16\12\uffff\1"+
"\16\1\uffff\2\16\7\uffff\1\16\10\uffff\2\16\11\uffff\1\21\3\uffff\1\16"+
"\10\uffff\1\16\1\uffff\1\16\1\uffff\3\16\2\uffff\2\16\1\uffff\1\16\4"+
"\uffff\1\16\4\uffff\1\16\1\uffff\1\16\2\uffff\1\16\4\uffff\1\36\2\uffff"+
"\1\16\1\uffff\1\16\1\uffff\1\16\2\uffff\1\20",
"\1\uffff",
"\1\uffff",
"\2\16\2\uffff\1\16\1\uffff\1\16\1\uffff\1\16\1\uffff\1\16\12\uffff\1"+
"\16\1\uffff\2\16\7\uffff\1\16\10\uffff\2\16\11\uffff\1\21\3\uffff\1\16"+
"\10\uffff\1\16\1\uffff\1\16\1\uffff\3\16\2\uffff\2\16\1\uffff\1\16\4"+
"\uffff\1\16\4\uffff\1\16\1\uffff\1\16\2\uffff\1\16\4\uffff\1\37\2\uffff"+
"\1\16\1\uffff\1\16\1\uffff\1\16\2\uffff\1\20",
"\1\uffff",
"\1\uffff"
};
static final short[] DFA75_eot = DFA.unpackEncodedString(DFA75_eotS);
static final short[] DFA75_eof = DFA.unpackEncodedString(DFA75_eofS);
static final char[] DFA75_min = DFA.unpackEncodedStringToUnsignedChars(DFA75_minS);
static final char[] DFA75_max = DFA.unpackEncodedStringToUnsignedChars(DFA75_maxS);
static final short[] DFA75_accept = DFA.unpackEncodedString(DFA75_acceptS);
static final short[] DFA75_special = DFA.unpackEncodedString(DFA75_specialS);
static final short[][] DFA75_transition;
static {
int numStates = DFA75_transitionS.length;
DFA75_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA75_transition[i] = DFA.unpackEncodedString(DFA75_transitionS[i]);
}
}
protected class DFA75 extends DFA {
public DFA75(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 75;
this.eot = DFA75_eot;
this.eof = DFA75_eof;
this.min = DFA75_min;
this.max = DFA75_max;
this.accept = DFA75_accept;
this.special = DFA75_special;
this.transition = DFA75_transition;
}
@Override
public String getDescription() {
return "974:1: functionSpecifier : ( INLINE | NORETURN | ABSTRACT CONTIN LPAREN INTEGER_CONSTANT RPAREN -> ^( ABSTRACT INTEGER_CONSTANT ) | ABSTRACT -> ^( ABSTRACT ) | 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 LA75_23 = input.LA(1);
int index75_23 = input.index();
input.rewind();
s = -1;
if ( (LA75_23==RSQUARE) ) {s = 27;}
else if ( (LA75_23==SUB) ) {s = 16;}
else if ( (LA75_23==IDENTIFIER) && (synpred28_CivlCParser())) {s = 17;}
else if ( ((LA75_23 >= AMPERSAND && LA75_23 <= AND)||LA75_23==ARROW||LA75_23==AT||LA75_23==BITOR||LA75_23==BITXOR||LA75_23==DIV||(LA75_23 >= DOT && LA75_23 <= DOTDOT)||LA75_23==EQUALS||(LA75_23 >= GT && LA75_23 <= GTE)||LA75_23==IMPLIES||LA75_23==LEXCON||LA75_23==LPAREN||(LA75_23 >= LSQUARE && LA75_23 <= LTE)||(LA75_23 >= MINUSMINUS && LA75_23 <= MOD)||LA75_23==NEQ||LA75_23==OR||LA75_23==PLUS||LA75_23==PLUSPLUS||LA75_23==QMARK||LA75_23==SHIFTLEFT||LA75_23==SHIFTRIGHT||LA75_23==STAR) ) {s = 14;}
input.seek(index75_23);
if ( s>=0 ) return s;
break;
case 1 :
int LA75_28 = input.LA(1);
int index75_28 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 19;}
else if ( (true) ) {s = 14;}
input.seek(index75_28);
if ( s>=0 ) return s;
break;
case 2 :
int LA75_29 = input.LA(1);
int index75_29 = input.index();
input.rewind();
s = -1;
if ( (LA75_29==RSQUARE) ) {s = 31;}
else if ( (LA75_29==SUB) ) {s = 16;}
else if ( (LA75_29==IDENTIFIER) && (synpred28_CivlCParser())) {s = 17;}
else if ( ((LA75_29 >= AMPERSAND && LA75_29 <= AND)||LA75_29==ARROW||LA75_29==AT||LA75_29==BITOR||LA75_29==BITXOR||LA75_29==DIV||(LA75_29 >= DOT && LA75_29 <= DOTDOT)||LA75_29==EQUALS||(LA75_29 >= GT && LA75_29 <= GTE)||LA75_29==IMPLIES||LA75_29==LEXCON||LA75_29==LPAREN||(LA75_29 >= LSQUARE && LA75_29 <= LTE)||(LA75_29 >= MINUSMINUS && LA75_29 <= MOD)||LA75_29==NEQ||LA75_29==OR||LA75_29==PLUS||LA75_29==PLUSPLUS||LA75_29==QMARK||LA75_29==SHIFTLEFT||LA75_29==SHIFTRIGHT||LA75_29==STAR) ) {s = 14;}
input.seek(index75_29);
if ( s>=0 ) return s;
break;
case 3 :
int LA75_21 = input.LA(1);
int index75_21 = input.index();
input.rewind();
s = -1;
if ( (LA75_21==RSQUARE) ) {s = 24;}
else if ( (LA75_21==SUB) ) {s = 16;}
else if ( (LA75_21==IDENTIFIER) && (synpred28_CivlCParser())) {s = 17;}
else if ( ((LA75_21 >= AMPERSAND && LA75_21 <= AND)||LA75_21==ARROW||LA75_21==AT||LA75_21==BITOR||LA75_21==BITXOR||LA75_21==DIV||(LA75_21 >= DOT && LA75_21 <= DOTDOT)||LA75_21==EQUALS||(LA75_21 >= GT && LA75_21 <= GTE)||LA75_21==IMPLIES||LA75_21==LEXCON||LA75_21==LPAREN||(LA75_21 >= LSQUARE && LA75_21 <= LTE)||(LA75_21 >= MINUSMINUS && LA75_21 <= MOD)||LA75_21==NEQ||LA75_21==OR||LA75_21==PLUS||LA75_21==PLUSPLUS||LA75_21==QMARK||LA75_21==SHIFTLEFT||LA75_21==SHIFTRIGHT||LA75_21==STAR) ) {s = 14;}
input.seek(index75_21);
if ( s>=0 ) return s;
break;
case 4 :
int LA75_16 = input.LA(1);
int index75_16 = input.index();
input.rewind();
s = -1;
if ( (LA75_16==RSQUARE) && (synpred28_CivlCParser())) {s = 19;}
else if ( (LA75_16==SUB) ) {s = 20;}
else if ( (LA75_16==IDENTIFIER) ) {s = 21;}
else if ( (LA75_16==AMPERSAND||LA75_16==CHARACTER_CONSTANT||LA75_16==ELLIPSIS||LA75_16==FLOATING_CONSTANT||LA75_16==INTEGER_CONSTANT||LA75_16==LPAREN||LA75_16==MINUSMINUS||LA75_16==NOT||LA75_16==PLUS||LA75_16==PLUSPLUS||LA75_16==STAR||LA75_16==STRING_LITERAL||LA75_16==TILDE||LA75_16==ALIGNOF||LA75_16==BIG_O||LA75_16==CALLS||LA75_16==DERIV||LA75_16==GENERIC||LA75_16==HERE||LA75_16==PROCNULL||LA75_16==RESULT||(LA75_16 >= SCOPEOF && LA75_16 <= SELF)||(LA75_16 >= SIZEOF && LA75_16 <= SPAWN)||LA75_16==STATE_NULL||LA75_16==VALUE_AT) ) {s = 14;}
input.seek(index75_16);
if ( s>=0 ) return s;
break;
case 5 :
int LA75_26 = input.LA(1);
int index75_26 = input.index();
input.rewind();
s = -1;
if ( (LA75_26==RSQUARE) ) {s = 30;}
else if ( (LA75_26==SUB) ) {s = 16;}
else if ( (LA75_26==IDENTIFIER) && (synpred28_CivlCParser())) {s = 17;}
else if ( ((LA75_26 >= AMPERSAND && LA75_26 <= AND)||LA75_26==ARROW||LA75_26==AT||LA75_26==BITOR||LA75_26==BITXOR||LA75_26==DIV||(LA75_26 >= DOT && LA75_26 <= DOTDOT)||LA75_26==EQUALS||(LA75_26 >= GT && LA75_26 <= GTE)||LA75_26==IMPLIES||LA75_26==LEXCON||LA75_26==LPAREN||(LA75_26 >= LSQUARE && LA75_26 <= LTE)||(LA75_26 >= MINUSMINUS && LA75_26 <= MOD)||LA75_26==NEQ||LA75_26==OR||LA75_26==PLUS||LA75_26==PLUSPLUS||LA75_26==QMARK||LA75_26==SHIFTLEFT||LA75_26==SHIFTRIGHT||LA75_26==STAR) ) {s = 14;}
input.seek(index75_26);
if ( s>=0 ) return s;
break;
case 6 :
int LA75_18 = input.LA(1);
int index75_18 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 19;}
else if ( (true) ) {s = 14;}
input.seek(index75_18);
if ( s>=0 ) return s;
break;
case 7 :
int LA75_24 = input.LA(1);
int index75_24 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 19;}
else if ( (true) ) {s = 14;}
input.seek(index75_24);
if ( s>=0 ) return s;
break;
case 8 :
int LA75_27 = input.LA(1);
int index75_27 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 19;}
else if ( (true) ) {s = 14;}
input.seek(index75_27);
if ( s>=0 ) return s;
break;
case 9 :
int LA75_30 = input.LA(1);
int index75_30 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 19;}
else if ( (true) ) {s = 14;}
input.seek(index75_30);
if ( s>=0 ) return s;
break;
case 10 :
int LA75_31 = input.LA(1);
int index75_31 = input.index();
input.rewind();
s = -1;
if ( (synpred28_CivlCParser()) ) {s = 19;}
else if ( (true) ) {s = 14;}
input.seek(index75_31);
if ( s>=0 ) return s;
break;
case 11 :
int LA75_15 = input.LA(1);
int index75_15 = input.index();
input.rewind();
s = -1;
if ( (LA75_15==SUB) ) {s = 16;}
else if ( (LA75_15==IDENTIFIER) && (synpred28_CivlCParser())) {s = 17;}
else if ( (LA75_15==RSQUARE) ) {s = 18;}
else if ( ((LA75_15 >= AMPERSAND && LA75_15 <= AND)||(LA75_15 >= ARROW && LA75_15 <= BITXOREQ)||(LA75_15 >= DIV && LA75_15 <= DOTDOT)||LA75_15==EQUALS||(LA75_15 >= GT && LA75_15 <= GTE)||LA75_15==IMPLIES||LA75_15==LEXCON||LA75_15==LPAREN||(LA75_15 >= LSQUARE && LA75_15 <= LTE)||(LA75_15 >= MINUSMINUS && LA75_15 <= NEQ)||LA75_15==OR||(LA75_15 >= PLUS && LA75_15 <= PLUSPLUS)||LA75_15==QMARK||(LA75_15 >= SHIFTLEFT && LA75_15 <= STAREQ)||LA75_15==SUBEQ) ) {s = 14;}
input.seek(index75_15);
if ( s>=0 ) return s;
break;
case 12 :
int LA75_20 = input.LA(1);
int index75_20 = input.index();
input.rewind();
s = -1;
if ( (LA75_20==RSQUARE) && (synpred28_CivlCParser())) {s = 19;}
else if ( (LA75_20==SUB) ) {s = 22;}
else if ( (LA75_20==IDENTIFIER) ) {s = 23;}
else if ( (LA75_20==AMPERSAND||LA75_20==CHARACTER_CONSTANT||LA75_20==ELLIPSIS||LA75_20==FLOATING_CONSTANT||LA75_20==INTEGER_CONSTANT||LA75_20==LPAREN||LA75_20==MINUSMINUS||LA75_20==NOT||LA75_20==PLUS||LA75_20==PLUSPLUS||LA75_20==STAR||LA75_20==STRING_LITERAL||LA75_20==TILDE||LA75_20==ALIGNOF||LA75_20==BIG_O||LA75_20==CALLS||LA75_20==DERIV||LA75_20==EXISTS||(LA75_20 >= FORALL && LA75_20 <= GENERIC)||LA75_20==HERE||LA75_20==PROCNULL||LA75_20==RESULT||(LA75_20 >= SCOPEOF && LA75_20 <= SELF)||(LA75_20 >= SIZEOF && LA75_20 <= SPAWN)||LA75_20==STATE_NULL||LA75_20==UNIFORM||LA75_20==VALUE_AT) ) {s = 14;}
input.seek(index75_20);
if ( s>=0 ) return s;
break;
case 13 :
int LA75_22 = input.LA(1);
int index75_22 = input.index();
input.rewind();
s = -1;
if ( (LA75_22==RSQUARE) && (synpred28_CivlCParser())) {s = 19;}
else if ( (LA75_22==SUB) ) {s = 25;}
else if ( (LA75_22==IDENTIFIER) ) {s = 26;}
else if ( (LA75_22==AMPERSAND||LA75_22==CHARACTER_CONSTANT||LA75_22==ELLIPSIS||LA75_22==FLOATING_CONSTANT||LA75_22==INTEGER_CONSTANT||LA75_22==LPAREN||LA75_22==MINUSMINUS||LA75_22==NOT||LA75_22==PLUS||LA75_22==PLUSPLUS||LA75_22==STAR||LA75_22==STRING_LITERAL||LA75_22==TILDE||LA75_22==ALIGNOF||LA75_22==BIG_O||LA75_22==CALLS||LA75_22==DERIV||LA75_22==EXISTS||(LA75_22 >= FORALL && LA75_22 <= GENERIC)||LA75_22==HERE||LA75_22==PROCNULL||LA75_22==RESULT||(LA75_22 >= SCOPEOF && LA75_22 <= SELF)||(LA75_22 >= SIZEOF && LA75_22 <= SPAWN)||LA75_22==STATE_NULL||LA75_22==UNIFORM||LA75_22==VALUE_AT) ) {s = 14;}
input.seek(index75_22);
if ( s>=0 ) return s;
break;
case 14 :
int LA75_25 = input.LA(1);
int index75_25 = input.index();
input.rewind();
s = -1;
if ( (LA75_25==RSQUARE) && (synpred28_CivlCParser())) {s = 19;}
else if ( (LA75_25==SUB) ) {s = 28;}
else if ( (LA75_25==IDENTIFIER) ) {s = 29;}
else if ( (LA75_25==AMPERSAND||LA75_25==CHARACTER_CONSTANT||LA75_25==ELLIPSIS||LA75_25==FLOATING_CONSTANT||LA75_25==INTEGER_CONSTANT||LA75_25==LPAREN||LA75_25==MINUSMINUS||LA75_25==NOT||LA75_25==PLUS||LA75_25==PLUSPLUS||LA75_25==STAR||LA75_25==STRING_LITERAL||LA75_25==TILDE||LA75_25==ALIGNOF||LA75_25==BIG_O||LA75_25==CALLS||LA75_25==DERIV||LA75_25==EXISTS||(LA75_25 >= FORALL && LA75_25 <= GENERIC)||LA75_25==HERE||LA75_25==PROCNULL||LA75_25==RESULT||(LA75_25 >= SCOPEOF && LA75_25 <= SELF)||(LA75_25 >= SIZEOF && LA75_25 <= SPAWN)||LA75_25==STATE_NULL||LA75_25==UNIFORM||LA75_25==VALUE_AT) ) {s = 14;}
input.seek(index75_25);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 75, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA83_eotS =
"\7\uffff";
static final String DFA83_eofS =
"\7\uffff";
static final String DFA83_minS =
"\2\4\1\uffff\1\4\3\uffff";
static final String DFA83_maxS =
"\2\u00da\1\uffff\1\u00d8\3\uffff";
static final String DFA83_acceptS =
"\2\uffff\1\1\1\uffff\1\2\1\3\1\4";
static final String DFA83_specialS =
"\7\uffff}>";
static final String[] DFA83_transitionS = {
"\1\2\16\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\10\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",
"\1\2\16\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\10\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",
"",
"\1\2\16\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\10\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",
"",
"",
""
};
static final short[] DFA83_eot = DFA.unpackEncodedString(DFA83_eotS);
static final short[] DFA83_eof = DFA.unpackEncodedString(DFA83_eofS);
static final char[] DFA83_min = DFA.unpackEncodedStringToUnsignedChars(DFA83_minS);
static final char[] DFA83_max = DFA.unpackEncodedStringToUnsignedChars(DFA83_maxS);
static final short[] DFA83_accept = DFA.unpackEncodedString(DFA83_acceptS);
static final short[] DFA83_special = DFA.unpackEncodedString(DFA83_specialS);
static final short[][] DFA83_transition;
static {
int numStates = DFA83_transitionS.length;
DFA83_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA83_transition[i] = DFA.unpackEncodedString(DFA83_transitionS[i]);
}
}
protected class DFA83 extends DFA {
public DFA83(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 83;
this.eot = DFA83_eot;
this.eof = DFA83_eof;
this.min = DFA83_min;
this.max = DFA83_max;
this.accept = DFA83_accept;
this.special = DFA83_special;
this.transition = DFA83_transition;
}
@Override
public String getDescription() {
return "1074: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 DFA84_eotS =
"\11\uffff";
static final String DFA84_eofS =
"\11\uffff";
static final String DFA84_minS =
"\1\70\1\uffff\1\25\1\uffff\1\41\1\0\1\25\1\uffff\1\0";
static final String DFA84_maxS =
"\1\u00da\1\uffff\1\u00da\1\uffff\1\u00da\1\0\1\u00da\1\uffff\1\0";
static final String DFA84_acceptS =
"\1\uffff\1\1\1\uffff\1\3\3\uffff\1\2\1\uffff";
static final String DFA84_specialS =
"\5\uffff\1\0\2\uffff\1\1}>";
static final String[] DFA84_transitionS = {
"\1\2\52\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\16\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\77\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\16\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[] DFA84_eot = DFA.unpackEncodedString(DFA84_eotS);
static final short[] DFA84_eof = DFA.unpackEncodedString(DFA84_eofS);
static final char[] DFA84_min = DFA.unpackEncodedStringToUnsignedChars(DFA84_minS);
static final char[] DFA84_max = DFA.unpackEncodedStringToUnsignedChars(DFA84_maxS);
static final short[] DFA84_accept = DFA.unpackEncodedString(DFA84_acceptS);
static final short[] DFA84_special = DFA.unpackEncodedString(DFA84_specialS);
static final short[][] DFA84_transition;
static {
int numStates = DFA84_transitionS.length;
DFA84_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA84_transition[i] = DFA.unpackEncodedString(DFA84_transitionS[i]);
}
}
protected class DFA84 extends DFA {
public DFA84(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 84;
this.eot = DFA84_eot;
this.eof = DFA84_eof;
this.min = DFA84_min;
this.max = DFA84_max;
this.accept = DFA84_accept;
this.special = DFA84_special;
this.transition = DFA84_transition;
}
@Override
public String getDescription() {
return "1102: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 LA84_5 = input.LA(1);
int index84_5 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText())))) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index84_5);
if ( s>=0 ) return s;
break;
case 1 :
int LA84_8 = input.LA(1);
int index84_8 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText())))) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index84_8);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 84, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA96_eotS =
"\6\uffff";
static final String DFA96_eofS =
"\1\uffff\1\4\1\uffff\1\4\2\uffff";
static final String DFA96_minS =
"\1\107\1\24\1\uffff\1\24\2\uffff";
static final String DFA96_maxS =
"\1\154\1\u00da\1\uffff\1\u00da\2\uffff";
static final String DFA96_acceptS =
"\2\uffff\1\2\1\uffff\1\1\1\3";
static final String DFA96_specialS =
"\6\uffff}>";
static final String[] DFA96_transitionS = {
"\1\2\1\uffff\1\2\42\uffff\1\1",
"\2\4\42\uffff\1\4\16\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\16\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[] DFA96_eot = DFA.unpackEncodedString(DFA96_eotS);
static final short[] DFA96_eof = DFA.unpackEncodedString(DFA96_eofS);
static final char[] DFA96_min = DFA.unpackEncodedStringToUnsignedChars(DFA96_minS);
static final char[] DFA96_max = DFA.unpackEncodedStringToUnsignedChars(DFA96_maxS);
static final short[] DFA96_accept = DFA.unpackEncodedString(DFA96_acceptS);
static final short[] DFA96_special = DFA.unpackEncodedString(DFA96_specialS);
static final short[][] DFA96_transition;
static {
int numStates = DFA96_transitionS.length;
DFA96_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA96_transition[i] = DFA.unpackEncodedString(DFA96_transitionS[i]);
}
}
protected class DFA96 extends DFA {
public DFA96(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 96;
this.eot = DFA96_eot;
this.eof = DFA96_eof;
this.min = DFA96_min;
this.max = DFA96_max;
this.accept = DFA96_accept;
this.special = DFA96_special;
this.transition = DFA96_transition;
}
@Override
public String getDescription() {
return "1254:1: abstractDeclarator : ( pointer -> ^( ABSTRACT_DECLARATOR pointer ABSENT ) | directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR ABSENT directAbstractDeclarator ) | pointer directAbstractDeclarator -> ^( ABSTRACT_DECLARATOR pointer directAbstractDeclarator ) );";
}
}
static final String DFA100_eotS =
"\7\uffff";
static final String DFA100_eofS =
"\7\uffff";
static final String DFA100_minS =
"\2\4\1\uffff\1\4\3\uffff";
static final String DFA100_maxS =
"\2\u00da\1\uffff\1\u00d8\3\uffff";
static final String DFA100_acceptS =
"\2\uffff\1\1\1\uffff\1\2\1\3\1\4";
static final String DFA100_specialS =
"\7\uffff}>";
static final String[] DFA100_transitionS = {
"\1\2\16\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\10\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",
"\1\2\16\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\10\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",
"",
"\1\2\16\uffff\1\2\15\uffff\1\2\10\uffff\1\2\15\uffff\1\2\10\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",
"",
"",
""
};
static final short[] DFA100_eot = DFA.unpackEncodedString(DFA100_eotS);
static final short[] DFA100_eof = DFA.unpackEncodedString(DFA100_eofS);
static final char[] DFA100_min = DFA.unpackEncodedStringToUnsignedChars(DFA100_minS);
static final char[] DFA100_max = DFA.unpackEncodedStringToUnsignedChars(DFA100_maxS);
static final short[] DFA100_accept = DFA.unpackEncodedString(DFA100_acceptS);
static final short[] DFA100_special = DFA.unpackEncodedString(DFA100_specialS);
static final short[][] DFA100_transition;
static {
int numStates = DFA100_transitionS.length;
DFA100_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA100_transition[i] = DFA.unpackEncodedString(DFA100_transitionS[i]);
}
}
protected class DFA100 extends DFA {
public DFA100(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 100;
this.eot = DFA100_eot;
this.eof = DFA100_eof;
this.min = DFA100_min;
this.max = DFA100_max;
this.accept = DFA100_accept;
this.special = DFA100_special;
this.transition = DFA100_transition;
}
@Override
public String getDescription() {
return "1325: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 DFA119_eotS =
"\74\uffff";
static final String DFA119_eofS =
"\74\uffff";
static final String DFA119_minS =
"\1\4\22\uffff\1\0\50\uffff";
static final String DFA119_maxS =
"\1\u00da\22\uffff\1\0\50\uffff";
static final String DFA119_acceptS =
"\1\uffff\1\1\42\uffff\1\2\27\uffff";
static final String DFA119_specialS =
"\23\uffff\1\0\50\uffff}>";
static final String[] DFA119_transitionS = {
"\1\44\16\uffff\1\44\15\uffff\1\44\10\uffff\1\44\15\uffff\1\23\10\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",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA119_eot = DFA.unpackEncodedString(DFA119_eotS);
static final short[] DFA119_eof = DFA.unpackEncodedString(DFA119_eofS);
static final char[] DFA119_min = DFA.unpackEncodedStringToUnsignedChars(DFA119_minS);
static final char[] DFA119_max = DFA.unpackEncodedStringToUnsignedChars(DFA119_maxS);
static final short[] DFA119_accept = DFA.unpackEncodedString(DFA119_acceptS);
static final short[] DFA119_special = DFA.unpackEncodedString(DFA119_specialS);
static final short[][] DFA119_transition;
static {
int numStates = DFA119_transitionS.length;
DFA119_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA119_transition[i] = DFA.unpackEncodedString(DFA119_transitionS[i]);
}
}
protected class DFA119 extends DFA {
public DFA119(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 119;
this.eot = DFA119_eot;
this.eof = DFA119_eof;
this.min = DFA119_min;
this.max = DFA119_max;
this.accept = DFA119_accept;
this.special = DFA119_special;
this.transition = DFA119_transition;
}
@Override
public String getDescription() {
return "1562: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 LA119_19 = input.LA(1);
int index119_19 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText())))) ) {s = 1;}
else if ( (true) ) {s = 36;}
input.seek(index119_19);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 119, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA147_eotS =
"\127\uffff";
static final String DFA147_eofS =
"\127\uffff";
static final String DFA147_minS =
"\1\4\44\0\62\uffff";
static final String DFA147_maxS =
"\1\u00dd\44\0\62\uffff";
static final String DFA147_acceptS =
"\45\uffff\1\3\1\4\1\5\1\uffff\1\6\53\uffff\1\1\1\2";
static final String DFA147_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\62\uffff}>";
static final String[] DFA147_transitionS = {
"\1\51\2\uffff\1\47\13\uffff\1\51\15\uffff\1\51\10\uffff\1\51\15\uffff"+
"\1\1\1\51\5\uffff\1\47\1\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",
"\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[] DFA147_eot = DFA.unpackEncodedString(DFA147_eotS);
static final short[] DFA147_eof = DFA.unpackEncodedString(DFA147_eofS);
static final char[] DFA147_min = DFA.unpackEncodedStringToUnsignedChars(DFA147_minS);
static final char[] DFA147_max = DFA.unpackEncodedStringToUnsignedChars(DFA147_maxS);
static final short[] DFA147_accept = DFA.unpackEncodedString(DFA147_acceptS);
static final short[] DFA147_special = DFA.unpackEncodedString(DFA147_specialS);
static final short[][] DFA147_transition;
static {
int numStates = DFA147_transitionS.length;
DFA147_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA147_transition[i] = DFA.unpackEncodedString(DFA147_transitionS[i]);
}
}
protected class DFA147 extends DFA {
public DFA147(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 147;
this.eot = DFA147_eot;
this.eof = DFA147_eof;
this.min = DFA147_min;
this.max = DFA147_max;
this.accept = DFA147_accept;
this.special = DFA147_special;
this.transition = DFA147_transition;
}
@Override
public String getDescription() {
return "1830: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 LA147_1 = input.LA(1);
int index147_1 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 85;}
else if ( (synpred32_CivlCParser()) ) {s = 86;}
else if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&(!DeclarationScope_stack.peek().typedefNameUsed && isTypeName(input.LT(1).getText())))) ) {s = 37;}
else if ( (true) ) {s = 41;}
input.seek(index147_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA147_2 = input.LA(1);
int index147_2 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 85;}
else if ( (synpred32_CivlCParser()) ) {s = 86;}
else if ( (true) ) {s = 41;}
input.seek(index147_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA147_3 = input.LA(1);
int index147_3 = input.index();
input.rewind();
s = -1;
if ( (synpred31_CivlCParser()) ) {s = 85;}
else if ( (synpred32_CivlCParser()) ) {s = 86;}
else if ( (true) ) {s = 41;}
input.seek(index147_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA147_4 = input.LA(1);
int index147_4 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA147_5 = input.LA(1);
int index147_5 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA147_6 = input.LA(1);
int index147_6 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA147_7 = input.LA(1);
int index147_7 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA147_8 = input.LA(1);
int index147_8 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA147_9 = input.LA(1);
int index147_9 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA147_10 = input.LA(1);
int index147_10 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA147_11 = input.LA(1);
int index147_11 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA147_12 = input.LA(1);
int index147_12 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA147_13 = input.LA(1);
int index147_13 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA147_14 = input.LA(1);
int index147_14 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_14);
if ( s>=0 ) return s;
break;
case 14 :
int LA147_15 = input.LA(1);
int index147_15 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_15);
if ( s>=0 ) return s;
break;
case 15 :
int LA147_16 = input.LA(1);
int index147_16 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_16);
if ( s>=0 ) return s;
break;
case 16 :
int LA147_17 = input.LA(1);
int index147_17 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_17);
if ( s>=0 ) return s;
break;
case 17 :
int LA147_18 = input.LA(1);
int index147_18 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_18);
if ( s>=0 ) return s;
break;
case 18 :
int LA147_19 = input.LA(1);
int index147_19 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_19);
if ( s>=0 ) return s;
break;
case 19 :
int LA147_20 = input.LA(1);
int index147_20 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_20);
if ( s>=0 ) return s;
break;
case 20 :
int LA147_21 = input.LA(1);
int index147_21 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_21);
if ( s>=0 ) return s;
break;
case 21 :
int LA147_22 = input.LA(1);
int index147_22 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_22);
if ( s>=0 ) return s;
break;
case 22 :
int LA147_23 = input.LA(1);
int index147_23 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_23);
if ( s>=0 ) return s;
break;
case 23 :
int LA147_24 = input.LA(1);
int index147_24 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_24);
if ( s>=0 ) return s;
break;
case 24 :
int LA147_25 = input.LA(1);
int index147_25 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_25);
if ( s>=0 ) return s;
break;
case 25 :
int LA147_26 = input.LA(1);
int index147_26 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_26);
if ( s>=0 ) return s;
break;
case 26 :
int LA147_27 = input.LA(1);
int index147_27 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_27);
if ( s>=0 ) return s;
break;
case 27 :
int LA147_28 = input.LA(1);
int index147_28 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_28);
if ( s>=0 ) return s;
break;
case 28 :
int LA147_29 = input.LA(1);
int index147_29 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_29);
if ( s>=0 ) return s;
break;
case 29 :
int LA147_30 = input.LA(1);
int index147_30 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_30);
if ( s>=0 ) return s;
break;
case 30 :
int LA147_31 = input.LA(1);
int index147_31 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_31);
if ( s>=0 ) return s;
break;
case 31 :
int LA147_32 = input.LA(1);
int index147_32 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_32);
if ( s>=0 ) return s;
break;
case 32 :
int LA147_33 = input.LA(1);
int index147_33 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_33);
if ( s>=0 ) return s;
break;
case 33 :
int LA147_34 = input.LA(1);
int index147_34 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_34);
if ( s>=0 ) return s;
break;
case 34 :
int LA147_35 = input.LA(1);
int index147_35 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_35);
if ( s>=0 ) return s;
break;
case 35 :
int LA147_36 = input.LA(1);
int index147_36 = input.index();
input.rewind();
s = -1;
if ( (((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )&&synpred31_CivlCParser())) ) {s = 85;}
else if ( ((synpred32_CivlCParser()&&(!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI ))) ) {s = 86;}
else if ( ((!DeclarationScope_stack.peek().isTypedef || input.LT(2).getType() != SEMI )) ) {s = 37;}
input.seek(index147_36);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 147, _s, input);
error(nvae);
throw nvae;
}
}
public static final BitSet FOLLOW_quantifier_in_quantifiedExpression1140 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000280L});
public static final BitSet FOLLOW_intervalSeq_in_quantifiedExpression1142 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_quantifiedExpression1144 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_boundVariableDeclarationList_in_quantifiedExpression1146 = new BitSet(new long[]{0x0000000000001000L,0x0000000800000000L});
public static final BitSet FOLLOW_BITOR_in_quantifiedExpression1158 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_conditionalExpression_in_quantifiedExpression1175 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_quantifiedExpression_in_quantifiedExpression1181 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_quantifiedExpression1196 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_quantifiedExpression1212 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_quantifiedExpression1270 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_quantifiedExpression1286 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumerationConstant_in_constant1354 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_constant1359 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOATING_CONSTANT_in_constant1364 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHARACTER_CONSTANT_in_constant1369 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SELF_in_constant1374 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PROCNULL_in_constant1382 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STATE_NULL_in_constant1390 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RESULT_in_constant1395 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HERE_in_constant1400 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELLIPSIS_in_constant1408 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_enumerationConstant1423 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constant_in_primaryExpression1447 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_primaryExpression1452 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_LITERAL_in_primaryExpression1457 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_primaryExpression1465 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_compoundStatement_in_primaryExpression1467 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_primaryExpression1469 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_primaryExpression1494 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_primaryExpression1496 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_primaryExpression1498 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_genericSelection_in_primaryExpression1523 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_derivativeExpression_in_primaryExpression1528 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GENERIC_in_genericSelection1541 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_genericSelection1543 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_genericSelection1545 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COMMA_in_genericSelection1547 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041609842L,0x0000000006682060L});
public static final BitSet FOLLOW_genericAssocList_in_genericSelection1549 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_genericSelection1551 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DERIV_in_derivativeExpression1582 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_LSQUARE_in_derivativeExpression1584 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_derivativeExpression1586 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COMMA_in_derivativeExpression1588 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_partialList_in_derivativeExpression1590 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_derivativeExpression1592 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_derivativeExpression1602 = new BitSet(new long[]{0x0100040200080010L,0x8402D00828084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_argumentExpressionList_in_derivativeExpression1604 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_derivativeExpression1606 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_partial_in_partialList1653 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COMMA_in_partialList1656 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_partial_in_partialList1658 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_LCURLY_in_partial1682 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_partial1684 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COMMA_in_partial1686 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_partial1688 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_partial1690 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_genericAssociation_in_genericAssocList1721 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COMMA_in_genericAssocList1724 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041609842L,0x0000000006682060L});
public static final BitSet FOLLOW_genericAssociation_in_genericAssocList1726 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_typeName_in_genericAssociation1758 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_COLON_in_genericAssociation1760 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_genericAssociation1762 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFAULT_in_genericAssociation1785 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_COLON_in_genericAssociation1787 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_genericAssociation1789 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfixExpressionRoot_in_postfixExpression1821 = new BitSet(new long[]{0x0000000008000102L,0x00000000200042A0L});
public static final BitSet FOLLOW_LSQUARE_in_postfixExpression1853 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_postfixExpression1855 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_postfixExpression1857 = new BitSet(new long[]{0x0000000008000102L,0x00000000200042A0L});
public static final BitSet FOLLOW_LPAREN_in_postfixExpression1962 = new BitSet(new long[]{0x0100040200080010L,0x8402D00828084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_argumentExpressionList_in_postfixExpression1964 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_postfixExpression1966 = new BitSet(new long[]{0x0000000008000102L,0x00000000200042A0L});
public static final BitSet FOLLOW_LEXCON_in_postfixExpression2038 = new BitSet(new long[]{0x0100040200080010L,0x8402D00428084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_argumentExpressionList_in_postfixExpression2042 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_REXCON_in_postfixExpression2044 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_postfixExpression2058 = new BitSet(new long[]{0x0100040200080010L,0x8402D00828084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_argumentExpressionList_in_postfixExpression2062 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_postfixExpression2064 = new BitSet(new long[]{0x0000000008000102L,0x00000000200042A0L});
public static final BitSet FOLLOW_DOT_in_postfixExpression2109 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfixExpression2111 = new BitSet(new long[]{0x0000000008000102L,0x00000000200042A0L});
public static final BitSet FOLLOW_ARROW_in_postfixExpression2146 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfixExpression2148 = new BitSet(new long[]{0x0000000008000102L,0x00000000200042A0L});
public static final BitSet FOLLOW_PLUSPLUS_in_postfixExpression2185 = new BitSet(new long[]{0x0000000008000102L,0x00000000200042A0L});
public static final BitSet FOLLOW_MINUSMINUS_in_postfixExpression2243 = new BitSet(new long[]{0x0000000008000102L,0x00000000200042A0L});
public static final BitSet FOLLOW_LPAREN_in_postfixExpressionRoot2330 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_in_postfixExpressionRoot2332 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_postfixExpressionRoot2334 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_postfixExpressionRoot2336 = new BitSet(new long[]{0x0100040208080010L,0x8402D00028084292L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_initializerList_in_postfixExpressionRoot2338 = new BitSet(new long[]{0x0000000000200000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_postfixExpressionRoot2344 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_postfixExpressionRoot2350 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_postfixExpressionRoot2352 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primaryExpression_in_postfixExpressionRoot2383 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_argumentExpressionList2399 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_quantifiedExpression_in_argumentExpressionList2405 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COMMA_in_argumentExpressionList2417 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_assignmentExpression_in_argumentExpressionList2422 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_quantifiedExpression_in_argumentExpressionList2428 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_postfixExpression_in_unaryExpression2487 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUSPLUS_in_unaryExpression2494 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2496 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUSMINUS_in_unaryExpression2538 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2540 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryOperator_in_unaryExpression2580 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_castExpression_in_unaryExpression2585 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_unaryExpression2591 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unaryExpression2629 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression2631 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_in_unaryExpression2633 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression2635 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unaryExpression2658 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2660 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SCOPEOF_in_unaryExpression2683 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2685 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALIGNOF_in_unaryExpression2706 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression2708 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_in_unaryExpression2710 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression2712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VALUE_AT_in_unaryExpression2733 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_unaryExpression2735 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_unaryExpression2747 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COMMA_in_unaryExpression2749 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_unaryExpression2761 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COMMA_in_unaryExpression2763 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_assignmentExpression_in_unaryExpression2776 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_quantifiedExpression_in_unaryExpression2782 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_unaryExpression2785 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_spawnExpression_in_unaryExpression2810 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_callsExpression_in_unaryExpression2818 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SPAWN_in_spawnExpression2831 = new BitSet(new long[]{0x0100040200080000L,0x0000400000000082L,0x4040002200020000L,0x0000000000000404L});
public static final BitSet FOLLOW_postfixExpressionRoot_in_spawnExpression2833 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_spawnExpression2835 = new BitSet(new long[]{0x0100040200080010L,0x8402D00828084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_argumentExpressionList_in_spawnExpression2837 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_spawnExpression2839 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CALLS_in_callsExpression2888 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_callsExpression2890 = new BitSet(new long[]{0x0100040200080000L,0x0000400000000082L,0x4040002200020000L,0x0000000000000404L});
public static final BitSet FOLLOW_postfixExpressionRoot_in_callsExpression2892 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_callsExpression2894 = new BitSet(new long[]{0x0100040200080010L,0x8402D00828084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_argumentExpressionList_in_callsExpression2904 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_callsExpression2906 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_callsExpression2908 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_castExpression3025 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_in_castExpression3027 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_castExpression3029 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_castExpression_in_castExpression3031 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_castExpression3057 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_castExpression_in_remoteExpression3071 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_AT_in_remoteExpression3093 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_castExpression_in_remoteExpression3097 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_remoteExpression_in_multiplicativeExpression3152 = new BitSet(new long[]{0x0000000002000002L,0x0000100000008000L});
public static final BitSet FOLLOW_STAR_in_multiplicativeExpression3174 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_remoteExpression_in_multiplicativeExpression3178 = new BitSet(new long[]{0x0000000002000002L,0x0000100000008000L});
public static final BitSet FOLLOW_DIV_in_multiplicativeExpression3225 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_remoteExpression_in_multiplicativeExpression3229 = new BitSet(new long[]{0x0000000002000002L,0x0000100000008000L});
public static final BitSet FOLLOW_MOD_in_multiplicativeExpression3276 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_remoteExpression_in_multiplicativeExpression3280 = new BitSet(new long[]{0x0000000002000002L,0x0000100000008000L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression3335 = new BitSet(new long[]{0x0000000000000002L,0x0000800008000000L});
public static final BitSet FOLLOW_PLUS_in_additiveExpression3357 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression3361 = new BitSet(new long[]{0x0000000000000002L,0x0000800008000000L});
public static final BitSet FOLLOW_SUB_in_additiveExpression3406 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression3410 = new BitSet(new long[]{0x0000000000000002L,0x0000800008000000L});
public static final BitSet FOLLOW_additiveExpression_in_rangeExpression3464 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_DOTDOT_in_rangeExpression3481 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_rangeSuffix_in_rangeExpression3485 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_additiveExpression_in_rangeSuffix3541 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_HASH_in_rangeSuffix3558 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_additiveExpression_in_rangeSuffix3562 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression3612 = new BitSet(new long[]{0x0000000000000002L,0x0000050000000000L});
public static final BitSet FOLLOW_SHIFTLEFT_in_shiftExpression3634 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression3638 = new BitSet(new long[]{0x0000000000000002L,0x0000050000000000L});
public static final BitSet FOLLOW_SHIFTRIGHT_in_shiftExpression3683 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_rangeExpression_in_shiftExpression3687 = new BitSet(new long[]{0x0000000000000002L,0x0000050000000000L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression3741 = new BitSet(new long[]{0x0000600000000002L,0x0000000000000C00L});
public static final BitSet FOLLOW_relationalOperator_in_relationalExpression3764 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression3781 = new BitSet(new long[]{0x0000600000000002L,0x0000000000000C00L});
public static final BitSet FOLLOW_relationalExpression_in_equalityExpression3879 = new BitSet(new long[]{0x0000001000000002L,0x0000000000020000L});
public static final BitSet FOLLOW_equalityOperator_in_equalityExpression3901 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_relationalExpression_in_equalityExpression3918 = new BitSet(new long[]{0x0000001000000002L,0x0000000000020000L});
public static final BitSet FOLLOW_quantifiedExpression_in_equalityExpression3924 = new BitSet(new long[]{0x0000001000000002L,0x0000000000020000L});
public static final BitSet FOLLOW_equalityExpression_in_andExpression4014 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_AMPERSAND_in_andExpression4037 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_equalityExpression_in_andExpression4041 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression4097 = new BitSet(new long[]{0x0000000000004002L});
public static final BitSet FOLLOW_BITXOR_in_exclusiveOrExpression4120 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression4124 = new BitSet(new long[]{0x0000000000004002L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4180 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_BITOR_in_inclusiveOrExpression4203 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression4207 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_inclusiveOrExpression_in_logicalAndExpression4263 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_AND_in_logicalAndExpression4286 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_inclusiveOrExpression_in_logicalAndExpression4291 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_quantifiedExpression_in_logicalAndExpression4297 = new BitSet(new long[]{0x0000000000000022L});
public static final BitSet FOLLOW_logicalAndExpression_in_logicalOrExpression4354 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
public static final BitSet FOLLOW_OR_in_logicalOrExpression4377 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_logicalAndExpression_in_logicalOrExpression4382 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
public static final BitSet FOLLOW_quantifiedExpression_in_logicalOrExpression4388 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
public static final BitSet FOLLOW_logicalOrExpression_in_logicalImpliesExpression4447 = new BitSet(new long[]{0x1000000000000002L});
public static final BitSet FOLLOW_IMPLIES_in_logicalImpliesExpression4471 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_logicalImpliesExpression4476 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_logicalImpliesExpression4482 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logicalImpliesExpression_in_conditionalExpression4540 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
public static final BitSet FOLLOW_QMARK_in_conditionalExpression4557 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_conditionalExpression4559 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_COLON_in_conditionalExpression4561 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_conditionalExpression_in_conditionalExpression4578 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_conditionalExpression4584 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LSQUARE_in_interval4729 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_conditionalExpression_in_interval4731 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COMMA_in_interval4733 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_conditionalExpression_in_interval4735 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_interval4737 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interval_in_intervalSeq4777 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
public static final BitSet FOLLOW_interval_in_intervalSeq4782 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
public static final BitSet FOLLOW_LPAREN_in_arrayLambdaExpression4866 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_in_arrayLambdaExpression4868 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_arrayLambdaExpression4870 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
public static final BitSet FOLLOW_LAMBDA_in_arrayLambdaExpression4872 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_arrayLambdaExpression4874 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_boundVariableDeclarationList_in_arrayLambdaExpression4888 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_arrayLambdaExpression4890 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_conditionalExpression_in_arrayLambdaExpression4907 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_quantifiedExpression_in_arrayLambdaExpression4913 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_arrayLambdaExpression4928 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_assignmentExpression_in_arrayLambdaExpression4945 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_arrayLambdaExpression4951 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_arrayLambdaExpression4985 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_in_arrayLambdaExpression4987 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_arrayLambdaExpression4989 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
public static final BitSet FOLLOW_LAMBDA_in_arrayLambdaExpression4991 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_arrayLambdaExpression4993 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_boundVariableDeclarationList_in_arrayLambdaExpression5003 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_arrayLambdaExpression5005 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_assignmentExpression_in_arrayLambdaExpression5018 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_arrayLambdaExpression5024 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeName_in_boundVariableDeclarationSubList5057 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_boundVariableDeclarationSubList5059 = new BitSet(new long[]{0x0000000000300002L});
public static final BitSet FOLLOW_COMMA_in_boundVariableDeclarationSubList5062 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_boundVariableDeclarationSubList5064 = new BitSet(new long[]{0x0000000000300002L});
public static final BitSet FOLLOW_COLON_in_boundVariableDeclarationSubList5069 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_rangeExpression_in_boundVariableDeclarationSubList5071 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_boundVariableDeclarationSubList_in_boundVariableDeclarationList5122 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_boundVariableDeclarationList5125 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_boundVariableDeclarationSubList_in_boundVariableDeclarationList5127 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
public static final BitSet FOLLOW_arrayLambdaExpression_in_assignmentExpression5166 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_assignmentExpression5188 = new BitSet(new long[]{0x000000000400AA00L,0x00012A0010010000L});
public static final BitSet FOLLOW_assignmentOperator_in_assignmentExpression5200 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression5213 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifiedExpression_in_assignmentExpression5219 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_assignmentExpression5252 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_commaExpression5321 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COMMA_in_commaExpression5339 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_commaExpression5343 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_quantifiedExpression_in_expression5388 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_commaExpression_in_expression5392 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_constantExpression5405 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarationSpecifiers_in_declaration5434 = new BitSet(new long[]{0x0100000000000000L,0x0000108000000080L});
public static final BitSet FOLLOW_initDeclaratorList_in_declaration5448 = new BitSet(new long[]{0x0000000000000000L,0x1000008000000000L,0x1200001000810000L});
public static final BitSet FOLLOW_contract_in_declaration5450 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_declaration5452 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMI_in_declaration5478 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_staticAssertDeclaration_in_declaration5506 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarationSpecifierList_in_declarationSpecifiers5522 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarationSpecifier_in_declarationSpecifierList5562 = new BitSet(new long[]{0x0100000000000002L,0x6300000000000000L,0x2D817384596C1842L,0x00000000066EAA70L});
public static final BitSet FOLLOW_storageClassSpecifier_in_declarationSpecifier5581 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeSpecifierOrQualifier_in_declarationSpecifier5586 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_functionSpecifier_in_declarationSpecifier5591 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_alignmentSpecifier_in_declarationSpecifier5596 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeSpecifier_in_typeSpecifierOrQualifier5614 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifier_in_typeSpecifierOrQualifier5626 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_initDeclarator_in_initDeclaratorList5641 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COMMA_in_initDeclaratorList5644 = new BitSet(new long[]{0x0100000000000000L,0x0000100000000080L});
public static final BitSet FOLLOW_initDeclarator_in_initDeclaratorList5648 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_declarator_in_initDeclarator5678 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_ASSIGN_in_initDeclarator5703 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084092L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_initializer_in_initDeclarator5707 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPEDEF_in_storageClassSpecifier5738 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_storageClassSpecifier5745 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VOID_in_typeSpecifier5780 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHAR_in_typeSpecifier5784 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHORT_in_typeSpecifier5788 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INT_in_typeSpecifier5792 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LONG_in_typeSpecifier5796 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOAT_in_typeSpecifier5800 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_in_typeSpecifier5804 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIGNED_in_typeSpecifier5809 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_UNSIGNED_in_typeSpecifier5813 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BOOL_in_typeSpecifier5817 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMPLEX_in_typeSpecifier5821 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REAL_in_typeSpecifier5825 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RANGE_in_typeSpecifier5829 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_atomicTypeSpecifier_in_typeSpecifier5834 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_structOrUnionSpecifier_in_typeSpecifier5839 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumSpecifier_in_typeSpecifier5844 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typedefName_in_typeSpecifier5849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_domainSpecifier_in_typeSpecifier5854 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeofSpecifier_in_typeSpecifier5862 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_memSpecifier_in_typeSpecifier5870 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPEOF_in_typeofSpecifier5886 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_typeofSpecifier5888 = new BitSet(new long[]{0x0100040200080010L,0xA402D00028084082L,0x654133224162184AL,0x00000000076825E6L});
public static final BitSet FOLLOW_commaExpression_in_typeofSpecifier5900 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_typeofSpecifier5902 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeName_in_typeofSpecifier5936 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_typeofSpecifier5938 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_structOrUnion_in_structOrUnionSpecifier5986 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_IDENTIFIER_in_structOrUnionSpecifier5995 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_structOrUnionSpecifier5997 = new BitSet(new long[]{0x0100000000000000L,0x2000000200000000L,0x2501330041601842L,0x0000000006683060L});
public static final BitSet FOLLOW_structDeclarationList_in_structOrUnionSpecifier5999 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_structOrUnionSpecifier6001 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_structOrUnionSpecifier6029 = new BitSet(new long[]{0x0100000000000000L,0x2000000200000000L,0x2501330041601842L,0x0000000006683060L});
public static final BitSet FOLLOW_structDeclarationList_in_structOrUnionSpecifier6031 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_structOrUnionSpecifier6033 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_structOrUnionSpecifier6061 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_structDeclaration_in_structDeclarationList6115 = new BitSet(new long[]{0x0100000000000002L,0x2000000000000000L,0x2501330041601842L,0x0000000006683060L});
public static final BitSet FOLLOW_specifierQualifierList_in_structDeclaration6156 = new BitSet(new long[]{0x0100000000100000L,0x0000108000000080L});
public static final BitSet FOLLOW_structDeclaratorList_in_structDeclaration6185 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_structDeclaration6220 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_staticAssertDeclaration_in_structDeclaration6228 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeSpecifierOrQualifier_in_specifierQualifierList6247 = new BitSet(new long[]{0x0100000000000002L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_structDeclarator_in_structDeclaratorList6284 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COMMA_in_structDeclaratorList6287 = new BitSet(new long[]{0x0100000000100000L,0x0000100000000080L});
public static final BitSet FOLLOW_structDeclarator_in_structDeclaratorList6291 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_declarator_in_structDeclarator6328 = new BitSet(new long[]{0x0000000000100002L});
public static final BitSet FOLLOW_COLON_in_structDeclarator6357 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_constantExpression_in_structDeclarator6359 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_structDeclarator6394 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_constantExpression_in_structDeclarator6396 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ENUM_in_enumSpecifier6431 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_IDENTIFIER_in_enumSpecifier6443 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_enumSpecifier6475 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_enumSpecifier6477 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_enumeratorList_in_enumSpecifier6479 = new BitSet(new long[]{0x0000000000200000L,0x0000000200000000L});
public static final BitSet FOLLOW_COMMA_in_enumSpecifier6481 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_enumSpecifier6484 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_enumSpecifier6516 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_enumeratorList_in_enumSpecifier6518 = new BitSet(new long[]{0x0000000000200000L,0x0000000200000000L});
public static final BitSet FOLLOW_COMMA_in_enumSpecifier6520 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_enumSpecifier6523 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumerator_in_enumeratorList6572 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COMMA_in_enumeratorList6575 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_enumerator_in_enumeratorList6577 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_IDENTIFIER_in_enumerator6610 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_ASSIGN_in_enumerator6651 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_constantExpression_in_enumerator6653 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ATOMIC_in_atomicTypeSpecifier6699 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_atomicTypeSpecifier6701 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_in_atomicTypeSpecifier6703 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_atomicTypeSpecifier6705 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INLINE_in_functionSpecifier6777 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NORETURN_in_functionSpecifier6781 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ABSTRACT_in_functionSpecifier6789 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_CONTIN_in_functionSpecifier6791 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_functionSpecifier6793 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_functionSpecifier6795 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_functionSpecifier6797 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ABSTRACT_in_functionSpecifier6819 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PURE_in_functionSpecifier6833 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STATE_F_in_functionSpecifier6847 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SYSTEM_in_functionSpecifier6870 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_libraryName_in_functionSpecifier6872 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SYSTEM_in_functionSpecifier6889 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FATOMIC_in_functionSpecifier6906 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEVICE_in_functionSpecifier6920 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GLOBAL_in_functionSpecifier6928 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_differentiableSpecifier_in_functionSpecifier6936 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIFFERENTIABLE_in_differentiableSpecifier6951 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_differentiableSpecifier6953 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_differentiableSpecifier6955 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COMMA_in_differentiableSpecifier6957 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000200L});
public static final BitSet FOLLOW_intervalSeq_in_differentiableSpecifier6959 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_differentiableSpecifier6961 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LSQUARE_in_libraryName6988 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_libraryName6992 = new BitSet(new long[]{0x0100000000000000L,0x0000802000000000L});
public static final BitSet FOLLOW_SUB_in_libraryName6997 = new BitSet(new long[]{0x0100000000000000L,0x0000802000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_libraryName7001 = new BitSet(new long[]{0x0100000000000000L,0x0000802000000000L});
public static final BitSet FOLLOW_RSQUARE_in_libraryName7005 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALIGNAS_in_alignmentSpecifier7035 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_alignmentSpecifier7037 = new BitSet(new long[]{0x0100040200080010L,0xA402D00028084082L,0x654133224162184AL,0x00000000076825E6L});
public static final BitSet FOLLOW_typeName_in_alignmentSpecifier7049 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_alignmentSpecifier7051 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constantExpression_in_alignmentSpecifier7083 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_alignmentSpecifier7085 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directDeclarator_in_declarator7133 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_declarator7152 = new BitSet(new long[]{0x0100000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_directDeclarator_in_declarator7156 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directDeclaratorPrefix_in_directDeclarator7185 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000280L});
public static final BitSet FOLLOW_directDeclaratorSuffix_in_directDeclarator7208 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000280L});
public static final BitSet FOLLOW_IDENTIFIER_in_directDeclaratorPrefix7239 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_directDeclaratorPrefix7248 = new BitSet(new long[]{0x0100000000000000L,0x0000100000000080L});
public static final BitSet FOLLOW_declarator_in_directDeclaratorPrefix7251 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_directDeclaratorPrefix7253 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directDeclaratorArraySuffix_in_directDeclaratorSuffix7266 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directDeclaratorFunctionSuffix_in_directDeclaratorSuffix7271 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LSQUARE_in_directDeclaratorArraySuffix7284 = new BitSet(new long[]{0x0100040200080010L,0xA402D02028084082L,0x6041012200021008L,0x0000000005000D86L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7291 = new BitSet(new long[]{0x0100040200080010L,0x8402D02028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_opt_in_directDeclaratorArraySuffix7293 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7295 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STATIC_in_directDeclaratorArraySuffix7333 = new BitSet(new long[]{0x0100040200080010L,0xA402D00028084082L,0x6041012200021008L,0x0000000005000586L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7335 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_directDeclaratorArraySuffix7337 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7339 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifierList_in_directDeclaratorArraySuffix7379 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_STATIC_in_directDeclaratorArraySuffix7381 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_directDeclaratorArraySuffix7383 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7385 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_directDeclaratorArraySuffix7425 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_STAR_in_directDeclaratorArraySuffix7427 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directDeclaratorArraySuffix7429 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_directDeclaratorFunctionSuffix7488 = new BitSet(new long[]{0x0100000000000000L,0x6300000800000000L,0x2D817384596C1842L,0x00000000066EAA70L});
public static final BitSet FOLLOW_parameterTypeList_in_directDeclaratorFunctionSuffix7495 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7497 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifierList_in_directDeclaratorFunctionSuffix7522 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7524 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_directDeclaratorFunctionSuffix7548 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifier_in_typeQualifierList_opt7578 = new BitSet(new long[]{0x0000000000000002L,0x2000000000000000L,0x2001010000001000L,0x0000000004000000L});
public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression_opt7609 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_part_in_pointer7625 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
public static final BitSet FOLLOW_STAR_in_pointer_part7651 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L,0x2001010000001000L,0x0000000004000000L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_pointer_part7653 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifier_in_typeQualifierList7678 = new BitSet(new long[]{0x0000000000000002L,0x2000000000000000L,0x2001010000001000L,0x0000000004000000L});
public static final BitSet FOLLOW_parameterTypeListWithoutScope_in_parameterTypeList7707 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameterTypeListWithScope_in_parameterTypeList7712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameterTypeListWithoutScope_in_parameterTypeListWithScope7733 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameterList_in_parameterTypeListWithoutScope7747 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COMMA_in_parameterTypeListWithoutScope7775 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_ELLIPSIS_in_parameterTypeListWithoutScope7777 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameterDeclaration_in_parameterList7822 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COMMA_in_parameterList7825 = new BitSet(new long[]{0x0100000000000000L,0x6300000000000000L,0x2D817384596C1842L,0x00000000066EAA70L});
public static final BitSet FOLLOW_parameterDeclaration_in_parameterList7827 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_declarationSpecifiers_in_parameterDeclaration7873 = new BitSet(new long[]{0x0100000000000002L,0x0000100000000280L});
public static final BitSet FOLLOW_declaratorOrAbstractDeclarator_in_parameterDeclaration7901 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarator_in_declaratorOrAbstractDeclarator7962 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_abstractDeclarator_in_declaratorOrAbstractDeclarator7967 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_identifierList7984 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COMMA_in_identifierList7988 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_identifierList7990 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_specifierQualifierList_in_typeName8027 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000280L});
public static final BitSet FOLLOW_abstractDeclarator_in_typeName8055 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_abstractDeclarator8100 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator8124 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_abstractDeclarator8148 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000280L});
public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator8150 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_directAbstractDeclarator8185 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000280L});
public static final BitSet FOLLOW_abstractDeclarator_in_directAbstractDeclarator8187 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclarator8189 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000280L});
public static final BitSet FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator8191 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000280L});
public static final BitSet FOLLOW_directAbstractDeclaratorSuffix_in_directAbstractDeclarator8228 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000280L});
public static final BitSet FOLLOW_IDENTIFIER_in_typedefName8278 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LSQUARE_in_directAbstractDeclaratorSuffix8311 = new BitSet(new long[]{0x0100040200080010L,0xA402D02028084082L,0x6041012200021008L,0x0000000005000D86L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_directAbstractDeclaratorSuffix8321 = new BitSet(new long[]{0x0100040200080010L,0x8402D02028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_opt_in_directAbstractDeclaratorSuffix8323 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8325 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STATIC_in_directAbstractDeclaratorSuffix8370 = new BitSet(new long[]{0x0100040200080010L,0xA402D00028084082L,0x6041012200021008L,0x0000000005000586L});
public static final BitSet FOLLOW_typeQualifierList_opt_in_directAbstractDeclaratorSuffix8372 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_directAbstractDeclaratorSuffix8374 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8376 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeQualifierList_in_directAbstractDeclaratorSuffix8421 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_STATIC_in_directAbstractDeclaratorSuffix8423 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_directAbstractDeclaratorSuffix8425 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8427 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_directAbstractDeclaratorSuffix8459 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_directAbstractDeclaratorSuffix8461 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_directAbstractDeclaratorSuffix8499 = new BitSet(new long[]{0x0100000000000000L,0x6300000800000000L,0x2D817384596C1842L,0x00000000066EAA70L});
public static final BitSet FOLLOW_parameterTypeList_in_directAbstractDeclaratorSuffix8509 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclaratorSuffix8511 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclaratorSuffix8541 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_initializer8588 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_initializer8604 = new BitSet(new long[]{0x0100040208080010L,0x8402D00028084292L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_initializerList_in_initializer8606 = new BitSet(new long[]{0x0000000000200000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_initializer8620 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_initializer8634 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_initializer8636 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designatedInitializer_in_initializerList8675 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_COMMA_in_initializerList8678 = new BitSet(new long[]{0x0100040208080010L,0x8402D00028084292L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_designatedInitializer_in_initializerList8680 = new BitSet(new long[]{0x0000000000200002L});
public static final BitSet FOLLOW_initializer_in_designatedInitializer8711 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designation_in_designatedInitializer8729 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084092L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_initializer_in_designatedInitializer8731 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designatorList_in_designation8760 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_ASSIGN_in_designation8762 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designator_in_designatorList8789 = new BitSet(new long[]{0x0000000008000002L,0x0000000000000200L});
public static final BitSet FOLLOW_LSQUARE_in_designator8809 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_constantExpression_in_designator8811 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_designator8813 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_designator8835 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_designator8837 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STATICASSERT_in_staticAssertDeclaration8870 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_staticAssertDeclaration8872 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_constantExpression_in_staticAssertDeclaration8874 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_COMMA_in_staticAssertDeclaration8876 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_STRING_LITERAL_in_staticAssertDeclaration8878 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_staticAssertDeclaration8886 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_staticAssertDeclaration8888 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOMAIN_in_domainSpecifier8920 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_domainSpecifier8938 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_INTEGER_CONSTANT_in_domainSpecifier8940 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_domainSpecifier8942 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MEM_TYPE_in_memSpecifier8973 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_labeledStatement_in_statement8997 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_compoundStatement_in_statement9013 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionStatement_in_statement9029 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_selectionStatement_in_statement9045 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_iterationStatement_in_statement9061 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_jumpStatement_in_statement9077 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_whenStatement_in_statement9093 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_chooseStatement_in_statement9109 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_atomicStatement_in_statement9125 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_runStatement_in_statement9141 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_withStatement_in_statement9157 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_updateStatement_in_statement9173 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_asmStatement_in_statement9189 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_statementWithScope9221 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pragma_in_statementWithScope9226 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statement_in_statementWithScope9229 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_labeledStatement9268 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_COLON_in_labeledStatement9270 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC044002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statement_in_labeledStatement9272 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CASE_in_labeledStatement9296 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_constantExpression_in_labeledStatement9298 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_COLON_in_labeledStatement9300 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC044002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statement_in_labeledStatement9302 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEFAULT_in_labeledStatement9328 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_COLON_in_labeledStatement9330 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC044002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statement_in_labeledStatement9332 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_compoundStatement9382 = new BitSet(new long[]{0x8300040200080090L,0xEF02D08228084092L,0xEDE573AFDB7EDBDEL,0x000000003FFEFFF7L});
public static final BitSet FOLLOW_RCURLY_in_compoundStatement9392 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_blockItemList_in_compoundStatement9422 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_compoundStatement9424 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_blockItem_in_blockItemList9471 = new BitSet(new long[]{0x8300040200080092L,0xEF02D08028084092L,0xEDE573AFDB7EDBDEL,0x000000003FFEFFF7L});
public static final BitSet FOLLOW_expression_in_expressionStatement9502 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_expressionStatement9504 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMI_in_expressionStatement9522 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_selectionStatement9561 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_selectionStatement9563 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_selectionStatement9565 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_selectionStatement9567 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statementWithScope_in_selectionStatement9571 = new BitSet(new long[]{0x0000000400000002L});
public static final BitSet FOLLOW_ELSE_in_selectionStatement9588 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statementWithScope_in_selectionStatement9592 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SWITCH_in_selectionStatement9657 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_selectionStatement9659 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_selectionStatement9661 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_selectionStatement9663 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statementWithScope_in_selectionStatement9667 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHILE_in_iterationStatement9710 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_iterationStatement9712 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_iterationStatement9714 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_iterationStatement9716 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064042B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_invariant_opt_in_iterationStatement9718 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statementWithScope_in_iterationStatement9725 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DO_in_iterationStatement9746 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statementWithScope_in_iterationStatement9750 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_WHILE_in_iterationStatement9752 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_iterationStatement9754 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_iterationStatement9756 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_iterationStatement9758 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L,0x0000040000000000L});
public static final BitSet FOLLOW_invariant_opt_in_iterationStatement9763 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_iterationStatement9765 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_iterationStatement9786 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_iterationStatement9788 = new BitSet(new long[]{0x0100040200080010L,0xE702D08028084082L,0x6DC173A75B6E184AL,0x00000000077EBFF6L});
public static final BitSet FOLLOW_declaration_in_iterationStatement9802 = new BitSet(new long[]{0x0100040200080010L,0x8402D08028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_opt_in_iterationStatement9806 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_iterationStatement9808 = new BitSet(new long[]{0x0100040200080010L,0x8402D00828084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_opt_in_iterationStatement9812 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_iterationStatement9819 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064042B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_invariant_opt_in_iterationStatement9823 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statementWithScope_in_iterationStatement9827 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_opt_in_iterationStatement9862 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_iterationStatement9864 = new BitSet(new long[]{0x0100040200080010L,0x8402D08028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_opt_in_iterationStatement9868 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_iterationStatement9870 = new BitSet(new long[]{0x0100040200080010L,0x8402D00828084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_opt_in_iterationStatement9879 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_iterationStatement9881 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064042B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_invariant_opt_in_iterationStatement9885 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statementWithScope_in_iterationStatement9894 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CIVLFOR_in_iterationStatement9933 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_PARFOR_in_iterationStatement9939 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_iterationStatement9942 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_opt_in_iterationStatement9951 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_identifierList_in_iterationStatement9955 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_COLON_in_iterationStatement9957 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_iterationStatement9961 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_iterationStatement9963 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064042B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_invariant_opt_in_iterationStatement9972 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statementWithScope_in_iterationStatement9976 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_expression_opt10014 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INVARIANT_in_invariant_opt10039 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_invariant_opt10041 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_invariant_opt10043 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_invariant_opt10045 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeName_in_typeName_opt10066 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GOTO_in_jumpStatement10089 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_jumpStatement10091 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_jumpStatement10093 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONTINUE_in_jumpStatement10111 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_jumpStatement10113 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BREAK_in_jumpStatement10129 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_jumpStatement10131 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RETURN_in_jumpStatement10147 = new BitSet(new long[]{0x0100040200080010L,0x8402D08028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_opt_in_jumpStatement10149 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_jumpStatement10151 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PPRAGMA_in_pragma10180 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_pragma10182 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_NEWLINE_in_pragma10184 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PPRAGMA_in_pragma10214 = new BitSet(new long[]{0x0100000000000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_pragma10216 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFBFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x003FFFFFFFFFFFFFL});
public static final BitSet FOLLOW_inlineList_in_pragma10218 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_NEWLINE_in_pragma10220 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INLINE_ANNOTATION_START_in_annotation10277 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x003FFFFFFFFFFFFFL});
public static final BitSet FOLLOW_NEWLINE_in_annotation10286 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_inlineList_in_annotation10316 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_NEWLINE_in_annotation10318 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ANNOTATION_START_in_annotation10355 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_ANNOTATION_END_in_annotation10357 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ANNOTATION_START_in_annotation10385 = new BitSet(new long[]{0xFFFFFFFFFFFFFFB0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x003FFFFFFFFFFFFFL});
public static final BitSet FOLLOW_annotationBody_in_annotation10387 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_ANNOTATION_END_in_annotation10389 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RUN_in_runStatement10445 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC044002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statement_in_runStatement10447 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WITH_in_withStatement10471 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_withStatement10473 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_withStatement10475 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_withStatement10477 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC044002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statement_in_withStatement10479 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_UPDATE_in_updateStatement10512 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_updateStatement10514 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002200020008L,0x0000000001000586L});
public static final BitSet FOLLOW_assignmentExpression_in_updateStatement10516 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_updateStatement10518 = new BitSet(new long[]{0x0100040200080000L,0x0000400000000082L,0x4040002200020000L,0x0000000000000404L});
public static final BitSet FOLLOW_postfixExpressionRoot_in_updateStatement10523 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_updateStatement10525 = new BitSet(new long[]{0x0100040200080010L,0x8402D00828084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_argumentExpressionList_in_updateStatement10527 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_updateStatement10529 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_updateStatement10531 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_balancedToken10579 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_balancedToken10591 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x003FFFFFFFFFFFFFL});
public static final BitSet FOLLOW_balancedToken_in_balancedToken10593 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x003FFFFFFFFFFFFFL});
public static final BitSet FOLLOW_RPAREN_in_balancedToken10596 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASM_in_asmStatement10607 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L,0x0000000800000000L,0x0000000004000000L});
public static final BitSet FOLLOW_VOLATILE_in_asmStatement10609 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L,0x0000000800000000L});
public static final BitSet FOLLOW_GOTO_in_asmStatement10612 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_asmStatement10615 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x003FFFFFFFFFFFFFL});
public static final BitSet FOLLOW_balancedToken_in_asmStatement10620 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x003FFFFFFFFFFFFFL});
public static final BitSet FOLLOW_RPAREN_in_asmStatement10626 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_SEMI_in_asmStatement10628 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHEN_in_whenStatement10663 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_whenStatement10665 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_whenStatement10667 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_whenStatement10669 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC044002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statement_in_whenStatement10671 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHOOSE_in_chooseStatement10696 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_chooseStatement10698 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC044002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statement_in_chooseStatement10700 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08228084092L,0xC044002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_RCURLY_in_chooseStatement10703 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CIVLATOMIC_in_atomicStatement10727 = new BitSet(new long[]{0x0300040200080010L,0x8C02D08028084092L,0xC064002B8212C39CL,0x0000000039904587L});
public static final BitSet FOLLOW_statementWithScope_in_atomicStatement10731 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarator_in_functionDefinition10771 = new BitSet(new long[]{0x0100000000000000L,0x7300000000000010L,0x3F81739459ED1842L,0x00000000066EBA70L});
public static final BitSet FOLLOW_contract_in_functionDefinition10776 = new BitSet(new long[]{0x0100000000000000L,0x6300000000000010L,0x2D817384596C1842L,0x00000000066EBA70L});
public static final BitSet FOLLOW_declarationList_opt_in_functionDefinition10781 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_compoundStatement_in_functionDefinition10786 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarationSpecifiers_in_functionDefinition10831 = new BitSet(new long[]{0x0100000000000000L,0x0000100000000080L});
public static final BitSet FOLLOW_declarator_in_functionDefinition10836 = new BitSet(new long[]{0x0100000000000000L,0x7300000000000010L,0x3F81739459ED1842L,0x00000000066EBA70L});
public static final BitSet FOLLOW_contract_in_functionDefinition10841 = new BitSet(new long[]{0x0100000000000000L,0x6300000000000010L,0x2D817384596C1842L,0x00000000066EBA70L});
public static final BitSet FOLLOW_declarationList_opt_in_functionDefinition10846 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_compoundStatement_in_functionDefinition10851 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_in_declarationList_opt10900 = new BitSet(new long[]{0x0100000000000002L,0x6300000000000000L,0x2D817384596C1842L,0x00000000066EBA70L});
public static final BitSet FOLLOW_separationLogicItem_in_contractItem10923 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_porItem_in_contractItem10931 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REQUIRES_in_separationLogicItem10951 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_separationLogicItem10953 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_separationLogicItem10955 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_separationLogicItem10957 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ENSURES_in_separationLogicItem10972 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_separationLogicItem10974 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_separationLogicItem10976 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_separationLogicItem10978 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DEPENDS_in_porItem11011 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_LSQUARE_in_porItem11014 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_porItem11016 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_porItem11018 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_porItem11022 = new BitSet(new long[]{0x0100040200080010L,0x8402D00228084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_argumentExpressionList_in_porItem11024 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_porItem11026 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GUARD_in_porItem11045 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_LSQUARE_in_porItem11048 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_porItem11050 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_porItem11052 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_porItem11056 = new BitSet(new long[]{0x0100040200080010L,0x8402D00228084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_argumentExpressionList_in_porItem11058 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_porItem11060 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSIGNS_in_porItem11079 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_LSQUARE_in_porItem11082 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_porItem11084 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_porItem11086 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_porItem11090 = new BitSet(new long[]{0x0100040200080010L,0x8402D00228084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_argumentExpressionList_in_porItem11092 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_porItem11094 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_READS_in_porItem11113 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000210L});
public static final BitSet FOLLOW_LSQUARE_in_porItem11116 = new BitSet(new long[]{0x0100040200080010L,0x8402D00028084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_expression_in_porItem11118 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_RSQUARE_in_porItem11120 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_porItem11124 = new BitSet(new long[]{0x0100040200080010L,0x8402D00228084082L,0x4040002302020008L,0x0000000001100586L});
public static final BitSet FOLLOW_argumentExpressionList_in_porItem11126 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_RCURLY_in_porItem11128 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_contractItem_in_contract11156 = new BitSet(new long[]{0x0000000000000002L,0x1000000000000000L,0x1200001000810000L});
public static final BitSet FOLLOW_blockItem_in_blockItemWithScope11190 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_functionDefinition_in_blockItem11214 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_functionDefinition_in_blockItem11235 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_in_blockItem11240 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pragma_in_blockItem11245 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_annotation_in_blockItem11250 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_blockItem11255 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_blockItem_in_translationUnit11285 = new BitSet(new long[]{0x8300040200080090L,0xEF02D08028084092L,0xEDE573AFDB7EDBDEL,0x000000003FFEFFF7L});
public static final BitSet FOLLOW_EOF_in_translationUnit11288 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred1_CivlCParser2312 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_in_synpred1_CivlCParser2314 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred1_CivlCParser2316 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_synpred1_CivlCParser2318 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_synpred2_CivlCParser2621 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_synpred2_CivlCParser2623 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_in_synpred2_CivlCParser2625 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred3_CivlCParser3004 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_in_synpred3_CivlCParser3006 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred3_CivlCParser3008 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFEFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFFFL,0x003FFFFFFFFFFFFFL});
public static final BitSet FOLLOW_set_in_synpred3_CivlCParser3010 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_in_synpred4_CivlCParser3089 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_synpred5_CivlCParser3170 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DIV_in_synpred6_CivlCParser3221 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MOD_in_synpred7_CivlCParser3272 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_synpred8_CivlCParser3353 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUB_in_synpred9_CivlCParser3402 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOTDOT_in_synpred10_CivlCParser3477 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_HASH_in_synpred11_CivlCParser3554 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHIFTLEFT_in_synpred12_CivlCParser3630 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHIFTRIGHT_in_synpred13_CivlCParser3679 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_relationalOperator_in_synpred14_CivlCParser3760 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_equalityOperator_in_synpred15_CivlCParser3898 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AMPERSAND_in_synpred16_CivlCParser4033 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BITXOR_in_synpred17_CivlCParser4116 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BITOR_in_synpred18_CivlCParser4199 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AND_in_synpred19_CivlCParser4282 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_OR_in_synpred20_CivlCParser4373 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IMPLIES_in_synpred21_CivlCParser4467 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_QMARK_in_synpred22_CivlCParser4553 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred23_CivlCParser4821 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_typeName_in_synpred23_CivlCParser4823 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred23_CivlCParser4825 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
public static final BitSet FOLLOW_LAMBDA_in_synpred23_CivlCParser4827 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
public static final BitSet FOLLOW_LPAREN_in_synpred23_CivlCParser4829 = new BitSet(new long[]{0x0100000000000000L,0x2000000000000000L,0x2501330041601842L,0x0000000006682060L});
public static final BitSet FOLLOW_boundVariableDeclarationList_in_synpred23_CivlCParser4847 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_BITOR_in_synpred23_CivlCParser4849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arrayLambdaExpression_in_synpred24_CivlCParser5162 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpression_in_synpred25_CivlCParser5172 = new BitSet(new long[]{0x000000000400AA00L,0x00012A0010010000L});
public static final BitSet FOLLOW_assignmentOperator_in_synpred25_CivlCParser5174 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMMA_in_synpred26_CivlCParser5335 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeSpecifier_in_synpred27_CivlCParser5610 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SYSTEM_in_synpred28_CivlCParser6863 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_libraryName_in_synpred28_CivlCParser6865 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarator_in_synpred29_CivlCParser7958 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELSE_in_synpred30_CivlCParser9584 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarator_in_synpred31_CivlCParser11201 = new BitSet(new long[]{0x0100000000000000L,0x7300000000000010L,0x3F81739459ED1842L,0x00000000066EBA70L});
public static final BitSet FOLLOW_contract_in_synpred31_CivlCParser11203 = new BitSet(new long[]{0x0100000000000000L,0x6300000000000010L,0x2D817384596C1842L,0x00000000066EBA70L});
public static final BitSet FOLLOW_declarationList_opt_in_synpred31_CivlCParser11205 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_synpred31_CivlCParser11207 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarationSpecifiers_in_synpred32_CivlCParser11220 = new BitSet(new long[]{0x0100000000000000L,0x0000100000000080L});
public static final BitSet FOLLOW_declarator_in_synpred32_CivlCParser11222 = new BitSet(new long[]{0x0100000000000000L,0x7300000000000010L,0x3F81739459ED1842L,0x00000000066EBA70L});
public static final BitSet FOLLOW_contract_in_synpred32_CivlCParser11224 = new BitSet(new long[]{0x0100000000000000L,0x6300000000000010L,0x2D817384596C1842L,0x00000000066EBA70L});
public static final BitSet FOLLOW_declarationList_opt_in_synpred32_CivlCParser11226 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_LCURLY_in_synpred32_CivlCParser11228 = new BitSet(new long[]{0x0000000000000002L});
}