MiniMPParser.java
// $ANTLR 3.5.2 /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g 2015-03-26 17:31:26
package edu.udel.cis.vsl.tass.front.minimp.parser;
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 MiniMPParser extends Parser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "ABSTRACT", "ABSTRACT_DECLARATOR",
"ABSTR_FUNCTION_DECL", "ADDITIVE_EXPR", "ADDR_OF", "ALLOCATE_STMT", "AND",
"ANNOTATION_LIST", "ANY", "ARGUMENT", "ARGUMENT_LIST", "ARROW", "ASSERT",
"ASSERT_STMT", "ASSIGN", "ASSIGNMENT_STMT", "ASSIGN_EXPR", "ASSUME", "ASSUME_STMT",
"AT", "BAR", "BODY", "BOOLEAN", "CALL_STMT", "CAST", "CHAR", "CHAR_LITERAL",
"CHOICE", "COLLECTIVE", "COLLECTIVE_ASSERT_STMT", "COLLECTIVE_INVARIANT_STMT",
"COLON", "COMMA", "COMMENT", "COMM_EXPR", "COMPOUND_STMT", "CONDITION_STMT",
"CONST", "CONSTANT", "CONTINUOUS", "CORRESPONDENCE", "DEALLOCATE_STMT",
"DECL", "DECLARATION", "DECLARATOR", "DECL_BODY", "DECL_LIST", "DECL_SUFFIX",
"DEFINE", "DEFINE_DIRECTIVE", "DEFINE_LIST", "DERIVATIVE", "DERIVATIVE_EXPR",
"DESIGNATION", "DESIGNATOR", "DESIGNATOR_LIST", "DIGIT", "DIRECT_ABSTRACT_DECLARATOR",
"DIRECT_DECL", "DIV", "DIV_ASSIGN", "DOT", "DOUBLE", "DOUBLE_PLUS", "DOUBLE_SUB",
"ELSE", "EMPTY_STMT", "EQ", "EQUALITY_EXPR", "EVALUATED_FUNCTION_EXPR",
"EXISTS", "EXPR", "EXPR_STMT", "EscapeSequence", "Exponent", "FALSE",
"FIELD_DECL", "FLOAT", "FOR", "FORALL", "FOR_STMT", "FUNCTION_DECL", "GLOBAL_VARIABLE",
"GT", "GTE", "GUARD", "IDENTIFIER", "IF", "IFTHENELSE_EXPR", "IGNORE",
"IMPL", "INCLUDE", "INCLUDE_DIRECTIVE", "INCLUDE_LIST", "INITIALIZER",
"INITIALIZER_LIST", "INITIALIZER_LIST_REST", "INPUT", "INT", "INT_LITERAL",
"INVARIANT", "INVARIANT_STMT", "IS", "ITERATIVE_STMT", "JOINT", "JOINT_ASSERT_STMT",
"JOINT_INVARIANT_STMT", "LCURLY", "LETTER", "LOGICAL_AND_EXPR", "LOGICAL_OR_EXPR",
"LPAREN", "LSQUARE", "LT", "LTE", "MALLOC", "MOD", "MOD_ASSIGN", "MULTI",
"MULTIPLICATIVE_EXPR", "MULTI_ASSIGN", "MULTI_DECLARATION", "NEQ", "NEWLINE",
"NOT", "OR", "OUTPUT", "OctalEscape", "PARAMETER", "PARAMETER_LIST", "PARTIAL",
"PARTIAL_LIST", "PLUS", "PLUS_ASSIGN", "POSTFIX_EXPR", "POSTFIX_EXPR_SUFFIX",
"PRAGMA", "PREFIX", "PRIMARY_EXPR", "PROGRAM", "PROTOTYPE", "QMARK", "QUANTIFIER",
"QUANTIFIER_EXPR", "RCURLY", "REAL_LITERAL", "RECV", "RECV_STMT", "RELATIONAL_EXPR",
"RETURN", "RETURN_STMT", "RPAREN", "RSQUARE", "SELECT", "SELECT_STMT",
"SELFCHANGE_OP", "SEMI", "SEND", "SEND_STMT", "SHARED", "SIMPLE_TYPE",
"SINGLE_COMMENT", "SIZEOF", "SKEW_FACTOR", "SPEC", "SPEC_EXPR", "STATEMENT",
"STATEMENT_LIST", "STATIC", "STRING_LITERAL", "STRUCT", "SUB", "SUB_ASSIGN",
"SUFFIX", "SYSTEM", "SYS_VAR", "TASS", "TRUE", "TUPLE", "TYPEDEF", "TYPE_NAME",
"TYPE_SPECIFIER", "UNARY_EXPR", "UNARY_OP", "VOID", "WHEN", "WHILE", "WHILE_STMT",
"WHITESPACE", "WILDCARD_EXPR"
};
public static final int EOF=-1;
public static final int ABSTRACT=4;
public static final int ABSTRACT_DECLARATOR=5;
public static final int ABSTR_FUNCTION_DECL=6;
public static final int ADDITIVE_EXPR=7;
public static final int ADDR_OF=8;
public static final int ALLOCATE_STMT=9;
public static final int AND=10;
public static final int ANNOTATION_LIST=11;
public static final int ANY=12;
public static final int ARGUMENT=13;
public static final int ARGUMENT_LIST=14;
public static final int ARROW=15;
public static final int ASSERT=16;
public static final int ASSERT_STMT=17;
public static final int ASSIGN=18;
public static final int ASSIGNMENT_STMT=19;
public static final int ASSIGN_EXPR=20;
public static final int ASSUME=21;
public static final int ASSUME_STMT=22;
public static final int AT=23;
public static final int BAR=24;
public static final int BODY=25;
public static final int BOOLEAN=26;
public static final int CALL_STMT=27;
public static final int CAST=28;
public static final int CHAR=29;
public static final int CHAR_LITERAL=30;
public static final int CHOICE=31;
public static final int COLLECTIVE=32;
public static final int COLLECTIVE_ASSERT_STMT=33;
public static final int COLLECTIVE_INVARIANT_STMT=34;
public static final int COLON=35;
public static final int COMMA=36;
public static final int COMMENT=37;
public static final int COMM_EXPR=38;
public static final int COMPOUND_STMT=39;
public static final int CONDITION_STMT=40;
public static final int CONST=41;
public static final int CONSTANT=42;
public static final int CONTINUOUS=43;
public static final int CORRESPONDENCE=44;
public static final int DEALLOCATE_STMT=45;
public static final int DECL=46;
public static final int DECLARATION=47;
public static final int DECLARATOR=48;
public static final int DECL_BODY=49;
public static final int DECL_LIST=50;
public static final int DECL_SUFFIX=51;
public static final int DEFINE=52;
public static final int DEFINE_DIRECTIVE=53;
public static final int DEFINE_LIST=54;
public static final int DERIVATIVE=55;
public static final int DERIVATIVE_EXPR=56;
public static final int DESIGNATION=57;
public static final int DESIGNATOR=58;
public static final int DESIGNATOR_LIST=59;
public static final int DIGIT=60;
public static final int DIRECT_ABSTRACT_DECLARATOR=61;
public static final int DIRECT_DECL=62;
public static final int DIV=63;
public static final int DIV_ASSIGN=64;
public static final int DOT=65;
public static final int DOUBLE=66;
public static final int DOUBLE_PLUS=67;
public static final int DOUBLE_SUB=68;
public static final int ELSE=69;
public static final int EMPTY_STMT=70;
public static final int EQ=71;
public static final int EQUALITY_EXPR=72;
public static final int EVALUATED_FUNCTION_EXPR=73;
public static final int EXISTS=74;
public static final int EXPR=75;
public static final int EXPR_STMT=76;
public static final int EscapeSequence=77;
public static final int Exponent=78;
public static final int FALSE=79;
public static final int FIELD_DECL=80;
public static final int FLOAT=81;
public static final int FOR=82;
public static final int FORALL=83;
public static final int FOR_STMT=84;
public static final int FUNCTION_DECL=85;
public static final int GLOBAL_VARIABLE=86;
public static final int GT=87;
public static final int GTE=88;
public static final int GUARD=89;
public static final int IDENTIFIER=90;
public static final int IF=91;
public static final int IFTHENELSE_EXPR=92;
public static final int IGNORE=93;
public static final int IMPL=94;
public static final int INCLUDE=95;
public static final int INCLUDE_DIRECTIVE=96;
public static final int INCLUDE_LIST=97;
public static final int INITIALIZER=98;
public static final int INITIALIZER_LIST=99;
public static final int INITIALIZER_LIST_REST=100;
public static final int INPUT=101;
public static final int INT=102;
public static final int INT_LITERAL=103;
public static final int INVARIANT=104;
public static final int INVARIANT_STMT=105;
public static final int IS=106;
public static final int ITERATIVE_STMT=107;
public static final int JOINT=108;
public static final int JOINT_ASSERT_STMT=109;
public static final int JOINT_INVARIANT_STMT=110;
public static final int LCURLY=111;
public static final int LETTER=112;
public static final int LOGICAL_AND_EXPR=113;
public static final int LOGICAL_OR_EXPR=114;
public static final int LPAREN=115;
public static final int LSQUARE=116;
public static final int LT=117;
public static final int LTE=118;
public static final int MALLOC=119;
public static final int MOD=120;
public static final int MOD_ASSIGN=121;
public static final int MULTI=122;
public static final int MULTIPLICATIVE_EXPR=123;
public static final int MULTI_ASSIGN=124;
public static final int MULTI_DECLARATION=125;
public static final int NEQ=126;
public static final int NEWLINE=127;
public static final int NOT=128;
public static final int OR=129;
public static final int OUTPUT=130;
public static final int OctalEscape=131;
public static final int PARAMETER=132;
public static final int PARAMETER_LIST=133;
public static final int PARTIAL=134;
public static final int PARTIAL_LIST=135;
public static final int PLUS=136;
public static final int PLUS_ASSIGN=137;
public static final int POSTFIX_EXPR=138;
public static final int POSTFIX_EXPR_SUFFIX=139;
public static final int PRAGMA=140;
public static final int PREFIX=141;
public static final int PRIMARY_EXPR=142;
public static final int PROGRAM=143;
public static final int PROTOTYPE=144;
public static final int QMARK=145;
public static final int QUANTIFIER=146;
public static final int QUANTIFIER_EXPR=147;
public static final int RCURLY=148;
public static final int REAL_LITERAL=149;
public static final int RECV=150;
public static final int RECV_STMT=151;
public static final int RELATIONAL_EXPR=152;
public static final int RETURN=153;
public static final int RETURN_STMT=154;
public static final int RPAREN=155;
public static final int RSQUARE=156;
public static final int SELECT=157;
public static final int SELECT_STMT=158;
public static final int SELFCHANGE_OP=159;
public static final int SEMI=160;
public static final int SEND=161;
public static final int SEND_STMT=162;
public static final int SHARED=163;
public static final int SIMPLE_TYPE=164;
public static final int SINGLE_COMMENT=165;
public static final int SIZEOF=166;
public static final int SKEW_FACTOR=167;
public static final int SPEC=168;
public static final int SPEC_EXPR=169;
public static final int STATEMENT=170;
public static final int STATEMENT_LIST=171;
public static final int STATIC=172;
public static final int STRING_LITERAL=173;
public static final int STRUCT=174;
public static final int SUB=175;
public static final int SUB_ASSIGN=176;
public static final int SUFFIX=177;
public static final int SYSTEM=178;
public static final int SYS_VAR=179;
public static final int TASS=180;
public static final int TRUE=181;
public static final int TUPLE=182;
public static final int TYPEDEF=183;
public static final int TYPE_NAME=184;
public static final int TYPE_SPECIFIER=185;
public static final int UNARY_EXPR=186;
public static final int UNARY_OP=187;
public static final int VOID=188;
public static final int WHEN=189;
public static final int WHILE=190;
public static final int WHILE_STMT=191;
public static final int WHITESPACE=192;
public static final int WILDCARD_EXPR=193;
// delegates
public Parser[] getDelegates() {
return new Parser[] {};
}
// delegators
public MiniMPParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public MiniMPParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
@Override public String[] getTokenNames() { return MiniMPParser.tokenNames; }
@Override public String getGrammarFileName() { return "/home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g"; }
public static class program_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "program"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:117:1: program : ( program_element )* -> ^( PROGRAM ( program_element )* ) ;
public final MiniMPParser.program_return program() throws RecognitionException {
MiniMPParser.program_return retval = new MiniMPParser.program_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope program_element1 =null;
RewriteRuleSubtreeStream stream_program_element=new RewriteRuleSubtreeStream(adaptor,"rule program_element");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:118:2: ( ( program_element )* -> ^( PROGRAM ( program_element )* ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:118:4: ( program_element )*
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:118:4: ( program_element )*
loop1:
while (true) {
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==BOOLEAN||LA1_0==CHAR||LA1_0==CONST||LA1_0==DEFINE||LA1_0==DOUBLE||LA1_0==FLOAT||LA1_0==IDENTIFIER||LA1_0==INCLUDE||LA1_0==INT||LA1_0==IS||LA1_0==LCURLY||LA1_0==PRAGMA||LA1_0==STATIC||LA1_0==STRUCT||LA1_0==TYPEDEF||LA1_0==VOID) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:118:4: program_element
{
pushFollow(FOLLOW_program_element_in_program432);
program_element1=program_element();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_program_element.add(program_element1.getTree());
}
break;
default :
break loop1;
}
}
// AST REWRITE
// elements: program_element
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 119:3: -> ^( PROGRAM ( program_element )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:119:6: ^( PROGRAM ( program_element )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PROGRAM, "PROGRAM"), root_1);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:119:16: ( program_element )*
while ( stream_program_element.hasNext() ) {
adaptor.addChild(root_1, stream_program_element.nextTree());
}
stream_program_element.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 "program"
public static class program_element_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "program_element"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:122:1: program_element : ( include_directive | define_directive | declaration | abstract_function | function );
public final MiniMPParser.program_element_return program_element() throws RecognitionException {
MiniMPParser.program_element_return retval = new MiniMPParser.program_element_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope include_directive2 =null;
ParserRuleReturnScope define_directive3 =null;
ParserRuleReturnScope declaration4 =null;
ParserRuleReturnScope abstract_function5 =null;
ParserRuleReturnScope function6 =null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:123:2: ( include_directive | define_directive | declaration | abstract_function | function )
int alt2=5;
switch ( input.LA(1) ) {
case INCLUDE:
{
alt2=1;
}
break;
case DEFINE:
{
alt2=2;
}
break;
case BOOLEAN:
{
int LA2_3 = input.LA(2);
if ( (synpred4_MiniMP()) ) {
alt2=3;
}
else if ( (true) ) {
alt2=5;
}
}
break;
case CHAR:
{
int LA2_4 = input.LA(2);
if ( (synpred4_MiniMP()) ) {
alt2=3;
}
else if ( (true) ) {
alt2=5;
}
}
break;
case INT:
{
int LA2_5 = input.LA(2);
if ( (synpred4_MiniMP()) ) {
alt2=3;
}
else if ( (true) ) {
alt2=5;
}
}
break;
case FLOAT:
{
int LA2_6 = input.LA(2);
if ( (synpred4_MiniMP()) ) {
alt2=3;
}
else if ( (true) ) {
alt2=5;
}
}
break;
case DOUBLE:
{
int LA2_7 = input.LA(2);
if ( (synpred4_MiniMP()) ) {
alt2=3;
}
else if ( (true) ) {
alt2=5;
}
}
break;
case VOID:
{
int LA2_8 = input.LA(2);
if ( (synpred4_MiniMP()) ) {
alt2=3;
}
else if ( (true) ) {
alt2=5;
}
}
break;
case STRUCT:
{
int LA2_9 = input.LA(2);
if ( (synpred4_MiniMP()) ) {
alt2=3;
}
else if ( (true) ) {
alt2=5;
}
}
break;
case IDENTIFIER:
{
int LA2_10 = input.LA(2);
if ( (synpred4_MiniMP()) ) {
alt2=3;
}
else if ( (true) ) {
alt2=5;
}
}
break;
case CONST:
case IS:
case LCURLY:
case STATIC:
case TYPEDEF:
{
alt2=3;
}
break;
case PRAGMA:
{
int LA2_12 = input.LA(2);
if ( (synpred4_MiniMP()) ) {
alt2=3;
}
else if ( (synpred5_MiniMP()) ) {
alt2=4;
}
else if ( (true) ) {
alt2=5;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 2, 0, input);
throw nvae;
}
switch (alt2) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:123:4: include_directive
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_include_directive_in_program_element457);
include_directive2=include_directive();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, include_directive2.getTree());
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:124:4: define_directive
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_define_directive_in_program_element462);
define_directive3=define_directive();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, define_directive3.getTree());
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:125:4: declaration
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_declaration_in_program_element467);
declaration4=declaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declaration4.getTree());
}
break;
case 4 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:126:4: abstract_function
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_abstract_function_in_program_element472);
abstract_function5=abstract_function();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, abstract_function5.getTree());
}
break;
case 5 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:127:4: function
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_function_in_program_element477);
function6=function();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, function6.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 "program_element"
public static class list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "list"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:130:1: list : ( include_list | define_list | declaration_list );
public final MiniMPParser.list_return list() throws RecognitionException {
MiniMPParser.list_return retval = new MiniMPParser.list_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope include_list7 =null;
ParserRuleReturnScope define_list8 =null;
ParserRuleReturnScope declaration_list9 =null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:131:2: ( include_list | define_list | declaration_list )
int alt3=3;
switch ( input.LA(1) ) {
case INCLUDE:
{
alt3=1;
}
break;
case DEFINE:
{
alt3=2;
}
break;
case BOOLEAN:
case CHAR:
case CONST:
case DOUBLE:
case FLOAT:
case IDENTIFIER:
case INT:
case IS:
case LCURLY:
case PRAGMA:
case STATIC:
case STRUCT:
case TYPEDEF:
case VOID:
{
alt3=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 3, 0, input);
throw nvae;
}
switch (alt3) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:131:4: include_list
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_include_list_in_list489);
include_list7=include_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, include_list7.getTree());
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:132:4: define_list
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_define_list_in_list494);
define_list8=define_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, define_list8.getTree());
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:133:4: declaration_list
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_declaration_list_in_list499);
declaration_list9=declaration_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, declaration_list9.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 "list"
public static class declaration_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declaration_list"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:137:1: declaration_list : ( declaration )+ -> ^( DECL_LIST ( declaration )+ ) ;
public final MiniMPParser.declaration_list_return declaration_list() throws RecognitionException {
MiniMPParser.declaration_list_return retval = new MiniMPParser.declaration_list_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope declaration10 =null;
RewriteRuleSubtreeStream stream_declaration=new RewriteRuleSubtreeStream(adaptor,"rule declaration");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:138:2: ( ( declaration )+ -> ^( DECL_LIST ( declaration )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:138:4: ( declaration )+
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:138:4: ( declaration )+
int cnt4=0;
loop4:
while (true) {
int alt4=2;
switch ( input.LA(1) ) {
case PRAGMA:
{
int LA4_2 = input.LA(2);
if ( (synpred8_MiniMP()) ) {
alt4=1;
}
}
break;
case LCURLY:
{
int LA4_4 = input.LA(2);
if ( (synpred8_MiniMP()) ) {
alt4=1;
}
}
break;
case IDENTIFIER:
{
int LA4_7 = input.LA(2);
if ( (synpred8_MiniMP()) ) {
alt4=1;
}
}
break;
case BOOLEAN:
case CHAR:
case CONST:
case DOUBLE:
case FLOAT:
case INT:
case IS:
case STATIC:
case STRUCT:
case TYPEDEF:
case VOID:
{
alt4=1;
}
break;
}
switch (alt4) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:138:4: declaration
{
pushFollow(FOLLOW_declaration_in_declaration_list512);
declaration10=declaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration.add(declaration10.getTree());
}
break;
default :
if ( cnt4 >= 1 ) break loop4;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(4, input);
throw eee;
}
cnt4++;
}
// 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();
// 138:17: -> ^( DECL_LIST ( declaration )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:138:20: ^( DECL_LIST ( declaration )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECL_LIST, "DECL_LIST"), root_1);
if ( !(stream_declaration.hasNext()) ) {
throw new RewriteEarlyExitException();
}
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 "declaration_list"
public static class include_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "include_list"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:141:1: include_list : ( include_directive )+ -> ^( INCLUDE_LIST ( include_directive )+ ) ;
public final MiniMPParser.include_list_return include_list() throws RecognitionException {
MiniMPParser.include_list_return retval = new MiniMPParser.include_list_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope include_directive11 =null;
RewriteRuleSubtreeStream stream_include_directive=new RewriteRuleSubtreeStream(adaptor,"rule include_directive");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:142:2: ( ( include_directive )+ -> ^( INCLUDE_LIST ( include_directive )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:142:4: ( include_directive )+
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:142:4: ( include_directive )+
int cnt5=0;
loop5:
while (true) {
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==INCLUDE) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:142:4: include_directive
{
pushFollow(FOLLOW_include_directive_in_include_list534);
include_directive11=include_directive();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_include_directive.add(include_directive11.getTree());
}
break;
default :
if ( cnt5 >= 1 ) break loop5;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(5, input);
throw eee;
}
cnt5++;
}
// AST REWRITE
// elements: include_directive
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 142:23: -> ^( INCLUDE_LIST ( include_directive )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:142:26: ^( INCLUDE_LIST ( include_directive )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INCLUDE_LIST, "INCLUDE_LIST"), root_1);
if ( !(stream_include_directive.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_include_directive.hasNext() ) {
adaptor.addChild(root_1, stream_include_directive.nextTree());
}
stream_include_directive.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 "include_list"
public static class include_directive_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "include_directive"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:145:1: include_directive : INCLUDE -> ^( INCLUDE_DIRECTIVE INCLUDE ) ;
public final MiniMPParser.include_directive_return include_directive() throws RecognitionException {
MiniMPParser.include_directive_return retval = new MiniMPParser.include_directive_return();
retval.start = input.LT(1);
Object root_0 = null;
Token INCLUDE12=null;
Object INCLUDE12_tree=null;
RewriteRuleTokenStream stream_INCLUDE=new RewriteRuleTokenStream(adaptor,"token INCLUDE");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:148:2: ( INCLUDE -> ^( INCLUDE_DIRECTIVE INCLUDE ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:148:4: INCLUDE
{
INCLUDE12=(Token)match(input,INCLUDE,FOLLOW_INCLUDE_in_include_directive558); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INCLUDE.add(INCLUDE12);
// AST REWRITE
// elements: INCLUDE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 148:12: -> ^( INCLUDE_DIRECTIVE INCLUDE )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:148:15: ^( INCLUDE_DIRECTIVE INCLUDE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INCLUDE_DIRECTIVE, "INCLUDE_DIRECTIVE"), root_1);
adaptor.addChild(root_1, stream_INCLUDE.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 "include_directive"
public static class define_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "define_list"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:153:1: define_list : ( define_directive )+ -> ^( DEFINE_LIST ( define_directive )+ ) ;
public final MiniMPParser.define_list_return define_list() throws RecognitionException {
MiniMPParser.define_list_return retval = new MiniMPParser.define_list_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope define_directive13 =null;
RewriteRuleSubtreeStream stream_define_directive=new RewriteRuleSubtreeStream(adaptor,"rule define_directive");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:154:2: ( ( define_directive )+ -> ^( DEFINE_LIST ( define_directive )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:154:5: ( define_directive )+
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:154:5: ( define_directive )+
int cnt6=0;
loop6:
while (true) {
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==DEFINE) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:154:5: define_directive
{
pushFollow(FOLLOW_define_directive_in_define_list582);
define_directive13=define_directive();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_define_directive.add(define_directive13.getTree());
}
break;
default :
if ( cnt6 >= 1 ) break loop6;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(6, input);
throw eee;
}
cnt6++;
}
// AST REWRITE
// elements: define_directive
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 154:23: -> ^( DEFINE_LIST ( define_directive )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:154:26: ^( DEFINE_LIST ( define_directive )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DEFINE_LIST, "DEFINE_LIST"), root_1);
if ( !(stream_define_directive.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_define_directive.hasNext() ) {
adaptor.addChild(root_1, stream_define_directive.nextTree());
}
stream_define_directive.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 "define_list"
public static class define_directive_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "define_directive"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:157:1: define_directive : DEFINE IDENTIFIER expr -> ^( DEFINE_DIRECTIVE IDENTIFIER expr ) ;
public final MiniMPParser.define_directive_return define_directive() throws RecognitionException {
MiniMPParser.define_directive_return retval = new MiniMPParser.define_directive_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DEFINE14=null;
Token IDENTIFIER15=null;
ParserRuleReturnScope expr16 =null;
Object DEFINE14_tree=null;
Object IDENTIFIER15_tree=null;
RewriteRuleTokenStream stream_DEFINE=new RewriteRuleTokenStream(adaptor,"token DEFINE");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:158:2: ( DEFINE IDENTIFIER expr -> ^( DEFINE_DIRECTIVE IDENTIFIER expr ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:158:4: DEFINE IDENTIFIER expr
{
DEFINE14=(Token)match(input,DEFINE,FOLLOW_DEFINE_in_define_directive604); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DEFINE.add(DEFINE14);
IDENTIFIER15=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_define_directive606); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER15);
pushFollow(FOLLOW_expr_in_define_directive608);
expr16=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr16.getTree());
// AST REWRITE
// elements: IDENTIFIER, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 158:27: -> ^( DEFINE_DIRECTIVE IDENTIFIER expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:158:30: ^( DEFINE_DIRECTIVE IDENTIFIER expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DEFINE_DIRECTIVE, "DEFINE_DIRECTIVE"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_expr.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 "define_directive"
public static class declaration_unit_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declaration_unit"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:162:1: declaration_unit : declarator ( ASSIGN initializer )? -> declarator ( initializer )? ;
public final MiniMPParser.declaration_unit_return declaration_unit() throws RecognitionException {
MiniMPParser.declaration_unit_return retval = new MiniMPParser.declaration_unit_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN18=null;
ParserRuleReturnScope declarator17 =null;
ParserRuleReturnScope initializer19 =null;
Object ASSIGN18_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 {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:163:2: ( declarator ( ASSIGN initializer )? -> declarator ( initializer )? )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:163:4: declarator ( ASSIGN initializer )?
{
pushFollow(FOLLOW_declarator_in_declaration_unit632);
declarator17=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator17.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:163:15: ( ASSIGN initializer )?
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==ASSIGN) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:163:16: ASSIGN initializer
{
ASSIGN18=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_declaration_unit635); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN18);
pushFollow(FOLLOW_initializer_in_declaration_unit637);
initializer19=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(initializer19.getTree());
}
break;
}
// AST REWRITE
// elements: initializer, 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();
// 163:37: -> declarator ( initializer )?
{
adaptor.addChild(root_0, stream_declarator.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:163:51: ( initializer )?
if ( stream_initializer.hasNext() ) {
adaptor.addChild(root_0, stream_initializer.nextTree());
}
stream_initializer.reset();
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "declaration_unit"
public static class declaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declaration"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:165:1: declaration : (type= type_specifier declaration_unit ( COMMA declaration_unit )+ SEMI -> ^( MULTI_DECLARATION ( ^( DECLARATION ^( DECL_BODY $type declaration_unit ) SEMI ) )+ ) | ( prefix )? ( suffix )? declaration_body SEMI -> ^( DECLARATION ( prefix )? declaration_body ( suffix )? SEMI ) | PRAGMA TASS INPUT ( suffix )? type_specifier ( IDENTIFIER )? DEFINE IDENTIFIER expr -> ^( DECLARATION ^( PREFIX INPUT ) ^( DECL_BODY type_specifier ^( DECLARATOR ^( DIRECT_DECL IDENTIFIER ) ) ) ( suffix )? SEMI ) );
public final MiniMPParser.declaration_return declaration() throws RecognitionException {
MiniMPParser.declaration_return retval = new MiniMPParser.declaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA21=null;
Token SEMI23=null;
Token SEMI27=null;
Token PRAGMA28=null;
Token TASS29=null;
Token INPUT30=null;
Token IDENTIFIER33=null;
Token DEFINE34=null;
Token IDENTIFIER35=null;
ParserRuleReturnScope type =null;
ParserRuleReturnScope declaration_unit20 =null;
ParserRuleReturnScope declaration_unit22 =null;
ParserRuleReturnScope prefix24 =null;
ParserRuleReturnScope suffix25 =null;
ParserRuleReturnScope declaration_body26 =null;
ParserRuleReturnScope suffix31 =null;
ParserRuleReturnScope type_specifier32 =null;
ParserRuleReturnScope expr36 =null;
Object COMMA21_tree=null;
Object SEMI23_tree=null;
Object SEMI27_tree=null;
Object PRAGMA28_tree=null;
Object TASS29_tree=null;
Object INPUT30_tree=null;
Object IDENTIFIER33_tree=null;
Object DEFINE34_tree=null;
Object IDENTIFIER35_tree=null;
RewriteRuleTokenStream stream_INPUT=new RewriteRuleTokenStream(adaptor,"token INPUT");
RewriteRuleTokenStream stream_DEFINE=new RewriteRuleTokenStream(adaptor,"token DEFINE");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
RewriteRuleSubtreeStream stream_declaration_unit=new RewriteRuleSubtreeStream(adaptor,"rule declaration_unit");
RewriteRuleSubtreeStream stream_prefix=new RewriteRuleSubtreeStream(adaptor,"rule prefix");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_type_specifier=new RewriteRuleSubtreeStream(adaptor,"rule type_specifier");
RewriteRuleSubtreeStream stream_suffix=new RewriteRuleSubtreeStream(adaptor,"rule suffix");
RewriteRuleSubtreeStream stream_declaration_body=new RewriteRuleSubtreeStream(adaptor,"rule declaration_body");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:166:2: (type= type_specifier declaration_unit ( COMMA declaration_unit )+ SEMI -> ^( MULTI_DECLARATION ( ^( DECLARATION ^( DECL_BODY $type declaration_unit ) SEMI ) )+ ) | ( prefix )? ( suffix )? declaration_body SEMI -> ^( DECLARATION ( prefix )? declaration_body ( suffix )? SEMI ) | PRAGMA TASS INPUT ( suffix )? type_specifier ( IDENTIFIER )? DEFINE IDENTIFIER expr -> ^( DECLARATION ^( PREFIX INPUT ) ^( DECL_BODY type_specifier ^( DECLARATOR ^( DIRECT_DECL IDENTIFIER ) ) ) ( suffix )? SEMI ) )
int alt13=3;
switch ( input.LA(1) ) {
case BOOLEAN:
{
int LA13_1 = input.LA(2);
if ( (synpred13_MiniMP()) ) {
alt13=1;
}
else if ( (synpred16_MiniMP()) ) {
alt13=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
{
int LA13_2 = input.LA(2);
if ( (synpred13_MiniMP()) ) {
alt13=1;
}
else if ( (synpred16_MiniMP()) ) {
alt13=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INT:
{
int LA13_3 = input.LA(2);
if ( (synpred13_MiniMP()) ) {
alt13=1;
}
else if ( (synpred16_MiniMP()) ) {
alt13=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FLOAT:
{
int LA13_4 = input.LA(2);
if ( (synpred13_MiniMP()) ) {
alt13=1;
}
else if ( (synpred16_MiniMP()) ) {
alt13=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOUBLE:
{
int LA13_5 = input.LA(2);
if ( (synpred13_MiniMP()) ) {
alt13=1;
}
else if ( (synpred16_MiniMP()) ) {
alt13=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case VOID:
{
int LA13_6 = input.LA(2);
if ( (synpred13_MiniMP()) ) {
alt13=1;
}
else if ( (synpred16_MiniMP()) ) {
alt13=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case STRUCT:
{
int LA13_7 = input.LA(2);
if ( (synpred13_MiniMP()) ) {
alt13=1;
}
else if ( (synpred16_MiniMP()) ) {
alt13=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENTIFIER:
{
int LA13_8 = input.LA(2);
if ( (synpred13_MiniMP()) ) {
alt13=1;
}
else if ( (synpred16_MiniMP()) ) {
alt13=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 13, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CONST:
case IS:
case LCURLY:
case STATIC:
case TYPEDEF:
{
alt13=2;
}
break;
case PRAGMA:
{
int LA13_10 = input.LA(2);
if ( (synpred16_MiniMP()) ) {
alt13=2;
}
else if ( (true) ) {
alt13=3;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 13, 0, input);
throw nvae;
}
switch (alt13) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:166:5: type= type_specifier declaration_unit ( COMMA declaration_unit )+ SEMI
{
pushFollow(FOLLOW_type_specifier_in_declaration659);
type=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_specifier.add(type.getTree());
pushFollow(FOLLOW_declaration_unit_in_declaration661);
declaration_unit20=declaration_unit();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration_unit.add(declaration_unit20.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:166:42: ( COMMA declaration_unit )+
int cnt8=0;
loop8:
while (true) {
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==COMMA) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:166:43: COMMA declaration_unit
{
COMMA21=(Token)match(input,COMMA,FOLLOW_COMMA_in_declaration664); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA21);
pushFollow(FOLLOW_declaration_unit_in_declaration666);
declaration_unit22=declaration_unit();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration_unit.add(declaration_unit22.getTree());
}
break;
default :
if ( cnt8 >= 1 ) break loop8;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(8, input);
throw eee;
}
cnt8++;
}
SEMI23=(Token)match(input,SEMI,FOLLOW_SEMI_in_declaration670); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI23);
// AST REWRITE
// elements: SEMI, type, declaration_unit
// token labels:
// rule labels: retval, type
// token list labels:
// rule list labels:
// 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_type=new RewriteRuleSubtreeStream(adaptor,"rule type",type!=null?type.getTree():null);
root_0 = (Object)adaptor.nil();
// 167:3: -> ^( MULTI_DECLARATION ( ^( DECLARATION ^( DECL_BODY $type declaration_unit ) SEMI ) )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:167:6: ^( MULTI_DECLARATION ( ^( DECLARATION ^( DECL_BODY $type declaration_unit ) SEMI ) )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MULTI_DECLARATION, "MULTI_DECLARATION"), root_1);
if ( !(stream_SEMI.hasNext()||stream_type.hasNext()||stream_declaration_unit.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_SEMI.hasNext()||stream_type.hasNext()||stream_declaration_unit.hasNext() ) {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:168:4: ^( DECLARATION ^( DECL_BODY $type declaration_unit ) SEMI )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATION, "DECLARATION"), root_2);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:168:18: ^( DECL_BODY $type declaration_unit )
{
Object root_3 = (Object)adaptor.nil();
root_3 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECL_BODY, "DECL_BODY"), root_3);
adaptor.addChild(root_3, stream_type.nextTree());
adaptor.addChild(root_3, stream_declaration_unit.nextTree());
adaptor.addChild(root_2, root_3);
}
adaptor.addChild(root_2, stream_SEMI.nextNode());
adaptor.addChild(root_1, root_2);
}
}
stream_SEMI.reset();
stream_type.reset();
stream_declaration_unit.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:169:6: ( prefix )? ( suffix )? declaration_body SEMI
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:169:6: ( prefix )?
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==PRAGMA||LA9_0==TYPEDEF) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:169:6: prefix
{
pushFollow(FOLLOW_prefix_in_declaration704);
prefix24=prefix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_prefix.add(prefix24.getTree());
}
break;
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:169:14: ( suffix )?
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==IS||LA10_0==LCURLY) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:169:14: suffix
{
pushFollow(FOLLOW_suffix_in_declaration707);
suffix25=suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_suffix.add(suffix25.getTree());
}
break;
}
pushFollow(FOLLOW_declaration_body_in_declaration710);
declaration_body26=declaration_body();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration_body.add(declaration_body26.getTree());
SEMI27=(Token)match(input,SEMI,FOLLOW_SEMI_in_declaration712); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI27);
// AST REWRITE
// elements: suffix, prefix, SEMI, declaration_body
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 170:3: -> ^( DECLARATION ( prefix )? declaration_body ( suffix )? SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:170:6: ^( DECLARATION ( prefix )? declaration_body ( suffix )? SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATION, "DECLARATION"), root_1);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:170:20: ( prefix )?
if ( stream_prefix.hasNext() ) {
adaptor.addChild(root_1, stream_prefix.nextTree());
}
stream_prefix.reset();
adaptor.addChild(root_1, stream_declaration_body.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:170:45: ( suffix )?
if ( stream_suffix.hasNext() ) {
adaptor.addChild(root_1, stream_suffix.nextTree());
}
stream_suffix.reset();
adaptor.addChild(root_1, stream_SEMI.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:171:4: PRAGMA TASS INPUT ( suffix )? type_specifier ( IDENTIFIER )? DEFINE IDENTIFIER expr
{
PRAGMA28=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_declaration735); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA28);
TASS29=(Token)match(input,TASS,FOLLOW_TASS_in_declaration737); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS29);
INPUT30=(Token)match(input,INPUT,FOLLOW_INPUT_in_declaration739); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INPUT.add(INPUT30);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:171:22: ( suffix )?
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==IS||LA11_0==LCURLY) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:171:22: suffix
{
pushFollow(FOLLOW_suffix_in_declaration741);
suffix31=suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_suffix.add(suffix31.getTree());
}
break;
}
pushFollow(FOLLOW_type_specifier_in_declaration744);
type_specifier32=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_specifier.add(type_specifier32.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:171:45: ( IDENTIFIER )?
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==IDENTIFIER) ) {
alt12=1;
}
switch (alt12) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:171:45: IDENTIFIER
{
IDENTIFIER33=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_declaration746); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER33);
}
break;
}
DEFINE34=(Token)match(input,DEFINE,FOLLOW_DEFINE_in_declaration749); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DEFINE.add(DEFINE34);
IDENTIFIER35=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_declaration751); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER35);
pushFollow(FOLLOW_expr_in_declaration753);
expr36=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr36.getTree());
// AST REWRITE
// elements: type_specifier, IDENTIFIER, suffix, INPUT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 172:3: -> ^( DECLARATION ^( PREFIX INPUT ) ^( DECL_BODY type_specifier ^( DECLARATOR ^( DIRECT_DECL IDENTIFIER ) ) ) ( suffix )? SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:172:6: ^( DECLARATION ^( PREFIX INPUT ) ^( DECL_BODY type_specifier ^( DECLARATOR ^( DIRECT_DECL IDENTIFIER ) ) ) ( suffix )? SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATION, "DECLARATION"), root_1);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:172:20: ^( PREFIX INPUT )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(PREFIX, "PREFIX"), root_2);
adaptor.addChild(root_2, stream_INPUT.nextNode());
adaptor.addChild(root_1, root_2);
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:172:36: ^( DECL_BODY type_specifier ^( DECLARATOR ^( DIRECT_DECL IDENTIFIER ) ) )
{
Object root_2 = (Object)adaptor.nil();
root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECL_BODY, "DECL_BODY"), root_2);
adaptor.addChild(root_2, stream_type_specifier.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:172:63: ^( DECLARATOR ^( DIRECT_DECL IDENTIFIER ) )
{
Object root_3 = (Object)adaptor.nil();
root_3 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATOR, "DECLARATOR"), root_3);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:172:76: ^( DIRECT_DECL IDENTIFIER )
{
Object root_4 = (Object)adaptor.nil();
root_4 = (Object)adaptor.becomeRoot((Object)adaptor.create(DIRECT_DECL, "DIRECT_DECL"), root_4);
adaptor.addChild(root_4, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_3, root_4);
}
adaptor.addChild(root_2, root_3);
}
adaptor.addChild(root_1, root_2);
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:172:104: ( suffix )?
if ( stream_suffix.hasNext() ) {
adaptor.addChild(root_1, stream_suffix.nextTree());
}
stream_suffix.reset();
adaptor.addChild(root_1, (Object)adaptor.create(SEMI, "SEMI"));
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 "declaration"
public static class prefix_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "prefix"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:175:1: prefix : ( TYPEDEF -> ^( PREFIX TYPEDEF ) | PRAGMA TASS INPUT -> ^( PREFIX INPUT ) | PRAGMA TASS OUTPUT -> ^( PREFIX OUTPUT ) | PRAGMA TASS SHARED -> ^( PREFIX SHARED ) );
public final MiniMPParser.prefix_return prefix() throws RecognitionException {
MiniMPParser.prefix_return retval = new MiniMPParser.prefix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TYPEDEF37=null;
Token PRAGMA38=null;
Token TASS39=null;
Token INPUT40=null;
Token PRAGMA41=null;
Token TASS42=null;
Token OUTPUT43=null;
Token PRAGMA44=null;
Token TASS45=null;
Token SHARED46=null;
Object TYPEDEF37_tree=null;
Object PRAGMA38_tree=null;
Object TASS39_tree=null;
Object INPUT40_tree=null;
Object PRAGMA41_tree=null;
Object TASS42_tree=null;
Object OUTPUT43_tree=null;
Object PRAGMA44_tree=null;
Object TASS45_tree=null;
Object SHARED46_tree=null;
RewriteRuleTokenStream stream_SHARED=new RewriteRuleTokenStream(adaptor,"token SHARED");
RewriteRuleTokenStream stream_INPUT=new RewriteRuleTokenStream(adaptor,"token INPUT");
RewriteRuleTokenStream stream_OUTPUT=new RewriteRuleTokenStream(adaptor,"token OUTPUT");
RewriteRuleTokenStream stream_TYPEDEF=new RewriteRuleTokenStream(adaptor,"token TYPEDEF");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:176:2: ( TYPEDEF -> ^( PREFIX TYPEDEF ) | PRAGMA TASS INPUT -> ^( PREFIX INPUT ) | PRAGMA TASS OUTPUT -> ^( PREFIX OUTPUT ) | PRAGMA TASS SHARED -> ^( PREFIX SHARED ) )
int alt14=4;
int LA14_0 = input.LA(1);
if ( (LA14_0==TYPEDEF) ) {
alt14=1;
}
else if ( (LA14_0==PRAGMA) ) {
int LA14_2 = input.LA(2);
if ( (LA14_2==TASS) ) {
switch ( input.LA(3) ) {
case INPUT:
{
alt14=2;
}
break;
case OUTPUT:
{
alt14=3;
}
break;
case SHARED:
{
alt14=4;
}
break;
default:
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("", 14, 3, 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("", 14, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 14, 0, input);
throw nvae;
}
switch (alt14) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:176:4: TYPEDEF
{
TYPEDEF37=(Token)match(input,TYPEDEF,FOLLOW_TYPEDEF_in_prefix801); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TYPEDEF.add(TYPEDEF37);
// AST REWRITE
// elements: TYPEDEF
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 176:12: -> ^( PREFIX TYPEDEF )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:176:15: ^( PREFIX TYPEDEF )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PREFIX, "PREFIX"), root_1);
adaptor.addChild(root_1, stream_TYPEDEF.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:177:4: PRAGMA TASS INPUT
{
PRAGMA38=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_prefix814); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA38);
TASS39=(Token)match(input,TASS,FOLLOW_TASS_in_prefix816); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS39);
INPUT40=(Token)match(input,INPUT,FOLLOW_INPUT_in_prefix818); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INPUT.add(INPUT40);
// AST REWRITE
// elements: INPUT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 177:22: -> ^( PREFIX INPUT )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:177:25: ^( PREFIX INPUT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PREFIX, "PREFIX"), root_1);
adaptor.addChild(root_1, stream_INPUT.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:178:4: PRAGMA TASS OUTPUT
{
PRAGMA41=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_prefix831); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA41);
TASS42=(Token)match(input,TASS,FOLLOW_TASS_in_prefix833); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS42);
OUTPUT43=(Token)match(input,OUTPUT,FOLLOW_OUTPUT_in_prefix835); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_OUTPUT.add(OUTPUT43);
// AST REWRITE
// elements: OUTPUT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 178:23: -> ^( PREFIX OUTPUT )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:178:26: ^( PREFIX OUTPUT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PREFIX, "PREFIX"), root_1);
adaptor.addChild(root_1, stream_OUTPUT.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:179:4: PRAGMA TASS SHARED
{
PRAGMA44=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_prefix848); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA44);
TASS45=(Token)match(input,TASS,FOLLOW_TASS_in_prefix850); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS45);
SHARED46=(Token)match(input,SHARED,FOLLOW_SHARED_in_prefix852); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SHARED.add(SHARED46);
// AST REWRITE
// elements: SHARED
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 179:23: -> ^( PREFIX SHARED )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:179:26: ^( PREFIX SHARED )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PREFIX, "PREFIX"), root_1);
adaptor.addChild(root_1, stream_SHARED.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 "prefix"
public static class declaration_body_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declaration_body"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:182:1: declaration_body : ( ignored )* type_specifier ( declarator ( ASSIGN initializer )? )? -> ^( DECL_BODY type_specifier ( declarator ( initializer )? )? ) ;
public final MiniMPParser.declaration_body_return declaration_body() throws RecognitionException {
MiniMPParser.declaration_body_return retval = new MiniMPParser.declaration_body_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN50=null;
ParserRuleReturnScope ignored47 =null;
ParserRuleReturnScope type_specifier48 =null;
ParserRuleReturnScope declarator49 =null;
ParserRuleReturnScope initializer51 =null;
Object ASSIGN50_tree=null;
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_ignored=new RewriteRuleSubtreeStream(adaptor,"rule ignored");
RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator");
RewriteRuleSubtreeStream stream_type_specifier=new RewriteRuleSubtreeStream(adaptor,"rule type_specifier");
RewriteRuleSubtreeStream stream_initializer=new RewriteRuleSubtreeStream(adaptor,"rule initializer");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:183:2: ( ( ignored )* type_specifier ( declarator ( ASSIGN initializer )? )? -> ^( DECL_BODY type_specifier ( declarator ( initializer )? )? ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:183:4: ( ignored )* type_specifier ( declarator ( ASSIGN initializer )? )?
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:183:4: ( ignored )*
loop15:
while (true) {
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==CONST||LA15_0==STATIC) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:183:4: ignored
{
pushFollow(FOLLOW_ignored_in_declaration_body874);
ignored47=ignored();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ignored.add(ignored47.getTree());
}
break;
default :
break loop15;
}
}
pushFollow(FOLLOW_type_specifier_in_declaration_body877);
type_specifier48=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_specifier.add(type_specifier48.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:183:28: ( declarator ( ASSIGN initializer )? )?
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==IDENTIFIER||LA17_0==LPAREN||LA17_0==MULTI) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:183:29: declarator ( ASSIGN initializer )?
{
pushFollow(FOLLOW_declarator_in_declaration_body880);
declarator49=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator49.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:183:40: ( ASSIGN initializer )?
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==ASSIGN) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:183:41: ASSIGN initializer
{
ASSIGN50=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_declaration_body883); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN50);
pushFollow(FOLLOW_initializer_in_declaration_body885);
initializer51=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(initializer51.getTree());
}
break;
}
}
break;
}
// AST REWRITE
// elements: initializer, type_specifier, 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();
// 183:64: -> ^( DECL_BODY type_specifier ( declarator ( initializer )? )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:183:67: ^( DECL_BODY type_specifier ( declarator ( initializer )? )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECL_BODY, "DECL_BODY"), root_1);
adaptor.addChild(root_1, stream_type_specifier.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:183:94: ( declarator ( initializer )? )?
if ( stream_initializer.hasNext()||stream_declarator.hasNext() ) {
adaptor.addChild(root_1, stream_declarator.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:183:106: ( initializer )?
if ( stream_initializer.hasNext() ) {
adaptor.addChild(root_1, stream_initializer.nextTree());
}
stream_initializer.reset();
}
stream_initializer.reset();
stream_declarator.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 "declaration_body"
public static class pointer_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "pointer"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:186:1: pointer : MULTI ;
public final MiniMPParser.pointer_return pointer() throws RecognitionException {
MiniMPParser.pointer_return retval = new MiniMPParser.pointer_return();
retval.start = input.LT(1);
Object root_0 = null;
Token MULTI52=null;
Object MULTI52_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:187:2: ( MULTI )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:187:4: MULTI
{
root_0 = (Object)adaptor.nil();
MULTI52=(Token)match(input,MULTI,FOLLOW_MULTI_in_pointer916); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MULTI52_tree = (Object)adaptor.create(MULTI52);
adaptor.addChild(root_0, MULTI52_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "pointer"
public static class declarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declarator"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:190:1: declarator : ( pointer )* direct_declarator -> ^( DECLARATOR ( pointer )* direct_declarator ) ;
public final MiniMPParser.declarator_return declarator() throws RecognitionException {
MiniMPParser.declarator_return retval = new MiniMPParser.declarator_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope pointer53 =null;
ParserRuleReturnScope direct_declarator54 =null;
RewriteRuleSubtreeStream stream_direct_declarator=new RewriteRuleSubtreeStream(adaptor,"rule direct_declarator");
RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:191:2: ( ( pointer )* direct_declarator -> ^( DECLARATOR ( pointer )* direct_declarator ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:191:4: ( pointer )* direct_declarator
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:191:4: ( pointer )*
loop18:
while (true) {
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==MULTI) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:191:4: pointer
{
pushFollow(FOLLOW_pointer_in_declarator927);
pointer53=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer53.getTree());
}
break;
default :
break loop18;
}
}
pushFollow(FOLLOW_direct_declarator_in_declarator930);
direct_declarator54=direct_declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_direct_declarator.add(direct_declarator54.getTree());
// AST REWRITE
// elements: direct_declarator, 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();
// 192:3: -> ^( DECLARATOR ( pointer )* direct_declarator )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:192:6: ^( DECLARATOR ( pointer )* direct_declarator )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECLARATOR, "DECLARATOR"), root_1);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:192:19: ( pointer )*
while ( stream_pointer.hasNext() ) {
adaptor.addChild(root_1, stream_pointer.nextTree());
}
stream_pointer.reset();
adaptor.addChild(root_1, stream_direct_declarator.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 "declarator"
public static class direct_declarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "direct_declarator"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:195:1: direct_declarator : ( IDENTIFIER ( declarator_suffix )* -> ^( DIRECT_DECL IDENTIFIER ( declarator_suffix )* ) | LPAREN declarator RPAREN ( declarator_suffix )+ -> ^( DIRECT_DECL declarator RPAREN ( declarator_suffix )+ ) );
public final MiniMPParser.direct_declarator_return direct_declarator() throws RecognitionException {
MiniMPParser.direct_declarator_return retval = new MiniMPParser.direct_declarator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER55=null;
Token LPAREN57=null;
Token RPAREN59=null;
ParserRuleReturnScope declarator_suffix56 =null;
ParserRuleReturnScope declarator58 =null;
ParserRuleReturnScope declarator_suffix60 =null;
Object IDENTIFIER55_tree=null;
Object LPAREN57_tree=null;
Object RPAREN59_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator");
RewriteRuleSubtreeStream stream_declarator_suffix=new RewriteRuleSubtreeStream(adaptor,"rule declarator_suffix");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:196:2: ( IDENTIFIER ( declarator_suffix )* -> ^( DIRECT_DECL IDENTIFIER ( declarator_suffix )* ) | LPAREN declarator RPAREN ( declarator_suffix )+ -> ^( DIRECT_DECL declarator RPAREN ( declarator_suffix )+ ) )
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==IDENTIFIER) ) {
alt21=1;
}
else if ( (LA21_0==LPAREN) ) {
alt21=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 21, 0, input);
throw nvae;
}
switch (alt21) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:196:4: IDENTIFIER ( declarator_suffix )*
{
IDENTIFIER55=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_direct_declarator954); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER55);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:196:15: ( declarator_suffix )*
loop19:
while (true) {
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==LSQUARE) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:196:15: declarator_suffix
{
pushFollow(FOLLOW_declarator_suffix_in_direct_declarator956);
declarator_suffix56=declarator_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator_suffix.add(declarator_suffix56.getTree());
}
break;
default :
break loop19;
}
}
// AST REWRITE
// elements: IDENTIFIER, declarator_suffix
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 197:3: -> ^( DIRECT_DECL IDENTIFIER ( declarator_suffix )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:197:6: ^( DIRECT_DECL IDENTIFIER ( declarator_suffix )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DIRECT_DECL, "DIRECT_DECL"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:197:31: ( declarator_suffix )*
while ( stream_declarator_suffix.hasNext() ) {
adaptor.addChild(root_1, stream_declarator_suffix.nextTree());
}
stream_declarator_suffix.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:198:4: LPAREN declarator RPAREN ( declarator_suffix )+
{
LPAREN57=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_direct_declarator975); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN57);
pushFollow(FOLLOW_declarator_in_direct_declarator977);
declarator58=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator58.getTree());
RPAREN59=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_direct_declarator979); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN59);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:198:29: ( declarator_suffix )+
int cnt20=0;
loop20:
while (true) {
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==LSQUARE) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:198:29: declarator_suffix
{
pushFollow(FOLLOW_declarator_suffix_in_direct_declarator981);
declarator_suffix60=declarator_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator_suffix.add(declarator_suffix60.getTree());
}
break;
default :
if ( cnt20 >= 1 ) break loop20;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(20, input);
throw eee;
}
cnt20++;
}
// AST REWRITE
// elements: RPAREN, declarator_suffix, 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();
// 199:3: -> ^( DIRECT_DECL declarator RPAREN ( declarator_suffix )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:199:6: ^( DIRECT_DECL declarator RPAREN ( declarator_suffix )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DIRECT_DECL, "DIRECT_DECL"), root_1);
adaptor.addChild(root_1, stream_declarator.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
if ( !(stream_declarator_suffix.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_declarator_suffix.hasNext() ) {
adaptor.addChild(root_1, stream_declarator_suffix.nextTree());
}
stream_declarator_suffix.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 "direct_declarator"
public static class declarator_suffix_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "declarator_suffix"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:202:1: declarator_suffix : LSQUARE ( expr )? RSQUARE -> ^( DECL_SUFFIX ( expr )? RSQUARE ) ;
public final MiniMPParser.declarator_suffix_return declarator_suffix() throws RecognitionException {
MiniMPParser.declarator_suffix_return retval = new MiniMPParser.declarator_suffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LSQUARE61=null;
Token RSQUARE63=null;
ParserRuleReturnScope expr62 =null;
Object LSQUARE61_tree=null;
Object RSQUARE63_tree=null;
RewriteRuleTokenStream stream_LSQUARE=new RewriteRuleTokenStream(adaptor,"token LSQUARE");
RewriteRuleTokenStream stream_RSQUARE=new RewriteRuleTokenStream(adaptor,"token RSQUARE");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:203:2: ( LSQUARE ( expr )? RSQUARE -> ^( DECL_SUFFIX ( expr )? RSQUARE ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:203:4: LSQUARE ( expr )? RSQUARE
{
LSQUARE61=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_declarator_suffix1008); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE61);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:203:12: ( expr )?
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==ADDR_OF||LA22_0==CHAR_LITERAL||LA22_0==DERIVATIVE||(LA22_0 >= DOUBLE_PLUS && LA22_0 <= DOUBLE_SUB)||LA22_0==EXISTS||LA22_0==FALSE||LA22_0==FORALL||LA22_0==IDENTIFIER||LA22_0==INT_LITERAL||LA22_0==LPAREN||LA22_0==MULTI||LA22_0==NOT||LA22_0==PLUS||LA22_0==REAL_LITERAL||LA22_0==SIZEOF||LA22_0==SPEC||LA22_0==STRING_LITERAL||LA22_0==SUB||LA22_0==SYS_VAR||LA22_0==TRUE) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:203:12: expr
{
pushFollow(FOLLOW_expr_in_declarator_suffix1010);
expr62=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr62.getTree());
}
break;
}
RSQUARE63=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_declarator_suffix1013); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE63);
// AST REWRITE
// elements: expr, RSQUARE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 203:26: -> ^( DECL_SUFFIX ( expr )? RSQUARE )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:203:29: ^( DECL_SUFFIX ( expr )? RSQUARE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DECL_SUFFIX, "DECL_SUFFIX"), root_1);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:203:43: ( expr )?
if ( stream_expr.hasNext() ) {
adaptor.addChild(root_1, stream_expr.nextTree());
}
stream_expr.reset();
adaptor.addChild(root_1, stream_RSQUARE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "declarator_suffix"
public static class initializer_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "initializer"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:206:1: initializer : ( expr -> ^( INITIALIZER expr ) | LCURLY ( initializer_list )? RCURLY -> ^( INITIALIZER LCURLY ( initializer_list )? RCURLY ) );
public final MiniMPParser.initializer_return initializer() throws RecognitionException {
MiniMPParser.initializer_return retval = new MiniMPParser.initializer_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY65=null;
Token RCURLY67=null;
ParserRuleReturnScope expr64 =null;
ParserRuleReturnScope initializer_list66 =null;
Object LCURLY65_tree=null;
Object RCURLY67_tree=null;
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_initializer_list=new RewriteRuleSubtreeStream(adaptor,"rule initializer_list");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:207:2: ( expr -> ^( INITIALIZER expr ) | LCURLY ( initializer_list )? RCURLY -> ^( INITIALIZER LCURLY ( initializer_list )? RCURLY ) )
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==ADDR_OF||LA24_0==CHAR_LITERAL||LA24_0==DERIVATIVE||(LA24_0 >= DOUBLE_PLUS && LA24_0 <= DOUBLE_SUB)||LA24_0==EXISTS||LA24_0==FALSE||LA24_0==FORALL||LA24_0==IDENTIFIER||LA24_0==INT_LITERAL||LA24_0==LPAREN||LA24_0==MULTI||LA24_0==NOT||LA24_0==PLUS||LA24_0==REAL_LITERAL||LA24_0==SIZEOF||LA24_0==SPEC||LA24_0==STRING_LITERAL||LA24_0==SUB||LA24_0==SYS_VAR||LA24_0==TRUE) ) {
alt24=1;
}
else if ( (LA24_0==LCURLY) ) {
alt24=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 24, 0, input);
throw nvae;
}
switch (alt24) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:207:4: expr
{
pushFollow(FOLLOW_expr_in_initializer1037);
expr64=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr64.getTree());
// AST REWRITE
// elements: expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 208:3: -> ^( INITIALIZER expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:208:6: ^( INITIALIZER expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INITIALIZER, "INITIALIZER"), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:209:4: LCURLY ( initializer_list )? RCURLY
{
LCURLY65=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_initializer1053); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY65);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:209:11: ( initializer_list )?
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==ADDR_OF||LA23_0==CHAR_LITERAL||LA23_0==DERIVATIVE||LA23_0==DOT||(LA23_0 >= DOUBLE_PLUS && LA23_0 <= DOUBLE_SUB)||LA23_0==EXISTS||LA23_0==FALSE||LA23_0==FORALL||LA23_0==IDENTIFIER||LA23_0==INT_LITERAL||LA23_0==LCURLY||(LA23_0 >= LPAREN && LA23_0 <= LSQUARE)||LA23_0==MULTI||LA23_0==NOT||LA23_0==PLUS||LA23_0==REAL_LITERAL||LA23_0==SIZEOF||LA23_0==SPEC||LA23_0==STRING_LITERAL||LA23_0==SUB||LA23_0==SYS_VAR||LA23_0==TRUE) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:209:11: initializer_list
{
pushFollow(FOLLOW_initializer_list_in_initializer1055);
initializer_list66=initializer_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer_list.add(initializer_list66.getTree());
}
break;
}
RCURLY67=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_initializer1058); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY67);
// AST REWRITE
// elements: initializer_list, 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();
// 210:3: -> ^( INITIALIZER LCURLY ( initializer_list )? RCURLY )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:210:6: ^( INITIALIZER LCURLY ( initializer_list )? RCURLY )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INITIALIZER, "INITIALIZER"), root_1);
adaptor.addChild(root_1, stream_LCURLY.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:210:27: ( initializer_list )?
if ( stream_initializer_list.hasNext() ) {
adaptor.addChild(root_1, stream_initializer_list.nextTree());
}
stream_initializer_list.reset();
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 "initializer"
public static class initializer_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "initializer_list"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:213:1: initializer_list : ( designation )? initializer ( COMMA initializer_list )? -> ^( INITIALIZER_LIST ( designation )? initializer ( initializer_list )? ) ;
public final MiniMPParser.initializer_list_return initializer_list() throws RecognitionException {
MiniMPParser.initializer_list_return retval = new MiniMPParser.initializer_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA70=null;
ParserRuleReturnScope designation68 =null;
ParserRuleReturnScope initializer69 =null;
ParserRuleReturnScope initializer_list71 =null;
Object COMMA70_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_initializer_list=new RewriteRuleSubtreeStream(adaptor,"rule initializer_list");
RewriteRuleSubtreeStream stream_designation=new RewriteRuleSubtreeStream(adaptor,"rule designation");
RewriteRuleSubtreeStream stream_initializer=new RewriteRuleSubtreeStream(adaptor,"rule initializer");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:214:2: ( ( designation )? initializer ( COMMA initializer_list )? -> ^( INITIALIZER_LIST ( designation )? initializer ( initializer_list )? ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:214:4: ( designation )? initializer ( COMMA initializer_list )?
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:214:4: ( designation )?
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==DOT||LA25_0==LSQUARE) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:214:4: designation
{
pushFollow(FOLLOW_designation_in_initializer_list1086);
designation68=designation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designation.add(designation68.getTree());
}
break;
}
pushFollow(FOLLOW_initializer_in_initializer_list1089);
initializer69=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(initializer69.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:214:29: ( COMMA initializer_list )?
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==COMMA) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:214:30: COMMA initializer_list
{
COMMA70=(Token)match(input,COMMA,FOLLOW_COMMA_in_initializer_list1092); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA70);
pushFollow(FOLLOW_initializer_list_in_initializer_list1094);
initializer_list71=initializer_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer_list.add(initializer_list71.getTree());
}
break;
}
// AST REWRITE
// elements: initializer, designation, initializer_list
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 215:3: -> ^( INITIALIZER_LIST ( designation )? initializer ( initializer_list )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:215:6: ^( INITIALIZER_LIST ( designation )? initializer ( initializer_list )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INITIALIZER_LIST, "INITIALIZER_LIST"), root_1);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:215:25: ( designation )?
if ( stream_designation.hasNext() ) {
adaptor.addChild(root_1, stream_designation.nextTree());
}
stream_designation.reset();
adaptor.addChild(root_1, stream_initializer.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:215:50: ( initializer_list )?
if ( stream_initializer_list.hasNext() ) {
adaptor.addChild(root_1, stream_initializer_list.nextTree());
}
stream_initializer_list.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 "initializer_list"
public static class designation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "designation"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:218:1: designation : designator_list ASSIGN -> ^( DESIGNATION designator_list ASSIGN ) ;
public final MiniMPParser.designation_return designation() throws RecognitionException {
MiniMPParser.designation_return retval = new MiniMPParser.designation_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN73=null;
ParserRuleReturnScope designator_list72 =null;
Object ASSIGN73_tree=null;
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_designator_list=new RewriteRuleSubtreeStream(adaptor,"rule designator_list");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:219:2: ( designator_list ASSIGN -> ^( DESIGNATION designator_list ASSIGN ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:219:4: designator_list ASSIGN
{
pushFollow(FOLLOW_designator_list_in_designation1124);
designator_list72=designator_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designator_list.add(designator_list72.getTree());
ASSIGN73=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_designation1126); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN73);
// AST REWRITE
// elements: ASSIGN, designator_list
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 219:27: -> ^( DESIGNATION designator_list ASSIGN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:219:30: ^( DESIGNATION designator_list ASSIGN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DESIGNATION, "DESIGNATION"), root_1);
adaptor.addChild(root_1, stream_designator_list.nextTree());
adaptor.addChild(root_1, stream_ASSIGN.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 "designation"
public static class designator_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "designator_list"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:222:1: designator_list : ( designator )+ -> ^( DESIGNATOR_LIST ( designator )+ ) ;
public final MiniMPParser.designator_list_return designator_list() throws RecognitionException {
MiniMPParser.designator_list_return retval = new MiniMPParser.designator_list_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope designator74 =null;
RewriteRuleSubtreeStream stream_designator=new RewriteRuleSubtreeStream(adaptor,"rule designator");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:223:2: ( ( designator )+ -> ^( DESIGNATOR_LIST ( designator )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:223:4: ( designator )+
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:223:4: ( designator )+
int cnt27=0;
loop27:
while (true) {
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==DOT||LA27_0==LSQUARE) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:223:4: designator
{
pushFollow(FOLLOW_designator_in_designator_list1148);
designator74=designator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designator.add(designator74.getTree());
}
break;
default :
if ( cnt27 >= 1 ) break loop27;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(27, input);
throw eee;
}
cnt27++;
}
// AST REWRITE
// elements: designator
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 223:16: -> ^( DESIGNATOR_LIST ( designator )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:223:19: ^( DESIGNATOR_LIST ( designator )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DESIGNATOR_LIST, "DESIGNATOR_LIST"), root_1);
if ( !(stream_designator.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_designator.hasNext() ) {
adaptor.addChild(root_1, stream_designator.nextTree());
}
stream_designator.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 "designator_list"
public static class designator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "designator"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:226:1: designator : ( LSQUARE ifThenElse_expr RSQUARE -> ^( DESIGNATOR ifThenElse_expr RSQUARE ) | DOT IDENTIFIER -> ^( DESIGNATOR IDENTIFIER ) );
public final MiniMPParser.designator_return designator() throws RecognitionException {
MiniMPParser.designator_return retval = new MiniMPParser.designator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LSQUARE75=null;
Token RSQUARE77=null;
Token DOT78=null;
Token IDENTIFIER79=null;
ParserRuleReturnScope ifThenElse_expr76 =null;
Object LSQUARE75_tree=null;
Object RSQUARE77_tree=null;
Object DOT78_tree=null;
Object IDENTIFIER79_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_ifThenElse_expr=new RewriteRuleSubtreeStream(adaptor,"rule ifThenElse_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:227:2: ( LSQUARE ifThenElse_expr RSQUARE -> ^( DESIGNATOR ifThenElse_expr RSQUARE ) | DOT IDENTIFIER -> ^( DESIGNATOR IDENTIFIER ) )
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==LSQUARE) ) {
alt28=1;
}
else if ( (LA28_0==DOT) ) {
alt28=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 28, 0, input);
throw nvae;
}
switch (alt28) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:227:4: LSQUARE ifThenElse_expr RSQUARE
{
LSQUARE75=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_designator1169); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE75);
pushFollow(FOLLOW_ifThenElse_expr_in_designator1171);
ifThenElse_expr76=ifThenElse_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ifThenElse_expr.add(ifThenElse_expr76.getTree());
RSQUARE77=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_designator1173); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE77);
// AST REWRITE
// elements: ifThenElse_expr, RSQUARE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 227:36: -> ^( DESIGNATOR ifThenElse_expr RSQUARE )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:227:39: ^( DESIGNATOR ifThenElse_expr RSQUARE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DESIGNATOR, "DESIGNATOR"), root_1);
adaptor.addChild(root_1, stream_ifThenElse_expr.nextTree());
adaptor.addChild(root_1, stream_RSQUARE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:228:4: DOT IDENTIFIER
{
DOT78=(Token)match(input,DOT,FOLLOW_DOT_in_designator1189); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT78);
IDENTIFIER79=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_designator1191); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER79);
// 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();
// 228:19: -> ^( DESIGNATOR IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:228:22: ^( DESIGNATOR IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DESIGNATOR, "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 suffix_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "suffix"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:231:1: suffix : ( LCURLY expr RCURLY ( IS IDENTIFIER )? -> ^( SUFFIX expr RCURLY ( IDENTIFIER )? ) | IS IDENTIFIER -> ^( SUFFIX IDENTIFIER ) );
public final MiniMPParser.suffix_return suffix() throws RecognitionException {
MiniMPParser.suffix_return retval = new MiniMPParser.suffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY80=null;
Token RCURLY82=null;
Token IS83=null;
Token IDENTIFIER84=null;
Token IS85=null;
Token IDENTIFIER86=null;
ParserRuleReturnScope expr81 =null;
Object LCURLY80_tree=null;
Object RCURLY82_tree=null;
Object IS83_tree=null;
Object IDENTIFIER84_tree=null;
Object IS85_tree=null;
Object IDENTIFIER86_tree=null;
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_IS=new RewriteRuleTokenStream(adaptor,"token IS");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:232:2: ( LCURLY expr RCURLY ( IS IDENTIFIER )? -> ^( SUFFIX expr RCURLY ( IDENTIFIER )? ) | IS IDENTIFIER -> ^( SUFFIX IDENTIFIER ) )
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==LCURLY) ) {
alt30=1;
}
else if ( (LA30_0==IS) ) {
alt30=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 30, 0, input);
throw nvae;
}
switch (alt30) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:232:4: LCURLY expr RCURLY ( IS IDENTIFIER )?
{
LCURLY80=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_suffix1213); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY80);
pushFollow(FOLLOW_expr_in_suffix1215);
expr81=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr81.getTree());
RCURLY82=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_suffix1217); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY82);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:232:23: ( IS IDENTIFIER )?
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==IS) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:232:24: IS IDENTIFIER
{
IS83=(Token)match(input,IS,FOLLOW_IS_in_suffix1220); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IS.add(IS83);
IDENTIFIER84=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_suffix1222); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER84);
}
break;
}
// AST REWRITE
// elements: RCURLY, expr, 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();
// 233:3: -> ^( SUFFIX expr RCURLY ( IDENTIFIER )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:233:6: ^( SUFFIX expr RCURLY ( IDENTIFIER )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SUFFIX, "SUFFIX"), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_RCURLY.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:233:27: ( IDENTIFIER )?
if ( stream_IDENTIFIER.hasNext() ) {
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
}
stream_IDENTIFIER.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:234:4: IS IDENTIFIER
{
IS85=(Token)match(input,IS,FOLLOW_IS_in_suffix1244); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IS.add(IS85);
IDENTIFIER86=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_suffix1246); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER86);
// 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();
// 235:3: -> ^( SUFFIX IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:235:6: ^( SUFFIX IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SUFFIX, "SUFFIX"), 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 "suffix"
public static class program_name_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "program_name"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:238:1: program_name : ( SPEC | IMPL );
public final MiniMPParser.program_name_return program_name() throws RecognitionException {
MiniMPParser.program_name_return retval = new MiniMPParser.program_name_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set87=null;
Object set87_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:239:2: ( SPEC | IMPL )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:
{
root_0 = (Object)adaptor.nil();
set87=input.LT(1);
if ( input.LA(1)==IMPL||input.LA(1)==SPEC ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set87));
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 "program_name"
public static class type_specifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "type_specifier"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:243:1: type_specifier : ( simple_type -> ^( TYPE_SPECIFIER simple_type ) | STRUCT ( IDENTIFIER )? LCURLY ( field_declaration )* RCURLY -> ^( TYPE_SPECIFIER STRUCT ( IDENTIFIER )? ( field_declaration )* ) | STRUCT IDENTIFIER -> ^( TYPE_SPECIFIER STRUCT IDENTIFIER ) | IDENTIFIER -> ^( TYPE_SPECIFIER IDENTIFIER ) );
public final MiniMPParser.type_specifier_return type_specifier() throws RecognitionException {
MiniMPParser.type_specifier_return retval = new MiniMPParser.type_specifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STRUCT89=null;
Token IDENTIFIER90=null;
Token LCURLY91=null;
Token RCURLY93=null;
Token STRUCT94=null;
Token IDENTIFIER95=null;
Token IDENTIFIER96=null;
ParserRuleReturnScope simple_type88 =null;
ParserRuleReturnScope field_declaration92 =null;
Object STRUCT89_tree=null;
Object IDENTIFIER90_tree=null;
Object LCURLY91_tree=null;
Object RCURLY93_tree=null;
Object STRUCT94_tree=null;
Object IDENTIFIER95_tree=null;
Object IDENTIFIER96_tree=null;
RewriteRuleTokenStream stream_STRUCT=new RewriteRuleTokenStream(adaptor,"token STRUCT");
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_field_declaration=new RewriteRuleSubtreeStream(adaptor,"rule field_declaration");
RewriteRuleSubtreeStream stream_simple_type=new RewriteRuleSubtreeStream(adaptor,"rule simple_type");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:244:2: ( simple_type -> ^( TYPE_SPECIFIER simple_type ) | STRUCT ( IDENTIFIER )? LCURLY ( field_declaration )* RCURLY -> ^( TYPE_SPECIFIER STRUCT ( IDENTIFIER )? ( field_declaration )* ) | STRUCT IDENTIFIER -> ^( TYPE_SPECIFIER STRUCT IDENTIFIER ) | IDENTIFIER -> ^( TYPE_SPECIFIER IDENTIFIER ) )
int alt33=4;
switch ( input.LA(1) ) {
case BOOLEAN:
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case VOID:
{
alt33=1;
}
break;
case STRUCT:
{
int LA33_2 = input.LA(2);
if ( (LA33_2==IDENTIFIER) ) {
int LA33_4 = input.LA(3);
if ( (LA33_4==DEFINE||LA33_4==IDENTIFIER||LA33_4==LPAREN||LA33_4==MULTI||LA33_4==RPAREN||LA33_4==SEMI) ) {
alt33=3;
}
else if ( (LA33_4==LCURLY) ) {
alt33=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("", 33, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA33_2==LCURLY) ) {
alt33=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 33, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENTIFIER:
{
alt33=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 33, 0, input);
throw nvae;
}
switch (alt33) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:244:4: simple_type
{
pushFollow(FOLLOW_simple_type_in_type_specifier1286);
simple_type88=simple_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_simple_type.add(simple_type88.getTree());
// AST REWRITE
// elements: simple_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();
// 245:3: -> ^( TYPE_SPECIFIER simple_type )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:245:6: ^( TYPE_SPECIFIER simple_type )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPE_SPECIFIER, "TYPE_SPECIFIER"), root_1);
adaptor.addChild(root_1, stream_simple_type.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:246:4: STRUCT ( IDENTIFIER )? LCURLY ( field_declaration )* RCURLY
{
STRUCT89=(Token)match(input,STRUCT,FOLLOW_STRUCT_in_type_specifier1302); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRUCT.add(STRUCT89);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:246:11: ( IDENTIFIER )?
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==IDENTIFIER) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:246:11: IDENTIFIER
{
IDENTIFIER90=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_type_specifier1304); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER90);
}
break;
}
LCURLY91=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_type_specifier1307); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY91);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:246:30: ( field_declaration )*
loop32:
while (true) {
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==BOOLEAN||LA32_0==CHAR||LA32_0==DOUBLE||LA32_0==FLOAT||LA32_0==IDENTIFIER||LA32_0==INT||LA32_0==STRUCT||LA32_0==VOID) ) {
alt32=1;
}
switch (alt32) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:246:30: field_declaration
{
pushFollow(FOLLOW_field_declaration_in_type_specifier1309);
field_declaration92=field_declaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_field_declaration.add(field_declaration92.getTree());
}
break;
default :
break loop32;
}
}
RCURLY93=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_type_specifier1312); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY93);
// AST REWRITE
// elements: field_declaration, STRUCT, 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();
// 247:3: -> ^( TYPE_SPECIFIER STRUCT ( IDENTIFIER )? ( field_declaration )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:247:6: ^( TYPE_SPECIFIER STRUCT ( IDENTIFIER )? ( field_declaration )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPE_SPECIFIER, "TYPE_SPECIFIER"), root_1);
adaptor.addChild(root_1, stream_STRUCT.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:247:30: ( IDENTIFIER )?
if ( stream_IDENTIFIER.hasNext() ) {
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
}
stream_IDENTIFIER.reset();
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:247:42: ( field_declaration )*
while ( stream_field_declaration.hasNext() ) {
adaptor.addChild(root_1, stream_field_declaration.nextTree());
}
stream_field_declaration.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:248:4: STRUCT IDENTIFIER
{
STRUCT94=(Token)match(input,STRUCT,FOLLOW_STRUCT_in_type_specifier1333); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRUCT.add(STRUCT94);
IDENTIFIER95=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_type_specifier1335); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER95);
// AST REWRITE
// elements: STRUCT, 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();
// 249:3: -> ^( TYPE_SPECIFIER STRUCT IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:249:6: ^( TYPE_SPECIFIER STRUCT IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPE_SPECIFIER, "TYPE_SPECIFIER"), root_1);
adaptor.addChild(root_1, stream_STRUCT.nextNode());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:250:4: IDENTIFIER
{
IDENTIFIER96=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_type_specifier1352); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER96);
// 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();
// 251:3: -> ^( TYPE_SPECIFIER IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:251:6: ^( TYPE_SPECIFIER IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TYPE_SPECIFIER, "TYPE_SPECIFIER"), 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 "type_specifier"
public static class simple_type_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "simple_type"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:254:1: simple_type : ( BOOLEAN -> ^( SIMPLE_TYPE BOOLEAN ) | CHAR -> ^( SIMPLE_TYPE CHAR ) | INT -> ^( SIMPLE_TYPE INT ) | FLOAT -> ^( SIMPLE_TYPE FLOAT ) | DOUBLE -> ^( SIMPLE_TYPE DOUBLE ) | VOID -> ^( SIMPLE_TYPE VOID ) );
public final MiniMPParser.simple_type_return simple_type() throws RecognitionException {
MiniMPParser.simple_type_return retval = new MiniMPParser.simple_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token BOOLEAN97=null;
Token CHAR98=null;
Token INT99=null;
Token FLOAT100=null;
Token DOUBLE101=null;
Token VOID102=null;
Object BOOLEAN97_tree=null;
Object CHAR98_tree=null;
Object INT99_tree=null;
Object FLOAT100_tree=null;
Object DOUBLE101_tree=null;
Object VOID102_tree=null;
RewriteRuleTokenStream stream_CHAR=new RewriteRuleTokenStream(adaptor,"token CHAR");
RewriteRuleTokenStream stream_DOUBLE=new RewriteRuleTokenStream(adaptor,"token DOUBLE");
RewriteRuleTokenStream stream_FLOAT=new RewriteRuleTokenStream(adaptor,"token FLOAT");
RewriteRuleTokenStream stream_INT=new RewriteRuleTokenStream(adaptor,"token INT");
RewriteRuleTokenStream stream_BOOLEAN=new RewriteRuleTokenStream(adaptor,"token BOOLEAN");
RewriteRuleTokenStream stream_VOID=new RewriteRuleTokenStream(adaptor,"token VOID");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:255:2: ( BOOLEAN -> ^( SIMPLE_TYPE BOOLEAN ) | CHAR -> ^( SIMPLE_TYPE CHAR ) | INT -> ^( SIMPLE_TYPE INT ) | FLOAT -> ^( SIMPLE_TYPE FLOAT ) | DOUBLE -> ^( SIMPLE_TYPE DOUBLE ) | VOID -> ^( SIMPLE_TYPE VOID ) )
int alt34=6;
switch ( input.LA(1) ) {
case BOOLEAN:
{
alt34=1;
}
break;
case CHAR:
{
alt34=2;
}
break;
case INT:
{
alt34=3;
}
break;
case FLOAT:
{
alt34=4;
}
break;
case DOUBLE:
{
alt34=5;
}
break;
case VOID:
{
alt34=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 34, 0, input);
throw nvae;
}
switch (alt34) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:255:4: BOOLEAN
{
BOOLEAN97=(Token)match(input,BOOLEAN,FOLLOW_BOOLEAN_in_simple_type1374); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BOOLEAN.add(BOOLEAN97);
// AST REWRITE
// elements: BOOLEAN
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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:12: -> ^( SIMPLE_TYPE BOOLEAN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:255:15: ^( SIMPLE_TYPE BOOLEAN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SIMPLE_TYPE, "SIMPLE_TYPE"), root_1);
adaptor.addChild(root_1, stream_BOOLEAN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:256:4: CHAR
{
CHAR98=(Token)match(input,CHAR,FOLLOW_CHAR_in_simple_type1387); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CHAR.add(CHAR98);
// AST REWRITE
// elements: CHAR
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 256:9: -> ^( SIMPLE_TYPE CHAR )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:256:12: ^( SIMPLE_TYPE CHAR )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SIMPLE_TYPE, "SIMPLE_TYPE"), root_1);
adaptor.addChild(root_1, stream_CHAR.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:257:4: INT
{
INT99=(Token)match(input,INT,FOLLOW_INT_in_simple_type1400); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INT.add(INT99);
// AST REWRITE
// elements: INT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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:8: -> ^( SIMPLE_TYPE INT )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:257:11: ^( SIMPLE_TYPE INT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SIMPLE_TYPE, "SIMPLE_TYPE"), root_1);
adaptor.addChild(root_1, stream_INT.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:258:4: FLOAT
{
FLOAT100=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_simple_type1413); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FLOAT.add(FLOAT100);
// AST REWRITE
// elements: FLOAT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 258:10: -> ^( SIMPLE_TYPE FLOAT )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:258:13: ^( SIMPLE_TYPE FLOAT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SIMPLE_TYPE, "SIMPLE_TYPE"), root_1);
adaptor.addChild(root_1, stream_FLOAT.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:259:4: DOUBLE
{
DOUBLE101=(Token)match(input,DOUBLE,FOLLOW_DOUBLE_in_simple_type1426); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOUBLE.add(DOUBLE101);
// AST REWRITE
// elements: DOUBLE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 259:11: -> ^( SIMPLE_TYPE DOUBLE )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:259:14: ^( SIMPLE_TYPE DOUBLE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SIMPLE_TYPE, "SIMPLE_TYPE"), root_1);
adaptor.addChild(root_1, stream_DOUBLE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:260:4: VOID
{
VOID102=(Token)match(input,VOID,FOLLOW_VOID_in_simple_type1439); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_VOID.add(VOID102);
// AST REWRITE
// elements: VOID
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 260:9: -> ^( SIMPLE_TYPE VOID )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:260:12: ^( SIMPLE_TYPE VOID )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SIMPLE_TYPE, "SIMPLE_TYPE"), root_1);
adaptor.addChild(root_1, stream_VOID.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 "simple_type"
public static class type_name_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "type_name"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:263:1: type_name : type_specifier ( abstract_declarator )? -> ^( TYPE_NAME type_specifier ( abstract_declarator )? ) ;
public final MiniMPParser.type_name_return type_name() throws RecognitionException {
MiniMPParser.type_name_return retval = new MiniMPParser.type_name_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope type_specifier103 =null;
ParserRuleReturnScope abstract_declarator104 =null;
RewriteRuleSubtreeStream stream_abstract_declarator=new RewriteRuleSubtreeStream(adaptor,"rule abstract_declarator");
RewriteRuleSubtreeStream stream_type_specifier=new RewriteRuleSubtreeStream(adaptor,"rule type_specifier");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:264:2: ( type_specifier ( abstract_declarator )? -> ^( TYPE_NAME type_specifier ( abstract_declarator )? ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:264:4: type_specifier ( abstract_declarator )?
{
pushFollow(FOLLOW_type_specifier_in_type_name1459);
type_specifier103=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_specifier.add(type_specifier103.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:264:19: ( abstract_declarator )?
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==MULTI) ) {
int LA35_1 = input.LA(2);
if ( (LA35_1==RPAREN) ) {
int LA35_3 = input.LA(3);
if ( (LA35_3==EOF||LA35_3==ADDR_OF||LA35_3==AND||LA35_3==ASSERT||LA35_3==ASSIGN||LA35_3==BOOLEAN||(LA35_3 >= CHAR && LA35_3 <= CHAR_LITERAL)||(LA35_3 >= COLON && LA35_3 <= COMMA)||LA35_3==CONST||LA35_3==DEFINE||LA35_3==DERIVATIVE||(LA35_3 >= DIV && LA35_3 <= DIV_ASSIGN)||(LA35_3 >= DOUBLE && LA35_3 <= ELSE)||LA35_3==EQ||LA35_3==EXISTS||LA35_3==FALSE||(LA35_3 >= FLOAT && LA35_3 <= FORALL)||(LA35_3 >= GT && LA35_3 <= GTE)||(LA35_3 >= IDENTIFIER && LA35_3 <= IF)||LA35_3==INCLUDE||(LA35_3 >= INT && LA35_3 <= INT_LITERAL)||LA35_3==IS||LA35_3==LCURLY||LA35_3==LPAREN||(LA35_3 >= LT && LA35_3 <= LTE)||(LA35_3 >= MOD && LA35_3 <= MULTI)||LA35_3==MULTI_ASSIGN||LA35_3==NEQ||(LA35_3 >= NOT && LA35_3 <= OR)||(LA35_3 >= PLUS && LA35_3 <= PLUS_ASSIGN)||LA35_3==PRAGMA||LA35_3==QMARK||(LA35_3 >= RCURLY && LA35_3 <= RECV)||LA35_3==RETURN||(LA35_3 >= RPAREN && LA35_3 <= SELECT)||(LA35_3 >= SEMI && LA35_3 <= SEND)||LA35_3==SIZEOF||LA35_3==SPEC||(LA35_3 >= STATIC && LA35_3 <= SUB_ASSIGN)||LA35_3==SYS_VAR||LA35_3==TRUE||LA35_3==TYPEDEF||(LA35_3 >= VOID && LA35_3 <= WHILE)) ) {
alt35=1;
}
}
else if ( (LA35_1==IDENTIFIER||(LA35_1 >= LPAREN && LA35_1 <= LSQUARE)||LA35_1==MULTI) ) {
alt35=1;
}
}
switch (alt35) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:264:19: abstract_declarator
{
pushFollow(FOLLOW_abstract_declarator_in_type_name1461);
abstract_declarator104=abstract_declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_abstract_declarator.add(abstract_declarator104.getTree());
}
break;
}
// AST REWRITE
// elements: abstract_declarator, type_specifier
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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:3: -> ^( TYPE_NAME type_specifier ( abstract_declarator )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:265:6: ^( TYPE_NAME type_specifier ( abstract_declarator )? )
{
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_type_specifier.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:265:33: ( abstract_declarator )?
if ( stream_abstract_declarator.hasNext() ) {
adaptor.addChild(root_1, stream_abstract_declarator.nextTree());
}
stream_abstract_declarator.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 "type_name"
public static class abstract_declarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "abstract_declarator"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:268:1: abstract_declarator : ( pointer )+ ( direct_abstract_declarator )? ( declarator_suffix )* -> ^( ABSTRACT_DECLARATOR ( pointer )+ ( direct_abstract_declarator )? ( declarator_suffix )* ) ;
public final MiniMPParser.abstract_declarator_return abstract_declarator() throws RecognitionException {
MiniMPParser.abstract_declarator_return retval = new MiniMPParser.abstract_declarator_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope pointer105 =null;
ParserRuleReturnScope direct_abstract_declarator106 =null;
ParserRuleReturnScope declarator_suffix107 =null;
RewriteRuleSubtreeStream stream_direct_abstract_declarator=new RewriteRuleSubtreeStream(adaptor,"rule direct_abstract_declarator");
RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer");
RewriteRuleSubtreeStream stream_declarator_suffix=new RewriteRuleSubtreeStream(adaptor,"rule declarator_suffix");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:269:2: ( ( pointer )+ ( direct_abstract_declarator )? ( declarator_suffix )* -> ^( ABSTRACT_DECLARATOR ( pointer )+ ( direct_abstract_declarator )? ( declarator_suffix )* ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:269:4: ( pointer )+ ( direct_abstract_declarator )? ( declarator_suffix )*
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:269:4: ( pointer )+
int cnt36=0;
loop36:
while (true) {
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==MULTI) ) {
int LA36_2 = input.LA(2);
if ( (LA36_2==RPAREN) ) {
int LA36_3 = input.LA(3);
if ( (LA36_3==EOF||LA36_3==ADDR_OF||LA36_3==AND||LA36_3==ASSERT||LA36_3==ASSIGN||LA36_3==BOOLEAN||(LA36_3 >= CHAR && LA36_3 <= CHAR_LITERAL)||(LA36_3 >= COLON && LA36_3 <= COMMA)||LA36_3==CONST||LA36_3==DEFINE||LA36_3==DERIVATIVE||(LA36_3 >= DIV && LA36_3 <= DIV_ASSIGN)||(LA36_3 >= DOUBLE && LA36_3 <= ELSE)||LA36_3==EQ||LA36_3==EXISTS||LA36_3==FALSE||(LA36_3 >= FLOAT && LA36_3 <= FORALL)||(LA36_3 >= GT && LA36_3 <= GTE)||(LA36_3 >= IDENTIFIER && LA36_3 <= IF)||LA36_3==INCLUDE||(LA36_3 >= INT && LA36_3 <= INT_LITERAL)||LA36_3==IS||LA36_3==LCURLY||(LA36_3 >= LPAREN && LA36_3 <= LTE)||(LA36_3 >= MOD && LA36_3 <= MULTI)||LA36_3==MULTI_ASSIGN||LA36_3==NEQ||(LA36_3 >= NOT && LA36_3 <= OR)||(LA36_3 >= PLUS && LA36_3 <= PLUS_ASSIGN)||LA36_3==PRAGMA||LA36_3==QMARK||(LA36_3 >= RCURLY && LA36_3 <= RECV)||LA36_3==RETURN||(LA36_3 >= RPAREN && LA36_3 <= SELECT)||(LA36_3 >= SEMI && LA36_3 <= SEND)||LA36_3==SIZEOF||LA36_3==SPEC||(LA36_3 >= STATIC && LA36_3 <= SUB_ASSIGN)||LA36_3==SYS_VAR||LA36_3==TRUE||LA36_3==TYPEDEF||(LA36_3 >= VOID && LA36_3 <= WHILE)) ) {
alt36=1;
}
}
else if ( (LA36_2==EOF||LA36_2==IDENTIFIER||(LA36_2 >= LPAREN && LA36_2 <= LSQUARE)||LA36_2==MULTI) ) {
alt36=1;
}
}
switch (alt36) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:269:4: pointer
{
pushFollow(FOLLOW_pointer_in_abstract_declarator1487);
pointer105=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer105.getTree());
}
break;
default :
if ( cnt36 >= 1 ) break loop36;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(36, input);
throw eee;
}
cnt36++;
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:269:13: ( direct_abstract_declarator )?
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==LPAREN) ) {
alt37=1;
}
switch (alt37) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:269:13: direct_abstract_declarator
{
pushFollow(FOLLOW_direct_abstract_declarator_in_abstract_declarator1490);
direct_abstract_declarator106=direct_abstract_declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_direct_abstract_declarator.add(direct_abstract_declarator106.getTree());
}
break;
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:269:41: ( declarator_suffix )*
loop38:
while (true) {
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==LSQUARE) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:269:41: declarator_suffix
{
pushFollow(FOLLOW_declarator_suffix_in_abstract_declarator1493);
declarator_suffix107=declarator_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator_suffix.add(declarator_suffix107.getTree());
}
break;
default :
break loop38;
}
}
// AST REWRITE
// elements: declarator_suffix, direct_abstract_declarator, 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();
// 270:3: -> ^( ABSTRACT_DECLARATOR ( pointer )+ ( direct_abstract_declarator )? ( declarator_suffix )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:270:6: ^( ABSTRACT_DECLARATOR ( pointer )+ ( direct_abstract_declarator )? ( declarator_suffix )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ABSTRACT_DECLARATOR, "ABSTRACT_DECLARATOR"), root_1);
if ( !(stream_pointer.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_pointer.hasNext() ) {
adaptor.addChild(root_1, stream_pointer.nextTree());
}
stream_pointer.reset();
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:270:37: ( direct_abstract_declarator )?
if ( stream_direct_abstract_declarator.hasNext() ) {
adaptor.addChild(root_1, stream_direct_abstract_declarator.nextTree());
}
stream_direct_abstract_declarator.reset();
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:270:65: ( declarator_suffix )*
while ( stream_declarator_suffix.hasNext() ) {
adaptor.addChild(root_1, stream_declarator_suffix.nextTree());
}
stream_declarator_suffix.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 "abstract_declarator"
public static class direct_abstract_declarator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "direct_abstract_declarator"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:273:1: direct_abstract_declarator : LPAREN abstract_declarator RPAREN -> ^( DIRECT_ABSTRACT_DECLARATOR abstract_declarator RPAREN ) ;
public final MiniMPParser.direct_abstract_declarator_return direct_abstract_declarator() throws RecognitionException {
MiniMPParser.direct_abstract_declarator_return retval = new MiniMPParser.direct_abstract_declarator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN108=null;
Token RPAREN110=null;
ParserRuleReturnScope abstract_declarator109 =null;
Object LPAREN108_tree=null;
Object RPAREN110_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_abstract_declarator=new RewriteRuleSubtreeStream(adaptor,"rule abstract_declarator");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:274:2: ( LPAREN abstract_declarator RPAREN -> ^( DIRECT_ABSTRACT_DECLARATOR abstract_declarator RPAREN ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:274:4: LPAREN abstract_declarator RPAREN
{
LPAREN108=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_direct_abstract_declarator1522); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN108);
pushFollow(FOLLOW_abstract_declarator_in_direct_abstract_declarator1524);
abstract_declarator109=abstract_declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_abstract_declarator.add(abstract_declarator109.getTree());
RPAREN110=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_direct_abstract_declarator1526); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN110);
// AST REWRITE
// elements: abstract_declarator, 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();
// 275:3: -> ^( DIRECT_ABSTRACT_DECLARATOR abstract_declarator RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:275:6: ^( DIRECT_ABSTRACT_DECLARATOR abstract_declarator RPAREN )
{
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_abstract_declarator.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 "direct_abstract_declarator"
public static class field_declaration_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "field_declaration"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:278:1: field_declaration : type_specifier declarator SEMI -> ^( FIELD_DECL type_specifier declarator SEMI ) ;
public final MiniMPParser.field_declaration_return field_declaration() throws RecognitionException {
MiniMPParser.field_declaration_return retval = new MiniMPParser.field_declaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI113=null;
ParserRuleReturnScope type_specifier111 =null;
ParserRuleReturnScope declarator112 =null;
Object SEMI113_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator");
RewriteRuleSubtreeStream stream_type_specifier=new RewriteRuleSubtreeStream(adaptor,"rule type_specifier");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:279:2: ( type_specifier declarator SEMI -> ^( FIELD_DECL type_specifier declarator SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:279:4: type_specifier declarator SEMI
{
pushFollow(FOLLOW_type_specifier_in_field_declaration1551);
type_specifier111=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_specifier.add(type_specifier111.getTree());
pushFollow(FOLLOW_declarator_in_field_declaration1553);
declarator112=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator112.getTree());
SEMI113=(Token)match(input,SEMI,FOLLOW_SEMI_in_field_declaration1555); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI113);
// AST REWRITE
// elements: declarator, type_specifier, 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();
// 280:3: -> ^( FIELD_DECL type_specifier declarator SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:280:6: ^( FIELD_DECL type_specifier declarator SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD_DECL, "FIELD_DECL"), root_1);
adaptor.addChild(root_1, stream_type_specifier.nextTree());
adaptor.addChild(root_1, stream_declarator.nextTree());
adaptor.addChild(root_1, stream_SEMI.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 "field_declaration"
public static class abstract_function_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "abstract_function"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:283:1: abstract_function : ( PRAGMA TASS ABSTRACT CONTINUOUS LPAREN INT_LITERAL RPAREN type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( ABSTR_FUNCTION_DECL INT_LITERAL RPAREN type_name IDENTIFIER ( argument_list )? RPAREN ) | PRAGMA TASS ABSTRACT type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( ABSTR_FUNCTION_DECL IGNORE IGNORE type_name IDENTIFIER ( argument_list )? RPAREN ) );
public final MiniMPParser.abstract_function_return abstract_function() throws RecognitionException {
MiniMPParser.abstract_function_return retval = new MiniMPParser.abstract_function_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PRAGMA114=null;
Token TASS115=null;
Token ABSTRACT116=null;
Token CONTINUOUS117=null;
Token LPAREN118=null;
Token INT_LITERAL119=null;
Token RPAREN120=null;
Token IDENTIFIER122=null;
Token LPAREN123=null;
Token RPAREN125=null;
Token SEMI126=null;
Token PRAGMA127=null;
Token TASS128=null;
Token ABSTRACT129=null;
Token IDENTIFIER131=null;
Token LPAREN132=null;
Token RPAREN134=null;
Token SEMI135=null;
ParserRuleReturnScope type_name121 =null;
ParserRuleReturnScope argument_list124 =null;
ParserRuleReturnScope type_name130 =null;
ParserRuleReturnScope argument_list133 =null;
Object PRAGMA114_tree=null;
Object TASS115_tree=null;
Object ABSTRACT116_tree=null;
Object CONTINUOUS117_tree=null;
Object LPAREN118_tree=null;
Object INT_LITERAL119_tree=null;
Object RPAREN120_tree=null;
Object IDENTIFIER122_tree=null;
Object LPAREN123_tree=null;
Object RPAREN125_tree=null;
Object SEMI126_tree=null;
Object PRAGMA127_tree=null;
Object TASS128_tree=null;
Object ABSTRACT129_tree=null;
Object IDENTIFIER131_tree=null;
Object LPAREN132_tree=null;
Object RPAREN134_tree=null;
Object SEMI135_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_INT_LITERAL=new RewriteRuleTokenStream(adaptor,"token INT_LITERAL");
RewriteRuleTokenStream stream_ABSTRACT=new RewriteRuleTokenStream(adaptor,"token ABSTRACT");
RewriteRuleTokenStream stream_CONTINUOUS=new RewriteRuleTokenStream(adaptor,"token CONTINUOUS");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
RewriteRuleSubtreeStream stream_argument_list=new RewriteRuleSubtreeStream(adaptor,"rule argument_list");
RewriteRuleSubtreeStream stream_type_name=new RewriteRuleSubtreeStream(adaptor,"rule type_name");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:284:2: ( PRAGMA TASS ABSTRACT CONTINUOUS LPAREN INT_LITERAL RPAREN type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( ABSTR_FUNCTION_DECL INT_LITERAL RPAREN type_name IDENTIFIER ( argument_list )? RPAREN ) | PRAGMA TASS ABSTRACT type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( ABSTR_FUNCTION_DECL IGNORE IGNORE type_name IDENTIFIER ( argument_list )? RPAREN ) )
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==PRAGMA) ) {
int LA41_1 = input.LA(2);
if ( (LA41_1==TASS) ) {
int LA41_2 = input.LA(3);
if ( (LA41_2==ABSTRACT) ) {
int LA41_3 = input.LA(4);
if ( (LA41_3==CONTINUOUS) ) {
alt41=1;
}
else if ( (LA41_3==BOOLEAN||LA41_3==CHAR||LA41_3==DOUBLE||LA41_3==FLOAT||LA41_3==IDENTIFIER||LA41_3==INT||LA41_3==STRUCT||LA41_3==VOID) ) {
alt41=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 41, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 41, 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("", 41, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 41, 0, input);
throw nvae;
}
switch (alt41) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:284:4: PRAGMA TASS ABSTRACT CONTINUOUS LPAREN INT_LITERAL RPAREN type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
PRAGMA114=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_abstract_function1580); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA114);
TASS115=(Token)match(input,TASS,FOLLOW_TASS_in_abstract_function1582); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS115);
ABSTRACT116=(Token)match(input,ABSTRACT,FOLLOW_ABSTRACT_in_abstract_function1584); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ABSTRACT.add(ABSTRACT116);
CONTINUOUS117=(Token)match(input,CONTINUOUS,FOLLOW_CONTINUOUS_in_abstract_function1586); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CONTINUOUS.add(CONTINUOUS117);
LPAREN118=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_abstract_function1588); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN118);
INT_LITERAL119=(Token)match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_abstract_function1590); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INT_LITERAL.add(INT_LITERAL119);
RPAREN120=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_abstract_function1592); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN120);
pushFollow(FOLLOW_type_name_in_abstract_function1594);
type_name121=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name121.getTree());
IDENTIFIER122=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_abstract_function1596); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER122);
LPAREN123=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_abstract_function1598); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN123);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:284:90: ( argument_list )?
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==BOOLEAN||LA39_0==CHAR||LA39_0==DOUBLE||LA39_0==FLOAT||LA39_0==IDENTIFIER||LA39_0==INT||LA39_0==STRUCT||LA39_0==VOID) ) {
alt39=1;
}
switch (alt39) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:284:90: argument_list
{
pushFollow(FOLLOW_argument_list_in_abstract_function1600);
argument_list124=argument_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument_list.add(argument_list124.getTree());
}
break;
}
RPAREN125=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_abstract_function1603); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN125);
SEMI126=(Token)match(input,SEMI,FOLLOW_SEMI_in_abstract_function1605); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI126);
// AST REWRITE
// elements: INT_LITERAL, RPAREN, IDENTIFIER, RPAREN, argument_list, type_name
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 285:3: -> ^( ABSTR_FUNCTION_DECL INT_LITERAL RPAREN type_name IDENTIFIER ( argument_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:285:6: ^( ABSTR_FUNCTION_DECL INT_LITERAL RPAREN type_name IDENTIFIER ( argument_list )? RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ABSTR_FUNCTION_DECL, "ABSTR_FUNCTION_DECL"), root_1);
adaptor.addChild(root_1, stream_INT_LITERAL.nextNode());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_1, stream_type_name.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:285:68: ( argument_list )?
if ( stream_argument_list.hasNext() ) {
adaptor.addChild(root_1, stream_argument_list.nextTree());
}
stream_argument_list.reset();
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:286:4: PRAGMA TASS ABSTRACT type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
PRAGMA127=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_abstract_function1631); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA127);
TASS128=(Token)match(input,TASS,FOLLOW_TASS_in_abstract_function1633); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS128);
ABSTRACT129=(Token)match(input,ABSTRACT,FOLLOW_ABSTRACT_in_abstract_function1635); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ABSTRACT.add(ABSTRACT129);
pushFollow(FOLLOW_type_name_in_abstract_function1637);
type_name130=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name130.getTree());
IDENTIFIER131=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_abstract_function1639); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER131);
LPAREN132=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_abstract_function1641); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN132);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:286:53: ( argument_list )?
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==BOOLEAN||LA40_0==CHAR||LA40_0==DOUBLE||LA40_0==FLOAT||LA40_0==IDENTIFIER||LA40_0==INT||LA40_0==STRUCT||LA40_0==VOID) ) {
alt40=1;
}
switch (alt40) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:286:53: argument_list
{
pushFollow(FOLLOW_argument_list_in_abstract_function1643);
argument_list133=argument_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument_list.add(argument_list133.getTree());
}
break;
}
RPAREN134=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_abstract_function1646); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN134);
SEMI135=(Token)match(input,SEMI,FOLLOW_SEMI_in_abstract_function1648); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI135);
// AST REWRITE
// elements: type_name, argument_list, IDENTIFIER, 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();
// 287:3: -> ^( ABSTR_FUNCTION_DECL IGNORE IGNORE type_name IDENTIFIER ( argument_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:287:6: ^( ABSTR_FUNCTION_DECL IGNORE IGNORE type_name IDENTIFIER ( argument_list )? RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ABSTR_FUNCTION_DECL, "ABSTR_FUNCTION_DECL"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(IGNORE, "IGNORE"));
adaptor.addChild(root_1, (Object)adaptor.create(IGNORE, "IGNORE"));
adaptor.addChild(root_1, stream_type_name.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:287:63: ( argument_list )?
if ( stream_argument_list.hasNext() ) {
adaptor.addChild(root_1, stream_argument_list.nextTree());
}
stream_argument_list.reset();
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 "abstract_function"
public static class function_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "function"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:290:1: function : ( type_name IDENTIFIER LPAREN ( argument_list )? RPAREN LCURLY body RCURLY -> ^( FUNCTION_DECL type_name IDENTIFIER ( argument_list )? RPAREN body RCURLY ) | type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( FUNCTION_DECL PROTOTYPE ) | PRAGMA TASS SYSTEM type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( FUNCTION_DECL SYSTEM type_name IDENTIFIER ( argument_list )? RPAREN ) | PRAGMA TASS SYSTEM GUARD expr type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( FUNCTION_DECL SYSTEM GUARD expr type_name IDENTIFIER ( argument_list )? RPAREN ) );
public final MiniMPParser.function_return function() throws RecognitionException {
MiniMPParser.function_return retval = new MiniMPParser.function_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER137=null;
Token LPAREN138=null;
Token RPAREN140=null;
Token LCURLY141=null;
Token RCURLY143=null;
Token IDENTIFIER145=null;
Token LPAREN146=null;
Token RPAREN148=null;
Token SEMI149=null;
Token PRAGMA150=null;
Token TASS151=null;
Token SYSTEM152=null;
Token IDENTIFIER154=null;
Token LPAREN155=null;
Token RPAREN157=null;
Token SEMI158=null;
Token PRAGMA159=null;
Token TASS160=null;
Token SYSTEM161=null;
Token GUARD162=null;
Token IDENTIFIER165=null;
Token LPAREN166=null;
Token RPAREN168=null;
Token SEMI169=null;
ParserRuleReturnScope type_name136 =null;
ParserRuleReturnScope argument_list139 =null;
ParserRuleReturnScope body142 =null;
ParserRuleReturnScope type_name144 =null;
ParserRuleReturnScope argument_list147 =null;
ParserRuleReturnScope type_name153 =null;
ParserRuleReturnScope argument_list156 =null;
ParserRuleReturnScope expr163 =null;
ParserRuleReturnScope type_name164 =null;
ParserRuleReturnScope argument_list167 =null;
Object IDENTIFIER137_tree=null;
Object LPAREN138_tree=null;
Object RPAREN140_tree=null;
Object LCURLY141_tree=null;
Object RCURLY143_tree=null;
Object IDENTIFIER145_tree=null;
Object LPAREN146_tree=null;
Object RPAREN148_tree=null;
Object SEMI149_tree=null;
Object PRAGMA150_tree=null;
Object TASS151_tree=null;
Object SYSTEM152_tree=null;
Object IDENTIFIER154_tree=null;
Object LPAREN155_tree=null;
Object RPAREN157_tree=null;
Object SEMI158_tree=null;
Object PRAGMA159_tree=null;
Object TASS160_tree=null;
Object SYSTEM161_tree=null;
Object GUARD162_tree=null;
Object IDENTIFIER165_tree=null;
Object LPAREN166_tree=null;
Object RPAREN168_tree=null;
Object SEMI169_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_GUARD=new RewriteRuleTokenStream(adaptor,"token GUARD");
RewriteRuleTokenStream stream_SYSTEM=new RewriteRuleTokenStream(adaptor,"token SYSTEM");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
RewriteRuleSubtreeStream stream_argument_list=new RewriteRuleSubtreeStream(adaptor,"rule argument_list");
RewriteRuleSubtreeStream stream_body=new RewriteRuleSubtreeStream(adaptor,"rule body");
RewriteRuleSubtreeStream stream_type_name=new RewriteRuleSubtreeStream(adaptor,"rule type_name");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:291:2: ( type_name IDENTIFIER LPAREN ( argument_list )? RPAREN LCURLY body RCURLY -> ^( FUNCTION_DECL type_name IDENTIFIER ( argument_list )? RPAREN body RCURLY ) | type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( FUNCTION_DECL PROTOTYPE ) | PRAGMA TASS SYSTEM type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( FUNCTION_DECL SYSTEM type_name IDENTIFIER ( argument_list )? RPAREN ) | PRAGMA TASS SYSTEM GUARD expr type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( FUNCTION_DECL SYSTEM GUARD expr type_name IDENTIFIER ( argument_list )? RPAREN ) )
int alt46=4;
switch ( input.LA(1) ) {
case BOOLEAN:
{
int LA46_1 = input.LA(2);
if ( (synpred57_MiniMP()) ) {
alt46=1;
}
else if ( (synpred59_MiniMP()) ) {
alt46=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 46, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
{
int LA46_2 = input.LA(2);
if ( (synpred57_MiniMP()) ) {
alt46=1;
}
else if ( (synpred59_MiniMP()) ) {
alt46=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 46, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INT:
{
int LA46_3 = input.LA(2);
if ( (synpred57_MiniMP()) ) {
alt46=1;
}
else if ( (synpred59_MiniMP()) ) {
alt46=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 46, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FLOAT:
{
int LA46_4 = input.LA(2);
if ( (synpred57_MiniMP()) ) {
alt46=1;
}
else if ( (synpred59_MiniMP()) ) {
alt46=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 46, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOUBLE:
{
int LA46_5 = input.LA(2);
if ( (synpred57_MiniMP()) ) {
alt46=1;
}
else if ( (synpred59_MiniMP()) ) {
alt46=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 46, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case VOID:
{
int LA46_6 = input.LA(2);
if ( (synpred57_MiniMP()) ) {
alt46=1;
}
else if ( (synpred59_MiniMP()) ) {
alt46=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 46, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case STRUCT:
{
int LA46_7 = input.LA(2);
if ( (synpred57_MiniMP()) ) {
alt46=1;
}
else if ( (synpred59_MiniMP()) ) {
alt46=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 46, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENTIFIER:
{
int LA46_8 = input.LA(2);
if ( (synpred57_MiniMP()) ) {
alt46=1;
}
else if ( (synpred59_MiniMP()) ) {
alt46=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 46, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case PRAGMA:
{
int LA46_9 = input.LA(2);
if ( (synpred61_MiniMP()) ) {
alt46=3;
}
else if ( (true) ) {
alt46=4;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 46, 0, input);
throw nvae;
}
switch (alt46) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:291:4: type_name IDENTIFIER LPAREN ( argument_list )? RPAREN LCURLY body RCURLY
{
pushFollow(FOLLOW_type_name_in_function1682);
type_name136=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name136.getTree());
IDENTIFIER137=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_function1684); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER137);
LPAREN138=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_function1686); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN138);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:291:32: ( argument_list )?
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==BOOLEAN||LA42_0==CHAR||LA42_0==DOUBLE||LA42_0==FLOAT||LA42_0==IDENTIFIER||LA42_0==INT||LA42_0==STRUCT||LA42_0==VOID) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:291:32: argument_list
{
pushFollow(FOLLOW_argument_list_in_function1688);
argument_list139=argument_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument_list.add(argument_list139.getTree());
}
break;
}
RPAREN140=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_function1691); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN140);
LCURLY141=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_function1693); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY141);
pushFollow(FOLLOW_body_in_function1695);
body142=body();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_body.add(body142.getTree());
RCURLY143=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_function1697); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY143);
// AST REWRITE
// elements: type_name, RPAREN, RCURLY, argument_list, IDENTIFIER, body
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 292:3: -> ^( FUNCTION_DECL type_name IDENTIFIER ( argument_list )? RPAREN body RCURLY )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:292:6: ^( FUNCTION_DECL type_name IDENTIFIER ( argument_list )? RPAREN body RCURLY )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNCTION_DECL, "FUNCTION_DECL"), root_1);
adaptor.addChild(root_1, stream_type_name.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:292:43: ( argument_list )?
if ( stream_argument_list.hasNext() ) {
adaptor.addChild(root_1, stream_argument_list.nextTree());
}
stream_argument_list.reset();
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_1, stream_body.nextTree());
adaptor.addChild(root_1, stream_RCURLY.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:294:4: type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
pushFollow(FOLLOW_type_name_in_function1727);
type_name144=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name144.getTree());
IDENTIFIER145=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_function1729); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER145);
LPAREN146=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_function1731); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN146);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:294:32: ( argument_list )?
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==BOOLEAN||LA43_0==CHAR||LA43_0==DOUBLE||LA43_0==FLOAT||LA43_0==IDENTIFIER||LA43_0==INT||LA43_0==STRUCT||LA43_0==VOID) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:294:32: argument_list
{
pushFollow(FOLLOW_argument_list_in_function1733);
argument_list147=argument_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument_list.add(argument_list147.getTree());
}
break;
}
RPAREN148=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_function1736); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN148);
SEMI149=(Token)match(input,SEMI,FOLLOW_SEMI_in_function1738); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI149);
// 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();
// 295:3: -> ^( FUNCTION_DECL PROTOTYPE )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:295:6: ^( FUNCTION_DECL PROTOTYPE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNCTION_DECL, "FUNCTION_DECL"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(PROTOTYPE, "PROTOTYPE"));
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:296:4: PRAGMA TASS SYSTEM type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
PRAGMA150=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_function1753); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA150);
TASS151=(Token)match(input,TASS,FOLLOW_TASS_in_function1755); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS151);
SYSTEM152=(Token)match(input,SYSTEM,FOLLOW_SYSTEM_in_function1757); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SYSTEM.add(SYSTEM152);
pushFollow(FOLLOW_type_name_in_function1759);
type_name153=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name153.getTree());
IDENTIFIER154=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_function1761); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER154);
LPAREN155=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_function1763); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN155);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:296:51: ( argument_list )?
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==BOOLEAN||LA44_0==CHAR||LA44_0==DOUBLE||LA44_0==FLOAT||LA44_0==IDENTIFIER||LA44_0==INT||LA44_0==STRUCT||LA44_0==VOID) ) {
alt44=1;
}
switch (alt44) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:296:51: argument_list
{
pushFollow(FOLLOW_argument_list_in_function1765);
argument_list156=argument_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument_list.add(argument_list156.getTree());
}
break;
}
RPAREN157=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_function1768); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN157);
SEMI158=(Token)match(input,SEMI,FOLLOW_SEMI_in_function1770); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI158);
// AST REWRITE
// elements: argument_list, RPAREN, IDENTIFIER, SYSTEM, type_name
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 297:3: -> ^( FUNCTION_DECL SYSTEM type_name IDENTIFIER ( argument_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:297:6: ^( FUNCTION_DECL SYSTEM type_name IDENTIFIER ( argument_list )? RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNCTION_DECL, "FUNCTION_DECL"), root_1);
adaptor.addChild(root_1, stream_SYSTEM.nextNode());
adaptor.addChild(root_1, stream_type_name.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:297:50: ( argument_list )?
if ( stream_argument_list.hasNext() ) {
adaptor.addChild(root_1, stream_argument_list.nextTree());
}
stream_argument_list.reset();
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:298:4: PRAGMA TASS SYSTEM GUARD expr type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
PRAGMA159=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_function1794); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA159);
TASS160=(Token)match(input,TASS,FOLLOW_TASS_in_function1796); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS160);
SYSTEM161=(Token)match(input,SYSTEM,FOLLOW_SYSTEM_in_function1798); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SYSTEM.add(SYSTEM161);
GUARD162=(Token)match(input,GUARD,FOLLOW_GUARD_in_function1800); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GUARD.add(GUARD162);
pushFollow(FOLLOW_expr_in_function1802);
expr163=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr163.getTree());
pushFollow(FOLLOW_type_name_in_function1804);
type_name164=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name164.getTree());
IDENTIFIER165=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_function1806); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER165);
LPAREN166=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_function1808); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN166);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:298:62: ( argument_list )?
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==BOOLEAN||LA45_0==CHAR||LA45_0==DOUBLE||LA45_0==FLOAT||LA45_0==IDENTIFIER||LA45_0==INT||LA45_0==STRUCT||LA45_0==VOID) ) {
alt45=1;
}
switch (alt45) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:298:62: argument_list
{
pushFollow(FOLLOW_argument_list_in_function1810);
argument_list167=argument_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument_list.add(argument_list167.getTree());
}
break;
}
RPAREN168=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_function1813); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN168);
SEMI169=(Token)match(input,SEMI,FOLLOW_SEMI_in_function1815); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI169);
// AST REWRITE
// elements: IDENTIFIER, type_name, argument_list, expr, GUARD, RPAREN, 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();
// 299:3: -> ^( FUNCTION_DECL SYSTEM GUARD expr type_name IDENTIFIER ( argument_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:299:6: ^( FUNCTION_DECL SYSTEM GUARD expr type_name IDENTIFIER ( argument_list )? RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FUNCTION_DECL, "FUNCTION_DECL"), root_1);
adaptor.addChild(root_1, stream_SYSTEM.nextNode());
adaptor.addChild(root_1, stream_GUARD.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_type_name.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:299:61: ( argument_list )?
if ( stream_argument_list.hasNext() ) {
adaptor.addChild(root_1, stream_argument_list.nextTree());
}
stream_argument_list.reset();
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 "function"
public static class argument_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "argument_list"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:302:1: argument_list : argument ( COMMA argument )* -> ^( ARGUMENT_LIST argument ( COMMA argument )* ) ;
public final MiniMPParser.argument_list_return argument_list() throws RecognitionException {
MiniMPParser.argument_list_return retval = new MiniMPParser.argument_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA171=null;
ParserRuleReturnScope argument170 =null;
ParserRuleReturnScope argument172 =null;
Object COMMA171_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_argument=new RewriteRuleSubtreeStream(adaptor,"rule argument");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:304:2: ( argument ( COMMA argument )* -> ^( ARGUMENT_LIST argument ( COMMA argument )* ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:304:4: argument ( COMMA argument )*
{
pushFollow(FOLLOW_argument_in_argument_list1852);
argument170=argument();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument.add(argument170.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:304:13: ( COMMA argument )*
loop47:
while (true) {
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==COMMA) ) {
alt47=1;
}
switch (alt47) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:304:14: COMMA argument
{
COMMA171=(Token)match(input,COMMA,FOLLOW_COMMA_in_argument_list1855); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA171);
pushFollow(FOLLOW_argument_in_argument_list1857);
argument172=argument();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument.add(argument172.getTree());
}
break;
default :
break loop47;
}
}
// AST REWRITE
// elements: argument, argument, COMMA
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 304:31: -> ^( ARGUMENT_LIST argument ( COMMA argument )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:304:34: ^( ARGUMENT_LIST argument ( COMMA argument )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT_LIST, "ARGUMENT_LIST"), root_1);
adaptor.addChild(root_1, stream_argument.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:304:59: ( COMMA argument )*
while ( stream_argument.hasNext()||stream_COMMA.hasNext() ) {
adaptor.addChild(root_1, stream_COMMA.nextNode());
adaptor.addChild(root_1, stream_argument.nextTree());
}
stream_argument.reset();
stream_COMMA.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "argument_list"
public static class argument_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "argument"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:307:1: argument : type_specifier declarator -> ^( ARGUMENT type_specifier declarator ) ;
public final MiniMPParser.argument_return argument() throws RecognitionException {
MiniMPParser.argument_return retval = new MiniMPParser.argument_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope type_specifier173 =null;
ParserRuleReturnScope declarator174 =null;
RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator");
RewriteRuleSubtreeStream stream_type_specifier=new RewriteRuleSubtreeStream(adaptor,"rule type_specifier");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:308:2: ( type_specifier declarator -> ^( ARGUMENT type_specifier declarator ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:308:4: type_specifier declarator
{
pushFollow(FOLLOW_type_specifier_in_argument1886);
type_specifier173=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_specifier.add(type_specifier173.getTree());
pushFollow(FOLLOW_declarator_in_argument1888);
declarator174=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator174.getTree());
// AST REWRITE
// elements: type_specifier, 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();
// 308:30: -> ^( ARGUMENT type_specifier declarator )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:308:33: ^( ARGUMENT type_specifier declarator )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGUMENT, "ARGUMENT"), root_1);
adaptor.addChild(root_1, stream_type_specifier.nextTree());
adaptor.addChild(root_1, stream_declarator.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 "argument"
public static class body_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "body"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:311:1: body : ( declaration_list )? ( statement_list )? -> ^( BODY ( declaration_list )? ( statement_list )? ) ;
public final MiniMPParser.body_return body() throws RecognitionException {
MiniMPParser.body_return retval = new MiniMPParser.body_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope declaration_list175 =null;
ParserRuleReturnScope statement_list176 =null;
RewriteRuleSubtreeStream stream_declaration_list=new RewriteRuleSubtreeStream(adaptor,"rule declaration_list");
RewriteRuleSubtreeStream stream_statement_list=new RewriteRuleSubtreeStream(adaptor,"rule statement_list");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:312:2: ( ( declaration_list )? ( statement_list )? -> ^( BODY ( declaration_list )? ( statement_list )? ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:312:4: ( declaration_list )? ( statement_list )?
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:312:4: ( declaration_list )?
int alt48=2;
switch ( input.LA(1) ) {
case BOOLEAN:
case CHAR:
case CONST:
case DOUBLE:
case FLOAT:
case INT:
case IS:
case STATIC:
case STRUCT:
case TYPEDEF:
case VOID:
{
alt48=1;
}
break;
case IDENTIFIER:
{
int LA48_8 = input.LA(2);
if ( (synpred64_MiniMP()) ) {
alt48=1;
}
}
break;
case PRAGMA:
{
int LA48_10 = input.LA(2);
if ( (synpred64_MiniMP()) ) {
alt48=1;
}
}
break;
case LCURLY:
{
int LA48_11 = input.LA(2);
if ( (synpred64_MiniMP()) ) {
alt48=1;
}
}
break;
}
switch (alt48) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:312:4: declaration_list
{
pushFollow(FOLLOW_declaration_list_in_body1910);
declaration_list175=declaration_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration_list.add(declaration_list175.getTree());
}
break;
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:312:22: ( statement_list )?
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==ADDR_OF||LA49_0==ASSERT||LA49_0==CHAR_LITERAL||LA49_0==DERIVATIVE||(LA49_0 >= DOUBLE_PLUS && LA49_0 <= DOUBLE_SUB)||LA49_0==EXISTS||LA49_0==FALSE||(LA49_0 >= FOR && LA49_0 <= FORALL)||(LA49_0 >= IDENTIFIER && LA49_0 <= IF)||LA49_0==INT_LITERAL||LA49_0==LCURLY||LA49_0==LPAREN||LA49_0==MULTI||LA49_0==NOT||LA49_0==PLUS||LA49_0==PRAGMA||(LA49_0 >= REAL_LITERAL && LA49_0 <= RECV)||LA49_0==RETURN||LA49_0==SELECT||(LA49_0 >= SEMI && LA49_0 <= SEND)||LA49_0==SIZEOF||LA49_0==SPEC||LA49_0==STRING_LITERAL||LA49_0==SUB||LA49_0==SYS_VAR||LA49_0==TRUE||LA49_0==WHILE) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:312:22: statement_list
{
pushFollow(FOLLOW_statement_list_in_body1913);
statement_list176=statement_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement_list.add(statement_list176.getTree());
}
break;
}
// AST REWRITE
// elements: statement_list, declaration_list
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 312:38: -> ^( BODY ( declaration_list )? ( statement_list )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:312:41: ^( BODY ( declaration_list )? ( statement_list )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BODY, "BODY"), root_1);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:312:48: ( declaration_list )?
if ( stream_declaration_list.hasNext() ) {
adaptor.addChild(root_1, stream_declaration_list.nextTree());
}
stream_declaration_list.reset();
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:312:66: ( statement_list )?
if ( stream_statement_list.hasNext() ) {
adaptor.addChild(root_1, stream_statement_list.nextTree());
}
stream_statement_list.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 "body"
public static class statement_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "statement_list"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:315:1: statement_list : ( statement )+ -> ^( STATEMENT_LIST ( statement )+ ) ;
public final MiniMPParser.statement_list_return statement_list() throws RecognitionException {
MiniMPParser.statement_list_return retval = new MiniMPParser.statement_list_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope statement177 =null;
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:316:2: ( ( statement )+ -> ^( STATEMENT_LIST ( statement )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:316:4: ( statement )+
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:316:4: ( statement )+
int cnt50=0;
loop50:
while (true) {
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==ADDR_OF||LA50_0==ASSERT||LA50_0==CHAR_LITERAL||LA50_0==DERIVATIVE||(LA50_0 >= DOUBLE_PLUS && LA50_0 <= DOUBLE_SUB)||LA50_0==EXISTS||LA50_0==FALSE||(LA50_0 >= FOR && LA50_0 <= FORALL)||(LA50_0 >= IDENTIFIER && LA50_0 <= IF)||LA50_0==INT_LITERAL||LA50_0==LCURLY||LA50_0==LPAREN||LA50_0==MULTI||LA50_0==NOT||LA50_0==PLUS||LA50_0==PRAGMA||(LA50_0 >= REAL_LITERAL && LA50_0 <= RECV)||LA50_0==RETURN||LA50_0==SELECT||(LA50_0 >= SEMI && LA50_0 <= SEND)||LA50_0==SIZEOF||LA50_0==SPEC||LA50_0==STRING_LITERAL||LA50_0==SUB||LA50_0==SYS_VAR||LA50_0==TRUE||LA50_0==WHILE) ) {
alt50=1;
}
switch (alt50) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:316:4: statement
{
pushFollow(FOLLOW_statement_in_statement_list1938);
statement177=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement177.getTree());
}
break;
default :
if ( cnt50 >= 1 ) break loop50;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(50, input);
throw eee;
}
cnt50++;
}
// AST REWRITE
// elements: 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();
// 316:15: -> ^( STATEMENT_LIST ( statement )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:316:18: ^( STATEMENT_LIST ( statement )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT_LIST, "STATEMENT_LIST"), 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 "statement_list"
public static class statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:319:1: statement : ( assert_statement -> ^( STATEMENT assert_statement ) | collective_assert_statement -> ^( STATEMENT collective_assert_statement ) | joint_assert_statement -> ^( STATEMENT joint_assert_statement ) | invariant_statement -> ^( STATEMENT invariant_statement ) | collective_invariant_statement -> ^( STATEMENT collective_invariant_statement ) | joint_invariant_statement -> ^( STATEMENT joint_invariant_statement ) | assume_statement -> ^( STATEMENT assume_statement ) | compound_statement -> ^( STATEMENT compound_statement ) | condition_statement -> ^( STATEMENT condition_statement ) | select_statement -> ^( STATEMENT select_statement ) | iterative_statement -> ^( STATEMENT iterative_statement ) | return_statement -> ^( STATEMENT return_statement ) | empty_statement -> ^( STATEMENT empty_statement ) | send_statement -> ^( STATEMENT send_statement ) | recv_statement -> ^( STATEMENT recv_statement ) | call_statement -> ^( STATEMENT call_statement ) | expr_statement -> ^( STATEMENT expr_statement ) | allocate_statement -> ^( STATEMENT allocate_statement ) );
public final MiniMPParser.statement_return statement() throws RecognitionException {
MiniMPParser.statement_return retval = new MiniMPParser.statement_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope assert_statement178 =null;
ParserRuleReturnScope collective_assert_statement179 =null;
ParserRuleReturnScope joint_assert_statement180 =null;
ParserRuleReturnScope invariant_statement181 =null;
ParserRuleReturnScope collective_invariant_statement182 =null;
ParserRuleReturnScope joint_invariant_statement183 =null;
ParserRuleReturnScope assume_statement184 =null;
ParserRuleReturnScope compound_statement185 =null;
ParserRuleReturnScope condition_statement186 =null;
ParserRuleReturnScope select_statement187 =null;
ParserRuleReturnScope iterative_statement188 =null;
ParserRuleReturnScope return_statement189 =null;
ParserRuleReturnScope empty_statement190 =null;
ParserRuleReturnScope send_statement191 =null;
ParserRuleReturnScope recv_statement192 =null;
ParserRuleReturnScope call_statement193 =null;
ParserRuleReturnScope expr_statement194 =null;
ParserRuleReturnScope allocate_statement195 =null;
RewriteRuleSubtreeStream stream_condition_statement=new RewriteRuleSubtreeStream(adaptor,"rule condition_statement");
RewriteRuleSubtreeStream stream_return_statement=new RewriteRuleSubtreeStream(adaptor,"rule return_statement");
RewriteRuleSubtreeStream stream_collective_assert_statement=new RewriteRuleSubtreeStream(adaptor,"rule collective_assert_statement");
RewriteRuleSubtreeStream stream_call_statement=new RewriteRuleSubtreeStream(adaptor,"rule call_statement");
RewriteRuleSubtreeStream stream_empty_statement=new RewriteRuleSubtreeStream(adaptor,"rule empty_statement");
RewriteRuleSubtreeStream stream_joint_invariant_statement=new RewriteRuleSubtreeStream(adaptor,"rule joint_invariant_statement");
RewriteRuleSubtreeStream stream_iterative_statement=new RewriteRuleSubtreeStream(adaptor,"rule iterative_statement");
RewriteRuleSubtreeStream stream_send_statement=new RewriteRuleSubtreeStream(adaptor,"rule send_statement");
RewriteRuleSubtreeStream stream_compound_statement=new RewriteRuleSubtreeStream(adaptor,"rule compound_statement");
RewriteRuleSubtreeStream stream_invariant_statement=new RewriteRuleSubtreeStream(adaptor,"rule invariant_statement");
RewriteRuleSubtreeStream stream_collective_invariant_statement=new RewriteRuleSubtreeStream(adaptor,"rule collective_invariant_statement");
RewriteRuleSubtreeStream stream_expr_statement=new RewriteRuleSubtreeStream(adaptor,"rule expr_statement");
RewriteRuleSubtreeStream stream_assert_statement=new RewriteRuleSubtreeStream(adaptor,"rule assert_statement");
RewriteRuleSubtreeStream stream_select_statement=new RewriteRuleSubtreeStream(adaptor,"rule select_statement");
RewriteRuleSubtreeStream stream_allocate_statement=new RewriteRuleSubtreeStream(adaptor,"rule allocate_statement");
RewriteRuleSubtreeStream stream_recv_statement=new RewriteRuleSubtreeStream(adaptor,"rule recv_statement");
RewriteRuleSubtreeStream stream_assume_statement=new RewriteRuleSubtreeStream(adaptor,"rule assume_statement");
RewriteRuleSubtreeStream stream_joint_assert_statement=new RewriteRuleSubtreeStream(adaptor,"rule joint_assert_statement");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:323:2: ( assert_statement -> ^( STATEMENT assert_statement ) | collective_assert_statement -> ^( STATEMENT collective_assert_statement ) | joint_assert_statement -> ^( STATEMENT joint_assert_statement ) | invariant_statement -> ^( STATEMENT invariant_statement ) | collective_invariant_statement -> ^( STATEMENT collective_invariant_statement ) | joint_invariant_statement -> ^( STATEMENT joint_invariant_statement ) | assume_statement -> ^( STATEMENT assume_statement ) | compound_statement -> ^( STATEMENT compound_statement ) | condition_statement -> ^( STATEMENT condition_statement ) | select_statement -> ^( STATEMENT select_statement ) | iterative_statement -> ^( STATEMENT iterative_statement ) | return_statement -> ^( STATEMENT return_statement ) | empty_statement -> ^( STATEMENT empty_statement ) | send_statement -> ^( STATEMENT send_statement ) | recv_statement -> ^( STATEMENT recv_statement ) | call_statement -> ^( STATEMENT call_statement ) | expr_statement -> ^( STATEMENT expr_statement ) | allocate_statement -> ^( STATEMENT allocate_statement ) )
int alt51=18;
switch ( input.LA(1) ) {
case PRAGMA:
{
int LA51_1 = input.LA(2);
if ( (synpred67_MiniMP()) ) {
alt51=1;
}
else if ( (synpred68_MiniMP()) ) {
alt51=2;
}
else if ( (synpred69_MiniMP()) ) {
alt51=3;
}
else if ( (synpred70_MiniMP()) ) {
alt51=4;
}
else if ( (synpred71_MiniMP()) ) {
alt51=5;
}
else if ( (synpred72_MiniMP()) ) {
alt51=6;
}
else if ( (synpred73_MiniMP()) ) {
alt51=7;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 51, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ASSERT:
{
alt51=1;
}
break;
case LCURLY:
{
alt51=8;
}
break;
case IF:
{
alt51=9;
}
break;
case SELECT:
{
alt51=10;
}
break;
case IDENTIFIER:
{
int LA51_6 = input.LA(2);
if ( (synpred77_MiniMP()) ) {
alt51=11;
}
else if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case FOR:
case WHILE:
{
alt51=11;
}
break;
case RETURN:
{
alt51=12;
}
break;
case SEMI:
{
alt51=13;
}
break;
case SEND:
{
alt51=14;
}
break;
case RECV:
{
alt51=15;
}
break;
case TRUE:
{
int LA51_13 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case FALSE:
{
int LA51_14 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case INT_LITERAL:
{
int LA51_15 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case REAL_LITERAL:
{
int LA51_16 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case CHAR_LITERAL:
{
int LA51_17 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case STRING_LITERAL:
{
int LA51_18 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case SYS_VAR:
{
int LA51_19 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case LPAREN:
{
int LA51_20 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case SPEC:
{
int LA51_21 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case DERIVATIVE:
{
int LA51_22 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case PLUS:
{
int LA51_23 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case SUB:
{
int LA51_24 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case NOT:
{
int LA51_25 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case MULTI:
{
int LA51_26 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case ADDR_OF:
{
int LA51_27 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case DOUBLE_PLUS:
{
int LA51_28 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case DOUBLE_SUB:
{
int LA51_29 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case SIZEOF:
{
int LA51_30 = input.LA(2);
if ( (synpred82_MiniMP()) ) {
alt51=16;
}
else if ( (synpred83_MiniMP()) ) {
alt51=17;
}
else if ( (true) ) {
alt51=18;
}
}
break;
case EXISTS:
case FORALL:
{
alt51=17;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 51, 0, input);
throw nvae;
}
switch (alt51) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:323:4: assert_statement
{
pushFollow(FOLLOW_assert_statement_in_statement1963);
assert_statement178=assert_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assert_statement.add(assert_statement178.getTree());
// AST REWRITE
// elements: assert_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();
// 323:21: -> ^( STATEMENT assert_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:323:24: ^( STATEMENT assert_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_assert_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:324:4: collective_assert_statement
{
pushFollow(FOLLOW_collective_assert_statement_in_statement1976);
collective_assert_statement179=collective_assert_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_collective_assert_statement.add(collective_assert_statement179.getTree());
// AST REWRITE
// elements: collective_assert_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();
// 324:32: -> ^( STATEMENT collective_assert_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:324:35: ^( STATEMENT collective_assert_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_collective_assert_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:325:4: joint_assert_statement
{
pushFollow(FOLLOW_joint_assert_statement_in_statement1989);
joint_assert_statement180=joint_assert_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_joint_assert_statement.add(joint_assert_statement180.getTree());
// AST REWRITE
// elements: joint_assert_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();
// 325:27: -> ^( STATEMENT joint_assert_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:325:30: ^( STATEMENT joint_assert_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_joint_assert_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:326:4: invariant_statement
{
pushFollow(FOLLOW_invariant_statement_in_statement2002);
invariant_statement181=invariant_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_statement.add(invariant_statement181.getTree());
// AST REWRITE
// elements: invariant_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();
// 326:24: -> ^( STATEMENT invariant_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:326:27: ^( STATEMENT invariant_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_invariant_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:327:4: collective_invariant_statement
{
pushFollow(FOLLOW_collective_invariant_statement_in_statement2015);
collective_invariant_statement182=collective_invariant_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_collective_invariant_statement.add(collective_invariant_statement182.getTree());
// AST REWRITE
// elements: collective_invariant_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();
// 327:35: -> ^( STATEMENT collective_invariant_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:327:38: ^( STATEMENT collective_invariant_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_collective_invariant_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:328:4: joint_invariant_statement
{
pushFollow(FOLLOW_joint_invariant_statement_in_statement2028);
joint_invariant_statement183=joint_invariant_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_joint_invariant_statement.add(joint_invariant_statement183.getTree());
// AST REWRITE
// elements: joint_invariant_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();
// 328:30: -> ^( STATEMENT joint_invariant_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:328:33: ^( STATEMENT joint_invariant_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_joint_invariant_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 7 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:329:4: assume_statement
{
pushFollow(FOLLOW_assume_statement_in_statement2041);
assume_statement184=assume_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assume_statement.add(assume_statement184.getTree());
// AST REWRITE
// elements: assume_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();
// 329:21: -> ^( STATEMENT assume_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:329:24: ^( STATEMENT assume_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_assume_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 8 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:334:4: compound_statement
{
pushFollow(FOLLOW_compound_statement_in_statement2057);
compound_statement185=compound_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_compound_statement.add(compound_statement185.getTree());
// AST REWRITE
// elements: compound_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();
// 334:23: -> ^( STATEMENT compound_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:334:26: ^( STATEMENT compound_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_compound_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 9 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:335:4: condition_statement
{
pushFollow(FOLLOW_condition_statement_in_statement2070);
condition_statement186=condition_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_condition_statement.add(condition_statement186.getTree());
// AST REWRITE
// elements: condition_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();
// 335:24: -> ^( STATEMENT condition_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:335:27: ^( STATEMENT condition_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_condition_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 10 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:336:4: select_statement
{
pushFollow(FOLLOW_select_statement_in_statement2083);
select_statement187=select_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_select_statement.add(select_statement187.getTree());
// AST REWRITE
// elements: select_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();
// 336:21: -> ^( STATEMENT select_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:336:24: ^( STATEMENT select_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_select_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 11 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:337:4: iterative_statement
{
pushFollow(FOLLOW_iterative_statement_in_statement2096);
iterative_statement188=iterative_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_iterative_statement.add(iterative_statement188.getTree());
// AST REWRITE
// elements: iterative_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();
// 337:24: -> ^( STATEMENT iterative_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:337:27: ^( STATEMENT iterative_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_iterative_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 12 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:338:4: return_statement
{
pushFollow(FOLLOW_return_statement_in_statement2109);
return_statement189=return_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_return_statement.add(return_statement189.getTree());
// AST REWRITE
// elements: return_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();
// 338:21: -> ^( STATEMENT return_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:338:24: ^( STATEMENT return_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_return_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 13 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:339:4: empty_statement
{
pushFollow(FOLLOW_empty_statement_in_statement2122);
empty_statement190=empty_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_empty_statement.add(empty_statement190.getTree());
// AST REWRITE
// elements: empty_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();
// 339:20: -> ^( STATEMENT empty_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:339:23: ^( STATEMENT empty_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_empty_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 14 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:340:4: send_statement
{
pushFollow(FOLLOW_send_statement_in_statement2135);
send_statement191=send_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_send_statement.add(send_statement191.getTree());
// AST REWRITE
// elements: send_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();
// 340:19: -> ^( STATEMENT send_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:340:22: ^( STATEMENT send_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_send_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 15 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:341:4: recv_statement
{
pushFollow(FOLLOW_recv_statement_in_statement2148);
recv_statement192=recv_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_recv_statement.add(recv_statement192.getTree());
// AST REWRITE
// elements: recv_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();
// 341:19: -> ^( STATEMENT recv_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:341:22: ^( STATEMENT recv_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_recv_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 16 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:342:4: call_statement
{
pushFollow(FOLLOW_call_statement_in_statement2161);
call_statement193=call_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_call_statement.add(call_statement193.getTree());
// AST REWRITE
// elements: call_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();
// 342:19: -> ^( STATEMENT call_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:342:22: ^( STATEMENT call_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_call_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 17 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:343:4: expr_statement
{
pushFollow(FOLLOW_expr_statement_in_statement2174);
expr_statement194=expr_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr_statement.add(expr_statement194.getTree());
// AST REWRITE
// elements: expr_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();
// 343:19: -> ^( STATEMENT expr_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:343:22: ^( STATEMENT expr_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_expr_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 18 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:344:4: allocate_statement
{
pushFollow(FOLLOW_allocate_statement_in_statement2187);
allocate_statement195=allocate_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_allocate_statement.add(allocate_statement195.getTree());
// AST REWRITE
// elements: allocate_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();
// 344:22: -> ^( STATEMENT allocate_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:344:25: ^( STATEMENT allocate_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STATEMENT, "STATEMENT"), root_1);
adaptor.addChild(root_1, stream_allocate_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 "statement"
public static class assume_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assume_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:359:1: assume_statement : PRAGMA TASS ASSUME expr SEMI -> ^( ASSUME_STMT ASSUME expr SEMI ) ;
public final MiniMPParser.assume_statement_return assume_statement() throws RecognitionException {
MiniMPParser.assume_statement_return retval = new MiniMPParser.assume_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PRAGMA196=null;
Token TASS197=null;
Token ASSUME198=null;
Token SEMI200=null;
ParserRuleReturnScope expr199 =null;
Object PRAGMA196_tree=null;
Object TASS197_tree=null;
Object ASSUME198_tree=null;
Object SEMI200_tree=null;
RewriteRuleTokenStream stream_ASSUME=new RewriteRuleTokenStream(adaptor,"token ASSUME");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:360:2: ( PRAGMA TASS ASSUME expr SEMI -> ^( ASSUME_STMT ASSUME expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:360:4: PRAGMA TASS ASSUME expr SEMI
{
PRAGMA196=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_assume_statement2208); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA196);
TASS197=(Token)match(input,TASS,FOLLOW_TASS_in_assume_statement2210); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS197);
ASSUME198=(Token)match(input,ASSUME,FOLLOW_ASSUME_in_assume_statement2212); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSUME.add(ASSUME198);
pushFollow(FOLLOW_expr_in_assume_statement2214);
expr199=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr199.getTree());
SEMI200=(Token)match(input,SEMI,FOLLOW_SEMI_in_assume_statement2216); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI200);
// AST REWRITE
// elements: SEMI, ASSUME, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 360:33: -> ^( ASSUME_STMT ASSUME expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:360:36: ^( ASSUME_STMT ASSUME expr SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ASSUME_STMT, "ASSUME_STMT"), root_1);
adaptor.addChild(root_1, stream_ASSUME.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_SEMI.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 "assume_statement"
public static class assert_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assert_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:363:1: assert_statement : ( PRAGMA TASS ASSERT expr SEMI -> ^( ASSERT_STMT ASSERT expr SEMI ) | ASSERT expr SEMI -> ^( ASSERT_STMT ASSERT expr SEMI ) | PRAGMA TASS ASSERT expr COMMA STRING_LITERAL SEMI -> ^( ASSERT_STMT ASSERT expr STRING_LITERAL SEMI ) );
public final MiniMPParser.assert_statement_return assert_statement() throws RecognitionException {
MiniMPParser.assert_statement_return retval = new MiniMPParser.assert_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PRAGMA201=null;
Token TASS202=null;
Token ASSERT203=null;
Token SEMI205=null;
Token ASSERT206=null;
Token SEMI208=null;
Token PRAGMA209=null;
Token TASS210=null;
Token ASSERT211=null;
Token COMMA213=null;
Token STRING_LITERAL214=null;
Token SEMI215=null;
ParserRuleReturnScope expr204 =null;
ParserRuleReturnScope expr207 =null;
ParserRuleReturnScope expr212 =null;
Object PRAGMA201_tree=null;
Object TASS202_tree=null;
Object ASSERT203_tree=null;
Object SEMI205_tree=null;
Object ASSERT206_tree=null;
Object SEMI208_tree=null;
Object PRAGMA209_tree=null;
Object TASS210_tree=null;
Object ASSERT211_tree=null;
Object COMMA213_tree=null;
Object STRING_LITERAL214_tree=null;
Object SEMI215_tree=null;
RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_ASSERT=new RewriteRuleTokenStream(adaptor,"token ASSERT");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:364:2: ( PRAGMA TASS ASSERT expr SEMI -> ^( ASSERT_STMT ASSERT expr SEMI ) | ASSERT expr SEMI -> ^( ASSERT_STMT ASSERT expr SEMI ) | PRAGMA TASS ASSERT expr COMMA STRING_LITERAL SEMI -> ^( ASSERT_STMT ASSERT expr STRING_LITERAL SEMI ) )
int alt52=3;
int LA52_0 = input.LA(1);
if ( (LA52_0==PRAGMA) ) {
int LA52_1 = input.LA(2);
if ( (synpred84_MiniMP()) ) {
alt52=1;
}
else if ( (true) ) {
alt52=3;
}
}
else if ( (LA52_0==ASSERT) ) {
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 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:364:4: PRAGMA TASS ASSERT expr SEMI
{
PRAGMA201=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_assert_statement2240); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA201);
TASS202=(Token)match(input,TASS,FOLLOW_TASS_in_assert_statement2242); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS202);
ASSERT203=(Token)match(input,ASSERT,FOLLOW_ASSERT_in_assert_statement2244); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSERT.add(ASSERT203);
pushFollow(FOLLOW_expr_in_assert_statement2246);
expr204=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr204.getTree());
SEMI205=(Token)match(input,SEMI,FOLLOW_SEMI_in_assert_statement2248); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI205);
// AST REWRITE
// elements: expr, SEMI, ASSERT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 364:33: -> ^( ASSERT_STMT ASSERT expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:364:36: ^( ASSERT_STMT ASSERT expr SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ASSERT_STMT, "ASSERT_STMT"), root_1);
adaptor.addChild(root_1, stream_ASSERT.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_SEMI.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:365:6: ASSERT expr SEMI
{
ASSERT206=(Token)match(input,ASSERT,FOLLOW_ASSERT_in_assert_statement2267); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSERT.add(ASSERT206);
pushFollow(FOLLOW_expr_in_assert_statement2269);
expr207=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr207.getTree());
SEMI208=(Token)match(input,SEMI,FOLLOW_SEMI_in_assert_statement2271); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI208);
// AST REWRITE
// elements: SEMI, expr, ASSERT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 365:23: -> ^( ASSERT_STMT ASSERT expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:365:26: ^( ASSERT_STMT ASSERT expr SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ASSERT_STMT, "ASSERT_STMT"), root_1);
adaptor.addChild(root_1, stream_ASSERT.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_SEMI.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:366:4: PRAGMA TASS ASSERT expr COMMA STRING_LITERAL SEMI
{
PRAGMA209=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_assert_statement2288); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA209);
TASS210=(Token)match(input,TASS,FOLLOW_TASS_in_assert_statement2290); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS210);
ASSERT211=(Token)match(input,ASSERT,FOLLOW_ASSERT_in_assert_statement2292); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSERT.add(ASSERT211);
pushFollow(FOLLOW_expr_in_assert_statement2294);
expr212=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr212.getTree());
COMMA213=(Token)match(input,COMMA,FOLLOW_COMMA_in_assert_statement2296); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA213);
STRING_LITERAL214=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_assert_statement2298); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL214);
SEMI215=(Token)match(input,SEMI,FOLLOW_SEMI_in_assert_statement2300); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI215);
// AST REWRITE
// elements: STRING_LITERAL, expr, SEMI, ASSERT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 366:54: -> ^( ASSERT_STMT ASSERT expr STRING_LITERAL SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:366:57: ^( ASSERT_STMT ASSERT expr STRING_LITERAL SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ASSERT_STMT, "ASSERT_STMT"), root_1);
adaptor.addChild(root_1, stream_ASSERT.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
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 "assert_statement"
public static class collective_assert_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "collective_assert_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:369:1: collective_assert_statement : PRAGMA TASS COLLECTIVE ASSERT IDENTIFIER expr -> ^( COLLECTIVE_ASSERT_STMT IDENTIFIER expr SEMI ) ;
public final MiniMPParser.collective_assert_statement_return collective_assert_statement() throws RecognitionException {
MiniMPParser.collective_assert_statement_return retval = new MiniMPParser.collective_assert_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PRAGMA216=null;
Token TASS217=null;
Token COLLECTIVE218=null;
Token ASSERT219=null;
Token IDENTIFIER220=null;
ParserRuleReturnScope expr221 =null;
Object PRAGMA216_tree=null;
Object TASS217_tree=null;
Object COLLECTIVE218_tree=null;
Object ASSERT219_tree=null;
Object IDENTIFIER220_tree=null;
RewriteRuleTokenStream stream_COLLECTIVE=new RewriteRuleTokenStream(adaptor,"token COLLECTIVE");
RewriteRuleTokenStream stream_ASSERT=new RewriteRuleTokenStream(adaptor,"token ASSERT");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:370:2: ( PRAGMA TASS COLLECTIVE ASSERT IDENTIFIER expr -> ^( COLLECTIVE_ASSERT_STMT IDENTIFIER expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:370:4: PRAGMA TASS COLLECTIVE ASSERT IDENTIFIER expr
{
PRAGMA216=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_collective_assert_statement2325); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA216);
TASS217=(Token)match(input,TASS,FOLLOW_TASS_in_collective_assert_statement2327); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS217);
COLLECTIVE218=(Token)match(input,COLLECTIVE,FOLLOW_COLLECTIVE_in_collective_assert_statement2329); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLLECTIVE.add(COLLECTIVE218);
ASSERT219=(Token)match(input,ASSERT,FOLLOW_ASSERT_in_collective_assert_statement2331); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSERT.add(ASSERT219);
IDENTIFIER220=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_collective_assert_statement2333); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER220);
pushFollow(FOLLOW_expr_in_collective_assert_statement2335);
expr221=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr221.getTree());
// AST REWRITE
// elements: expr, 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();
// 370:50: -> ^( COLLECTIVE_ASSERT_STMT IDENTIFIER expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:370:53: ^( COLLECTIVE_ASSERT_STMT IDENTIFIER expr SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COLLECTIVE_ASSERT_STMT, "COLLECTIVE_ASSERT_STMT"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, (Object)adaptor.create(SEMI, "SEMI"));
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 "collective_assert_statement"
public static class joint_assert_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "joint_assert_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:372:1: joint_assert_statement : PRAGMA TASS JOINT ASSERT IDENTIFIER expr SEMI -> ^( JOINT_ASSERT_STMT IDENTIFIER expr SEMI ) ;
public final MiniMPParser.joint_assert_statement_return joint_assert_statement() throws RecognitionException {
MiniMPParser.joint_assert_statement_return retval = new MiniMPParser.joint_assert_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PRAGMA222=null;
Token TASS223=null;
Token JOINT224=null;
Token ASSERT225=null;
Token IDENTIFIER226=null;
Token SEMI228=null;
ParserRuleReturnScope expr227 =null;
Object PRAGMA222_tree=null;
Object TASS223_tree=null;
Object JOINT224_tree=null;
Object ASSERT225_tree=null;
Object IDENTIFIER226_tree=null;
Object SEMI228_tree=null;
RewriteRuleTokenStream stream_JOINT=new RewriteRuleTokenStream(adaptor,"token JOINT");
RewriteRuleTokenStream stream_ASSERT=new RewriteRuleTokenStream(adaptor,"token ASSERT");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:373:2: ( PRAGMA TASS JOINT ASSERT IDENTIFIER expr SEMI -> ^( JOINT_ASSERT_STMT IDENTIFIER expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:373:4: PRAGMA TASS JOINT ASSERT IDENTIFIER expr SEMI
{
PRAGMA222=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_joint_assert_statement2356); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA222);
TASS223=(Token)match(input,TASS,FOLLOW_TASS_in_joint_assert_statement2358); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS223);
JOINT224=(Token)match(input,JOINT,FOLLOW_JOINT_in_joint_assert_statement2360); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_JOINT.add(JOINT224);
ASSERT225=(Token)match(input,ASSERT,FOLLOW_ASSERT_in_joint_assert_statement2362); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSERT.add(ASSERT225);
IDENTIFIER226=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_joint_assert_statement2364); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER226);
pushFollow(FOLLOW_expr_in_joint_assert_statement2366);
expr227=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr227.getTree());
SEMI228=(Token)match(input,SEMI,FOLLOW_SEMI_in_joint_assert_statement2368); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI228);
// AST REWRITE
// elements: expr, 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();
// 373:50: -> ^( JOINT_ASSERT_STMT IDENTIFIER expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:373:53: ^( JOINT_ASSERT_STMT IDENTIFIER expr SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(JOINT_ASSERT_STMT, "JOINT_ASSERT_STMT"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_SEMI.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 "joint_assert_statement"
public static class invariant_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "invariant_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:375:1: invariant_statement : PRAGMA TASS INVARIANT IDENTIFIER expr SEMI -> ^( INVARIANT_STMT IDENTIFIER expr SEMI ) ;
public final MiniMPParser.invariant_statement_return invariant_statement() throws RecognitionException {
MiniMPParser.invariant_statement_return retval = new MiniMPParser.invariant_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PRAGMA229=null;
Token TASS230=null;
Token INVARIANT231=null;
Token IDENTIFIER232=null;
Token SEMI234=null;
ParserRuleReturnScope expr233 =null;
Object PRAGMA229_tree=null;
Object TASS230_tree=null;
Object INVARIANT231_tree=null;
Object IDENTIFIER232_tree=null;
Object SEMI234_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
RewriteRuleTokenStream stream_INVARIANT=new RewriteRuleTokenStream(adaptor,"token INVARIANT");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:376:2: ( PRAGMA TASS INVARIANT IDENTIFIER expr SEMI -> ^( INVARIANT_STMT IDENTIFIER expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:376:4: PRAGMA TASS INVARIANT IDENTIFIER expr SEMI
{
PRAGMA229=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_invariant_statement2389); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA229);
TASS230=(Token)match(input,TASS,FOLLOW_TASS_in_invariant_statement2391); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS230);
INVARIANT231=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_invariant_statement2393); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT231);
IDENTIFIER232=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_invariant_statement2395); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER232);
pushFollow(FOLLOW_expr_in_invariant_statement2397);
expr233=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr233.getTree());
SEMI234=(Token)match(input,SEMI,FOLLOW_SEMI_in_invariant_statement2399); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI234);
// AST REWRITE
// elements: SEMI, expr, 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();
// 376:47: -> ^( INVARIANT_STMT IDENTIFIER expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:376:50: ^( INVARIANT_STMT IDENTIFIER expr SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(INVARIANT_STMT, "INVARIANT_STMT"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_SEMI.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 "invariant_statement"
public static class collective_invariant_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "collective_invariant_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:378:1: collective_invariant_statement : PRAGMA TASS COLLECTIVE INVARIANT IDENTIFIER expr SEMI -> ^( COLLECTIVE_INVARIANT_STMT IDENTIFIER expr SEMI ) ;
public final MiniMPParser.collective_invariant_statement_return collective_invariant_statement() throws RecognitionException {
MiniMPParser.collective_invariant_statement_return retval = new MiniMPParser.collective_invariant_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PRAGMA235=null;
Token TASS236=null;
Token COLLECTIVE237=null;
Token INVARIANT238=null;
Token IDENTIFIER239=null;
Token SEMI241=null;
ParserRuleReturnScope expr240 =null;
Object PRAGMA235_tree=null;
Object TASS236_tree=null;
Object COLLECTIVE237_tree=null;
Object INVARIANT238_tree=null;
Object IDENTIFIER239_tree=null;
Object SEMI241_tree=null;
RewriteRuleTokenStream stream_COLLECTIVE=new RewriteRuleTokenStream(adaptor,"token COLLECTIVE");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
RewriteRuleTokenStream stream_INVARIANT=new RewriteRuleTokenStream(adaptor,"token INVARIANT");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:379:2: ( PRAGMA TASS COLLECTIVE INVARIANT IDENTIFIER expr SEMI -> ^( COLLECTIVE_INVARIANT_STMT IDENTIFIER expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:379:4: PRAGMA TASS COLLECTIVE INVARIANT IDENTIFIER expr SEMI
{
PRAGMA235=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_collective_invariant_statement2420); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA235);
TASS236=(Token)match(input,TASS,FOLLOW_TASS_in_collective_invariant_statement2422); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS236);
COLLECTIVE237=(Token)match(input,COLLECTIVE,FOLLOW_COLLECTIVE_in_collective_invariant_statement2424); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLLECTIVE.add(COLLECTIVE237);
INVARIANT238=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_collective_invariant_statement2426); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT238);
IDENTIFIER239=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_collective_invariant_statement2428); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER239);
pushFollow(FOLLOW_expr_in_collective_invariant_statement2430);
expr240=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr240.getTree());
SEMI241=(Token)match(input,SEMI,FOLLOW_SEMI_in_collective_invariant_statement2432); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI241);
// AST REWRITE
// elements: SEMI, expr, 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();
// 379:58: -> ^( COLLECTIVE_INVARIANT_STMT IDENTIFIER expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:379:61: ^( COLLECTIVE_INVARIANT_STMT IDENTIFIER expr SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COLLECTIVE_INVARIANT_STMT, "COLLECTIVE_INVARIANT_STMT"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_SEMI.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 "collective_invariant_statement"
public static class joint_invariant_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "joint_invariant_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:381:1: joint_invariant_statement : PRAGMA TASS JOINT INVARIANT IDENTIFIER expr SEMI -> ^( JOINT_INVARIANT_STMT IDENTIFIER expr SEMI ) ;
public final MiniMPParser.joint_invariant_statement_return joint_invariant_statement() throws RecognitionException {
MiniMPParser.joint_invariant_statement_return retval = new MiniMPParser.joint_invariant_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PRAGMA242=null;
Token TASS243=null;
Token JOINT244=null;
Token INVARIANT245=null;
Token IDENTIFIER246=null;
Token SEMI248=null;
ParserRuleReturnScope expr247 =null;
Object PRAGMA242_tree=null;
Object TASS243_tree=null;
Object JOINT244_tree=null;
Object INVARIANT245_tree=null;
Object IDENTIFIER246_tree=null;
Object SEMI248_tree=null;
RewriteRuleTokenStream stream_JOINT=new RewriteRuleTokenStream(adaptor,"token JOINT");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
RewriteRuleTokenStream stream_INVARIANT=new RewriteRuleTokenStream(adaptor,"token INVARIANT");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:382:2: ( PRAGMA TASS JOINT INVARIANT IDENTIFIER expr SEMI -> ^( JOINT_INVARIANT_STMT IDENTIFIER expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:382:4: PRAGMA TASS JOINT INVARIANT IDENTIFIER expr SEMI
{
PRAGMA242=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_joint_invariant_statement2453); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA242);
TASS243=(Token)match(input,TASS,FOLLOW_TASS_in_joint_invariant_statement2455); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS243);
JOINT244=(Token)match(input,JOINT,FOLLOW_JOINT_in_joint_invariant_statement2457); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_JOINT.add(JOINT244);
INVARIANT245=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_joint_invariant_statement2459); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT245);
IDENTIFIER246=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_joint_invariant_statement2461); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER246);
pushFollow(FOLLOW_expr_in_joint_invariant_statement2463);
expr247=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr247.getTree());
SEMI248=(Token)match(input,SEMI,FOLLOW_SEMI_in_joint_invariant_statement2465); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI248);
// AST REWRITE
// elements: IDENTIFIER, SEMI, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 382:53: -> ^( JOINT_INVARIANT_STMT IDENTIFIER expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:382:56: ^( JOINT_INVARIANT_STMT IDENTIFIER expr SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(JOINT_INVARIANT_STMT, "JOINT_INVARIANT_STMT"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_SEMI.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 "joint_invariant_statement"
public static class compound_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "compound_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:391:1: compound_statement : LCURLY ( statement_list )? RCURLY -> ^( COMPOUND_STMT LCURLY ( statement_list )? RCURLY ) ;
public final MiniMPParser.compound_statement_return compound_statement() throws RecognitionException {
MiniMPParser.compound_statement_return retval = new MiniMPParser.compound_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY249=null;
Token RCURLY251=null;
ParserRuleReturnScope statement_list250 =null;
Object LCURLY249_tree=null;
Object RCURLY251_tree=null;
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_statement_list=new RewriteRuleSubtreeStream(adaptor,"rule statement_list");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:392:2: ( LCURLY ( statement_list )? RCURLY -> ^( COMPOUND_STMT LCURLY ( statement_list )? RCURLY ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:392:4: LCURLY ( statement_list )? RCURLY
{
LCURLY249=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_compound_statement2490); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY249);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:392:11: ( statement_list )?
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==ADDR_OF||LA53_0==ASSERT||LA53_0==CHAR_LITERAL||LA53_0==DERIVATIVE||(LA53_0 >= DOUBLE_PLUS && LA53_0 <= DOUBLE_SUB)||LA53_0==EXISTS||LA53_0==FALSE||(LA53_0 >= FOR && LA53_0 <= FORALL)||(LA53_0 >= IDENTIFIER && LA53_0 <= IF)||LA53_0==INT_LITERAL||LA53_0==LCURLY||LA53_0==LPAREN||LA53_0==MULTI||LA53_0==NOT||LA53_0==PLUS||LA53_0==PRAGMA||(LA53_0 >= REAL_LITERAL && LA53_0 <= RECV)||LA53_0==RETURN||LA53_0==SELECT||(LA53_0 >= SEMI && LA53_0 <= SEND)||LA53_0==SIZEOF||LA53_0==SPEC||LA53_0==STRING_LITERAL||LA53_0==SUB||LA53_0==SYS_VAR||LA53_0==TRUE||LA53_0==WHILE) ) {
alt53=1;
}
switch (alt53) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:392:11: statement_list
{
pushFollow(FOLLOW_statement_list_in_compound_statement2492);
statement_list250=statement_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement_list.add(statement_list250.getTree());
}
break;
}
RCURLY251=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_compound_statement2495); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY251);
// AST REWRITE
// elements: statement_list, 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();
// 393:3: -> ^( COMPOUND_STMT LCURLY ( statement_list )? RCURLY )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:393:6: ^( COMPOUND_STMT LCURLY ( statement_list )? RCURLY )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COMPOUND_STMT, "COMPOUND_STMT"), root_1);
adaptor.addChild(root_1, stream_LCURLY.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:393:29: ( statement_list )?
if ( stream_statement_list.hasNext() ) {
adaptor.addChild(root_1, stream_statement_list.nextTree());
}
stream_statement_list.reset();
adaptor.addChild(root_1, stream_RCURLY.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 "compound_statement"
public static class condition_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "condition_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:396:1: condition_statement : IF LPAREN expr RPAREN statement ( ELSE statement )? -> ^( CONDITION_STMT IF LPAREN expr RPAREN statement ( ELSE statement )? ) ;
public final MiniMPParser.condition_statement_return condition_statement() throws RecognitionException {
MiniMPParser.condition_statement_return retval = new MiniMPParser.condition_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IF252=null;
Token LPAREN253=null;
Token RPAREN255=null;
Token ELSE257=null;
ParserRuleReturnScope expr254 =null;
ParserRuleReturnScope statement256 =null;
ParserRuleReturnScope statement258 =null;
Object IF252_tree=null;
Object LPAREN253_tree=null;
Object RPAREN255_tree=null;
Object ELSE257_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_IF=new RewriteRuleTokenStream(adaptor,"token IF");
RewriteRuleTokenStream stream_ELSE=new RewriteRuleTokenStream(adaptor,"token ELSE");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:397:2: ( IF LPAREN expr RPAREN statement ( ELSE statement )? -> ^( CONDITION_STMT IF LPAREN expr RPAREN statement ( ELSE statement )? ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:397:4: IF LPAREN expr RPAREN statement ( ELSE statement )?
{
IF252=(Token)match(input,IF,FOLLOW_IF_in_condition_statement2522); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IF.add(IF252);
LPAREN253=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_condition_statement2524); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN253);
pushFollow(FOLLOW_expr_in_condition_statement2526);
expr254=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr254.getTree());
RPAREN255=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_condition_statement2528); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN255);
pushFollow(FOLLOW_statement_in_condition_statement2530);
statement256=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement256.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:397:36: ( ELSE statement )?
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==ELSE) ) {
int LA54_1 = input.LA(2);
if ( (synpred87_MiniMP()) ) {
alt54=1;
}
}
switch (alt54) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:397:37: ELSE statement
{
ELSE257=(Token)match(input,ELSE,FOLLOW_ELSE_in_condition_statement2533); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ELSE.add(ELSE257);
pushFollow(FOLLOW_statement_in_condition_statement2535);
statement258=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement258.getTree());
}
break;
}
// AST REWRITE
// elements: IF, statement, statement, LPAREN, expr, RPAREN, ELSE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 398:3: -> ^( CONDITION_STMT IF LPAREN expr RPAREN statement ( ELSE statement )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:398:6: ^( CONDITION_STMT IF LPAREN expr RPAREN statement ( ELSE statement )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONDITION_STMT, "CONDITION_STMT"), root_1);
adaptor.addChild(root_1, stream_IF.nextNode());
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_1, stream_statement.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:398:55: ( ELSE statement )?
if ( stream_statement.hasNext()||stream_ELSE.hasNext() ) {
adaptor.addChild(root_1, stream_ELSE.nextNode());
adaptor.addChild(root_1, stream_statement.nextTree());
}
stream_statement.reset();
stream_ELSE.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 "condition_statement"
public static class select_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "select_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:401:1: select_statement : SELECT LCURLY ( choice )+ RCURLY -> ^( SELECT_STMT SELECT ( choice )+ ) ;
public final MiniMPParser.select_statement_return select_statement() throws RecognitionException {
MiniMPParser.select_statement_return retval = new MiniMPParser.select_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SELECT259=null;
Token LCURLY260=null;
Token RCURLY262=null;
ParserRuleReturnScope choice261 =null;
Object SELECT259_tree=null;
Object LCURLY260_tree=null;
Object RCURLY262_tree=null;
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_SELECT=new RewriteRuleTokenStream(adaptor,"token SELECT");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_choice=new RewriteRuleSubtreeStream(adaptor,"rule choice");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:402:2: ( SELECT LCURLY ( choice )+ RCURLY -> ^( SELECT_STMT SELECT ( choice )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:402:4: SELECT LCURLY ( choice )+ RCURLY
{
SELECT259=(Token)match(input,SELECT,FOLLOW_SELECT_in_select_statement2574); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SELECT.add(SELECT259);
LCURLY260=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_select_statement2576); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY260);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:402:18: ( choice )+
int cnt55=0;
loop55:
while (true) {
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==WHEN) ) {
alt55=1;
}
switch (alt55) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:402:18: choice
{
pushFollow(FOLLOW_choice_in_select_statement2578);
choice261=choice();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_choice.add(choice261.getTree());
}
break;
default :
if ( cnt55 >= 1 ) break loop55;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(55, input);
throw eee;
}
cnt55++;
}
RCURLY262=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_select_statement2581); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY262);
// AST REWRITE
// elements: choice, SELECT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 402:33: -> ^( SELECT_STMT SELECT ( choice )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:402:36: ^( SELECT_STMT SELECT ( choice )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SELECT_STMT, "SELECT_STMT"), root_1);
adaptor.addChild(root_1, stream_SELECT.nextNode());
if ( !(stream_choice.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_choice.hasNext() ) {
adaptor.addChild(root_1, stream_choice.nextTree());
}
stream_choice.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 "select_statement"
public static class choice_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "choice"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:405:1: choice : WHEN LPAREN expr RPAREN statement -> ^( CHOICE WHEN LPAREN expr RPAREN statement ) ;
public final MiniMPParser.choice_return choice() throws RecognitionException {
MiniMPParser.choice_return retval = new MiniMPParser.choice_return();
retval.start = input.LT(1);
Object root_0 = null;
Token WHEN263=null;
Token LPAREN264=null;
Token RPAREN266=null;
ParserRuleReturnScope expr265 =null;
ParserRuleReturnScope statement267 =null;
Object WHEN263_tree=null;
Object LPAREN264_tree=null;
Object RPAREN266_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_WHEN=new RewriteRuleTokenStream(adaptor,"token WHEN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:406:2: ( WHEN LPAREN expr RPAREN statement -> ^( CHOICE WHEN LPAREN expr RPAREN statement ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:406:4: WHEN LPAREN expr RPAREN statement
{
WHEN263=(Token)match(input,WHEN,FOLLOW_WHEN_in_choice2603); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WHEN.add(WHEN263);
LPAREN264=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_choice2605); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN264);
pushFollow(FOLLOW_expr_in_choice2607);
expr265=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr265.getTree());
RPAREN266=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_choice2609); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN266);
pushFollow(FOLLOW_statement_in_choice2611);
statement267=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement267.getTree());
// AST REWRITE
// elements: expr, statement, RPAREN, LPAREN, WHEN
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 406:38: -> ^( CHOICE WHEN LPAREN expr RPAREN statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:406:41: ^( CHOICE WHEN LPAREN expr RPAREN statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CHOICE, "CHOICE"), root_1);
adaptor.addChild(root_1, stream_WHEN.nextNode());
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
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 "choice"
public static class iterative_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "iterative_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:409:1: iterative_statement : ( correspondence_annotation )? loop_statement -> ^( ITERATIVE_STMT ( correspondence_annotation )? loop_statement ) ;
public final MiniMPParser.iterative_statement_return iterative_statement() throws RecognitionException {
MiniMPParser.iterative_statement_return retval = new MiniMPParser.iterative_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope correspondence_annotation268 =null;
ParserRuleReturnScope loop_statement269 =null;
RewriteRuleSubtreeStream stream_correspondence_annotation=new RewriteRuleSubtreeStream(adaptor,"rule correspondence_annotation");
RewriteRuleSubtreeStream stream_loop_statement=new RewriteRuleSubtreeStream(adaptor,"rule loop_statement");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:410:2: ( ( correspondence_annotation )? loop_statement -> ^( ITERATIVE_STMT ( correspondence_annotation )? loop_statement ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:410:4: ( correspondence_annotation )? loop_statement
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:410:4: ( correspondence_annotation )?
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==IDENTIFIER) ) {
alt56=1;
}
switch (alt56) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:410:5: correspondence_annotation
{
pushFollow(FOLLOW_correspondence_annotation_in_iterative_statement2640);
correspondence_annotation268=correspondence_annotation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_correspondence_annotation.add(correspondence_annotation268.getTree());
}
break;
}
pushFollow(FOLLOW_loop_statement_in_iterative_statement2644);
loop_statement269=loop_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_statement.add(loop_statement269.getTree());
// AST REWRITE
// elements: correspondence_annotation, loop_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();
// 411:3: -> ^( ITERATIVE_STMT ( correspondence_annotation )? loop_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:411:6: ^( ITERATIVE_STMT ( correspondence_annotation )? loop_statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ITERATIVE_STMT, "ITERATIVE_STMT"), root_1);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:411:23: ( correspondence_annotation )?
if ( stream_correspondence_annotation.hasNext() ) {
adaptor.addChild(root_1, stream_correspondence_annotation.nextTree());
}
stream_correspondence_annotation.reset();
adaptor.addChild(root_1, stream_loop_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 "iterative_statement"
public static class loop_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "loop_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:414:1: loop_statement : ( WHILE LPAREN expr RPAREN statement -> ^( WHILE_STMT WHILE LPAREN expr RPAREN statement ) | FOR LPAREN (init= expr )? SEMI (pred= expr )? SEMI (update= expr )? RPAREN statement -> ^( FOR_STMT FOR ( $init)? SEMI ( $pred)? SEMI ( $update)? RPAREN statement ) );
public final MiniMPParser.loop_statement_return loop_statement() throws RecognitionException {
MiniMPParser.loop_statement_return retval = new MiniMPParser.loop_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token WHILE270=null;
Token LPAREN271=null;
Token RPAREN273=null;
Token FOR275=null;
Token LPAREN276=null;
Token SEMI277=null;
Token SEMI278=null;
Token RPAREN279=null;
ParserRuleReturnScope init =null;
ParserRuleReturnScope pred =null;
ParserRuleReturnScope update =null;
ParserRuleReturnScope expr272 =null;
ParserRuleReturnScope statement274 =null;
ParserRuleReturnScope statement280 =null;
Object WHILE270_tree=null;
Object LPAREN271_tree=null;
Object RPAREN273_tree=null;
Object FOR275_tree=null;
Object LPAREN276_tree=null;
Object SEMI277_tree=null;
Object SEMI278_tree=null;
Object RPAREN279_tree=null;
RewriteRuleTokenStream stream_FOR=new RewriteRuleTokenStream(adaptor,"token FOR");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_WHILE=new RewriteRuleTokenStream(adaptor,"token WHILE");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:415:2: ( WHILE LPAREN expr RPAREN statement -> ^( WHILE_STMT WHILE LPAREN expr RPAREN statement ) | FOR LPAREN (init= expr )? SEMI (pred= expr )? SEMI (update= expr )? RPAREN statement -> ^( FOR_STMT FOR ( $init)? SEMI ( $pred)? SEMI ( $update)? RPAREN statement ) )
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==WHILE) ) {
alt60=1;
}
else if ( (LA60_0==FOR) ) {
alt60=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 60, 0, input);
throw nvae;
}
switch (alt60) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:415:4: WHILE LPAREN expr RPAREN statement
{
WHILE270=(Token)match(input,WHILE,FOLLOW_WHILE_in_loop_statement2669); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WHILE.add(WHILE270);
LPAREN271=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_loop_statement2671); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN271);
pushFollow(FOLLOW_expr_in_loop_statement2673);
expr272=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr272.getTree());
RPAREN273=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_loop_statement2675); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN273);
pushFollow(FOLLOW_statement_in_loop_statement2677);
statement274=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement274.getTree());
// AST REWRITE
// elements: RPAREN, LPAREN, statement, WHILE, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 416:3: -> ^( WHILE_STMT WHILE LPAREN expr RPAREN statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:416:6: ^( WHILE_STMT WHILE LPAREN expr RPAREN statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(WHILE_STMT, "WHILE_STMT"), root_1);
adaptor.addChild(root_1, stream_WHILE.nextNode());
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_1, stream_statement.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:417:4: FOR LPAREN (init= expr )? SEMI (pred= expr )? SEMI (update= expr )? RPAREN statement
{
FOR275=(Token)match(input,FOR,FOLLOW_FOR_in_loop_statement2700); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FOR.add(FOR275);
LPAREN276=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_loop_statement2702); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN276);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:417:19: (init= expr )?
int alt57=2;
int LA57_0 = input.LA(1);
if ( (LA57_0==ADDR_OF||LA57_0==CHAR_LITERAL||LA57_0==DERIVATIVE||(LA57_0 >= DOUBLE_PLUS && LA57_0 <= DOUBLE_SUB)||LA57_0==EXISTS||LA57_0==FALSE||LA57_0==FORALL||LA57_0==IDENTIFIER||LA57_0==INT_LITERAL||LA57_0==LPAREN||LA57_0==MULTI||LA57_0==NOT||LA57_0==PLUS||LA57_0==REAL_LITERAL||LA57_0==SIZEOF||LA57_0==SPEC||LA57_0==STRING_LITERAL||LA57_0==SUB||LA57_0==SYS_VAR||LA57_0==TRUE) ) {
alt57=1;
}
switch (alt57) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:417:19: init= expr
{
pushFollow(FOLLOW_expr_in_loop_statement2706);
init=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(init.getTree());
}
break;
}
SEMI277=(Token)match(input,SEMI,FOLLOW_SEMI_in_loop_statement2709); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI277);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:417:35: (pred= expr )?
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==ADDR_OF||LA58_0==CHAR_LITERAL||LA58_0==DERIVATIVE||(LA58_0 >= DOUBLE_PLUS && LA58_0 <= DOUBLE_SUB)||LA58_0==EXISTS||LA58_0==FALSE||LA58_0==FORALL||LA58_0==IDENTIFIER||LA58_0==INT_LITERAL||LA58_0==LPAREN||LA58_0==MULTI||LA58_0==NOT||LA58_0==PLUS||LA58_0==REAL_LITERAL||LA58_0==SIZEOF||LA58_0==SPEC||LA58_0==STRING_LITERAL||LA58_0==SUB||LA58_0==SYS_VAR||LA58_0==TRUE) ) {
alt58=1;
}
switch (alt58) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:417:35: pred= expr
{
pushFollow(FOLLOW_expr_in_loop_statement2713);
pred=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(pred.getTree());
}
break;
}
SEMI278=(Token)match(input,SEMI,FOLLOW_SEMI_in_loop_statement2716); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI278);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:417:53: (update= expr )?
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==ADDR_OF||LA59_0==CHAR_LITERAL||LA59_0==DERIVATIVE||(LA59_0 >= DOUBLE_PLUS && LA59_0 <= DOUBLE_SUB)||LA59_0==EXISTS||LA59_0==FALSE||LA59_0==FORALL||LA59_0==IDENTIFIER||LA59_0==INT_LITERAL||LA59_0==LPAREN||LA59_0==MULTI||LA59_0==NOT||LA59_0==PLUS||LA59_0==REAL_LITERAL||LA59_0==SIZEOF||LA59_0==SPEC||LA59_0==STRING_LITERAL||LA59_0==SUB||LA59_0==SYS_VAR||LA59_0==TRUE) ) {
alt59=1;
}
switch (alt59) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:417:53: update= expr
{
pushFollow(FOLLOW_expr_in_loop_statement2720);
update=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(update.getTree());
}
break;
}
RPAREN279=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_loop_statement2723); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN279);
pushFollow(FOLLOW_statement_in_loop_statement2725);
statement280=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement280.getTree());
// AST REWRITE
// elements: pred, init, RPAREN, SEMI, SEMI, update, statement, FOR
// token labels:
// rule labels: update, retval, init, pred
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_update=new RewriteRuleSubtreeStream(adaptor,"rule update",update!=null?update.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
RewriteRuleSubtreeStream stream_init=new RewriteRuleSubtreeStream(adaptor,"rule init",init!=null?init.getTree():null);
RewriteRuleSubtreeStream stream_pred=new RewriteRuleSubtreeStream(adaptor,"rule pred",pred!=null?pred.getTree():null);
root_0 = (Object)adaptor.nil();
// 418:3: -> ^( FOR_STMT FOR ( $init)? SEMI ( $pred)? SEMI ( $update)? RPAREN statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:418:6: ^( FOR_STMT FOR ( $init)? SEMI ( $pred)? SEMI ( $update)? RPAREN statement )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FOR_STMT, "FOR_STMT"), root_1);
adaptor.addChild(root_1, stream_FOR.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:418:22: ( $init)?
if ( stream_init.hasNext() ) {
adaptor.addChild(root_1, stream_init.nextTree());
}
stream_init.reset();
adaptor.addChild(root_1, stream_SEMI.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:418:34: ( $pred)?
if ( stream_pred.hasNext() ) {
adaptor.addChild(root_1, stream_pred.nextTree());
}
stream_pred.reset();
adaptor.addChild(root_1, stream_SEMI.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:418:46: ( $update)?
if ( stream_update.hasNext() ) {
adaptor.addChild(root_1, stream_update.nextTree());
}
stream_update.reset();
adaptor.addChild(root_1, stream_RPAREN.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 "loop_statement"
public static class correspondence_annotation_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "correspondence_annotation"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:421:1: correspondence_annotation : ( IDENTIFIER COLON ( PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )? -> ^( CORRESPONDENCE IDENTIFIER ( IDENTIFIER ( skew_factor )? expr )? COLON ) | IDENTIFIER COLON ( PRAGMA TASS INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )? -> ^( CORRESPONDENCE IDENTIFIER ( IDENTIFIER ( skew_factor )? expr )? COLON ) );
public final MiniMPParser.correspondence_annotation_return correspondence_annotation() throws RecognitionException {
MiniMPParser.correspondence_annotation_return retval = new MiniMPParser.correspondence_annotation_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER281=null;
Token COLON282=null;
Token PRAGMA283=null;
Token TASS284=null;
Token JOINT285=null;
Token INVARIANT286=null;
Token AT287=null;
Token IDENTIFIER288=null;
Token LCURLY289=null;
Token RCURLY292=null;
Token IDENTIFIER293=null;
Token COLON294=null;
Token PRAGMA295=null;
Token TASS296=null;
Token INVARIANT297=null;
Token AT298=null;
Token IDENTIFIER299=null;
Token LCURLY300=null;
Token RCURLY303=null;
ParserRuleReturnScope skew_factor290 =null;
ParserRuleReturnScope expr291 =null;
ParserRuleReturnScope skew_factor301 =null;
ParserRuleReturnScope expr302 =null;
Object IDENTIFIER281_tree=null;
Object COLON282_tree=null;
Object PRAGMA283_tree=null;
Object TASS284_tree=null;
Object JOINT285_tree=null;
Object INVARIANT286_tree=null;
Object AT287_tree=null;
Object IDENTIFIER288_tree=null;
Object LCURLY289_tree=null;
Object RCURLY292_tree=null;
Object IDENTIFIER293_tree=null;
Object COLON294_tree=null;
Object PRAGMA295_tree=null;
Object TASS296_tree=null;
Object INVARIANT297_tree=null;
Object AT298_tree=null;
Object IDENTIFIER299_tree=null;
Object LCURLY300_tree=null;
Object RCURLY303_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT");
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_JOINT=new RewriteRuleTokenStream(adaptor,"token JOINT");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_TASS=new RewriteRuleTokenStream(adaptor,"token TASS");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleTokenStream stream_PRAGMA=new RewriteRuleTokenStream(adaptor,"token PRAGMA");
RewriteRuleTokenStream stream_INVARIANT=new RewriteRuleTokenStream(adaptor,"token INVARIANT");
RewriteRuleSubtreeStream stream_skew_factor=new RewriteRuleSubtreeStream(adaptor,"rule skew_factor");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:2: ( IDENTIFIER COLON ( PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )? -> ^( CORRESPONDENCE IDENTIFIER ( IDENTIFIER ( skew_factor )? expr )? COLON ) | IDENTIFIER COLON ( PRAGMA TASS INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )? -> ^( CORRESPONDENCE IDENTIFIER ( IDENTIFIER ( skew_factor )? expr )? COLON ) )
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==IDENTIFIER) ) {
int LA65_1 = input.LA(2);
if ( (LA65_1==COLON) ) {
int LA65_2 = input.LA(3);
if ( (synpred96_MiniMP()) ) {
alt65=1;
}
else if ( (true) ) {
alt65=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 65, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 65, 0, input);
throw nvae;
}
switch (alt65) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:4: IDENTIFIER COLON ( PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
{
IDENTIFIER281=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_correspondence_annotation2767); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER281);
COLON282=(Token)match(input,COLON,FOLLOW_COLON_in_correspondence_annotation2769); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON282);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:21: ( PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==PRAGMA) ) {
alt62=1;
}
switch (alt62) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:22: PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY
{
PRAGMA283=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_correspondence_annotation2772); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA283);
TASS284=(Token)match(input,TASS,FOLLOW_TASS_in_correspondence_annotation2774); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS284);
JOINT285=(Token)match(input,JOINT,FOLLOW_JOINT_in_correspondence_annotation2776); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_JOINT.add(JOINT285);
INVARIANT286=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_correspondence_annotation2778); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT286);
AT287=(Token)match(input,AT,FOLLOW_AT_in_correspondence_annotation2780); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AT.add(AT287);
IDENTIFIER288=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_correspondence_annotation2782); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER288);
LCURLY289=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_correspondence_annotation2784); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY289);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:71: ( skew_factor )?
int alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==INT_LITERAL) ) {
int LA61_1 = input.LA(2);
if ( (LA61_1==COLON) ) {
alt61=1;
}
}
switch (alt61) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:71: skew_factor
{
pushFollow(FOLLOW_skew_factor_in_correspondence_annotation2786);
skew_factor290=skew_factor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_skew_factor.add(skew_factor290.getTree());
}
break;
}
pushFollow(FOLLOW_expr_in_correspondence_annotation2789);
expr291=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr291.getTree());
RCURLY292=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_correspondence_annotation2791); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY292);
}
break;
}
// AST REWRITE
// elements: COLON, skew_factor, IDENTIFIER, expr, 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();
// 423:3: -> ^( CORRESPONDENCE IDENTIFIER ( IDENTIFIER ( skew_factor )? expr )? COLON )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:423:6: ^( CORRESPONDENCE IDENTIFIER ( IDENTIFIER ( skew_factor )? expr )? COLON )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CORRESPONDENCE, "CORRESPONDENCE"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:423:34: ( IDENTIFIER ( skew_factor )? expr )?
if ( stream_skew_factor.hasNext()||stream_IDENTIFIER.hasNext()||stream_expr.hasNext() ) {
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:423:46: ( skew_factor )?
if ( stream_skew_factor.hasNext() ) {
adaptor.addChild(root_1, stream_skew_factor.nextTree());
}
stream_skew_factor.reset();
adaptor.addChild(root_1, stream_expr.nextTree());
}
stream_skew_factor.reset();
stream_IDENTIFIER.reset();
stream_expr.reset();
adaptor.addChild(root_1, stream_COLON.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:424:4: IDENTIFIER COLON ( PRAGMA TASS INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
{
IDENTIFIER293=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_correspondence_annotation2820); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER293);
COLON294=(Token)match(input,COLON,FOLLOW_COLON_in_correspondence_annotation2822); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON294);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:424:21: ( PRAGMA TASS INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==PRAGMA) ) {
alt64=1;
}
switch (alt64) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:424:22: PRAGMA TASS INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY
{
PRAGMA295=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_correspondence_annotation2825); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA295);
TASS296=(Token)match(input,TASS,FOLLOW_TASS_in_correspondence_annotation2827); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS296);
INVARIANT297=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_correspondence_annotation2829); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT297);
AT298=(Token)match(input,AT,FOLLOW_AT_in_correspondence_annotation2831); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AT.add(AT298);
IDENTIFIER299=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_correspondence_annotation2833); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER299);
LCURLY300=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_correspondence_annotation2835); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY300);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:424:65: ( skew_factor )?
int alt63=2;
int LA63_0 = input.LA(1);
if ( (LA63_0==INT_LITERAL) ) {
int LA63_1 = input.LA(2);
if ( (LA63_1==COLON) ) {
alt63=1;
}
}
switch (alt63) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:424:65: skew_factor
{
pushFollow(FOLLOW_skew_factor_in_correspondence_annotation2837);
skew_factor301=skew_factor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_skew_factor.add(skew_factor301.getTree());
}
break;
}
pushFollow(FOLLOW_expr_in_correspondence_annotation2840);
expr302=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr302.getTree());
RCURLY303=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_correspondence_annotation2842); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY303);
}
break;
}
// AST REWRITE
// elements: COLON, IDENTIFIER, IDENTIFIER, expr, skew_factor
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 425:3: -> ^( CORRESPONDENCE IDENTIFIER ( IDENTIFIER ( skew_factor )? expr )? COLON )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:425:6: ^( CORRESPONDENCE IDENTIFIER ( IDENTIFIER ( skew_factor )? expr )? COLON )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CORRESPONDENCE, "CORRESPONDENCE"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:425:34: ( IDENTIFIER ( skew_factor )? expr )?
if ( stream_IDENTIFIER.hasNext()||stream_expr.hasNext()||stream_skew_factor.hasNext() ) {
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:425:46: ( skew_factor )?
if ( stream_skew_factor.hasNext() ) {
adaptor.addChild(root_1, stream_skew_factor.nextTree());
}
stream_skew_factor.reset();
adaptor.addChild(root_1, stream_expr.nextTree());
}
stream_IDENTIFIER.reset();
stream_expr.reset();
stream_skew_factor.reset();
adaptor.addChild(root_1, stream_COLON.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 "correspondence_annotation"
public static class skew_factor_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "skew_factor"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:428:1: skew_factor : INT_LITERAL COLON INT_LITERAL -> ^( SKEW_FACTOR INT_LITERAL INT_LITERAL ) ;
public final MiniMPParser.skew_factor_return skew_factor() throws RecognitionException {
MiniMPParser.skew_factor_return retval = new MiniMPParser.skew_factor_return();
retval.start = input.LT(1);
Object root_0 = null;
Token INT_LITERAL304=null;
Token COLON305=null;
Token INT_LITERAL306=null;
Object INT_LITERAL304_tree=null;
Object COLON305_tree=null;
Object INT_LITERAL306_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_INT_LITERAL=new RewriteRuleTokenStream(adaptor,"token INT_LITERAL");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:429:2: ( INT_LITERAL COLON INT_LITERAL -> ^( SKEW_FACTOR INT_LITERAL INT_LITERAL ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:429:4: INT_LITERAL COLON INT_LITERAL
{
INT_LITERAL304=(Token)match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_skew_factor2878); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INT_LITERAL.add(INT_LITERAL304);
COLON305=(Token)match(input,COLON,FOLLOW_COLON_in_skew_factor2880); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON305);
INT_LITERAL306=(Token)match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_skew_factor2882); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INT_LITERAL.add(INT_LITERAL306);
// AST REWRITE
// elements: INT_LITERAL, INT_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();
// 429:34: -> ^( SKEW_FACTOR INT_LITERAL INT_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:429:37: ^( SKEW_FACTOR INT_LITERAL INT_LITERAL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SKEW_FACTOR, "SKEW_FACTOR"), root_1);
adaptor.addChild(root_1, stream_INT_LITERAL.nextNode());
adaptor.addChild(root_1, stream_INT_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 "skew_factor"
public static class return_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "return_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:432:1: return_statement : RETURN ( expr )? SEMI -> ^( RETURN_STMT RETURN ( expr )? SEMI ) ;
public final MiniMPParser.return_statement_return return_statement() throws RecognitionException {
MiniMPParser.return_statement_return retval = new MiniMPParser.return_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token RETURN307=null;
Token SEMI309=null;
ParserRuleReturnScope expr308 =null;
Object RETURN307_tree=null;
Object SEMI309_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_RETURN=new RewriteRuleTokenStream(adaptor,"token RETURN");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:433:2: ( RETURN ( expr )? SEMI -> ^( RETURN_STMT RETURN ( expr )? SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:433:4: RETURN ( expr )? SEMI
{
RETURN307=(Token)match(input,RETURN,FOLLOW_RETURN_in_return_statement2904); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RETURN.add(RETURN307);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:433:11: ( expr )?
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==ADDR_OF||LA66_0==CHAR_LITERAL||LA66_0==DERIVATIVE||(LA66_0 >= DOUBLE_PLUS && LA66_0 <= DOUBLE_SUB)||LA66_0==EXISTS||LA66_0==FALSE||LA66_0==FORALL||LA66_0==IDENTIFIER||LA66_0==INT_LITERAL||LA66_0==LPAREN||LA66_0==MULTI||LA66_0==NOT||LA66_0==PLUS||LA66_0==REAL_LITERAL||LA66_0==SIZEOF||LA66_0==SPEC||LA66_0==STRING_LITERAL||LA66_0==SUB||LA66_0==SYS_VAR||LA66_0==TRUE) ) {
alt66=1;
}
switch (alt66) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:433:11: expr
{
pushFollow(FOLLOW_expr_in_return_statement2906);
expr308=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr308.getTree());
}
break;
}
SEMI309=(Token)match(input,SEMI,FOLLOW_SEMI_in_return_statement2909); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI309);
// AST REWRITE
// elements: expr, RETURN, 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();
// 433:22: -> ^( RETURN_STMT RETURN ( expr )? SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:433:25: ^( RETURN_STMT RETURN ( expr )? SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(RETURN_STMT, "RETURN_STMT"), root_1);
adaptor.addChild(root_1, stream_RETURN.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:433:46: ( expr )?
if ( stream_expr.hasNext() ) {
adaptor.addChild(root_1, stream_expr.nextTree());
}
stream_expr.reset();
adaptor.addChild(root_1, stream_SEMI.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 "return_statement"
public static class empty_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "empty_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:436:1: empty_statement : SEMI -> ^( EMPTY_STMT SEMI ) ;
public final MiniMPParser.empty_statement_return empty_statement() throws RecognitionException {
MiniMPParser.empty_statement_return retval = new MiniMPParser.empty_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI310=null;
Object SEMI310_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:437:2: ( SEMI -> ^( EMPTY_STMT SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:437:4: SEMI
{
SEMI310=(Token)match(input,SEMI,FOLLOW_SEMI_in_empty_statement2934); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI310);
// 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();
// 437:9: -> ^( EMPTY_STMT SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:437:12: ^( EMPTY_STMT SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EMPTY_STMT, "EMPTY_STMT"), root_1);
adaptor.addChild(root_1, stream_SEMI.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 "empty_statement"
public static class send_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "send_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:440:1: send_statement : SEND LPAREN data= expr COMMA dest= expr COMMA tag= expr RPAREN SEMI -> ^( SEND_STMT SEND $data $dest $tag SEMI ) ;
public final MiniMPParser.send_statement_return send_statement() throws RecognitionException {
MiniMPParser.send_statement_return retval = new MiniMPParser.send_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEND311=null;
Token LPAREN312=null;
Token COMMA313=null;
Token COMMA314=null;
Token RPAREN315=null;
Token SEMI316=null;
ParserRuleReturnScope data =null;
ParserRuleReturnScope dest =null;
ParserRuleReturnScope tag =null;
Object SEND311_tree=null;
Object LPAREN312_tree=null;
Object COMMA313_tree=null;
Object COMMA314_tree=null;
Object RPAREN315_tree=null;
Object SEMI316_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_SEND=new RewriteRuleTokenStream(adaptor,"token SEND");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:441:2: ( SEND LPAREN data= expr COMMA dest= expr COMMA tag= expr RPAREN SEMI -> ^( SEND_STMT SEND $data $dest $tag SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:441:4: SEND LPAREN data= expr COMMA dest= expr COMMA tag= expr RPAREN SEMI
{
SEND311=(Token)match(input,SEND,FOLLOW_SEND_in_send_statement2954); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEND.add(SEND311);
LPAREN312=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_send_statement2956); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN312);
pushFollow(FOLLOW_expr_in_send_statement2960);
data=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(data.getTree());
COMMA313=(Token)match(input,COMMA,FOLLOW_COMMA_in_send_statement2962); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA313);
pushFollow(FOLLOW_expr_in_send_statement2966);
dest=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(dest.getTree());
COMMA314=(Token)match(input,COMMA,FOLLOW_COMMA_in_send_statement2968); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA314);
pushFollow(FOLLOW_expr_in_send_statement2972);
tag=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(tag.getTree());
RPAREN315=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_send_statement2974); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN315);
SEMI316=(Token)match(input,SEMI,FOLLOW_SEMI_in_send_statement2976); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI316);
// AST REWRITE
// elements: data, tag, SEND, SEMI, dest
// token labels:
// rule labels: retval, dest, tag, data
// token list labels:
// rule list labels:
// 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_dest=new RewriteRuleSubtreeStream(adaptor,"rule dest",dest!=null?dest.getTree():null);
RewriteRuleSubtreeStream stream_tag=new RewriteRuleSubtreeStream(adaptor,"rule tag",tag!=null?tag.getTree():null);
RewriteRuleSubtreeStream stream_data=new RewriteRuleSubtreeStream(adaptor,"rule data",data!=null?data.getTree():null);
root_0 = (Object)adaptor.nil();
// 442:3: -> ^( SEND_STMT SEND $data $dest $tag SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:442:6: ^( SEND_STMT SEND $data $dest $tag SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SEND_STMT, "SEND_STMT"), root_1);
adaptor.addChild(root_1, stream_SEND.nextNode());
adaptor.addChild(root_1, stream_data.nextTree());
adaptor.addChild(root_1, stream_dest.nextTree());
adaptor.addChild(root_1, stream_tag.nextTree());
adaptor.addChild(root_1, stream_SEMI.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 "send_statement"
public static class recv_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "recv_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:445:1: recv_statement : ( RECV LPAREN data= expr COMMA src= comm_expr COMMA tag= comm_expr RPAREN SEMI -> ^( RECV_STMT RECV $data $src $tag SEMI ) | RECV LPAREN data= expr COMMA src= comm_expr COMMA tag= comm_expr COMMA size= unary_expr RPAREN SEMI -> ^( RECV_STMT RECV $data $src $tag $size SEMI ) );
public final MiniMPParser.recv_statement_return recv_statement() throws RecognitionException {
MiniMPParser.recv_statement_return retval = new MiniMPParser.recv_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token RECV317=null;
Token LPAREN318=null;
Token COMMA319=null;
Token COMMA320=null;
Token RPAREN321=null;
Token SEMI322=null;
Token RECV323=null;
Token LPAREN324=null;
Token COMMA325=null;
Token COMMA326=null;
Token COMMA327=null;
Token RPAREN328=null;
Token SEMI329=null;
ParserRuleReturnScope data =null;
ParserRuleReturnScope src =null;
ParserRuleReturnScope tag =null;
ParserRuleReturnScope size =null;
Object RECV317_tree=null;
Object LPAREN318_tree=null;
Object COMMA319_tree=null;
Object COMMA320_tree=null;
Object RPAREN321_tree=null;
Object SEMI322_tree=null;
Object RECV323_tree=null;
Object LPAREN324_tree=null;
Object COMMA325_tree=null;
Object COMMA326_tree=null;
Object COMMA327_tree=null;
Object RPAREN328_tree=null;
Object SEMI329_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_RECV=new RewriteRuleTokenStream(adaptor,"token RECV");
RewriteRuleSubtreeStream stream_unary_expr=new RewriteRuleSubtreeStream(adaptor,"rule unary_expr");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_comm_expr=new RewriteRuleSubtreeStream(adaptor,"rule comm_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:446:2: ( RECV LPAREN data= expr COMMA src= comm_expr COMMA tag= comm_expr RPAREN SEMI -> ^( RECV_STMT RECV $data $src $tag SEMI ) | RECV LPAREN data= expr COMMA src= comm_expr COMMA tag= comm_expr COMMA size= unary_expr RPAREN SEMI -> ^( RECV_STMT RECV $data $src $tag $size SEMI ) )
int alt67=2;
int LA67_0 = input.LA(1);
if ( (LA67_0==RECV) ) {
int LA67_1 = input.LA(2);
if ( (synpred100_MiniMP()) ) {
alt67=1;
}
else if ( (true) ) {
alt67=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 67, 0, input);
throw nvae;
}
switch (alt67) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:446:4: RECV LPAREN data= expr COMMA src= comm_expr COMMA tag= comm_expr RPAREN SEMI
{
RECV317=(Token)match(input,RECV,FOLLOW_RECV_in_recv_statement3009); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RECV.add(RECV317);
LPAREN318=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_recv_statement3011); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN318);
pushFollow(FOLLOW_expr_in_recv_statement3015);
data=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(data.getTree());
COMMA319=(Token)match(input,COMMA,FOLLOW_COMMA_in_recv_statement3017); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA319);
pushFollow(FOLLOW_comm_expr_in_recv_statement3021);
src=comm_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_comm_expr.add(src.getTree());
COMMA320=(Token)match(input,COMMA,FOLLOW_COMMA_in_recv_statement3023); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA320);
pushFollow(FOLLOW_comm_expr_in_recv_statement3027);
tag=comm_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_comm_expr.add(tag.getTree());
RPAREN321=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_recv_statement3029); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN321);
SEMI322=(Token)match(input,SEMI,FOLLOW_SEMI_in_recv_statement3031); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI322);
// AST REWRITE
// elements: RECV, tag, SEMI, src, data
// token labels:
// rule labels: retval, tag, data, src
// token list labels:
// rule list labels:
// 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_tag=new RewriteRuleSubtreeStream(adaptor,"rule tag",tag!=null?tag.getTree():null);
RewriteRuleSubtreeStream stream_data=new RewriteRuleSubtreeStream(adaptor,"rule data",data!=null?data.getTree():null);
RewriteRuleSubtreeStream stream_src=new RewriteRuleSubtreeStream(adaptor,"rule src",src!=null?src.getTree():null);
root_0 = (Object)adaptor.nil();
// 447:3: -> ^( RECV_STMT RECV $data $src $tag SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:447:6: ^( RECV_STMT RECV $data $src $tag SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(RECV_STMT, "RECV_STMT"), root_1);
adaptor.addChild(root_1, stream_RECV.nextNode());
adaptor.addChild(root_1, stream_data.nextTree());
adaptor.addChild(root_1, stream_src.nextTree());
adaptor.addChild(root_1, stream_tag.nextTree());
adaptor.addChild(root_1, stream_SEMI.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:448:4: RECV LPAREN data= expr COMMA src= comm_expr COMMA tag= comm_expr COMMA size= unary_expr RPAREN SEMI
{
RECV323=(Token)match(input,RECV,FOLLOW_RECV_in_recv_statement3057); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RECV.add(RECV323);
LPAREN324=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_recv_statement3059); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN324);
pushFollow(FOLLOW_expr_in_recv_statement3063);
data=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(data.getTree());
COMMA325=(Token)match(input,COMMA,FOLLOW_COMMA_in_recv_statement3065); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA325);
pushFollow(FOLLOW_comm_expr_in_recv_statement3069);
src=comm_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_comm_expr.add(src.getTree());
COMMA326=(Token)match(input,COMMA,FOLLOW_COMMA_in_recv_statement3071); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA326);
pushFollow(FOLLOW_comm_expr_in_recv_statement3075);
tag=comm_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_comm_expr.add(tag.getTree());
COMMA327=(Token)match(input,COMMA,FOLLOW_COMMA_in_recv_statement3077); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA327);
pushFollow(FOLLOW_unary_expr_in_recv_statement3083);
size=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(size.getTree());
RPAREN328=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_recv_statement3085); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN328);
SEMI329=(Token)match(input,SEMI,FOLLOW_SEMI_in_recv_statement3087); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI329);
// AST REWRITE
// elements: src, tag, RECV, size, data, SEMI
// token labels:
// rule labels: retval, tag, data, src, size
// token list labels:
// rule list labels:
// 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_tag=new RewriteRuleSubtreeStream(adaptor,"rule tag",tag!=null?tag.getTree():null);
RewriteRuleSubtreeStream stream_data=new RewriteRuleSubtreeStream(adaptor,"rule data",data!=null?data.getTree():null);
RewriteRuleSubtreeStream stream_src=new RewriteRuleSubtreeStream(adaptor,"rule src",src!=null?src.getTree():null);
RewriteRuleSubtreeStream stream_size=new RewriteRuleSubtreeStream(adaptor,"rule size",size!=null?size.getTree():null);
root_0 = (Object)adaptor.nil();
// 449:3: -> ^( RECV_STMT RECV $data $src $tag $size SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:449:6: ^( RECV_STMT RECV $data $src $tag $size SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(RECV_STMT, "RECV_STMT"), root_1);
adaptor.addChild(root_1, stream_RECV.nextNode());
adaptor.addChild(root_1, stream_data.nextTree());
adaptor.addChild(root_1, stream_src.nextTree());
adaptor.addChild(root_1, stream_tag.nextTree());
adaptor.addChild(root_1, stream_size.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 "recv_statement"
public static class comm_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "comm_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:452:1: comm_expr : ( expr -> ^( COMM_EXPR expr ) | wildcard_expr -> ^( COMM_EXPR wildcard_expr ) );
public final MiniMPParser.comm_expr_return comm_expr() throws RecognitionException {
MiniMPParser.comm_expr_return retval = new MiniMPParser.comm_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope expr330 =null;
ParserRuleReturnScope wildcard_expr331 =null;
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_wildcard_expr=new RewriteRuleSubtreeStream(adaptor,"rule wildcard_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:453:2: ( expr -> ^( COMM_EXPR expr ) | wildcard_expr -> ^( COMM_EXPR wildcard_expr ) )
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==ADDR_OF||LA68_0==CHAR_LITERAL||LA68_0==DERIVATIVE||(LA68_0 >= DOUBLE_PLUS && LA68_0 <= DOUBLE_SUB)||LA68_0==EXISTS||LA68_0==FALSE||LA68_0==FORALL||LA68_0==IDENTIFIER||LA68_0==INT_LITERAL||LA68_0==LPAREN||LA68_0==MULTI||LA68_0==NOT||LA68_0==PLUS||LA68_0==REAL_LITERAL||LA68_0==SIZEOF||LA68_0==SPEC||LA68_0==STRING_LITERAL||LA68_0==SUB||LA68_0==SYS_VAR||LA68_0==TRUE) ) {
alt68=1;
}
else if ( (LA68_0==ANY) ) {
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 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:453:4: expr
{
pushFollow(FOLLOW_expr_in_comm_expr3123);
expr330=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr330.getTree());
// AST REWRITE
// elements: expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 453:9: -> ^( COMM_EXPR expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:453:12: ^( COMM_EXPR expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COMM_EXPR, "COMM_EXPR"), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:454:4: wildcard_expr
{
pushFollow(FOLLOW_wildcard_expr_in_comm_expr3136);
wildcard_expr331=wildcard_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_wildcard_expr.add(wildcard_expr331.getTree());
// AST REWRITE
// elements: wildcard_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 454:18: -> ^( COMM_EXPR wildcard_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:454:21: ^( COMM_EXPR wildcard_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COMM_EXPR, "COMM_EXPR"), root_1);
adaptor.addChild(root_1, stream_wildcard_expr.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 "comm_expr"
public static class wildcard_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "wildcard_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:457:1: wildcard_expr : ANY LPAREN expr RPAREN -> ^( WILDCARD_EXPR ANY LPAREN expr RPAREN ) ;
public final MiniMPParser.wildcard_expr_return wildcard_expr() throws RecognitionException {
MiniMPParser.wildcard_expr_return retval = new MiniMPParser.wildcard_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ANY332=null;
Token LPAREN333=null;
Token RPAREN335=null;
ParserRuleReturnScope expr334 =null;
Object ANY332_tree=null;
Object LPAREN333_tree=null;
Object RPAREN335_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_ANY=new RewriteRuleTokenStream(adaptor,"token ANY");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:458:2: ( ANY LPAREN expr RPAREN -> ^( WILDCARD_EXPR ANY LPAREN expr RPAREN ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:458:4: ANY LPAREN expr RPAREN
{
ANY332=(Token)match(input,ANY,FOLLOW_ANY_in_wildcard_expr3156); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ANY.add(ANY332);
LPAREN333=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_wildcard_expr3158); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN333);
pushFollow(FOLLOW_expr_in_wildcard_expr3160);
expr334=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr334.getTree());
RPAREN335=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_wildcard_expr3162); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN335);
// AST REWRITE
// elements: expr, ANY, 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();
// 459:3: -> ^( WILDCARD_EXPR ANY LPAREN expr RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:459:6: ^( WILDCARD_EXPR ANY LPAREN expr RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(WILDCARD_EXPR, "WILDCARD_EXPR"), root_1);
adaptor.addChild(root_1, stream_ANY.nextNode());
adaptor.addChild(root_1, stream_LPAREN.nextNode());
adaptor.addChild(root_1, stream_expr.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 "wildcard_expr"
public static class call_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "call_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:462:1: call_statement : ( unary_expr ASSIGN )? IDENTIFIER LPAREN ( parameter_list )? RPAREN SEMI -> ^( CALL_STMT ( unary_expr )? IDENTIFIER LPAREN ( parameter_list )? RPAREN SEMI ) ;
public final MiniMPParser.call_statement_return call_statement() throws RecognitionException {
MiniMPParser.call_statement_return retval = new MiniMPParser.call_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN337=null;
Token IDENTIFIER338=null;
Token LPAREN339=null;
Token RPAREN341=null;
Token SEMI342=null;
ParserRuleReturnScope unary_expr336 =null;
ParserRuleReturnScope parameter_list340 =null;
Object ASSIGN337_tree=null;
Object IDENTIFIER338_tree=null;
Object LPAREN339_tree=null;
Object RPAREN341_tree=null;
Object SEMI342_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_unary_expr=new RewriteRuleSubtreeStream(adaptor,"rule unary_expr");
RewriteRuleSubtreeStream stream_parameter_list=new RewriteRuleSubtreeStream(adaptor,"rule parameter_list");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:463:2: ( ( unary_expr ASSIGN )? IDENTIFIER LPAREN ( parameter_list )? RPAREN SEMI -> ^( CALL_STMT ( unary_expr )? IDENTIFIER LPAREN ( parameter_list )? RPAREN SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:463:4: ( unary_expr ASSIGN )? IDENTIFIER LPAREN ( parameter_list )? RPAREN SEMI
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:463:4: ( unary_expr ASSIGN )?
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==ADDR_OF||LA69_0==CHAR_LITERAL||LA69_0==DERIVATIVE||(LA69_0 >= DOUBLE_PLUS && LA69_0 <= DOUBLE_SUB)||LA69_0==FALSE||LA69_0==INT_LITERAL||LA69_0==LPAREN||LA69_0==MULTI||LA69_0==NOT||LA69_0==PLUS||LA69_0==REAL_LITERAL||LA69_0==SIZEOF||LA69_0==SPEC||LA69_0==STRING_LITERAL||LA69_0==SUB||LA69_0==SYS_VAR||LA69_0==TRUE) ) {
alt69=1;
}
else if ( (LA69_0==IDENTIFIER) ) {
int LA69_8 = input.LA(2);
if ( (synpred102_MiniMP()) ) {
alt69=1;
}
}
switch (alt69) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:463:5: unary_expr ASSIGN
{
pushFollow(FOLLOW_unary_expr_in_call_statement3190);
unary_expr336=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr336.getTree());
ASSIGN337=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_call_statement3192); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN337);
}
break;
}
IDENTIFIER338=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_call_statement3196); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER338);
LPAREN339=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_call_statement3198); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN339);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:463:43: ( parameter_list )?
int alt70=2;
int LA70_0 = input.LA(1);
if ( (LA70_0==ADDR_OF||LA70_0==CHAR_LITERAL||LA70_0==DERIVATIVE||(LA70_0 >= DOUBLE_PLUS && LA70_0 <= DOUBLE_SUB)||LA70_0==EXISTS||LA70_0==FALSE||LA70_0==FORALL||LA70_0==IDENTIFIER||LA70_0==INT_LITERAL||LA70_0==LPAREN||LA70_0==MULTI||LA70_0==NOT||LA70_0==PLUS||LA70_0==REAL_LITERAL||LA70_0==SIZEOF||LA70_0==SPEC||LA70_0==STRING_LITERAL||LA70_0==SUB||LA70_0==SYS_VAR||LA70_0==TRUE) ) {
alt70=1;
}
switch (alt70) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:463:43: parameter_list
{
pushFollow(FOLLOW_parameter_list_in_call_statement3200);
parameter_list340=parameter_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameter_list.add(parameter_list340.getTree());
}
break;
}
RPAREN341=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_call_statement3203); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN341);
SEMI342=(Token)match(input,SEMI,FOLLOW_SEMI_in_call_statement3205); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI342);
// AST REWRITE
// elements: IDENTIFIER, SEMI, RPAREN, unary_expr, parameter_list, 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();
// 464:3: -> ^( CALL_STMT ( unary_expr )? IDENTIFIER LPAREN ( parameter_list )? RPAREN SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:464:6: ^( CALL_STMT ( unary_expr )? IDENTIFIER LPAREN ( parameter_list )? RPAREN SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CALL_STMT, "CALL_STMT"), root_1);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:464:18: ( unary_expr )?
if ( stream_unary_expr.hasNext() ) {
adaptor.addChild(root_1, stream_unary_expr.nextTree());
}
stream_unary_expr.reset();
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_LPAREN.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:464:48: ( parameter_list )?
if ( stream_parameter_list.hasNext() ) {
adaptor.addChild(root_1, stream_parameter_list.nextTree());
}
stream_parameter_list.reset();
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_1, stream_SEMI.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 "call_statement"
public static class allocate_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "allocate_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:467:1: allocate_statement : unary_expr ASSIGN LPAREN type_name MULTI RPAREN MALLOC unary_expr SEMI -> ^( ALLOCATE_STMT unary_expr type_name unary_expr SEMI ) ;
public final MiniMPParser.allocate_statement_return allocate_statement() throws RecognitionException {
MiniMPParser.allocate_statement_return retval = new MiniMPParser.allocate_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN344=null;
Token LPAREN345=null;
Token MULTI347=null;
Token RPAREN348=null;
Token MALLOC349=null;
Token SEMI351=null;
ParserRuleReturnScope unary_expr343 =null;
ParserRuleReturnScope type_name346 =null;
ParserRuleReturnScope unary_expr350 =null;
Object ASSIGN344_tree=null;
Object LPAREN345_tree=null;
Object MULTI347_tree=null;
Object RPAREN348_tree=null;
Object MALLOC349_tree=null;
Object SEMI351_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_MULTI=new RewriteRuleTokenStream(adaptor,"token MULTI");
RewriteRuleTokenStream stream_MALLOC=new RewriteRuleTokenStream(adaptor,"token MALLOC");
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN");
RewriteRuleSubtreeStream stream_unary_expr=new RewriteRuleSubtreeStream(adaptor,"rule unary_expr");
RewriteRuleSubtreeStream stream_type_name=new RewriteRuleSubtreeStream(adaptor,"rule type_name");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:468:2: ( unary_expr ASSIGN LPAREN type_name MULTI RPAREN MALLOC unary_expr SEMI -> ^( ALLOCATE_STMT unary_expr type_name unary_expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:468:4: unary_expr ASSIGN LPAREN type_name MULTI RPAREN MALLOC unary_expr SEMI
{
pushFollow(FOLLOW_unary_expr_in_allocate_statement3238);
unary_expr343=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr343.getTree());
ASSIGN344=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_allocate_statement3240); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN344);
LPAREN345=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_allocate_statement3242); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN345);
pushFollow(FOLLOW_type_name_in_allocate_statement3244);
type_name346=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name346.getTree());
MULTI347=(Token)match(input,MULTI,FOLLOW_MULTI_in_allocate_statement3246); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MULTI.add(MULTI347);
RPAREN348=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_allocate_statement3248); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN348);
MALLOC349=(Token)match(input,MALLOC,FOLLOW_MALLOC_in_allocate_statement3250); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MALLOC.add(MALLOC349);
pushFollow(FOLLOW_unary_expr_in_allocate_statement3252);
unary_expr350=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr350.getTree());
SEMI351=(Token)match(input,SEMI,FOLLOW_SEMI_in_allocate_statement3254); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI351);
// AST REWRITE
// elements: SEMI, type_name, unary_expr, unary_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 469:3: -> ^( ALLOCATE_STMT unary_expr type_name unary_expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:469:6: ^( ALLOCATE_STMT unary_expr type_name unary_expr SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ALLOCATE_STMT, "ALLOCATE_STMT"), root_1);
adaptor.addChild(root_1, stream_unary_expr.nextTree());
adaptor.addChild(root_1, stream_type_name.nextTree());
adaptor.addChild(root_1, stream_unary_expr.nextTree());
adaptor.addChild(root_1, stream_SEMI.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 "allocate_statement"
public static class parameter_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "parameter_list"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:472:1: parameter_list : parameter ( COMMA parameter )* -> ^( PARAMETER_LIST ( parameter )+ ) ;
public final MiniMPParser.parameter_list_return parameter_list() throws RecognitionException {
MiniMPParser.parameter_list_return retval = new MiniMPParser.parameter_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA353=null;
ParserRuleReturnScope parameter352 =null;
ParserRuleReturnScope parameter354 =null;
Object COMMA353_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_parameter=new RewriteRuleSubtreeStream(adaptor,"rule parameter");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:473:2: ( parameter ( COMMA parameter )* -> ^( PARAMETER_LIST ( parameter )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:473:4: parameter ( COMMA parameter )*
{
pushFollow(FOLLOW_parameter_in_parameter_list3281);
parameter352=parameter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameter.add(parameter352.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:473:14: ( COMMA parameter )*
loop71:
while (true) {
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==COMMA) ) {
alt71=1;
}
switch (alt71) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:473:15: COMMA parameter
{
COMMA353=(Token)match(input,COMMA,FOLLOW_COMMA_in_parameter_list3284); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA353);
pushFollow(FOLLOW_parameter_in_parameter_list3286);
parameter354=parameter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameter.add(parameter354.getTree());
}
break;
default :
break loop71;
}
}
// AST REWRITE
// elements: parameter
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 473:33: -> ^( PARAMETER_LIST ( parameter )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:473:36: ^( PARAMETER_LIST ( parameter )+ )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARAMETER_LIST, "PARAMETER_LIST"), root_1);
if ( !(stream_parameter.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_parameter.hasNext() ) {
adaptor.addChild(root_1, stream_parameter.nextTree());
}
stream_parameter.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 "parameter_list"
public static class parameter_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "parameter"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:476:1: parameter : expr -> ^( PARAMETER expr ) ;
public final MiniMPParser.parameter_return parameter() throws RecognitionException {
MiniMPParser.parameter_return retval = new MiniMPParser.parameter_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope expr355 =null;
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:477:2: ( expr -> ^( PARAMETER expr ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:477:4: expr
{
pushFollow(FOLLOW_expr_in_parameter3308);
expr355=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr355.getTree());
// AST REWRITE
// elements: expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 477:9: -> ^( PARAMETER expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:477:12: ^( PARAMETER expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARAMETER, "PARAMETER"), root_1);
adaptor.addChild(root_1, stream_expr.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 "parameter"
public static class partial_list_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "partial_list"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:480:1: partial_list : partial ( COMMA partial )* -> ^( PARTIAL_LIST ( partial )+ ) ;
public final MiniMPParser.partial_list_return partial_list() throws RecognitionException {
MiniMPParser.partial_list_return retval = new MiniMPParser.partial_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA357=null;
ParserRuleReturnScope partial356 =null;
ParserRuleReturnScope partial358 =null;
Object COMMA357_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_partial=new RewriteRuleSubtreeStream(adaptor,"rule partial");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:481:2: ( partial ( COMMA partial )* -> ^( PARTIAL_LIST ( partial )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:481:4: partial ( COMMA partial )*
{
pushFollow(FOLLOW_partial_in_partial_list3327);
partial356=partial();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_partial.add(partial356.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:481:12: ( COMMA partial )*
loop72:
while (true) {
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==COMMA) ) {
alt72=1;
}
switch (alt72) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:481:13: COMMA partial
{
COMMA357=(Token)match(input,COMMA,FOLLOW_COMMA_in_partial_list3330); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA357);
pushFollow(FOLLOW_partial_in_partial_list3332);
partial358=partial();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_partial.add(partial358.getTree());
}
break;
default :
break loop72;
}
}
// 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();
// 481:29: -> ^( PARTIAL_LIST ( partial )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:481: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 "partial_list"
public static class partial_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "partial"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:484:1: partial : LCURLY IDENTIFIER COMMA INT_LITERAL RCURLY -> ^( PARTIAL IDENTIFIER INT_LITERAL ) ;
public final MiniMPParser.partial_return partial() throws RecognitionException {
MiniMPParser.partial_return retval = new MiniMPParser.partial_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY359=null;
Token IDENTIFIER360=null;
Token COMMA361=null;
Token INT_LITERAL362=null;
Token RCURLY363=null;
Object LCURLY359_tree=null;
Object IDENTIFIER360_tree=null;
Object COMMA361_tree=null;
Object INT_LITERAL362_tree=null;
Object RCURLY363_tree=null;
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_INT_LITERAL=new RewriteRuleTokenStream(adaptor,"token INT_LITERAL");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:485:2: ( LCURLY IDENTIFIER COMMA INT_LITERAL RCURLY -> ^( PARTIAL IDENTIFIER INT_LITERAL ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:485:4: LCURLY IDENTIFIER COMMA INT_LITERAL RCURLY
{
LCURLY359=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_partial3354); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY359);
IDENTIFIER360=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_partial3356); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER360);
COMMA361=(Token)match(input,COMMA,FOLLOW_COMMA_in_partial3358); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA361);
INT_LITERAL362=(Token)match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_partial3360); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INT_LITERAL.add(INT_LITERAL362);
RCURLY363=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_partial3362); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY363);
// AST REWRITE
// elements: IDENTIFIER, INT_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();
// 485:47: -> ^( PARTIAL IDENTIFIER INT_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:485:50: ^( PARTIAL IDENTIFIER INT_LITERAL )
{
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_INT_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 "partial"
public static class expr_statement_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "expr_statement"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:488:1: expr_statement : expr SEMI -> ^( EXPR_STMT expr SEMI ) ;
public final MiniMPParser.expr_statement_return expr_statement() throws RecognitionException {
MiniMPParser.expr_statement_return retval = new MiniMPParser.expr_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI365=null;
ParserRuleReturnScope expr364 =null;
Object SEMI365_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:489:2: ( expr SEMI -> ^( EXPR_STMT expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:489:4: expr SEMI
{
pushFollow(FOLLOW_expr_in_expr_statement3383);
expr364=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr364.getTree());
SEMI365=(Token)match(input,SEMI,FOLLOW_SEMI_in_expr_statement3385); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI365);
// AST REWRITE
// elements: SEMI, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 489:14: -> ^( EXPR_STMT expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:489:17: ^( EXPR_STMT expr SEMI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXPR_STMT, "EXPR_STMT"), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_SEMI.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 "expr_statement"
public static class expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:492:1: expr : ( assign_expr -> ^( EXPR assign_expr ) | quantifier_expr -> ^( EXPR quantifier_expr ) );
public final MiniMPParser.expr_return expr() throws RecognitionException {
MiniMPParser.expr_return retval = new MiniMPParser.expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope assign_expr366 =null;
ParserRuleReturnScope quantifier_expr367 =null;
RewriteRuleSubtreeStream stream_quantifier_expr=new RewriteRuleSubtreeStream(adaptor,"rule quantifier_expr");
RewriteRuleSubtreeStream stream_assign_expr=new RewriteRuleSubtreeStream(adaptor,"rule assign_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:493:2: ( assign_expr -> ^( EXPR assign_expr ) | quantifier_expr -> ^( EXPR quantifier_expr ) )
int alt73=2;
int LA73_0 = input.LA(1);
if ( (LA73_0==ADDR_OF||LA73_0==CHAR_LITERAL||LA73_0==DERIVATIVE||(LA73_0 >= DOUBLE_PLUS && LA73_0 <= DOUBLE_SUB)||LA73_0==FALSE||LA73_0==IDENTIFIER||LA73_0==INT_LITERAL||LA73_0==LPAREN||LA73_0==MULTI||LA73_0==NOT||LA73_0==PLUS||LA73_0==REAL_LITERAL||LA73_0==SIZEOF||LA73_0==SPEC||LA73_0==STRING_LITERAL||LA73_0==SUB||LA73_0==SYS_VAR||LA73_0==TRUE) ) {
alt73=1;
}
else if ( (LA73_0==EXISTS||LA73_0==FORALL) ) {
alt73=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 73, 0, input);
throw nvae;
}
switch (alt73) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:493:4: assign_expr
{
pushFollow(FOLLOW_assign_expr_in_expr3409);
assign_expr366=assign_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assign_expr.add(assign_expr366.getTree());
// AST REWRITE
// elements: assign_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 493:16: -> ^( EXPR assign_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:493:19: ^( EXPR assign_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXPR, "EXPR"), root_1);
adaptor.addChild(root_1, stream_assign_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:494:4: quantifier_expr
{
pushFollow(FOLLOW_quantifier_expr_in_expr3422);
quantifier_expr367=quantifier_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifier_expr.add(quantifier_expr367.getTree());
// AST REWRITE
// elements: quantifier_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 494:20: -> ^( EXPR quantifier_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:494:23: ^( EXPR quantifier_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXPR, "EXPR"), root_1);
adaptor.addChild(root_1, stream_quantifier_expr.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 "expr"
public static class assign_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assign_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:497:1: assign_expr : ( unary_expr assign_operator assign_expr -> ^( ASSIGN_EXPR unary_expr assign_operator assign_expr ) | ifThenElse_expr -> ^( ASSIGN_EXPR ifThenElse_expr ) );
public final MiniMPParser.assign_expr_return assign_expr() throws RecognitionException {
MiniMPParser.assign_expr_return retval = new MiniMPParser.assign_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope unary_expr368 =null;
ParserRuleReturnScope assign_operator369 =null;
ParserRuleReturnScope assign_expr370 =null;
ParserRuleReturnScope ifThenElse_expr371 =null;
RewriteRuleSubtreeStream stream_unary_expr=new RewriteRuleSubtreeStream(adaptor,"rule unary_expr");
RewriteRuleSubtreeStream stream_assign_operator=new RewriteRuleSubtreeStream(adaptor,"rule assign_operator");
RewriteRuleSubtreeStream stream_ifThenElse_expr=new RewriteRuleSubtreeStream(adaptor,"rule ifThenElse_expr");
RewriteRuleSubtreeStream stream_assign_expr=new RewriteRuleSubtreeStream(adaptor,"rule assign_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:498:2: ( unary_expr assign_operator assign_expr -> ^( ASSIGN_EXPR unary_expr assign_operator assign_expr ) | ifThenElse_expr -> ^( ASSIGN_EXPR ifThenElse_expr ) )
int alt74=2;
switch ( input.LA(1) ) {
case TRUE:
{
int LA74_1 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case FALSE:
{
int LA74_2 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case INT_LITERAL:
{
int LA74_3 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case REAL_LITERAL:
{
int LA74_4 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case CHAR_LITERAL:
{
int LA74_5 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case STRING_LITERAL:
{
int LA74_6 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case SYS_VAR:
{
int LA74_7 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case IDENTIFIER:
{
int LA74_8 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case LPAREN:
{
int LA74_9 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case SPEC:
{
int LA74_10 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case DERIVATIVE:
{
int LA74_11 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case PLUS:
{
int LA74_12 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case SUB:
{
int LA74_13 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case NOT:
{
int LA74_14 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case MULTI:
{
int LA74_15 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case ADDR_OF:
{
int LA74_16 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case DOUBLE_PLUS:
{
int LA74_17 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case DOUBLE_SUB:
{
int LA74_18 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
case SIZEOF:
{
int LA74_19 = input.LA(2);
if ( (synpred107_MiniMP()) ) {
alt74=1;
}
else if ( (true) ) {
alt74=2;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 74, 0, input);
throw nvae;
}
switch (alt74) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:498:4: unary_expr assign_operator assign_expr
{
pushFollow(FOLLOW_unary_expr_in_assign_expr3442);
unary_expr368=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr368.getTree());
pushFollow(FOLLOW_assign_operator_in_assign_expr3444);
assign_operator369=assign_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assign_operator.add(assign_operator369.getTree());
pushFollow(FOLLOW_assign_expr_in_assign_expr3446);
assign_expr370=assign_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assign_expr.add(assign_expr370.getTree());
// AST REWRITE
// elements: assign_expr, assign_operator, unary_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 499:3: -> ^( ASSIGN_EXPR unary_expr assign_operator assign_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:499:6: ^( ASSIGN_EXPR unary_expr assign_operator assign_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ASSIGN_EXPR, "ASSIGN_EXPR"), root_1);
adaptor.addChild(root_1, stream_unary_expr.nextTree());
adaptor.addChild(root_1, stream_assign_operator.nextTree());
adaptor.addChild(root_1, stream_assign_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:500:4: ifThenElse_expr
{
pushFollow(FOLLOW_ifThenElse_expr_in_assign_expr3466);
ifThenElse_expr371=ifThenElse_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ifThenElse_expr.add(ifThenElse_expr371.getTree());
// AST REWRITE
// elements: ifThenElse_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 501:3: -> ^( ASSIGN_EXPR ifThenElse_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:501:6: ^( ASSIGN_EXPR ifThenElse_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ASSIGN_EXPR, "ASSIGN_EXPR"), root_1);
adaptor.addChild(root_1, stream_ifThenElse_expr.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 "assign_expr"
public static class ifThenElse_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "ifThenElse_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:504:1: ifThenElse_expr : pred= logical_or_expr ( QMARK trueBranch= expr COLON falseBranch= expr )? -> ^( IFTHENELSE_EXPR $pred ( $trueBranch $falseBranch)? ) ;
public final MiniMPParser.ifThenElse_expr_return ifThenElse_expr() throws RecognitionException {
MiniMPParser.ifThenElse_expr_return retval = new MiniMPParser.ifThenElse_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token QMARK372=null;
Token COLON373=null;
ParserRuleReturnScope pred =null;
ParserRuleReturnScope trueBranch =null;
ParserRuleReturnScope falseBranch =null;
Object QMARK372_tree=null;
Object COLON373_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_QMARK=new RewriteRuleTokenStream(adaptor,"token QMARK");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_logical_or_expr=new RewriteRuleSubtreeStream(adaptor,"rule logical_or_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:505:2: (pred= logical_or_expr ( QMARK trueBranch= expr COLON falseBranch= expr )? -> ^( IFTHENELSE_EXPR $pred ( $trueBranch $falseBranch)? ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:505:4: pred= logical_or_expr ( QMARK trueBranch= expr COLON falseBranch= expr )?
{
pushFollow(FOLLOW_logical_or_expr_in_ifThenElse_expr3489);
pred=logical_or_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logical_or_expr.add(pred.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:505:25: ( QMARK trueBranch= expr COLON falseBranch= expr )?
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==QMARK) ) {
alt75=1;
}
switch (alt75) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:505:26: QMARK trueBranch= expr COLON falseBranch= expr
{
QMARK372=(Token)match(input,QMARK,FOLLOW_QMARK_in_ifThenElse_expr3492); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_QMARK.add(QMARK372);
pushFollow(FOLLOW_expr_in_ifThenElse_expr3496);
trueBranch=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(trueBranch.getTree());
COLON373=(Token)match(input,COLON,FOLLOW_COLON_in_ifThenElse_expr3498); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON373);
pushFollow(FOLLOW_expr_in_ifThenElse_expr3502);
falseBranch=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(falseBranch.getTree());
}
break;
}
// AST REWRITE
// elements: pred, trueBranch, falseBranch
// token labels:
// rule labels: trueBranch, retval, falseBranch, pred
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_trueBranch=new RewriteRuleSubtreeStream(adaptor,"rule trueBranch",trueBranch!=null?trueBranch.getTree():null);
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
RewriteRuleSubtreeStream stream_falseBranch=new RewriteRuleSubtreeStream(adaptor,"rule falseBranch",falseBranch!=null?falseBranch.getTree():null);
RewriteRuleSubtreeStream stream_pred=new RewriteRuleSubtreeStream(adaptor,"rule pred",pred!=null?pred.getTree():null);
root_0 = (Object)adaptor.nil();
// 506:3: -> ^( IFTHENELSE_EXPR $pred ( $trueBranch $falseBranch)? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:506:6: ^( IFTHENELSE_EXPR $pred ( $trueBranch $falseBranch)? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(IFTHENELSE_EXPR, "IFTHENELSE_EXPR"), root_1);
adaptor.addChild(root_1, stream_pred.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:506:30: ( $trueBranch $falseBranch)?
if ( stream_trueBranch.hasNext()||stream_falseBranch.hasNext() ) {
adaptor.addChild(root_1, stream_trueBranch.nextTree());
adaptor.addChild(root_1, stream_falseBranch.nextTree());
}
stream_trueBranch.reset();
stream_falseBranch.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 "ifThenElse_expr"
public static class quantifier_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "quantifier_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:509:1: quantifier_expr : ( quantifier LCURLY simple_type IDENTIFIER RCURLY expr -> ^( QUANTIFIER_EXPR quantifier simple_type IDENTIFIER expr ) | quantifier LCURLY simple_type IDENTIFIER BAR logical_or_expr RCURLY expr -> ^( QUANTIFIER_EXPR quantifier simple_type IDENTIFIER BAR logical_or_expr expr ) );
public final MiniMPParser.quantifier_expr_return quantifier_expr() throws RecognitionException {
MiniMPParser.quantifier_expr_return retval = new MiniMPParser.quantifier_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY375=null;
Token IDENTIFIER377=null;
Token RCURLY378=null;
Token LCURLY381=null;
Token IDENTIFIER383=null;
Token BAR384=null;
Token RCURLY386=null;
ParserRuleReturnScope quantifier374 =null;
ParserRuleReturnScope simple_type376 =null;
ParserRuleReturnScope expr379 =null;
ParserRuleReturnScope quantifier380 =null;
ParserRuleReturnScope simple_type382 =null;
ParserRuleReturnScope logical_or_expr385 =null;
ParserRuleReturnScope expr387 =null;
Object LCURLY375_tree=null;
Object IDENTIFIER377_tree=null;
Object RCURLY378_tree=null;
Object LCURLY381_tree=null;
Object IDENTIFIER383_tree=null;
Object BAR384_tree=null;
Object RCURLY386_tree=null;
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_BAR=new RewriteRuleTokenStream(adaptor,"token BAR");
RewriteRuleTokenStream stream_RCURLY=new RewriteRuleTokenStream(adaptor,"token RCURLY");
RewriteRuleSubtreeStream stream_quantifier=new RewriteRuleSubtreeStream(adaptor,"rule quantifier");
RewriteRuleSubtreeStream stream_simple_type=new RewriteRuleSubtreeStream(adaptor,"rule simple_type");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_logical_or_expr=new RewriteRuleSubtreeStream(adaptor,"rule logical_or_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:510:2: ( quantifier LCURLY simple_type IDENTIFIER RCURLY expr -> ^( QUANTIFIER_EXPR quantifier simple_type IDENTIFIER expr ) | quantifier LCURLY simple_type IDENTIFIER BAR logical_or_expr RCURLY expr -> ^( QUANTIFIER_EXPR quantifier simple_type IDENTIFIER BAR logical_or_expr expr ) )
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==FORALL) ) {
int LA76_1 = input.LA(2);
if ( (LA76_1==LCURLY) ) {
switch ( input.LA(3) ) {
case BOOLEAN:
{
int LA76_4 = input.LA(4);
if ( (LA76_4==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
{
int LA76_5 = input.LA(4);
if ( (LA76_5==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INT:
{
int LA76_6 = input.LA(4);
if ( (LA76_6==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FLOAT:
{
int LA76_7 = input.LA(4);
if ( (LA76_7==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOUBLE:
{
int LA76_8 = input.LA(4);
if ( (LA76_8==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case VOID:
{
int LA76_9 = input.LA(4);
if ( (LA76_9==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 9, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
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("", 76, 3, 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("", 76, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA76_0==EXISTS) ) {
int LA76_2 = input.LA(2);
if ( (LA76_2==LCURLY) ) {
switch ( input.LA(3) ) {
case BOOLEAN:
{
int LA76_4 = input.LA(4);
if ( (LA76_4==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CHAR:
{
int LA76_5 = input.LA(4);
if ( (LA76_5==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INT:
{
int LA76_6 = input.LA(4);
if ( (LA76_6==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case FLOAT:
{
int LA76_7 = input.LA(4);
if ( (LA76_7==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 7, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case DOUBLE:
{
int LA76_8 = input.LA(4);
if ( (LA76_8==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case VOID:
{
int LA76_9 = input.LA(4);
if ( (LA76_9==IDENTIFIER) ) {
int LA76_10 = input.LA(5);
if ( (LA76_10==RCURLY) ) {
alt76=1;
}
else if ( (LA76_10==BAR) ) {
alt76=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 5 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 10, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 76, 9, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
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("", 76, 3, 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("", 76, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 76, 0, input);
throw nvae;
}
switch (alt76) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:510:4: quantifier LCURLY simple_type IDENTIFIER RCURLY expr
{
pushFollow(FOLLOW_quantifier_in_quantifier_expr3536);
quantifier374=quantifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifier.add(quantifier374.getTree());
LCURLY375=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_quantifier_expr3538); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY375);
pushFollow(FOLLOW_simple_type_in_quantifier_expr3540);
simple_type376=simple_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_simple_type.add(simple_type376.getTree());
IDENTIFIER377=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_quantifier_expr3542); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER377);
RCURLY378=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_quantifier_expr3544); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY378);
pushFollow(FOLLOW_expr_in_quantifier_expr3546);
expr379=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr379.getTree());
// AST REWRITE
// elements: quantifier, expr, simple_type, 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();
// 511:3: -> ^( QUANTIFIER_EXPR quantifier simple_type IDENTIFIER expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:511:6: ^( QUANTIFIER_EXPR quantifier simple_type IDENTIFIER expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QUANTIFIER_EXPR, "QUANTIFIER_EXPR"), root_1);
adaptor.addChild(root_1, stream_quantifier.nextTree());
adaptor.addChild(root_1, stream_simple_type.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:512:4: quantifier LCURLY simple_type IDENTIFIER BAR logical_or_expr RCURLY expr
{
pushFollow(FOLLOW_quantifier_in_quantifier_expr3567);
quantifier380=quantifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifier.add(quantifier380.getTree());
LCURLY381=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_quantifier_expr3569); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY381);
pushFollow(FOLLOW_simple_type_in_quantifier_expr3571);
simple_type382=simple_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_simple_type.add(simple_type382.getTree());
IDENTIFIER383=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_quantifier_expr3573); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER383);
BAR384=(Token)match(input,BAR,FOLLOW_BAR_in_quantifier_expr3575); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BAR.add(BAR384);
pushFollow(FOLLOW_logical_or_expr_in_quantifier_expr3577);
logical_or_expr385=logical_or_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logical_or_expr.add(logical_or_expr385.getTree());
RCURLY386=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_quantifier_expr3579); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY386);
pushFollow(FOLLOW_expr_in_quantifier_expr3581);
expr387=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr387.getTree());
// AST REWRITE
// elements: IDENTIFIER, BAR, expr, simple_type, logical_or_expr, quantifier
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 513:3: -> ^( QUANTIFIER_EXPR quantifier simple_type IDENTIFIER BAR logical_or_expr expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:513:6: ^( QUANTIFIER_EXPR quantifier simple_type IDENTIFIER BAR logical_or_expr expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QUANTIFIER_EXPR, "QUANTIFIER_EXPR"), root_1);
adaptor.addChild(root_1, stream_quantifier.nextTree());
adaptor.addChild(root_1, stream_simple_type.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_BAR.nextNode());
adaptor.addChild(root_1, stream_logical_or_expr.nextTree());
adaptor.addChild(root_1, stream_expr.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 "quantifier_expr"
public static class quantifier_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "quantifier"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:516:1: quantifier : ( FORALL -> ^( QUANTIFIER FORALL ) | EXISTS -> ^( QUANTIFIER EXISTS ) );
public final MiniMPParser.quantifier_return quantifier() throws RecognitionException {
MiniMPParser.quantifier_return retval = new MiniMPParser.quantifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FORALL388=null;
Token EXISTS389=null;
Object FORALL388_tree=null;
Object EXISTS389_tree=null;
RewriteRuleTokenStream stream_FORALL=new RewriteRuleTokenStream(adaptor,"token FORALL");
RewriteRuleTokenStream stream_EXISTS=new RewriteRuleTokenStream(adaptor,"token EXISTS");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:517:2: ( FORALL -> ^( QUANTIFIER FORALL ) | EXISTS -> ^( QUANTIFIER EXISTS ) )
int alt77=2;
int LA77_0 = input.LA(1);
if ( (LA77_0==FORALL) ) {
alt77=1;
}
else if ( (LA77_0==EXISTS) ) {
alt77=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 77, 0, input);
throw nvae;
}
switch (alt77) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:517:4: FORALL
{
FORALL388=(Token)match(input,FORALL,FOLLOW_FORALL_in_quantifier3613); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FORALL.add(FORALL388);
// AST REWRITE
// elements: FORALL
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 517:11: -> ^( QUANTIFIER FORALL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:517:14: ^( QUANTIFIER FORALL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QUANTIFIER, "QUANTIFIER"), root_1);
adaptor.addChild(root_1, stream_FORALL.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:518:4: EXISTS
{
EXISTS389=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_quantifier3626); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXISTS.add(EXISTS389);
// AST REWRITE
// elements: EXISTS
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 518:11: -> ^( QUANTIFIER EXISTS )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:518:14: ^( QUANTIFIER EXISTS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(QUANTIFIER, "QUANTIFIER"), root_1);
adaptor.addChild(root_1, stream_EXISTS.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 "quantifier"
public static class logical_or_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logical_or_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:521:1: logical_or_expr : logical_and_expr ( OR logical_and_expr )* -> ^( LOGICAL_OR_EXPR logical_and_expr ( OR logical_and_expr )* ) ;
public final MiniMPParser.logical_or_expr_return logical_or_expr() throws RecognitionException {
MiniMPParser.logical_or_expr_return retval = new MiniMPParser.logical_or_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token OR391=null;
ParserRuleReturnScope logical_and_expr390 =null;
ParserRuleReturnScope logical_and_expr392 =null;
Object OR391_tree=null;
RewriteRuleTokenStream stream_OR=new RewriteRuleTokenStream(adaptor,"token OR");
RewriteRuleSubtreeStream stream_logical_and_expr=new RewriteRuleSubtreeStream(adaptor,"rule logical_and_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:522:2: ( logical_and_expr ( OR logical_and_expr )* -> ^( LOGICAL_OR_EXPR logical_and_expr ( OR logical_and_expr )* ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:522:4: logical_and_expr ( OR logical_and_expr )*
{
pushFollow(FOLLOW_logical_and_expr_in_logical_or_expr3645);
logical_and_expr390=logical_and_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logical_and_expr.add(logical_and_expr390.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:522:21: ( OR logical_and_expr )*
loop78:
while (true) {
int alt78=2;
int LA78_0 = input.LA(1);
if ( (LA78_0==OR) ) {
alt78=1;
}
switch (alt78) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:522:22: OR logical_and_expr
{
OR391=(Token)match(input,OR,FOLLOW_OR_in_logical_or_expr3648); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_OR.add(OR391);
pushFollow(FOLLOW_logical_and_expr_in_logical_or_expr3650);
logical_and_expr392=logical_and_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logical_and_expr.add(logical_and_expr392.getTree());
}
break;
default :
break loop78;
}
}
// AST REWRITE
// elements: logical_and_expr, OR, logical_and_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 523:3: -> ^( LOGICAL_OR_EXPR logical_and_expr ( OR logical_and_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:523:6: ^( LOGICAL_OR_EXPR logical_and_expr ( OR logical_and_expr )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOGICAL_OR_EXPR, "LOGICAL_OR_EXPR"), root_1);
adaptor.addChild(root_1, stream_logical_and_expr.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:523:41: ( OR logical_and_expr )*
while ( stream_logical_and_expr.hasNext()||stream_OR.hasNext() ) {
adaptor.addChild(root_1, stream_OR.nextNode());
adaptor.addChild(root_1, stream_logical_and_expr.nextTree());
}
stream_logical_and_expr.reset();
stream_OR.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 "logical_or_expr"
public static class logical_and_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "logical_and_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:526:1: logical_and_expr : equality_expr ( AND equality_expr )* -> ^( LOGICAL_AND_EXPR equality_expr ( AND equality_expr )* ) ;
public final MiniMPParser.logical_and_expr_return logical_and_expr() throws RecognitionException {
MiniMPParser.logical_and_expr_return retval = new MiniMPParser.logical_and_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AND394=null;
ParserRuleReturnScope equality_expr393 =null;
ParserRuleReturnScope equality_expr395 =null;
Object AND394_tree=null;
RewriteRuleTokenStream stream_AND=new RewriteRuleTokenStream(adaptor,"token AND");
RewriteRuleSubtreeStream stream_equality_expr=new RewriteRuleSubtreeStream(adaptor,"rule equality_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:527:2: ( equality_expr ( AND equality_expr )* -> ^( LOGICAL_AND_EXPR equality_expr ( AND equality_expr )* ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:527:4: equality_expr ( AND equality_expr )*
{
pushFollow(FOLLOW_equality_expr_in_logical_and_expr3681);
equality_expr393=equality_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equality_expr.add(equality_expr393.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:527:18: ( AND equality_expr )*
loop79:
while (true) {
int alt79=2;
int LA79_0 = input.LA(1);
if ( (LA79_0==AND) ) {
alt79=1;
}
switch (alt79) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:527:19: AND equality_expr
{
AND394=(Token)match(input,AND,FOLLOW_AND_in_logical_and_expr3684); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AND.add(AND394);
pushFollow(FOLLOW_equality_expr_in_logical_and_expr3686);
equality_expr395=equality_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equality_expr.add(equality_expr395.getTree());
}
break;
default :
break loop79;
}
}
// AST REWRITE
// elements: equality_expr, AND, equality_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 528:3: -> ^( LOGICAL_AND_EXPR equality_expr ( AND equality_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:528:6: ^( LOGICAL_AND_EXPR equality_expr ( AND equality_expr )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LOGICAL_AND_EXPR, "LOGICAL_AND_EXPR"), root_1);
adaptor.addChild(root_1, stream_equality_expr.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:528:39: ( AND equality_expr )*
while ( stream_equality_expr.hasNext()||stream_AND.hasNext() ) {
adaptor.addChild(root_1, stream_AND.nextNode());
adaptor.addChild(root_1, stream_equality_expr.nextTree());
}
stream_equality_expr.reset();
stream_AND.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 "logical_and_expr"
public static class equality_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "equality_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:531:1: equality_expr : relational_expr ( equality_operator relational_expr )* -> ^( EQUALITY_EXPR relational_expr ( equality_operator relational_expr )* ) ;
public final MiniMPParser.equality_expr_return equality_expr() throws RecognitionException {
MiniMPParser.equality_expr_return retval = new MiniMPParser.equality_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope relational_expr396 =null;
ParserRuleReturnScope equality_operator397 =null;
ParserRuleReturnScope relational_expr398 =null;
RewriteRuleSubtreeStream stream_relational_expr=new RewriteRuleSubtreeStream(adaptor,"rule relational_expr");
RewriteRuleSubtreeStream stream_equality_operator=new RewriteRuleSubtreeStream(adaptor,"rule equality_operator");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:532:2: ( relational_expr ( equality_operator relational_expr )* -> ^( EQUALITY_EXPR relational_expr ( equality_operator relational_expr )* ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:532:4: relational_expr ( equality_operator relational_expr )*
{
pushFollow(FOLLOW_relational_expr_in_equality_expr3717);
relational_expr396=relational_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relational_expr.add(relational_expr396.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:532:20: ( equality_operator relational_expr )*
loop80:
while (true) {
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==EQ||LA80_0==NEQ) ) {
alt80=1;
}
switch (alt80) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:532:21: equality_operator relational_expr
{
pushFollow(FOLLOW_equality_operator_in_equality_expr3720);
equality_operator397=equality_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equality_operator.add(equality_operator397.getTree());
pushFollow(FOLLOW_relational_expr_in_equality_expr3722);
relational_expr398=relational_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relational_expr.add(relational_expr398.getTree());
}
break;
default :
break loop80;
}
}
// AST REWRITE
// elements: equality_operator, relational_expr, relational_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 533:3: -> ^( EQUALITY_EXPR relational_expr ( equality_operator relational_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:533:6: ^( EQUALITY_EXPR relational_expr ( equality_operator relational_expr )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EQUALITY_EXPR, "EQUALITY_EXPR"), root_1);
adaptor.addChild(root_1, stream_relational_expr.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:533:38: ( equality_operator relational_expr )*
while ( stream_equality_operator.hasNext()||stream_relational_expr.hasNext() ) {
adaptor.addChild(root_1, stream_equality_operator.nextTree());
adaptor.addChild(root_1, stream_relational_expr.nextTree());
}
stream_equality_operator.reset();
stream_relational_expr.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 "equality_expr"
public static class equality_operator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "equality_operator"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:536:1: equality_operator : ( EQ | NEQ );
public final MiniMPParser.equality_operator_return equality_operator() throws RecognitionException {
MiniMPParser.equality_operator_return retval = new MiniMPParser.equality_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set399=null;
Object set399_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:537:2: ( EQ | NEQ )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:
{
root_0 = (Object)adaptor.nil();
set399=input.LT(1);
if ( input.LA(1)==EQ||input.LA(1)==NEQ ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set399));
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 "equality_operator"
public static class relational_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "relational_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:541:1: relational_expr : additive_expr ( relational_operator additive_expr )* -> ^( RELATIONAL_EXPR additive_expr ( relational_operator additive_expr )* ) ;
public final MiniMPParser.relational_expr_return relational_expr() throws RecognitionException {
MiniMPParser.relational_expr_return retval = new MiniMPParser.relational_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope additive_expr400 =null;
ParserRuleReturnScope relational_operator401 =null;
ParserRuleReturnScope additive_expr402 =null;
RewriteRuleSubtreeStream stream_additive_expr=new RewriteRuleSubtreeStream(adaptor,"rule additive_expr");
RewriteRuleSubtreeStream stream_relational_operator=new RewriteRuleSubtreeStream(adaptor,"rule relational_operator");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:542:2: ( additive_expr ( relational_operator additive_expr )* -> ^( RELATIONAL_EXPR additive_expr ( relational_operator additive_expr )* ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:542:4: additive_expr ( relational_operator additive_expr )*
{
pushFollow(FOLLOW_additive_expr_in_relational_expr3769);
additive_expr400=additive_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additive_expr.add(additive_expr400.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:542:18: ( relational_operator additive_expr )*
loop81:
while (true) {
int alt81=2;
int LA81_0 = input.LA(1);
if ( ((LA81_0 >= GT && LA81_0 <= GTE)||(LA81_0 >= LT && LA81_0 <= LTE)) ) {
alt81=1;
}
switch (alt81) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:542:19: relational_operator additive_expr
{
pushFollow(FOLLOW_relational_operator_in_relational_expr3772);
relational_operator401=relational_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relational_operator.add(relational_operator401.getTree());
pushFollow(FOLLOW_additive_expr_in_relational_expr3774);
additive_expr402=additive_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additive_expr.add(additive_expr402.getTree());
}
break;
default :
break loop81;
}
}
// AST REWRITE
// elements: additive_expr, relational_operator, additive_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 543:3: -> ^( RELATIONAL_EXPR additive_expr ( relational_operator additive_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:543:6: ^( RELATIONAL_EXPR additive_expr ( relational_operator additive_expr )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(RELATIONAL_EXPR, "RELATIONAL_EXPR"), root_1);
adaptor.addChild(root_1, stream_additive_expr.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:543:38: ( relational_operator additive_expr )*
while ( stream_additive_expr.hasNext()||stream_relational_operator.hasNext() ) {
adaptor.addChild(root_1, stream_relational_operator.nextTree());
adaptor.addChild(root_1, stream_additive_expr.nextTree());
}
stream_additive_expr.reset();
stream_relational_operator.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 "relational_expr"
public static class relational_operator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "relational_operator"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:546:1: relational_operator : ( LT | GT | LTE | GTE );
public final MiniMPParser.relational_operator_return relational_operator() throws RecognitionException {
MiniMPParser.relational_operator_return retval = new MiniMPParser.relational_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set403=null;
Object set403_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:547:2: ( LT | GT | LTE | GTE )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:
{
root_0 = (Object)adaptor.nil();
set403=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(set403));
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 "relational_operator"
public static class additive_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "additive_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:553:1: additive_expr : multi_expr ( additive_operator multi_expr )* -> ^( ADDITIVE_EXPR multi_expr ( additive_operator multi_expr )* ) ;
public final MiniMPParser.additive_expr_return additive_expr() throws RecognitionException {
MiniMPParser.additive_expr_return retval = new MiniMPParser.additive_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope multi_expr404 =null;
ParserRuleReturnScope additive_operator405 =null;
ParserRuleReturnScope multi_expr406 =null;
RewriteRuleSubtreeStream stream_additive_operator=new RewriteRuleSubtreeStream(adaptor,"rule additive_operator");
RewriteRuleSubtreeStream stream_multi_expr=new RewriteRuleSubtreeStream(adaptor,"rule multi_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:554:2: ( multi_expr ( additive_operator multi_expr )* -> ^( ADDITIVE_EXPR multi_expr ( additive_operator multi_expr )* ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:554:4: multi_expr ( additive_operator multi_expr )*
{
pushFollow(FOLLOW_multi_expr_in_additive_expr3831);
multi_expr404=multi_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multi_expr.add(multi_expr404.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:554:15: ( additive_operator multi_expr )*
loop82:
while (true) {
int alt82=2;
int LA82_0 = input.LA(1);
if ( (LA82_0==PLUS) ) {
int LA82_42 = input.LA(2);
if ( (synpred119_MiniMP()) ) {
alt82=1;
}
}
else if ( (LA82_0==SUB) ) {
int LA82_43 = input.LA(2);
if ( (synpred119_MiniMP()) ) {
alt82=1;
}
}
switch (alt82) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:554:16: additive_operator multi_expr
{
pushFollow(FOLLOW_additive_operator_in_additive_expr3834);
additive_operator405=additive_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additive_operator.add(additive_operator405.getTree());
pushFollow(FOLLOW_multi_expr_in_additive_expr3836);
multi_expr406=multi_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multi_expr.add(multi_expr406.getTree());
}
break;
default :
break loop82;
}
}
// AST REWRITE
// elements: multi_expr, multi_expr, additive_operator
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 555:3: -> ^( ADDITIVE_EXPR multi_expr ( additive_operator multi_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:555:6: ^( ADDITIVE_EXPR multi_expr ( additive_operator multi_expr )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ADDITIVE_EXPR, "ADDITIVE_EXPR"), root_1);
adaptor.addChild(root_1, stream_multi_expr.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:555:33: ( additive_operator multi_expr )*
while ( stream_multi_expr.hasNext()||stream_additive_operator.hasNext() ) {
adaptor.addChild(root_1, stream_additive_operator.nextTree());
adaptor.addChild(root_1, stream_multi_expr.nextTree());
}
stream_multi_expr.reset();
stream_additive_operator.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 "additive_expr"
public static class additive_operator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "additive_operator"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:558:1: additive_operator : ( PLUS | SUB );
public final MiniMPParser.additive_operator_return additive_operator() throws RecognitionException {
MiniMPParser.additive_operator_return retval = new MiniMPParser.additive_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set407=null;
Object set407_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:559:2: ( PLUS | SUB )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:
{
root_0 = (Object)adaptor.nil();
set407=input.LT(1);
if ( input.LA(1)==PLUS||input.LA(1)==SUB ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set407));
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 "additive_operator"
public static class multi_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "multi_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:563:1: multi_expr : unary_expr ( multi_operator unary_expr )* -> ^( MULTIPLICATIVE_EXPR unary_expr ( multi_operator unary_expr )* ) ;
public final MiniMPParser.multi_expr_return multi_expr() throws RecognitionException {
MiniMPParser.multi_expr_return retval = new MiniMPParser.multi_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope unary_expr408 =null;
ParserRuleReturnScope multi_operator409 =null;
ParserRuleReturnScope unary_expr410 =null;
RewriteRuleSubtreeStream stream_unary_expr=new RewriteRuleSubtreeStream(adaptor,"rule unary_expr");
RewriteRuleSubtreeStream stream_multi_operator=new RewriteRuleSubtreeStream(adaptor,"rule multi_operator");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:564:2: ( unary_expr ( multi_operator unary_expr )* -> ^( MULTIPLICATIVE_EXPR unary_expr ( multi_operator unary_expr )* ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:564:4: unary_expr ( multi_operator unary_expr )*
{
pushFollow(FOLLOW_unary_expr_in_multi_expr3883);
unary_expr408=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr408.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:564:15: ( multi_operator unary_expr )*
loop83:
while (true) {
int alt83=2;
int LA83_0 = input.LA(1);
if ( (LA83_0==MULTI) ) {
int LA83_45 = input.LA(2);
if ( (synpred121_MiniMP()) ) {
alt83=1;
}
}
else if ( (LA83_0==DIV||LA83_0==MOD) ) {
alt83=1;
}
switch (alt83) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:564:16: multi_operator unary_expr
{
pushFollow(FOLLOW_multi_operator_in_multi_expr3886);
multi_operator409=multi_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multi_operator.add(multi_operator409.getTree());
pushFollow(FOLLOW_unary_expr_in_multi_expr3888);
unary_expr410=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr410.getTree());
}
break;
default :
break loop83;
}
}
// AST REWRITE
// elements: unary_expr, unary_expr, multi_operator
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 565:3: -> ^( MULTIPLICATIVE_EXPR unary_expr ( multi_operator unary_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:565:6: ^( MULTIPLICATIVE_EXPR unary_expr ( multi_operator unary_expr )* )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(MULTIPLICATIVE_EXPR, "MULTIPLICATIVE_EXPR"), root_1);
adaptor.addChild(root_1, stream_unary_expr.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:565:39: ( multi_operator unary_expr )*
while ( stream_unary_expr.hasNext()||stream_multi_operator.hasNext() ) {
adaptor.addChild(root_1, stream_multi_operator.nextTree());
adaptor.addChild(root_1, stream_unary_expr.nextTree());
}
stream_unary_expr.reset();
stream_multi_operator.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 "multi_expr"
public static class multi_operator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "multi_operator"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:568:1: multi_operator : ( MULTI | DIV | MOD );
public final MiniMPParser.multi_operator_return multi_operator() throws RecognitionException {
MiniMPParser.multi_operator_return retval = new MiniMPParser.multi_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set411=null;
Object set411_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:569:2: ( MULTI | DIV | MOD )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:
{
root_0 = (Object)adaptor.nil();
set411=input.LT(1);
if ( input.LA(1)==DIV||input.LA(1)==MOD||input.LA(1)==MULTI ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set411));
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 "multi_operator"
public static class assign_operator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "assign_operator"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:574:1: assign_operator : ( ASSIGN | PLUS_ASSIGN | SUB_ASSIGN | MULTI_ASSIGN | DIV_ASSIGN | MOD_ASSIGN );
public final MiniMPParser.assign_operator_return assign_operator() throws RecognitionException {
MiniMPParser.assign_operator_return retval = new MiniMPParser.assign_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set412=null;
Object set412_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:575:2: ( ASSIGN | PLUS_ASSIGN | SUB_ASSIGN | MULTI_ASSIGN | DIV_ASSIGN | MOD_ASSIGN )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:
{
root_0 = (Object)adaptor.nil();
set412=input.LT(1);
if ( input.LA(1)==ASSIGN||input.LA(1)==DIV_ASSIGN||input.LA(1)==MOD_ASSIGN||input.LA(1)==MULTI_ASSIGN||input.LA(1)==PLUS_ASSIGN||input.LA(1)==SUB_ASSIGN ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set412));
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 "assign_operator"
public static class unary_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unary_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:583:1: unary_expr : ( postfix_expr -> ^( UNARY_EXPR postfix_expr ) | unary_operator unary_expr -> ^( UNARY_EXPR unary_operator unary_expr ) | self_change_op unary_expr -> ^( UNARY_EXPR self_change_op unary_expr ) | SIZEOF LPAREN type_name RPAREN -> ^( UNARY_EXPR SIZEOF type_name ) | SIZEOF unary_expr -> ^( UNARY_EXPR SIZEOF unary_expr ) | LPAREN type_name RPAREN unary_expr -> ^( UNARY_EXPR CAST type_name unary_expr ) );
public final MiniMPParser.unary_expr_return unary_expr() throws RecognitionException {
MiniMPParser.unary_expr_return retval = new MiniMPParser.unary_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SIZEOF418=null;
Token LPAREN419=null;
Token RPAREN421=null;
Token SIZEOF422=null;
Token LPAREN424=null;
Token RPAREN426=null;
ParserRuleReturnScope postfix_expr413 =null;
ParserRuleReturnScope unary_operator414 =null;
ParserRuleReturnScope unary_expr415 =null;
ParserRuleReturnScope self_change_op416 =null;
ParserRuleReturnScope unary_expr417 =null;
ParserRuleReturnScope type_name420 =null;
ParserRuleReturnScope unary_expr423 =null;
ParserRuleReturnScope type_name425 =null;
ParserRuleReturnScope unary_expr427 =null;
Object SIZEOF418_tree=null;
Object LPAREN419_tree=null;
Object RPAREN421_tree=null;
Object SIZEOF422_tree=null;
Object LPAREN424_tree=null;
Object RPAREN426_tree=null;
RewriteRuleTokenStream stream_SIZEOF=new RewriteRuleTokenStream(adaptor,"token SIZEOF");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_unary_expr=new RewriteRuleSubtreeStream(adaptor,"rule unary_expr");
RewriteRuleSubtreeStream stream_unary_operator=new RewriteRuleSubtreeStream(adaptor,"rule unary_operator");
RewriteRuleSubtreeStream stream_self_change_op=new RewriteRuleSubtreeStream(adaptor,"rule self_change_op");
RewriteRuleSubtreeStream stream_postfix_expr=new RewriteRuleSubtreeStream(adaptor,"rule postfix_expr");
RewriteRuleSubtreeStream stream_type_name=new RewriteRuleSubtreeStream(adaptor,"rule type_name");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:584:2: ( postfix_expr -> ^( UNARY_EXPR postfix_expr ) | unary_operator unary_expr -> ^( UNARY_EXPR unary_operator unary_expr ) | self_change_op unary_expr -> ^( UNARY_EXPR self_change_op unary_expr ) | SIZEOF LPAREN type_name RPAREN -> ^( UNARY_EXPR SIZEOF type_name ) | SIZEOF unary_expr -> ^( UNARY_EXPR SIZEOF unary_expr ) | LPAREN type_name RPAREN unary_expr -> ^( UNARY_EXPR CAST type_name unary_expr ) )
int alt84=6;
switch ( input.LA(1) ) {
case CHAR_LITERAL:
case DERIVATIVE:
case FALSE:
case IDENTIFIER:
case INT_LITERAL:
case REAL_LITERAL:
case SPEC:
case STRING_LITERAL:
case SYS_VAR:
case TRUE:
{
alt84=1;
}
break;
case LPAREN:
{
int LA84_9 = input.LA(2);
if ( (synpred129_MiniMP()) ) {
alt84=1;
}
else if ( (true) ) {
alt84=6;
}
}
break;
case ADDR_OF:
case MULTI:
case NOT:
case PLUS:
case SUB:
{
alt84=2;
}
break;
case DOUBLE_PLUS:
case DOUBLE_SUB:
{
alt84=3;
}
break;
case SIZEOF:
{
int LA84_19 = input.LA(2);
if ( (synpred132_MiniMP()) ) {
alt84=4;
}
else if ( (synpred133_MiniMP()) ) {
alt84=5;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 84, 19, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 84, 0, input);
throw nvae;
}
switch (alt84) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:584:4: postfix_expr
{
pushFollow(FOLLOW_postfix_expr_in_unary_expr3977);
postfix_expr413=postfix_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr.add(postfix_expr413.getTree());
// AST REWRITE
// elements: postfix_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 584:17: -> ^( UNARY_EXPR postfix_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:584:20: ^( UNARY_EXPR postfix_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNARY_EXPR, "UNARY_EXPR"), root_1);
adaptor.addChild(root_1, stream_postfix_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:585:4: unary_operator unary_expr
{
pushFollow(FOLLOW_unary_operator_in_unary_expr3990);
unary_operator414=unary_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_operator.add(unary_operator414.getTree());
pushFollow(FOLLOW_unary_expr_in_unary_expr3992);
unary_expr415=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr415.getTree());
// AST REWRITE
// elements: unary_operator, unary_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 585:30: -> ^( UNARY_EXPR unary_operator unary_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:585:33: ^( UNARY_EXPR unary_operator unary_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNARY_EXPR, "UNARY_EXPR"), root_1);
adaptor.addChild(root_1, stream_unary_operator.nextTree());
adaptor.addChild(root_1, stream_unary_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:586:4: self_change_op unary_expr
{
pushFollow(FOLLOW_self_change_op_in_unary_expr4007);
self_change_op416=self_change_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_self_change_op.add(self_change_op416.getTree());
pushFollow(FOLLOW_unary_expr_in_unary_expr4009);
unary_expr417=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr417.getTree());
// AST REWRITE
// elements: self_change_op, unary_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 586:30: -> ^( UNARY_EXPR self_change_op unary_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:586:33: ^( UNARY_EXPR self_change_op unary_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNARY_EXPR, "UNARY_EXPR"), root_1);
adaptor.addChild(root_1, stream_self_change_op.nextTree());
adaptor.addChild(root_1, stream_unary_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:587:4: SIZEOF LPAREN type_name RPAREN
{
SIZEOF418=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unary_expr4024); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF418);
LPAREN419=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unary_expr4026); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN419);
pushFollow(FOLLOW_type_name_in_unary_expr4028);
type_name420=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name420.getTree());
RPAREN421=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unary_expr4030); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN421);
// AST REWRITE
// elements: type_name, SIZEOF
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 587:35: -> ^( UNARY_EXPR SIZEOF type_name )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:587:38: ^( UNARY_EXPR SIZEOF type_name )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNARY_EXPR, "UNARY_EXPR"), root_1);
adaptor.addChild(root_1, stream_SIZEOF.nextNode());
adaptor.addChild(root_1, stream_type_name.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:588:4: SIZEOF unary_expr
{
SIZEOF422=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unary_expr4045); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF422);
pushFollow(FOLLOW_unary_expr_in_unary_expr4047);
unary_expr423=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr423.getTree());
// AST REWRITE
// elements: SIZEOF, unary_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 588:22: -> ^( UNARY_EXPR SIZEOF unary_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:588:25: ^( UNARY_EXPR SIZEOF unary_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNARY_EXPR, "UNARY_EXPR"), root_1);
adaptor.addChild(root_1, stream_SIZEOF.nextNode());
adaptor.addChild(root_1, stream_unary_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:589:4: LPAREN type_name RPAREN unary_expr
{
LPAREN424=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unary_expr4062); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN424);
pushFollow(FOLLOW_type_name_in_unary_expr4064);
type_name425=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name425.getTree());
RPAREN426=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unary_expr4066); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN426);
pushFollow(FOLLOW_unary_expr_in_unary_expr4068);
unary_expr427=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr427.getTree());
// AST REWRITE
// elements: unary_expr, type_name
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 589:39: -> ^( UNARY_EXPR CAST type_name unary_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:589:42: ^( UNARY_EXPR CAST type_name unary_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNARY_EXPR, "UNARY_EXPR"), root_1);
adaptor.addChild(root_1, (Object)adaptor.create(CAST, "CAST"));
adaptor.addChild(root_1, stream_type_name.nextTree());
adaptor.addChild(root_1, stream_unary_expr.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 "unary_expr"
public static class unary_operator_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "unary_operator"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:593:1: unary_operator : ( PLUS -> ^( UNARY_OP PLUS ) | SUB -> ^( UNARY_OP SUB ) | NOT -> ^( UNARY_OP NOT ) | MULTI -> ^( UNARY_OP MULTI ) | ADDR_OF -> ^( UNARY_OP ADDR_OF ) );
public final MiniMPParser.unary_operator_return unary_operator() throws RecognitionException {
MiniMPParser.unary_operator_return retval = new MiniMPParser.unary_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PLUS428=null;
Token SUB429=null;
Token NOT430=null;
Token MULTI431=null;
Token ADDR_OF432=null;
Object PLUS428_tree=null;
Object SUB429_tree=null;
Object NOT430_tree=null;
Object MULTI431_tree=null;
Object ADDR_OF432_tree=null;
RewriteRuleTokenStream stream_ADDR_OF=new RewriteRuleTokenStream(adaptor,"token ADDR_OF");
RewriteRuleTokenStream stream_SUB=new RewriteRuleTokenStream(adaptor,"token SUB");
RewriteRuleTokenStream stream_PLUS=new RewriteRuleTokenStream(adaptor,"token PLUS");
RewriteRuleTokenStream stream_MULTI=new RewriteRuleTokenStream(adaptor,"token MULTI");
RewriteRuleTokenStream stream_NOT=new RewriteRuleTokenStream(adaptor,"token NOT");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:594:2: ( PLUS -> ^( UNARY_OP PLUS ) | SUB -> ^( UNARY_OP SUB ) | NOT -> ^( UNARY_OP NOT ) | MULTI -> ^( UNARY_OP MULTI ) | ADDR_OF -> ^( UNARY_OP ADDR_OF ) )
int alt85=5;
switch ( input.LA(1) ) {
case PLUS:
{
alt85=1;
}
break;
case SUB:
{
alt85=2;
}
break;
case NOT:
{
alt85=3;
}
break;
case MULTI:
{
alt85=4;
}
break;
case ADDR_OF:
{
alt85=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 85, 0, input);
throw nvae;
}
switch (alt85) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:594:4: PLUS
{
PLUS428=(Token)match(input,PLUS,FOLLOW_PLUS_in_unary_operator4093); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS428);
// AST REWRITE
// elements: PLUS
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 594:9: -> ^( UNARY_OP PLUS )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:594:12: ^( UNARY_OP PLUS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNARY_OP, "UNARY_OP"), root_1);
adaptor.addChild(root_1, stream_PLUS.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:595:4: SUB
{
SUB429=(Token)match(input,SUB,FOLLOW_SUB_in_unary_operator4106); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUB.add(SUB429);
// AST REWRITE
// elements: SUB
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 595:8: -> ^( UNARY_OP SUB )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:595:11: ^( UNARY_OP SUB )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNARY_OP, "UNARY_OP"), root_1);
adaptor.addChild(root_1, stream_SUB.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:596:4: NOT
{
NOT430=(Token)match(input,NOT,FOLLOW_NOT_in_unary_operator4119); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NOT.add(NOT430);
// AST REWRITE
// elements: NOT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 596:8: -> ^( UNARY_OP NOT )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:596:11: ^( UNARY_OP NOT )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNARY_OP, "UNARY_OP"), root_1);
adaptor.addChild(root_1, stream_NOT.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:597:4: MULTI
{
MULTI431=(Token)match(input,MULTI,FOLLOW_MULTI_in_unary_operator4132); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MULTI.add(MULTI431);
// AST REWRITE
// elements: MULTI
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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:10: -> ^( UNARY_OP MULTI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:597:13: ^( UNARY_OP MULTI )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNARY_OP, "UNARY_OP"), root_1);
adaptor.addChild(root_1, stream_MULTI.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:598:4: ADDR_OF
{
ADDR_OF432=(Token)match(input,ADDR_OF,FOLLOW_ADDR_OF_in_unary_operator4145); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ADDR_OF.add(ADDR_OF432);
// AST REWRITE
// elements: ADDR_OF
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 598:12: -> ^( UNARY_OP ADDR_OF )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:598:15: ^( UNARY_OP ADDR_OF )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(UNARY_OP, "UNARY_OP"), root_1);
adaptor.addChild(root_1, stream_ADDR_OF.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 "unary_operator"
public static class spec_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "spec_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:601:1: spec_expr : SPEC DOT IDENTIFIER -> ^( SPEC_EXPR IDENTIFIER ) ;
public final MiniMPParser.spec_expr_return spec_expr() throws RecognitionException {
MiniMPParser.spec_expr_return retval = new MiniMPParser.spec_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SPEC433=null;
Token DOT434=null;
Token IDENTIFIER435=null;
Object SPEC433_tree=null;
Object DOT434_tree=null;
Object IDENTIFIER435_tree=null;
RewriteRuleTokenStream stream_SPEC=new RewriteRuleTokenStream(adaptor,"token SPEC");
RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:602:2: ( SPEC DOT IDENTIFIER -> ^( SPEC_EXPR IDENTIFIER ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:602:4: SPEC DOT IDENTIFIER
{
SPEC433=(Token)match(input,SPEC,FOLLOW_SPEC_in_spec_expr4166); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SPEC.add(SPEC433);
DOT434=(Token)match(input,DOT,FOLLOW_DOT_in_spec_expr4168); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT434);
IDENTIFIER435=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_spec_expr4170); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER435);
// 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();
// 602:24: -> ^( SPEC_EXPR IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:602:27: ^( SPEC_EXPR IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SPEC_EXPR, "SPEC_EXPR"), 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 "spec_expr"
public static class postfix_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "postfix_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:605:1: postfix_expr : primary_expr ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR primary_expr ( postfix_expr_suffix )? ) ;
public final MiniMPParser.postfix_expr_return postfix_expr() throws RecognitionException {
MiniMPParser.postfix_expr_return retval = new MiniMPParser.postfix_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope primary_expr436 =null;
ParserRuleReturnScope postfix_expr_suffix437 =null;
RewriteRuleSubtreeStream stream_postfix_expr_suffix=new RewriteRuleSubtreeStream(adaptor,"rule postfix_expr_suffix");
RewriteRuleSubtreeStream stream_primary_expr=new RewriteRuleSubtreeStream(adaptor,"rule primary_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:607:2: ( primary_expr ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR primary_expr ( postfix_expr_suffix )? ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:607:4: primary_expr ( postfix_expr_suffix )?
{
pushFollow(FOLLOW_primary_expr_in_postfix_expr4192);
primary_expr436=primary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primary_expr.add(primary_expr436.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:607:17: ( postfix_expr_suffix )?
int alt86=2;
alt86 = dfa86.predict(input);
switch (alt86) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:607:17: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr4194);
postfix_expr_suffix437=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix437.getTree());
}
break;
}
// AST REWRITE
// elements: primary_expr, postfix_expr_suffix
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 608:3: -> ^( POSTFIX_EXPR primary_expr ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:608:6: ^( POSTFIX_EXPR primary_expr ( postfix_expr_suffix )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(POSTFIX_EXPR, "POSTFIX_EXPR"), root_1);
adaptor.addChild(root_1, stream_primary_expr.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:608:34: ( postfix_expr_suffix )?
if ( stream_postfix_expr_suffix.hasNext() ) {
adaptor.addChild(root_1, stream_postfix_expr_suffix.nextTree());
}
stream_postfix_expr_suffix.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 "postfix_expr"
public static class postfix_expr_suffix_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "postfix_expr_suffix"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:611:1: postfix_expr_suffix : ( DOT IDENTIFIER ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR_SUFFIX DOT IDENTIFIER ( postfix_expr_suffix )? ) | ARROW IDENTIFIER ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR_SUFFIX ARROW IDENTIFIER ( postfix_expr_suffix )? ) | LSQUARE expr RSQUARE ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR_SUFFIX expr RSQUARE ( postfix_expr_suffix )? ) | self_change_op ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR_SUFFIX self_change_op ( postfix_expr_suffix )? ) | AT IDENTIFIER DOT IDENTIFIER ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR_SUFFIX AT IDENTIFIER DOT IDENTIFIER ( postfix_expr_suffix )? ) );
public final MiniMPParser.postfix_expr_suffix_return postfix_expr_suffix() throws RecognitionException {
MiniMPParser.postfix_expr_suffix_return retval = new MiniMPParser.postfix_expr_suffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DOT438=null;
Token IDENTIFIER439=null;
Token ARROW441=null;
Token IDENTIFIER442=null;
Token LSQUARE444=null;
Token RSQUARE446=null;
Token AT450=null;
Token IDENTIFIER451=null;
Token DOT452=null;
Token IDENTIFIER453=null;
ParserRuleReturnScope postfix_expr_suffix440 =null;
ParserRuleReturnScope postfix_expr_suffix443 =null;
ParserRuleReturnScope expr445 =null;
ParserRuleReturnScope postfix_expr_suffix447 =null;
ParserRuleReturnScope self_change_op448 =null;
ParserRuleReturnScope postfix_expr_suffix449 =null;
ParserRuleReturnScope postfix_expr_suffix454 =null;
Object DOT438_tree=null;
Object IDENTIFIER439_tree=null;
Object ARROW441_tree=null;
Object IDENTIFIER442_tree=null;
Object LSQUARE444_tree=null;
Object RSQUARE446_tree=null;
Object AT450_tree=null;
Object IDENTIFIER451_tree=null;
Object DOT452_tree=null;
Object IDENTIFIER453_tree=null;
RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT");
RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
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_self_change_op=new RewriteRuleSubtreeStream(adaptor,"rule self_change_op");
RewriteRuleSubtreeStream stream_postfix_expr_suffix=new RewriteRuleSubtreeStream(adaptor,"rule postfix_expr_suffix");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:612:2: ( DOT IDENTIFIER ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR_SUFFIX DOT IDENTIFIER ( postfix_expr_suffix )? ) | ARROW IDENTIFIER ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR_SUFFIX ARROW IDENTIFIER ( postfix_expr_suffix )? ) | LSQUARE expr RSQUARE ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR_SUFFIX expr RSQUARE ( postfix_expr_suffix )? ) | self_change_op ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR_SUFFIX self_change_op ( postfix_expr_suffix )? ) | AT IDENTIFIER DOT IDENTIFIER ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR_SUFFIX AT IDENTIFIER DOT IDENTIFIER ( postfix_expr_suffix )? ) )
int alt92=5;
switch ( input.LA(1) ) {
case DOT:
{
alt92=1;
}
break;
case ARROW:
{
alt92=2;
}
break;
case LSQUARE:
{
alt92=3;
}
break;
case DOUBLE_PLUS:
case DOUBLE_SUB:
{
alt92=4;
}
break;
case AT:
{
alt92=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 92, 0, input);
throw nvae;
}
switch (alt92) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:612:4: DOT IDENTIFIER ( postfix_expr_suffix )?
{
DOT438=(Token)match(input,DOT,FOLLOW_DOT_in_postfix_expr_suffix4219); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT438);
IDENTIFIER439=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfix_expr_suffix4221); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER439);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:612:19: ( postfix_expr_suffix )?
int alt87=2;
alt87 = dfa87.predict(input);
switch (alt87) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:612:19: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix4223);
postfix_expr_suffix440=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix440.getTree());
}
break;
}
// AST REWRITE
// elements: DOT, IDENTIFIER, postfix_expr_suffix
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 613:3: -> ^( POSTFIX_EXPR_SUFFIX DOT IDENTIFIER ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:613:6: ^( POSTFIX_EXPR_SUFFIX DOT IDENTIFIER ( postfix_expr_suffix )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(POSTFIX_EXPR_SUFFIX, "POSTFIX_EXPR_SUFFIX"), root_1);
adaptor.addChild(root_1, stream_DOT.nextNode());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:613:43: ( postfix_expr_suffix )?
if ( stream_postfix_expr_suffix.hasNext() ) {
adaptor.addChild(root_1, stream_postfix_expr_suffix.nextTree());
}
stream_postfix_expr_suffix.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:614:4: ARROW IDENTIFIER ( postfix_expr_suffix )?
{
ARROW441=(Token)match(input,ARROW,FOLLOW_ARROW_in_postfix_expr_suffix4244); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ARROW.add(ARROW441);
IDENTIFIER442=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfix_expr_suffix4246); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER442);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:614:21: ( postfix_expr_suffix )?
int alt88=2;
alt88 = dfa88.predict(input);
switch (alt88) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:614:21: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix4248);
postfix_expr_suffix443=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix443.getTree());
}
break;
}
// AST REWRITE
// elements: ARROW, postfix_expr_suffix, 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();
// 615:3: -> ^( POSTFIX_EXPR_SUFFIX ARROW IDENTIFIER ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:615:6: ^( POSTFIX_EXPR_SUFFIX ARROW IDENTIFIER ( postfix_expr_suffix )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(POSTFIX_EXPR_SUFFIX, "POSTFIX_EXPR_SUFFIX"), root_1);
adaptor.addChild(root_1, stream_ARROW.nextNode());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:615:45: ( postfix_expr_suffix )?
if ( stream_postfix_expr_suffix.hasNext() ) {
adaptor.addChild(root_1, stream_postfix_expr_suffix.nextTree());
}
stream_postfix_expr_suffix.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:616:4: LSQUARE expr RSQUARE ( postfix_expr_suffix )?
{
LSQUARE444=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_postfix_expr_suffix4270); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE444);
pushFollow(FOLLOW_expr_in_postfix_expr_suffix4272);
expr445=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr445.getTree());
RSQUARE446=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_postfix_expr_suffix4274); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE446);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:616:25: ( postfix_expr_suffix )?
int alt89=2;
alt89 = dfa89.predict(input);
switch (alt89) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:616:25: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix4276);
postfix_expr_suffix447=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix447.getTree());
}
break;
}
// AST REWRITE
// elements: RSQUARE, expr, postfix_expr_suffix
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 617:3: -> ^( POSTFIX_EXPR_SUFFIX expr RSQUARE ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:617:6: ^( POSTFIX_EXPR_SUFFIX expr RSQUARE ( postfix_expr_suffix )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(POSTFIX_EXPR_SUFFIX, "POSTFIX_EXPR_SUFFIX"), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_RSQUARE.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:617:41: ( postfix_expr_suffix )?
if ( stream_postfix_expr_suffix.hasNext() ) {
adaptor.addChild(root_1, stream_postfix_expr_suffix.nextTree());
}
stream_postfix_expr_suffix.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:618:4: self_change_op ( postfix_expr_suffix )?
{
pushFollow(FOLLOW_self_change_op_in_postfix_expr_suffix4297);
self_change_op448=self_change_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_self_change_op.add(self_change_op448.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:618:19: ( postfix_expr_suffix )?
int alt90=2;
alt90 = dfa90.predict(input);
switch (alt90) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:618:19: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix4299);
postfix_expr_suffix449=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix449.getTree());
}
break;
}
// AST REWRITE
// elements: postfix_expr_suffix, self_change_op
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 619:3: -> ^( POSTFIX_EXPR_SUFFIX self_change_op ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:619:6: ^( POSTFIX_EXPR_SUFFIX self_change_op ( postfix_expr_suffix )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(POSTFIX_EXPR_SUFFIX, "POSTFIX_EXPR_SUFFIX"), root_1);
adaptor.addChild(root_1, stream_self_change_op.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:619:43: ( postfix_expr_suffix )?
if ( stream_postfix_expr_suffix.hasNext() ) {
adaptor.addChild(root_1, stream_postfix_expr_suffix.nextTree());
}
stream_postfix_expr_suffix.reset();
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:620:4: AT IDENTIFIER DOT IDENTIFIER ( postfix_expr_suffix )?
{
AT450=(Token)match(input,AT,FOLLOW_AT_in_postfix_expr_suffix4318); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AT.add(AT450);
IDENTIFIER451=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfix_expr_suffix4320); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER451);
DOT452=(Token)match(input,DOT,FOLLOW_DOT_in_postfix_expr_suffix4322); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT452);
IDENTIFIER453=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfix_expr_suffix4324); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER453);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:620:33: ( postfix_expr_suffix )?
int alt91=2;
alt91 = dfa91.predict(input);
switch (alt91) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:620:33: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix4326);
postfix_expr_suffix454=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix454.getTree());
}
break;
}
// AST REWRITE
// elements: IDENTIFIER, DOT, IDENTIFIER, postfix_expr_suffix, AT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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:3: -> ^( POSTFIX_EXPR_SUFFIX AT IDENTIFIER DOT IDENTIFIER ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:621:6: ^( POSTFIX_EXPR_SUFFIX AT IDENTIFIER DOT IDENTIFIER ( postfix_expr_suffix )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(POSTFIX_EXPR_SUFFIX, "POSTFIX_EXPR_SUFFIX"), root_1);
adaptor.addChild(root_1, stream_AT.nextNode());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_DOT.nextNode());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:621:57: ( postfix_expr_suffix )?
if ( stream_postfix_expr_suffix.hasNext() ) {
adaptor.addChild(root_1, stream_postfix_expr_suffix.nextTree());
}
stream_postfix_expr_suffix.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 "postfix_expr_suffix"
public static class primary_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "primary_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:624:1: primary_expr : ( constant -> ^( PRIMARY_EXPR constant ) | evaluated_function_expr -> ^( PRIMARY_EXPR evaluated_function_expr ) | LPAREN expr RPAREN -> ^( PRIMARY_EXPR expr RPAREN ) | IDENTIFIER -> ^( PRIMARY_EXPR IDENTIFIER ) | spec_expr -> ^( PRIMARY_EXPR spec_expr ) | derivative_expr -> ^( PRIMARY_EXPR derivative_expr ) );
public final MiniMPParser.primary_expr_return primary_expr() throws RecognitionException {
MiniMPParser.primary_expr_return retval = new MiniMPParser.primary_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN457=null;
Token RPAREN459=null;
Token IDENTIFIER460=null;
ParserRuleReturnScope constant455 =null;
ParserRuleReturnScope evaluated_function_expr456 =null;
ParserRuleReturnScope expr458 =null;
ParserRuleReturnScope spec_expr461 =null;
ParserRuleReturnScope derivative_expr462 =null;
Object LPAREN457_tree=null;
Object RPAREN459_tree=null;
Object IDENTIFIER460_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_constant=new RewriteRuleSubtreeStream(adaptor,"rule constant");
RewriteRuleSubtreeStream stream_evaluated_function_expr=new RewriteRuleSubtreeStream(adaptor,"rule evaluated_function_expr");
RewriteRuleSubtreeStream stream_spec_expr=new RewriteRuleSubtreeStream(adaptor,"rule spec_expr");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_derivative_expr=new RewriteRuleSubtreeStream(adaptor,"rule derivative_expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:625:2: ( constant -> ^( PRIMARY_EXPR constant ) | evaluated_function_expr -> ^( PRIMARY_EXPR evaluated_function_expr ) | LPAREN expr RPAREN -> ^( PRIMARY_EXPR expr RPAREN ) | IDENTIFIER -> ^( PRIMARY_EXPR IDENTIFIER ) | spec_expr -> ^( PRIMARY_EXPR spec_expr ) | derivative_expr -> ^( PRIMARY_EXPR derivative_expr ) )
int alt93=6;
switch ( input.LA(1) ) {
case CHAR_LITERAL:
case FALSE:
case INT_LITERAL:
case REAL_LITERAL:
case STRING_LITERAL:
case SYS_VAR:
case TRUE:
{
alt93=1;
}
break;
case IDENTIFIER:
{
int LA93_8 = input.LA(2);
if ( (synpred149_MiniMP()) ) {
alt93=2;
}
else if ( (synpred151_MiniMP()) ) {
alt93=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 93, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case LPAREN:
{
alt93=3;
}
break;
case SPEC:
{
alt93=5;
}
break;
case DERIVATIVE:
{
alt93=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 93, 0, input);
throw nvae;
}
switch (alt93) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:625:4: constant
{
pushFollow(FOLLOW_constant_in_primary_expr4359);
constant455=constant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constant.add(constant455.getTree());
// AST REWRITE
// elements: 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();
// 625:13: -> ^( PRIMARY_EXPR constant )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:625:16: ^( PRIMARY_EXPR constant )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PRIMARY_EXPR, "PRIMARY_EXPR"), root_1);
adaptor.addChild(root_1, stream_constant.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:626:4: evaluated_function_expr
{
pushFollow(FOLLOW_evaluated_function_expr_in_primary_expr4372);
evaluated_function_expr456=evaluated_function_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_evaluated_function_expr.add(evaluated_function_expr456.getTree());
// AST REWRITE
// elements: evaluated_function_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 626:28: -> ^( PRIMARY_EXPR evaluated_function_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:626:31: ^( PRIMARY_EXPR evaluated_function_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PRIMARY_EXPR, "PRIMARY_EXPR"), root_1);
adaptor.addChild(root_1, stream_evaluated_function_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:627:4: LPAREN expr RPAREN
{
LPAREN457=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_primary_expr4385); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN457);
pushFollow(FOLLOW_expr_in_primary_expr4387);
expr458=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr458.getTree());
RPAREN459=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_primary_expr4389); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN459);
// AST REWRITE
// elements: RPAREN, expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 627:23: -> ^( PRIMARY_EXPR expr RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:627:26: ^( PRIMARY_EXPR expr RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PRIMARY_EXPR, "PRIMARY_EXPR"), root_1);
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:628:4: IDENTIFIER
{
IDENTIFIER460=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_primary_expr4404); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER460);
// 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();
// 628:15: -> ^( PRIMARY_EXPR IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:628:18: ^( PRIMARY_EXPR IDENTIFIER )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PRIMARY_EXPR, "PRIMARY_EXPR"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:629:4: spec_expr
{
pushFollow(FOLLOW_spec_expr_in_primary_expr4417);
spec_expr461=spec_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_spec_expr.add(spec_expr461.getTree());
// AST REWRITE
// elements: spec_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 629:14: -> ^( PRIMARY_EXPR spec_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:629:17: ^( PRIMARY_EXPR spec_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PRIMARY_EXPR, "PRIMARY_EXPR"), root_1);
adaptor.addChild(root_1, stream_spec_expr.nextTree());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:630:4: derivative_expr
{
pushFollow(FOLLOW_derivative_expr_in_primary_expr4430);
derivative_expr462=derivative_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_derivative_expr.add(derivative_expr462.getTree());
// AST REWRITE
// elements: derivative_expr
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 630:20: -> ^( PRIMARY_EXPR derivative_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:630:23: ^( PRIMARY_EXPR derivative_expr )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PRIMARY_EXPR, "PRIMARY_EXPR"), root_1);
adaptor.addChild(root_1, stream_derivative_expr.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 "primary_expr"
public static class evaluated_function_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "evaluated_function_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:633:1: evaluated_function_expr : IDENTIFIER LPAREN ( parameter_list )? RPAREN -> ^( EVALUATED_FUNCTION_EXPR IDENTIFIER ( parameter_list )? RPAREN ) ;
public final MiniMPParser.evaluated_function_expr_return evaluated_function_expr() throws RecognitionException {
MiniMPParser.evaluated_function_expr_return retval = new MiniMPParser.evaluated_function_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER463=null;
Token LPAREN464=null;
Token RPAREN466=null;
ParserRuleReturnScope parameter_list465 =null;
Object IDENTIFIER463_tree=null;
Object LPAREN464_tree=null;
Object RPAREN466_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_parameter_list=new RewriteRuleSubtreeStream(adaptor,"rule parameter_list");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:634:2: ( IDENTIFIER LPAREN ( parameter_list )? RPAREN -> ^( EVALUATED_FUNCTION_EXPR IDENTIFIER ( parameter_list )? RPAREN ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:634:4: IDENTIFIER LPAREN ( parameter_list )? RPAREN
{
IDENTIFIER463=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_evaluated_function_expr4450); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER463);
LPAREN464=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_evaluated_function_expr4452); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN464);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:634:22: ( parameter_list )?
int alt94=2;
int LA94_0 = input.LA(1);
if ( (LA94_0==ADDR_OF||LA94_0==CHAR_LITERAL||LA94_0==DERIVATIVE||(LA94_0 >= DOUBLE_PLUS && LA94_0 <= DOUBLE_SUB)||LA94_0==EXISTS||LA94_0==FALSE||LA94_0==FORALL||LA94_0==IDENTIFIER||LA94_0==INT_LITERAL||LA94_0==LPAREN||LA94_0==MULTI||LA94_0==NOT||LA94_0==PLUS||LA94_0==REAL_LITERAL||LA94_0==SIZEOF||LA94_0==SPEC||LA94_0==STRING_LITERAL||LA94_0==SUB||LA94_0==SYS_VAR||LA94_0==TRUE) ) {
alt94=1;
}
switch (alt94) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:634:22: parameter_list
{
pushFollow(FOLLOW_parameter_list_in_evaluated_function_expr4454);
parameter_list465=parameter_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameter_list.add(parameter_list465.getTree());
}
break;
}
RPAREN466=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_evaluated_function_expr4457); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN466);
// AST REWRITE
// elements: parameter_list, IDENTIFIER, 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();
// 635:3: -> ^( EVALUATED_FUNCTION_EXPR IDENTIFIER ( parameter_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:635:6: ^( EVALUATED_FUNCTION_EXPR IDENTIFIER ( parameter_list )? RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EVALUATED_FUNCTION_EXPR, "EVALUATED_FUNCTION_EXPR"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:635:43: ( parameter_list )?
if ( stream_parameter_list.hasNext() ) {
adaptor.addChild(root_1, stream_parameter_list.nextTree());
}
stream_parameter_list.reset();
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 "evaluated_function_expr"
public static class derivative_expr_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "derivative_expr"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:638:1: derivative_expr : DERIVATIVE LSQUARE IDENTIFIER COMMA partial_list RSQUARE LPAREN ( parameter_list )? RPAREN -> ^( DERIVATIVE_EXPR IDENTIFIER partial_list ( parameter_list )? RPAREN ) ;
public final MiniMPParser.derivative_expr_return derivative_expr() throws RecognitionException {
MiniMPParser.derivative_expr_return retval = new MiniMPParser.derivative_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DERIVATIVE467=null;
Token LSQUARE468=null;
Token IDENTIFIER469=null;
Token COMMA470=null;
Token RSQUARE472=null;
Token LPAREN473=null;
Token RPAREN475=null;
ParserRuleReturnScope partial_list471 =null;
ParserRuleReturnScope parameter_list474 =null;
Object DERIVATIVE467_tree=null;
Object LSQUARE468_tree=null;
Object IDENTIFIER469_tree=null;
Object COMMA470_tree=null;
Object RSQUARE472_tree=null;
Object LPAREN473_tree=null;
Object RPAREN475_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LSQUARE=new RewriteRuleTokenStream(adaptor,"token LSQUARE");
RewriteRuleTokenStream stream_DERIVATIVE=new RewriteRuleTokenStream(adaptor,"token DERIVATIVE");
RewriteRuleTokenStream stream_RSQUARE=new RewriteRuleTokenStream(adaptor,"token RSQUARE");
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_partial_list=new RewriteRuleSubtreeStream(adaptor,"rule partial_list");
RewriteRuleSubtreeStream stream_parameter_list=new RewriteRuleSubtreeStream(adaptor,"rule parameter_list");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:639:2: ( DERIVATIVE LSQUARE IDENTIFIER COMMA partial_list RSQUARE LPAREN ( parameter_list )? RPAREN -> ^( DERIVATIVE_EXPR IDENTIFIER partial_list ( parameter_list )? RPAREN ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:639:4: DERIVATIVE LSQUARE IDENTIFIER COMMA partial_list RSQUARE LPAREN ( parameter_list )? RPAREN
{
DERIVATIVE467=(Token)match(input,DERIVATIVE,FOLLOW_DERIVATIVE_in_derivative_expr4485); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DERIVATIVE.add(DERIVATIVE467);
LSQUARE468=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_derivative_expr4487); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE468);
IDENTIFIER469=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_derivative_expr4489); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER469);
COMMA470=(Token)match(input,COMMA,FOLLOW_COMMA_in_derivative_expr4491); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA470);
pushFollow(FOLLOW_partial_list_in_derivative_expr4493);
partial_list471=partial_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_partial_list.add(partial_list471.getTree());
RSQUARE472=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_derivative_expr4495); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE472);
LPAREN473=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_derivative_expr4497); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN473);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:639:68: ( parameter_list )?
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==ADDR_OF||LA95_0==CHAR_LITERAL||LA95_0==DERIVATIVE||(LA95_0 >= DOUBLE_PLUS && LA95_0 <= DOUBLE_SUB)||LA95_0==EXISTS||LA95_0==FALSE||LA95_0==FORALL||LA95_0==IDENTIFIER||LA95_0==INT_LITERAL||LA95_0==LPAREN||LA95_0==MULTI||LA95_0==NOT||LA95_0==PLUS||LA95_0==REAL_LITERAL||LA95_0==SIZEOF||LA95_0==SPEC||LA95_0==STRING_LITERAL||LA95_0==SUB||LA95_0==SYS_VAR||LA95_0==TRUE) ) {
alt95=1;
}
switch (alt95) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:639:68: parameter_list
{
pushFollow(FOLLOW_parameter_list_in_derivative_expr4499);
parameter_list474=parameter_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameter_list.add(parameter_list474.getTree());
}
break;
}
RPAREN475=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_derivative_expr4502); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN475);
// AST REWRITE
// elements: partial_list, parameter_list, RPAREN, 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();
// 640:3: -> ^( DERIVATIVE_EXPR IDENTIFIER partial_list ( parameter_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:640:6: ^( DERIVATIVE_EXPR IDENTIFIER partial_list ( parameter_list )? RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DERIVATIVE_EXPR, "DERIVATIVE_EXPR"), root_1);
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
adaptor.addChild(root_1, stream_partial_list.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:640:48: ( parameter_list )?
if ( stream_parameter_list.hasNext() ) {
adaptor.addChild(root_1, stream_parameter_list.nextTree());
}
stream_parameter_list.reset();
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 "derivative_expr"
public static class self_change_op_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "self_change_op"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:643:1: self_change_op : ( DOUBLE_PLUS -> ^( SELFCHANGE_OP DOUBLE_PLUS ) | DOUBLE_SUB -> ^( SELFCHANGE_OP DOUBLE_SUB ) );
public final MiniMPParser.self_change_op_return self_change_op() throws RecognitionException {
MiniMPParser.self_change_op_return retval = new MiniMPParser.self_change_op_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DOUBLE_PLUS476=null;
Token DOUBLE_SUB477=null;
Object DOUBLE_PLUS476_tree=null;
Object DOUBLE_SUB477_tree=null;
RewriteRuleTokenStream stream_DOUBLE_SUB=new RewriteRuleTokenStream(adaptor,"token DOUBLE_SUB");
RewriteRuleTokenStream stream_DOUBLE_PLUS=new RewriteRuleTokenStream(adaptor,"token DOUBLE_PLUS");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:644:2: ( DOUBLE_PLUS -> ^( SELFCHANGE_OP DOUBLE_PLUS ) | DOUBLE_SUB -> ^( SELFCHANGE_OP DOUBLE_SUB ) )
int alt96=2;
int LA96_0 = input.LA(1);
if ( (LA96_0==DOUBLE_PLUS) ) {
alt96=1;
}
else if ( (LA96_0==DOUBLE_SUB) ) {
alt96=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 96, 0, input);
throw nvae;
}
switch (alt96) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:644:4: DOUBLE_PLUS
{
DOUBLE_PLUS476=(Token)match(input,DOUBLE_PLUS,FOLLOW_DOUBLE_PLUS_in_self_change_op4531); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOUBLE_PLUS.add(DOUBLE_PLUS476);
// AST REWRITE
// elements: DOUBLE_PLUS
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 644:16: -> ^( SELFCHANGE_OP DOUBLE_PLUS )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:644:19: ^( SELFCHANGE_OP DOUBLE_PLUS )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SELFCHANGE_OP, "SELFCHANGE_OP"), root_1);
adaptor.addChild(root_1, stream_DOUBLE_PLUS.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:645:4: DOUBLE_SUB
{
DOUBLE_SUB477=(Token)match(input,DOUBLE_SUB,FOLLOW_DOUBLE_SUB_in_self_change_op4544); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOUBLE_SUB.add(DOUBLE_SUB477);
// AST REWRITE
// elements: DOUBLE_SUB
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 645:15: -> ^( SELFCHANGE_OP DOUBLE_SUB )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:645:18: ^( SELFCHANGE_OP DOUBLE_SUB )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SELFCHANGE_OP, "SELFCHANGE_OP"), root_1);
adaptor.addChild(root_1, stream_DOUBLE_SUB.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 "self_change_op"
public static class constant_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "constant"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:648:1: constant : ( TRUE -> ^( CONSTANT TRUE ) | FALSE -> ^( CONSTANT FALSE ) | INT_LITERAL -> ^( CONSTANT INT_LITERAL ) | REAL_LITERAL -> ^( CONSTANT REAL_LITERAL ) | CHAR_LITERAL -> ^( CONSTANT CHAR_LITERAL ) | STRING_LITERAL -> ^( CONSTANT STRING_LITERAL ) | SYS_VAR -> ^( CONSTANT SYS_VAR ) );
public final MiniMPParser.constant_return constant() throws RecognitionException {
MiniMPParser.constant_return retval = new MiniMPParser.constant_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TRUE478=null;
Token FALSE479=null;
Token INT_LITERAL480=null;
Token REAL_LITERAL481=null;
Token CHAR_LITERAL482=null;
Token STRING_LITERAL483=null;
Token SYS_VAR484=null;
Object TRUE478_tree=null;
Object FALSE479_tree=null;
Object INT_LITERAL480_tree=null;
Object REAL_LITERAL481_tree=null;
Object CHAR_LITERAL482_tree=null;
Object STRING_LITERAL483_tree=null;
Object SYS_VAR484_tree=null;
RewriteRuleTokenStream stream_SYS_VAR=new RewriteRuleTokenStream(adaptor,"token SYS_VAR");
RewriteRuleTokenStream stream_INT_LITERAL=new RewriteRuleTokenStream(adaptor,"token INT_LITERAL");
RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
RewriteRuleTokenStream stream_CHAR_LITERAL=new RewriteRuleTokenStream(adaptor,"token CHAR_LITERAL");
RewriteRuleTokenStream stream_REAL_LITERAL=new RewriteRuleTokenStream(adaptor,"token REAL_LITERAL");
RewriteRuleTokenStream stream_FALSE=new RewriteRuleTokenStream(adaptor,"token FALSE");
RewriteRuleTokenStream stream_TRUE=new RewriteRuleTokenStream(adaptor,"token TRUE");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:649:2: ( TRUE -> ^( CONSTANT TRUE ) | FALSE -> ^( CONSTANT FALSE ) | INT_LITERAL -> ^( CONSTANT INT_LITERAL ) | REAL_LITERAL -> ^( CONSTANT REAL_LITERAL ) | CHAR_LITERAL -> ^( CONSTANT CHAR_LITERAL ) | STRING_LITERAL -> ^( CONSTANT STRING_LITERAL ) | SYS_VAR -> ^( CONSTANT SYS_VAR ) )
int alt97=7;
switch ( input.LA(1) ) {
case TRUE:
{
alt97=1;
}
break;
case FALSE:
{
alt97=2;
}
break;
case INT_LITERAL:
{
alt97=3;
}
break;
case REAL_LITERAL:
{
alt97=4;
}
break;
case CHAR_LITERAL:
{
alt97=5;
}
break;
case STRING_LITERAL:
{
alt97=6;
}
break;
case SYS_VAR:
{
alt97=7;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 97, 0, input);
throw nvae;
}
switch (alt97) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:649:4: TRUE
{
TRUE478=(Token)match(input,TRUE,FOLLOW_TRUE_in_constant4565); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TRUE.add(TRUE478);
// AST REWRITE
// elements: TRUE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 649:9: -> ^( CONSTANT TRUE )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:649:12: ^( CONSTANT TRUE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONSTANT, "CONSTANT"), root_1);
adaptor.addChild(root_1, stream_TRUE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:650:4: FALSE
{
FALSE479=(Token)match(input,FALSE,FOLLOW_FALSE_in_constant4578); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FALSE.add(FALSE479);
// AST REWRITE
// elements: FALSE
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 650:10: -> ^( CONSTANT FALSE )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:650:13: ^( CONSTANT FALSE )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONSTANT, "CONSTANT"), root_1);
adaptor.addChild(root_1, stream_FALSE.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:651:4: INT_LITERAL
{
INT_LITERAL480=(Token)match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_constant4592); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INT_LITERAL.add(INT_LITERAL480);
// AST REWRITE
// elements: INT_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();
// 651:16: -> ^( CONSTANT INT_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:651:19: ^( CONSTANT INT_LITERAL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONSTANT, "CONSTANT"), root_1);
adaptor.addChild(root_1, stream_INT_LITERAL.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 4 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:652:4: REAL_LITERAL
{
REAL_LITERAL481=(Token)match(input,REAL_LITERAL,FOLLOW_REAL_LITERAL_in_constant4605); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_REAL_LITERAL.add(REAL_LITERAL481);
// AST REWRITE
// elements: REAL_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();
// 652:17: -> ^( CONSTANT REAL_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:652:20: ^( CONSTANT REAL_LITERAL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONSTANT, "CONSTANT"), root_1);
adaptor.addChild(root_1, stream_REAL_LITERAL.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 5 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:653:4: CHAR_LITERAL
{
CHAR_LITERAL482=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_constant4618); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CHAR_LITERAL.add(CHAR_LITERAL482);
// AST REWRITE
// elements: CHAR_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();
// 653:17: -> ^( CONSTANT CHAR_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:653:20: ^( CONSTANT CHAR_LITERAL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONSTANT, "CONSTANT"), root_1);
adaptor.addChild(root_1, stream_CHAR_LITERAL.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 6 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:654:4: STRING_LITERAL
{
STRING_LITERAL483=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_constant4631); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL483);
// AST REWRITE
// elements: 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();
// 654:19: -> ^( CONSTANT STRING_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:654:22: ^( CONSTANT STRING_LITERAL )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONSTANT, "CONSTANT"), root_1);
adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
adaptor.addChild(root_0, root_1);
}
}
retval.tree = root_0;
}
}
break;
case 7 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:655:4: SYS_VAR
{
SYS_VAR484=(Token)match(input,SYS_VAR,FOLLOW_SYS_VAR_in_constant4644); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SYS_VAR.add(SYS_VAR484);
// AST REWRITE
// elements: SYS_VAR
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 655:12: -> ^( CONSTANT SYS_VAR )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:655:15: ^( CONSTANT SYS_VAR )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONSTANT, "CONSTANT"), root_1);
adaptor.addChild(root_1, stream_SYS_VAR.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 "constant"
public static class ignored_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "ignored"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:659:1: ignored : ( STATIC | CONST );
public final MiniMPParser.ignored_return ignored() throws RecognitionException {
MiniMPParser.ignored_return retval = new MiniMPParser.ignored_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set485=null;
Object set485_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:660:2: ( STATIC | CONST )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:
{
root_0 = (Object)adaptor.nil();
set485=input.LT(1);
if ( input.LA(1)==CONST||input.LA(1)==STATIC ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set485));
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 "ignored"
// $ANTLR start synpred4_MiniMP
public final void synpred4_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:125:4: ( declaration )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:125:4: declaration
{
pushFollow(FOLLOW_declaration_in_synpred4_MiniMP467);
declaration();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred4_MiniMP
// $ANTLR start synpred5_MiniMP
public final void synpred5_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:126:4: ( abstract_function )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:126:4: abstract_function
{
pushFollow(FOLLOW_abstract_function_in_synpred5_MiniMP472);
abstract_function();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred5_MiniMP
// $ANTLR start synpred8_MiniMP
public final void synpred8_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:138:4: ( declaration )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:138:4: declaration
{
pushFollow(FOLLOW_declaration_in_synpred8_MiniMP512);
declaration();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred8_MiniMP
// $ANTLR start synpred13_MiniMP
public final void synpred13_MiniMP_fragment() throws RecognitionException {
ParserRuleReturnScope type =null;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:166:5: (type= type_specifier declaration_unit ( COMMA declaration_unit )+ SEMI )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:166:5: type= type_specifier declaration_unit ( COMMA declaration_unit )+ SEMI
{
pushFollow(FOLLOW_type_specifier_in_synpred13_MiniMP659);
type=type_specifier();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_unit_in_synpred13_MiniMP661);
declaration_unit();
state._fsp--;
if (state.failed) return;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:166:42: ( COMMA declaration_unit )+
int cnt98=0;
loop98:
while (true) {
int alt98=2;
int LA98_0 = input.LA(1);
if ( (LA98_0==COMMA) ) {
alt98=1;
}
switch (alt98) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:166:43: COMMA declaration_unit
{
match(input,COMMA,FOLLOW_COMMA_in_synpred13_MiniMP664); if (state.failed) return;
pushFollow(FOLLOW_declaration_unit_in_synpred13_MiniMP666);
declaration_unit();
state._fsp--;
if (state.failed) return;
}
break;
default :
if ( cnt98 >= 1 ) break loop98;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(98, input);
throw eee;
}
cnt98++;
}
match(input,SEMI,FOLLOW_SEMI_in_synpred13_MiniMP670); if (state.failed) return;
}
}
// $ANTLR end synpred13_MiniMP
// $ANTLR start synpred16_MiniMP
public final void synpred16_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:169:6: ( ( prefix )? ( suffix )? declaration_body SEMI )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:169:6: ( prefix )? ( suffix )? declaration_body SEMI
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:169:6: ( prefix )?
int alt99=2;
int LA99_0 = input.LA(1);
if ( (LA99_0==PRAGMA||LA99_0==TYPEDEF) ) {
alt99=1;
}
switch (alt99) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:169:6: prefix
{
pushFollow(FOLLOW_prefix_in_synpred16_MiniMP704);
prefix();
state._fsp--;
if (state.failed) return;
}
break;
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:169:14: ( suffix )?
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==IS||LA100_0==LCURLY) ) {
alt100=1;
}
switch (alt100) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:169:14: suffix
{
pushFollow(FOLLOW_suffix_in_synpred16_MiniMP707);
suffix();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_declaration_body_in_synpred16_MiniMP710);
declaration_body();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred16_MiniMP712); if (state.failed) return;
}
}
// $ANTLR end synpred16_MiniMP
// $ANTLR start synpred57_MiniMP
public final void synpred57_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:291:4: ( type_name IDENTIFIER LPAREN ( argument_list )? RPAREN LCURLY body RCURLY )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:291:4: type_name IDENTIFIER LPAREN ( argument_list )? RPAREN LCURLY body RCURLY
{
pushFollow(FOLLOW_type_name_in_synpred57_MiniMP1682);
type_name();
state._fsp--;
if (state.failed) return;
match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred57_MiniMP1684); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred57_MiniMP1686); if (state.failed) return;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:291:32: ( argument_list )?
int alt107=2;
int LA107_0 = input.LA(1);
if ( (LA107_0==BOOLEAN||LA107_0==CHAR||LA107_0==DOUBLE||LA107_0==FLOAT||LA107_0==IDENTIFIER||LA107_0==INT||LA107_0==STRUCT||LA107_0==VOID) ) {
alt107=1;
}
switch (alt107) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:291:32: argument_list
{
pushFollow(FOLLOW_argument_list_in_synpred57_MiniMP1688);
argument_list();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_synpred57_MiniMP1691); if (state.failed) return;
match(input,LCURLY,FOLLOW_LCURLY_in_synpred57_MiniMP1693); if (state.failed) return;
pushFollow(FOLLOW_body_in_synpred57_MiniMP1695);
body();
state._fsp--;
if (state.failed) return;
match(input,RCURLY,FOLLOW_RCURLY_in_synpred57_MiniMP1697); if (state.failed) return;
}
}
// $ANTLR end synpred57_MiniMP
// $ANTLR start synpred59_MiniMP
public final void synpred59_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:294:4: ( type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:294:4: type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
pushFollow(FOLLOW_type_name_in_synpred59_MiniMP1727);
type_name();
state._fsp--;
if (state.failed) return;
match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred59_MiniMP1729); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred59_MiniMP1731); if (state.failed) return;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:294:32: ( argument_list )?
int alt108=2;
int LA108_0 = input.LA(1);
if ( (LA108_0==BOOLEAN||LA108_0==CHAR||LA108_0==DOUBLE||LA108_0==FLOAT||LA108_0==IDENTIFIER||LA108_0==INT||LA108_0==STRUCT||LA108_0==VOID) ) {
alt108=1;
}
switch (alt108) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:294:32: argument_list
{
pushFollow(FOLLOW_argument_list_in_synpred59_MiniMP1733);
argument_list();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_synpred59_MiniMP1736); if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred59_MiniMP1738); if (state.failed) return;
}
}
// $ANTLR end synpred59_MiniMP
// $ANTLR start synpred61_MiniMP
public final void synpred61_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:296:4: ( PRAGMA TASS SYSTEM type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:296:4: PRAGMA TASS SYSTEM type_name IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
match(input,PRAGMA,FOLLOW_PRAGMA_in_synpred61_MiniMP1753); if (state.failed) return;
match(input,TASS,FOLLOW_TASS_in_synpred61_MiniMP1755); if (state.failed) return;
match(input,SYSTEM,FOLLOW_SYSTEM_in_synpred61_MiniMP1757); if (state.failed) return;
pushFollow(FOLLOW_type_name_in_synpred61_MiniMP1759);
type_name();
state._fsp--;
if (state.failed) return;
match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred61_MiniMP1761); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred61_MiniMP1763); if (state.failed) return;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:296:51: ( argument_list )?
int alt109=2;
int LA109_0 = input.LA(1);
if ( (LA109_0==BOOLEAN||LA109_0==CHAR||LA109_0==DOUBLE||LA109_0==FLOAT||LA109_0==IDENTIFIER||LA109_0==INT||LA109_0==STRUCT||LA109_0==VOID) ) {
alt109=1;
}
switch (alt109) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:296:51: argument_list
{
pushFollow(FOLLOW_argument_list_in_synpred61_MiniMP1765);
argument_list();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,RPAREN,FOLLOW_RPAREN_in_synpred61_MiniMP1768); if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred61_MiniMP1770); if (state.failed) return;
}
}
// $ANTLR end synpred61_MiniMP
// $ANTLR start synpred64_MiniMP
public final void synpred64_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:312:4: ( declaration_list )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:312:4: declaration_list
{
pushFollow(FOLLOW_declaration_list_in_synpred64_MiniMP1910);
declaration_list();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred64_MiniMP
// $ANTLR start synpred67_MiniMP
public final void synpred67_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:323:4: ( assert_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:323:4: assert_statement
{
pushFollow(FOLLOW_assert_statement_in_synpred67_MiniMP1963);
assert_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred67_MiniMP
// $ANTLR start synpred68_MiniMP
public final void synpred68_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:324:4: ( collective_assert_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:324:4: collective_assert_statement
{
pushFollow(FOLLOW_collective_assert_statement_in_synpred68_MiniMP1976);
collective_assert_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred68_MiniMP
// $ANTLR start synpred69_MiniMP
public final void synpred69_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:325:4: ( joint_assert_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:325:4: joint_assert_statement
{
pushFollow(FOLLOW_joint_assert_statement_in_synpred69_MiniMP1989);
joint_assert_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred69_MiniMP
// $ANTLR start synpred70_MiniMP
public final void synpred70_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:326:4: ( invariant_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:326:4: invariant_statement
{
pushFollow(FOLLOW_invariant_statement_in_synpred70_MiniMP2002);
invariant_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred70_MiniMP
// $ANTLR start synpred71_MiniMP
public final void synpred71_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:327:4: ( collective_invariant_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:327:4: collective_invariant_statement
{
pushFollow(FOLLOW_collective_invariant_statement_in_synpred71_MiniMP2015);
collective_invariant_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred71_MiniMP
// $ANTLR start synpred72_MiniMP
public final void synpred72_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:328:4: ( joint_invariant_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:328:4: joint_invariant_statement
{
pushFollow(FOLLOW_joint_invariant_statement_in_synpred72_MiniMP2028);
joint_invariant_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred72_MiniMP
// $ANTLR start synpred73_MiniMP
public final void synpred73_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:329:4: ( assume_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:329:4: assume_statement
{
pushFollow(FOLLOW_assume_statement_in_synpred73_MiniMP2041);
assume_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred73_MiniMP
// $ANTLR start synpred77_MiniMP
public final void synpred77_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:337:4: ( iterative_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:337:4: iterative_statement
{
pushFollow(FOLLOW_iterative_statement_in_synpred77_MiniMP2096);
iterative_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred77_MiniMP
// $ANTLR start synpred82_MiniMP
public final void synpred82_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:342:4: ( call_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:342:4: call_statement
{
pushFollow(FOLLOW_call_statement_in_synpred82_MiniMP2161);
call_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred82_MiniMP
// $ANTLR start synpred83_MiniMP
public final void synpred83_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:343:4: ( expr_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:343:4: expr_statement
{
pushFollow(FOLLOW_expr_statement_in_synpred83_MiniMP2174);
expr_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred83_MiniMP
// $ANTLR start synpred84_MiniMP
public final void synpred84_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:364:4: ( PRAGMA TASS ASSERT expr SEMI )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:364:4: PRAGMA TASS ASSERT expr SEMI
{
match(input,PRAGMA,FOLLOW_PRAGMA_in_synpred84_MiniMP2240); if (state.failed) return;
match(input,TASS,FOLLOW_TASS_in_synpred84_MiniMP2242); if (state.failed) return;
match(input,ASSERT,FOLLOW_ASSERT_in_synpred84_MiniMP2244); if (state.failed) return;
pushFollow(FOLLOW_expr_in_synpred84_MiniMP2246);
expr();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred84_MiniMP2248); if (state.failed) return;
}
}
// $ANTLR end synpred84_MiniMP
// $ANTLR start synpred87_MiniMP
public final void synpred87_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:397:37: ( ELSE statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:397:37: ELSE statement
{
match(input,ELSE,FOLLOW_ELSE_in_synpred87_MiniMP2533); if (state.failed) return;
pushFollow(FOLLOW_statement_in_synpred87_MiniMP2535);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred87_MiniMP
// $ANTLR start synpred96_MiniMP
public final void synpred96_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:4: ( IDENTIFIER COLON ( PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )? )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:4: IDENTIFIER COLON ( PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
{
match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred96_MiniMP2767); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_synpred96_MiniMP2769); if (state.failed) return;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:21: ( PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
int alt112=2;
int LA112_0 = input.LA(1);
if ( (LA112_0==PRAGMA) ) {
alt112=1;
}
switch (alt112) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:22: PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY
{
match(input,PRAGMA,FOLLOW_PRAGMA_in_synpred96_MiniMP2772); if (state.failed) return;
match(input,TASS,FOLLOW_TASS_in_synpred96_MiniMP2774); if (state.failed) return;
match(input,JOINT,FOLLOW_JOINT_in_synpred96_MiniMP2776); if (state.failed) return;
match(input,INVARIANT,FOLLOW_INVARIANT_in_synpred96_MiniMP2778); if (state.failed) return;
match(input,AT,FOLLOW_AT_in_synpred96_MiniMP2780); if (state.failed) return;
match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred96_MiniMP2782); if (state.failed) return;
match(input,LCURLY,FOLLOW_LCURLY_in_synpred96_MiniMP2784); if (state.failed) return;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:71: ( skew_factor )?
int alt111=2;
int LA111_0 = input.LA(1);
if ( (LA111_0==INT_LITERAL) ) {
int LA111_1 = input.LA(2);
if ( (LA111_1==COLON) ) {
alt111=1;
}
}
switch (alt111) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:422:71: skew_factor
{
pushFollow(FOLLOW_skew_factor_in_synpred96_MiniMP2786);
skew_factor();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_expr_in_synpred96_MiniMP2789);
expr();
state._fsp--;
if (state.failed) return;
match(input,RCURLY,FOLLOW_RCURLY_in_synpred96_MiniMP2791); if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred96_MiniMP
// $ANTLR start synpred100_MiniMP
public final void synpred100_MiniMP_fragment() throws RecognitionException {
ParserRuleReturnScope data =null;
ParserRuleReturnScope src =null;
ParserRuleReturnScope tag =null;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:446:4: ( RECV LPAREN data= expr COMMA src= comm_expr COMMA tag= comm_expr RPAREN SEMI )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:446:4: RECV LPAREN data= expr COMMA src= comm_expr COMMA tag= comm_expr RPAREN SEMI
{
match(input,RECV,FOLLOW_RECV_in_synpred100_MiniMP3009); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred100_MiniMP3011); if (state.failed) return;
pushFollow(FOLLOW_expr_in_synpred100_MiniMP3015);
data=expr();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred100_MiniMP3017); if (state.failed) return;
pushFollow(FOLLOW_comm_expr_in_synpred100_MiniMP3021);
src=comm_expr();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred100_MiniMP3023); if (state.failed) return;
pushFollow(FOLLOW_comm_expr_in_synpred100_MiniMP3027);
tag=comm_expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred100_MiniMP3029); if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred100_MiniMP3031); if (state.failed) return;
}
}
// $ANTLR end synpred100_MiniMP
// $ANTLR start synpred102_MiniMP
public final void synpred102_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:463:5: ( unary_expr ASSIGN )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:463:5: unary_expr ASSIGN
{
pushFollow(FOLLOW_unary_expr_in_synpred102_MiniMP3190);
unary_expr();
state._fsp--;
if (state.failed) return;
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred102_MiniMP3192); if (state.failed) return;
}
}
// $ANTLR end synpred102_MiniMP
// $ANTLR start synpred107_MiniMP
public final void synpred107_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:498:4: ( unary_expr assign_operator assign_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:498:4: unary_expr assign_operator assign_expr
{
pushFollow(FOLLOW_unary_expr_in_synpred107_MiniMP3442);
unary_expr();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_assign_operator_in_synpred107_MiniMP3444);
assign_operator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_assign_expr_in_synpred107_MiniMP3446);
assign_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred107_MiniMP
// $ANTLR start synpred119_MiniMP
public final void synpred119_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:554:16: ( additive_operator multi_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:554:16: additive_operator multi_expr
{
pushFollow(FOLLOW_additive_operator_in_synpred119_MiniMP3834);
additive_operator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_multi_expr_in_synpred119_MiniMP3836);
multi_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred119_MiniMP
// $ANTLR start synpred121_MiniMP
public final void synpred121_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:564:16: ( multi_operator unary_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:564:16: multi_operator unary_expr
{
pushFollow(FOLLOW_multi_operator_in_synpred121_MiniMP3886);
multi_operator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_unary_expr_in_synpred121_MiniMP3888);
unary_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred121_MiniMP
// $ANTLR start synpred129_MiniMP
public final void synpred129_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:584:4: ( postfix_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:584:4: postfix_expr
{
pushFollow(FOLLOW_postfix_expr_in_synpred129_MiniMP3977);
postfix_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred129_MiniMP
// $ANTLR start synpred132_MiniMP
public final void synpred132_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:587:4: ( SIZEOF LPAREN type_name RPAREN )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:587:4: SIZEOF LPAREN type_name RPAREN
{
match(input,SIZEOF,FOLLOW_SIZEOF_in_synpred132_MiniMP4024); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred132_MiniMP4026); if (state.failed) return;
pushFollow(FOLLOW_type_name_in_synpred132_MiniMP4028);
type_name();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred132_MiniMP4030); if (state.failed) return;
}
}
// $ANTLR end synpred132_MiniMP
// $ANTLR start synpred133_MiniMP
public final void synpred133_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:588:4: ( SIZEOF unary_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:588:4: SIZEOF unary_expr
{
match(input,SIZEOF,FOLLOW_SIZEOF_in_synpred133_MiniMP4045); if (state.failed) return;
pushFollow(FOLLOW_unary_expr_in_synpred133_MiniMP4047);
unary_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred133_MiniMP
// $ANTLR start synpred138_MiniMP
public final void synpred138_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:607:17: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:607:17: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred138_MiniMP4194);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred138_MiniMP
// $ANTLR start synpred139_MiniMP
public final void synpred139_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:612:19: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:612:19: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred139_MiniMP4223);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred139_MiniMP
// $ANTLR start synpred141_MiniMP
public final void synpred141_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:614:21: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:614:21: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred141_MiniMP4248);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred141_MiniMP
// $ANTLR start synpred143_MiniMP
public final void synpred143_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:616:25: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:616:25: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred143_MiniMP4276);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred143_MiniMP
// $ANTLR start synpred145_MiniMP
public final void synpred145_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:618:19: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:618:19: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred145_MiniMP4299);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred145_MiniMP
// $ANTLR start synpred147_MiniMP
public final void synpred147_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:620:33: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:620:33: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred147_MiniMP4326);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred147_MiniMP
// $ANTLR start synpred149_MiniMP
public final void synpred149_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:626:4: ( evaluated_function_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:626:4: evaluated_function_expr
{
pushFollow(FOLLOW_evaluated_function_expr_in_synpred149_MiniMP4372);
evaluated_function_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred149_MiniMP
// $ANTLR start synpred151_MiniMP
public final void synpred151_MiniMP_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:628:4: ( IDENTIFIER )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/front/minimp/parser/MiniMP.g:628:4: IDENTIFIER
{
match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred151_MiniMP4404); if (state.failed) return;
}
}
// $ANTLR end synpred151_MiniMP
// Delegated rules
public final boolean synpred61_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred61_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred73_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred73_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred83_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred83_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred129_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred129_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred68_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred68_MiniMP_fragment(); // can never throw exception
} catch (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_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred8_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred149_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred149_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred107_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred107_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred121_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred121_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred71_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred71_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred147_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred147_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred67_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred67_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred72_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred72_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred139_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred139_MiniMP_fragment(); // can never throw exception
} catch (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_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred13_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred141_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred141_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred82_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred82_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred59_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred59_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred96_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred96_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred57_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred57_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred69_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred69_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred119_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred119_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred100_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred100_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred151_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred151_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred143_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred143_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred138_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred138_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred70_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred70_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred145_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred145_MiniMP_fragment(); // can never throw exception
} catch (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_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred16_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred64_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred64_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred87_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred87_MiniMP_fragment(); // can never throw exception
} catch (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_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred5_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred84_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred84_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred132_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred132_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred77_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred77_MiniMP_fragment(); // can never throw exception
} catch (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_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred4_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred133_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred133_MiniMP_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred102_MiniMP() {
state.backtracking++;
int start = input.mark();
try {
synpred102_MiniMP_fragment(); // can never 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 DFA86 dfa86 = new DFA86(this);
protected DFA87 dfa87 = new DFA87(this);
protected DFA88 dfa88 = new DFA88(this);
protected DFA89 dfa89 = new DFA89(this);
protected DFA90 dfa90 = new DFA90(this);
protected DFA91 dfa91 = new DFA91(this);
static final String DFA86_eotS =
"\101\uffff";
static final String DFA86_eofS =
"\1\7\100\uffff";
static final String DFA86_minS =
"\1\10\3\uffff\2\0\73\uffff";
static final String DFA86_maxS =
"\1\u00be\3\uffff\2\0\73\uffff";
static final String DFA86_acceptS =
"\1\uffff\1\1\5\uffff\1\2\71\uffff";
static final String DFA86_specialS =
"\4\uffff\1\0\1\1\73\uffff}>";
static final String[] DFA86_transitionS = {
"\1\7\1\uffff\1\7\4\uffff\1\1\1\7\1\uffff\1\7\4\uffff\1\1\2\uffff\1\7"+
"\2\uffff\2\7\4\uffff\2\7\4\uffff\1\7\12\uffff\1\7\2\uffff\1\7\7\uffff"+
"\2\7\1\1\1\7\1\4\1\5\1\7\1\uffff\1\7\2\uffff\1\7\4\uffff\1\7\1\uffff"+
"\3\7\3\uffff\2\7\1\uffff\2\7\3\uffff\1\7\6\uffff\2\7\2\uffff\1\7\4\uffff"+
"\1\7\3\uffff\1\7\1\1\2\7\1\uffff\3\7\1\uffff\1\7\1\uffff\1\7\1\uffff"+
"\2\7\6\uffff\2\7\2\uffff\1\7\4\uffff\1\7\2\uffff\3\7\2\uffff\1\7\1\uffff"+
"\3\7\2\uffff\2\7\4\uffff\1\7\1\uffff\1\7\3\uffff\5\7\2\uffff\1\7\1\uffff"+
"\1\7\1\uffff\1\7\4\uffff\3\7",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA86_eot = DFA.unpackEncodedString(DFA86_eotS);
static final short[] DFA86_eof = DFA.unpackEncodedString(DFA86_eofS);
static final char[] DFA86_min = DFA.unpackEncodedStringToUnsignedChars(DFA86_minS);
static final char[] DFA86_max = DFA.unpackEncodedStringToUnsignedChars(DFA86_maxS);
static final short[] DFA86_accept = DFA.unpackEncodedString(DFA86_acceptS);
static final short[] DFA86_special = DFA.unpackEncodedString(DFA86_specialS);
static final short[][] DFA86_transition;
static {
int numStates = DFA86_transitionS.length;
DFA86_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA86_transition[i] = DFA.unpackEncodedString(DFA86_transitionS[i]);
}
}
protected class DFA86 extends DFA {
public DFA86(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 86;
this.eot = DFA86_eot;
this.eof = DFA86_eof;
this.min = DFA86_min;
this.max = DFA86_max;
this.accept = DFA86_accept;
this.special = DFA86_special;
this.transition = DFA86_transition;
}
@Override
public String getDescription() {
return "607:17: ( postfix_expr_suffix )?";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA86_4 = input.LA(1);
int index86_4 = input.index();
input.rewind();
s = -1;
if ( (synpred138_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index86_4);
if ( s>=0 ) return s;
break;
case 1 :
int LA86_5 = input.LA(1);
int index86_5 = input.index();
input.rewind();
s = -1;
if ( (synpred138_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index86_5);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 86, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA87_eotS =
"\101\uffff";
static final String DFA87_eofS =
"\1\7\100\uffff";
static final String DFA87_minS =
"\1\10\3\uffff\2\0\73\uffff";
static final String DFA87_maxS =
"\1\u00be\3\uffff\2\0\73\uffff";
static final String DFA87_acceptS =
"\1\uffff\1\1\5\uffff\1\2\71\uffff";
static final String DFA87_specialS =
"\4\uffff\1\0\1\1\73\uffff}>";
static final String[] DFA87_transitionS = {
"\1\7\1\uffff\1\7\4\uffff\1\1\1\7\1\uffff\1\7\4\uffff\1\1\2\uffff\1\7"+
"\2\uffff\2\7\4\uffff\2\7\4\uffff\1\7\12\uffff\1\7\2\uffff\1\7\7\uffff"+
"\2\7\1\1\1\7\1\4\1\5\1\7\1\uffff\1\7\2\uffff\1\7\4\uffff\1\7\1\uffff"+
"\3\7\3\uffff\2\7\1\uffff\2\7\3\uffff\1\7\6\uffff\2\7\2\uffff\1\7\4\uffff"+
"\1\7\3\uffff\1\7\1\1\2\7\1\uffff\3\7\1\uffff\1\7\1\uffff\1\7\1\uffff"+
"\2\7\6\uffff\2\7\2\uffff\1\7\4\uffff\1\7\2\uffff\3\7\2\uffff\1\7\1\uffff"+
"\3\7\2\uffff\2\7\4\uffff\1\7\1\uffff\1\7\3\uffff\5\7\2\uffff\1\7\1\uffff"+
"\1\7\1\uffff\1\7\4\uffff\3\7",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA87_eot = DFA.unpackEncodedString(DFA87_eotS);
static final short[] DFA87_eof = DFA.unpackEncodedString(DFA87_eofS);
static final char[] DFA87_min = DFA.unpackEncodedStringToUnsignedChars(DFA87_minS);
static final char[] DFA87_max = DFA.unpackEncodedStringToUnsignedChars(DFA87_maxS);
static final short[] DFA87_accept = DFA.unpackEncodedString(DFA87_acceptS);
static final short[] DFA87_special = DFA.unpackEncodedString(DFA87_specialS);
static final short[][] DFA87_transition;
static {
int numStates = DFA87_transitionS.length;
DFA87_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA87_transition[i] = DFA.unpackEncodedString(DFA87_transitionS[i]);
}
}
protected class DFA87 extends DFA {
public DFA87(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 87;
this.eot = DFA87_eot;
this.eof = DFA87_eof;
this.min = DFA87_min;
this.max = DFA87_max;
this.accept = DFA87_accept;
this.special = DFA87_special;
this.transition = DFA87_transition;
}
@Override
public String getDescription() {
return "612:19: ( postfix_expr_suffix )?";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA87_4 = input.LA(1);
int index87_4 = input.index();
input.rewind();
s = -1;
if ( (synpred139_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index87_4);
if ( s>=0 ) return s;
break;
case 1 :
int LA87_5 = input.LA(1);
int index87_5 = input.index();
input.rewind();
s = -1;
if ( (synpred139_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index87_5);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 87, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA88_eotS =
"\101\uffff";
static final String DFA88_eofS =
"\1\7\100\uffff";
static final String DFA88_minS =
"\1\10\3\uffff\2\0\73\uffff";
static final String DFA88_maxS =
"\1\u00be\3\uffff\2\0\73\uffff";
static final String DFA88_acceptS =
"\1\uffff\1\1\5\uffff\1\2\71\uffff";
static final String DFA88_specialS =
"\4\uffff\1\0\1\1\73\uffff}>";
static final String[] DFA88_transitionS = {
"\1\7\1\uffff\1\7\4\uffff\1\1\1\7\1\uffff\1\7\4\uffff\1\1\2\uffff\1\7"+
"\2\uffff\2\7\4\uffff\2\7\4\uffff\1\7\12\uffff\1\7\2\uffff\1\7\7\uffff"+
"\2\7\1\1\1\7\1\4\1\5\1\7\1\uffff\1\7\2\uffff\1\7\4\uffff\1\7\1\uffff"+
"\3\7\3\uffff\2\7\1\uffff\2\7\3\uffff\1\7\6\uffff\2\7\2\uffff\1\7\4\uffff"+
"\1\7\3\uffff\1\7\1\1\2\7\1\uffff\3\7\1\uffff\1\7\1\uffff\1\7\1\uffff"+
"\2\7\6\uffff\2\7\2\uffff\1\7\4\uffff\1\7\2\uffff\3\7\2\uffff\1\7\1\uffff"+
"\3\7\2\uffff\2\7\4\uffff\1\7\1\uffff\1\7\3\uffff\5\7\2\uffff\1\7\1\uffff"+
"\1\7\1\uffff\1\7\4\uffff\3\7",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA88_eot = DFA.unpackEncodedString(DFA88_eotS);
static final short[] DFA88_eof = DFA.unpackEncodedString(DFA88_eofS);
static final char[] DFA88_min = DFA.unpackEncodedStringToUnsignedChars(DFA88_minS);
static final char[] DFA88_max = DFA.unpackEncodedStringToUnsignedChars(DFA88_maxS);
static final short[] DFA88_accept = DFA.unpackEncodedString(DFA88_acceptS);
static final short[] DFA88_special = DFA.unpackEncodedString(DFA88_specialS);
static final short[][] DFA88_transition;
static {
int numStates = DFA88_transitionS.length;
DFA88_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA88_transition[i] = DFA.unpackEncodedString(DFA88_transitionS[i]);
}
}
protected class DFA88 extends DFA {
public DFA88(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 88;
this.eot = DFA88_eot;
this.eof = DFA88_eof;
this.min = DFA88_min;
this.max = DFA88_max;
this.accept = DFA88_accept;
this.special = DFA88_special;
this.transition = DFA88_transition;
}
@Override
public String getDescription() {
return "614:21: ( postfix_expr_suffix )?";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA88_4 = input.LA(1);
int index88_4 = input.index();
input.rewind();
s = -1;
if ( (synpred141_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index88_4);
if ( s>=0 ) return s;
break;
case 1 :
int LA88_5 = input.LA(1);
int index88_5 = input.index();
input.rewind();
s = -1;
if ( (synpred141_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index88_5);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 88, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA89_eotS =
"\101\uffff";
static final String DFA89_eofS =
"\1\7\100\uffff";
static final String DFA89_minS =
"\1\10\3\uffff\2\0\73\uffff";
static final String DFA89_maxS =
"\1\u00be\3\uffff\2\0\73\uffff";
static final String DFA89_acceptS =
"\1\uffff\1\1\5\uffff\1\2\71\uffff";
static final String DFA89_specialS =
"\4\uffff\1\0\1\1\73\uffff}>";
static final String[] DFA89_transitionS = {
"\1\7\1\uffff\1\7\4\uffff\1\1\1\7\1\uffff\1\7\4\uffff\1\1\2\uffff\1\7"+
"\2\uffff\2\7\4\uffff\2\7\4\uffff\1\7\12\uffff\1\7\2\uffff\1\7\7\uffff"+
"\2\7\1\1\1\7\1\4\1\5\1\7\1\uffff\1\7\2\uffff\1\7\4\uffff\1\7\1\uffff"+
"\3\7\3\uffff\2\7\1\uffff\2\7\3\uffff\1\7\6\uffff\2\7\2\uffff\1\7\4\uffff"+
"\1\7\3\uffff\1\7\1\1\2\7\1\uffff\3\7\1\uffff\1\7\1\uffff\1\7\1\uffff"+
"\2\7\6\uffff\2\7\2\uffff\1\7\4\uffff\1\7\2\uffff\3\7\2\uffff\1\7\1\uffff"+
"\3\7\2\uffff\2\7\4\uffff\1\7\1\uffff\1\7\3\uffff\5\7\2\uffff\1\7\1\uffff"+
"\1\7\1\uffff\1\7\4\uffff\3\7",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA89_eot = DFA.unpackEncodedString(DFA89_eotS);
static final short[] DFA89_eof = DFA.unpackEncodedString(DFA89_eofS);
static final char[] DFA89_min = DFA.unpackEncodedStringToUnsignedChars(DFA89_minS);
static final char[] DFA89_max = DFA.unpackEncodedStringToUnsignedChars(DFA89_maxS);
static final short[] DFA89_accept = DFA.unpackEncodedString(DFA89_acceptS);
static final short[] DFA89_special = DFA.unpackEncodedString(DFA89_specialS);
static final short[][] DFA89_transition;
static {
int numStates = DFA89_transitionS.length;
DFA89_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA89_transition[i] = DFA.unpackEncodedString(DFA89_transitionS[i]);
}
}
protected class DFA89 extends DFA {
public DFA89(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 89;
this.eot = DFA89_eot;
this.eof = DFA89_eof;
this.min = DFA89_min;
this.max = DFA89_max;
this.accept = DFA89_accept;
this.special = DFA89_special;
this.transition = DFA89_transition;
}
@Override
public String getDescription() {
return "616:25: ( postfix_expr_suffix )?";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA89_4 = input.LA(1);
int index89_4 = input.index();
input.rewind();
s = -1;
if ( (synpred143_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index89_4);
if ( s>=0 ) return s;
break;
case 1 :
int LA89_5 = input.LA(1);
int index89_5 = input.index();
input.rewind();
s = -1;
if ( (synpred143_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index89_5);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 89, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA90_eotS =
"\101\uffff";
static final String DFA90_eofS =
"\1\7\100\uffff";
static final String DFA90_minS =
"\1\10\3\uffff\2\0\73\uffff";
static final String DFA90_maxS =
"\1\u00be\3\uffff\2\0\73\uffff";
static final String DFA90_acceptS =
"\1\uffff\1\1\5\uffff\1\2\71\uffff";
static final String DFA90_specialS =
"\4\uffff\1\0\1\1\73\uffff}>";
static final String[] DFA90_transitionS = {
"\1\7\1\uffff\1\7\4\uffff\1\1\1\7\1\uffff\1\7\4\uffff\1\1\2\uffff\1\7"+
"\2\uffff\2\7\4\uffff\2\7\4\uffff\1\7\12\uffff\1\7\2\uffff\1\7\7\uffff"+
"\2\7\1\1\1\7\1\4\1\5\1\7\1\uffff\1\7\2\uffff\1\7\4\uffff\1\7\1\uffff"+
"\3\7\3\uffff\2\7\1\uffff\2\7\3\uffff\1\7\6\uffff\2\7\2\uffff\1\7\4\uffff"+
"\1\7\3\uffff\1\7\1\1\2\7\1\uffff\3\7\1\uffff\1\7\1\uffff\1\7\1\uffff"+
"\2\7\6\uffff\2\7\2\uffff\1\7\4\uffff\1\7\2\uffff\3\7\2\uffff\1\7\1\uffff"+
"\3\7\2\uffff\2\7\4\uffff\1\7\1\uffff\1\7\3\uffff\5\7\2\uffff\1\7\1\uffff"+
"\1\7\1\uffff\1\7\4\uffff\3\7",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA90_eot = DFA.unpackEncodedString(DFA90_eotS);
static final short[] DFA90_eof = DFA.unpackEncodedString(DFA90_eofS);
static final char[] DFA90_min = DFA.unpackEncodedStringToUnsignedChars(DFA90_minS);
static final char[] DFA90_max = DFA.unpackEncodedStringToUnsignedChars(DFA90_maxS);
static final short[] DFA90_accept = DFA.unpackEncodedString(DFA90_acceptS);
static final short[] DFA90_special = DFA.unpackEncodedString(DFA90_specialS);
static final short[][] DFA90_transition;
static {
int numStates = DFA90_transitionS.length;
DFA90_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA90_transition[i] = DFA.unpackEncodedString(DFA90_transitionS[i]);
}
}
protected class DFA90 extends DFA {
public DFA90(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 90;
this.eot = DFA90_eot;
this.eof = DFA90_eof;
this.min = DFA90_min;
this.max = DFA90_max;
this.accept = DFA90_accept;
this.special = DFA90_special;
this.transition = DFA90_transition;
}
@Override
public String getDescription() {
return "618:19: ( postfix_expr_suffix )?";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA90_4 = input.LA(1);
int index90_4 = input.index();
input.rewind();
s = -1;
if ( (synpred145_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index90_4);
if ( s>=0 ) return s;
break;
case 1 :
int LA90_5 = input.LA(1);
int index90_5 = input.index();
input.rewind();
s = -1;
if ( (synpred145_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index90_5);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 90, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA91_eotS =
"\101\uffff";
static final String DFA91_eofS =
"\1\7\100\uffff";
static final String DFA91_minS =
"\1\10\3\uffff\2\0\73\uffff";
static final String DFA91_maxS =
"\1\u00be\3\uffff\2\0\73\uffff";
static final String DFA91_acceptS =
"\1\uffff\1\1\5\uffff\1\2\71\uffff";
static final String DFA91_specialS =
"\4\uffff\1\0\1\1\73\uffff}>";
static final String[] DFA91_transitionS = {
"\1\7\1\uffff\1\7\4\uffff\1\1\1\7\1\uffff\1\7\4\uffff\1\1\2\uffff\1\7"+
"\2\uffff\2\7\4\uffff\2\7\4\uffff\1\7\12\uffff\1\7\2\uffff\1\7\7\uffff"+
"\2\7\1\1\1\7\1\4\1\5\1\7\1\uffff\1\7\2\uffff\1\7\4\uffff\1\7\1\uffff"+
"\3\7\3\uffff\2\7\1\uffff\2\7\3\uffff\1\7\6\uffff\2\7\2\uffff\1\7\4\uffff"+
"\1\7\3\uffff\1\7\1\1\2\7\1\uffff\3\7\1\uffff\1\7\1\uffff\1\7\1\uffff"+
"\2\7\6\uffff\2\7\2\uffff\1\7\4\uffff\1\7\2\uffff\3\7\2\uffff\1\7\1\uffff"+
"\3\7\2\uffff\2\7\4\uffff\1\7\1\uffff\1\7\3\uffff\5\7\2\uffff\1\7\1\uffff"+
"\1\7\1\uffff\1\7\4\uffff\3\7",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA91_eot = DFA.unpackEncodedString(DFA91_eotS);
static final short[] DFA91_eof = DFA.unpackEncodedString(DFA91_eofS);
static final char[] DFA91_min = DFA.unpackEncodedStringToUnsignedChars(DFA91_minS);
static final char[] DFA91_max = DFA.unpackEncodedStringToUnsignedChars(DFA91_maxS);
static final short[] DFA91_accept = DFA.unpackEncodedString(DFA91_acceptS);
static final short[] DFA91_special = DFA.unpackEncodedString(DFA91_specialS);
static final short[][] DFA91_transition;
static {
int numStates = DFA91_transitionS.length;
DFA91_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA91_transition[i] = DFA.unpackEncodedString(DFA91_transitionS[i]);
}
}
protected class DFA91 extends DFA {
public DFA91(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 91;
this.eot = DFA91_eot;
this.eof = DFA91_eof;
this.min = DFA91_min;
this.max = DFA91_max;
this.accept = DFA91_accept;
this.special = DFA91_special;
this.transition = DFA91_transition;
}
@Override
public String getDescription() {
return "620:33: ( postfix_expr_suffix )?";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA91_4 = input.LA(1);
int index91_4 = input.index();
input.rewind();
s = -1;
if ( (synpred147_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index91_4);
if ( s>=0 ) return s;
break;
case 1 :
int LA91_5 = input.LA(1);
int index91_5 = input.index();
input.rewind();
s = -1;
if ( (synpred147_MiniMP()) ) {s = 1;}
else if ( (true) ) {s = 7;}
input.seek(index91_5);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 91, _s, input);
error(nvae);
throw nvae;
}
}
public static final BitSet FOLLOW_program_element_in_program432 = new BitSet(new long[]{0x0010020024000002L,0x0000844084020004L,0x1080500000001000L});
public static final BitSet FOLLOW_include_directive_in_program_element457 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_define_directive_in_program_element462 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_in_program_element467 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_abstract_function_in_program_element472 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_in_program_element477 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_include_list_in_list489 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_define_list_in_list494 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_list_in_list499 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_in_declaration_list512 = new BitSet(new long[]{0x0000020024000002L,0x0000844004020004L,0x1080500000001000L});
public static final BitSet FOLLOW_include_directive_in_include_list534 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
public static final BitSet FOLLOW_INCLUDE_in_include_directive558 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_define_directive_in_define_list582 = new BitSet(new long[]{0x0010000000000002L});
public static final BitSet FOLLOW_DEFINE_in_define_directive604 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_define_directive606 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_define_directive608 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarator_in_declaration_unit632 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_ASSIGN_in_declaration_unit635 = new BitSet(new long[]{0x0080000040000100L,0x0408808004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_initializer_in_declaration_unit637 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_specifier_in_declaration659 = new BitSet(new long[]{0x0000000000000000L,0x0408000004000000L});
public static final BitSet FOLLOW_declaration_unit_in_declaration661 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_declaration664 = new BitSet(new long[]{0x0000000000000000L,0x0408000004000000L});
public static final BitSet FOLLOW_declaration_unit_in_declaration666 = new BitSet(new long[]{0x0000001000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_declaration670 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_prefix_in_declaration704 = new BitSet(new long[]{0x0000020024000000L,0x0000844004020004L,0x1000500000000000L});
public static final BitSet FOLLOW_suffix_in_declaration707 = new BitSet(new long[]{0x0000020024000000L,0x0000004004020004L,0x1000500000000000L});
public static final BitSet FOLLOW_declaration_body_in_declaration710 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_declaration712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_declaration735 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_declaration737 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_INPUT_in_declaration739 = new BitSet(new long[]{0x0000000024000000L,0x0000844004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_suffix_in_declaration741 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_type_specifier_in_declaration744 = new BitSet(new long[]{0x0010000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_declaration746 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_DEFINE_in_declaration749 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_declaration751 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_declaration753 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TYPEDEF_in_prefix801 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_prefix814 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_prefix816 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_INPUT_in_prefix818 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_prefix831 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_prefix833 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_OUTPUT_in_prefix835 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_prefix848 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_prefix850 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
public static final BitSet FOLLOW_SHARED_in_prefix852 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ignored_in_declaration_body874 = new BitSet(new long[]{0x0000020024000000L,0x0000004004020004L,0x1000500000000000L});
public static final BitSet FOLLOW_type_specifier_in_declaration_body877 = new BitSet(new long[]{0x0000000000000002L,0x0408000004000000L});
public static final BitSet FOLLOW_declarator_in_declaration_body880 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_ASSIGN_in_declaration_body883 = new BitSet(new long[]{0x0080000040000100L,0x0408808004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_initializer_in_declaration_body885 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MULTI_in_pointer916 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_declarator927 = new BitSet(new long[]{0x0000000000000000L,0x0408000004000000L});
public static final BitSet FOLLOW_direct_declarator_in_declarator930 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_direct_declarator954 = new BitSet(new long[]{0x0000000000000002L,0x0010000000000000L});
public static final BitSet FOLLOW_declarator_suffix_in_direct_declarator956 = new BitSet(new long[]{0x0000000000000002L,0x0010000000000000L});
public static final BitSet FOLLOW_LPAREN_in_direct_declarator975 = new BitSet(new long[]{0x0000000000000000L,0x0408000004000000L});
public static final BitSet FOLLOW_declarator_in_direct_declarator977 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_direct_declarator979 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_declarator_suffix_in_direct_declarator981 = new BitSet(new long[]{0x0000000000000002L,0x0010000000000000L});
public static final BitSet FOLLOW_LSQUARE_in_declarator_suffix1008 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14010200101L});
public static final BitSet FOLLOW_expr_in_declarator_suffix1010 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_RSQUARE_in_declarator_suffix1013 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_initializer1037 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_initializer1053 = new BitSet(new long[]{0x0080000040000100L,0x041880800408841AL,0x0028A14000300101L});
public static final BitSet FOLLOW_initializer_list_in_initializer1055 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_initializer1058 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designation_in_initializer_list1086 = new BitSet(new long[]{0x0080000040000100L,0x0408808004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_initializer_in_initializer_list1089 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_COMMA_in_initializer_list1092 = new BitSet(new long[]{0x0080000040000100L,0x041880800408841AL,0x0028A14000200101L});
public static final BitSet FOLLOW_initializer_list_in_initializer_list1094 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designator_list_in_designation1124 = new BitSet(new long[]{0x0000000000040000L});
public static final BitSet FOLLOW_ASSIGN_in_designation1126 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designator_in_designator_list1148 = new BitSet(new long[]{0x0000000000000002L,0x0010000000000002L});
public static final BitSet FOLLOW_LSQUARE_in_designator1169 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_ifThenElse_expr_in_designator1171 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_RSQUARE_in_designator1173 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_designator1189 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_designator1191 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_suffix1213 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_suffix1215 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_suffix1217 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
public static final BitSet FOLLOW_IS_in_suffix1220 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_suffix1222 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IS_in_suffix1244 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_suffix1246 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simple_type_in_type_specifier1286 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRUCT_in_type_specifier1302 = new BitSet(new long[]{0x0000000000000000L,0x0000800004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_type_specifier1304 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_LCURLY_in_type_specifier1307 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000100000L});
public static final BitSet FOLLOW_field_declaration_in_type_specifier1309 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000100000L});
public static final BitSet FOLLOW_RCURLY_in_type_specifier1312 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRUCT_in_type_specifier1333 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_type_specifier1335 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_type_specifier1352 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BOOLEAN_in_simple_type1374 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHAR_in_simple_type1387 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INT_in_simple_type1400 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOAT_in_simple_type1413 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_in_simple_type1426 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VOID_in_simple_type1439 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_specifier_in_type_name1459 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
public static final BitSet FOLLOW_abstract_declarator_in_type_name1461 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_abstract_declarator1487 = new BitSet(new long[]{0x0000000000000002L,0x0418000000000000L});
public static final BitSet FOLLOW_direct_abstract_declarator_in_abstract_declarator1490 = new BitSet(new long[]{0x0000000000000002L,0x0010000000000000L});
public static final BitSet FOLLOW_declarator_suffix_in_abstract_declarator1493 = new BitSet(new long[]{0x0000000000000002L,0x0010000000000000L});
public static final BitSet FOLLOW_LPAREN_in_direct_abstract_declarator1522 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_abstract_declarator_in_direct_abstract_declarator1524 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_direct_abstract_declarator1526 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_specifier_in_field_declaration1551 = new BitSet(new long[]{0x0000000000000000L,0x0408000004000000L});
public static final BitSet FOLLOW_declarator_in_field_declaration1553 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_field_declaration1555 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_abstract_function1580 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_abstract_function1582 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_ABSTRACT_in_abstract_function1584 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_CONTINUOUS_in_abstract_function1586 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_abstract_function1588 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_INT_LITERAL_in_abstract_function1590 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_abstract_function1592 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_type_name_in_abstract_function1594 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_abstract_function1596 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_abstract_function1598 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400008000000L});
public static final BitSet FOLLOW_argument_list_in_abstract_function1600 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_abstract_function1603 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_abstract_function1605 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_abstract_function1631 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_abstract_function1633 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_ABSTRACT_in_abstract_function1635 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_type_name_in_abstract_function1637 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_abstract_function1639 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_abstract_function1641 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400008000000L});
public static final BitSet FOLLOW_argument_list_in_abstract_function1643 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_abstract_function1646 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_abstract_function1648 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_name_in_function1682 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_function1684 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_function1686 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400008000000L});
public static final BitSet FOLLOW_argument_list_in_function1688 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_function1691 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_LCURLY_in_function1693 = new BitSet(new long[]{0x0080020064010100L,0x040884C00C0E841CL,0x50A8F14322701101L});
public static final BitSet FOLLOW_body_in_function1695 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_function1697 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_name_in_function1727 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_function1729 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_function1731 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400008000000L});
public static final BitSet FOLLOW_argument_list_in_function1733 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_function1736 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_function1738 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_function1753 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_function1755 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_SYSTEM_in_function1757 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_type_name_in_function1759 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_function1761 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_function1763 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400008000000L});
public static final BitSet FOLLOW_argument_list_in_function1765 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_function1768 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_function1770 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_function1794 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_function1796 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_SYSTEM_in_function1798 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_GUARD_in_function1800 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_function1802 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_type_name_in_function1804 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_function1806 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_function1808 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400008000000L});
public static final BitSet FOLLOW_argument_list_in_function1810 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_function1813 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_function1815 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_argument_in_argument_list1852 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_COMMA_in_argument_list1855 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_argument_in_argument_list1857 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_type_specifier_in_argument1886 = new BitSet(new long[]{0x0000000000000000L,0x0408000004000000L});
public static final BitSet FOLLOW_declarator_in_argument1888 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_list_in_body1910 = new BitSet(new long[]{0x0080000040010102L,0x040880800C0C8418L,0x4028A14322601101L});
public static final BitSet FOLLOW_statement_list_in_body1913 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_statement_list1938 = new BitSet(new long[]{0x0080000040010102L,0x040880800C0C8418L,0x4028A14322601101L});
public static final BitSet FOLLOW_assert_statement_in_statement1963 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_collective_assert_statement_in_statement1976 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_joint_assert_statement_in_statement1989 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_invariant_statement_in_statement2002 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_collective_invariant_statement_in_statement2015 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_joint_invariant_statement_in_statement2028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assume_statement_in_statement2041 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_compound_statement_in_statement2057 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_condition_statement_in_statement2070 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_select_statement_in_statement2083 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_iterative_statement_in_statement2096 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_return_statement_in_statement2109 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_empty_statement_in_statement2122 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_send_statement_in_statement2135 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_recv_statement_in_statement2148 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_call_statement_in_statement2161 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_statement_in_statement2174 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocate_statement_in_statement2187 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_assume_statement2208 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_assume_statement2210 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_ASSUME_in_assume_statement2212 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_assume_statement2214 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_assume_statement2216 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_assert_statement2240 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_assert_statement2242 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSERT_in_assert_statement2244 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_assert_statement2246 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_assert_statement2248 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSERT_in_assert_statement2267 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_assert_statement2269 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_assert_statement2271 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_assert_statement2288 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_assert_statement2290 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSERT_in_assert_statement2292 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_assert_statement2294 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_assert_statement2296 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
public static final BitSet FOLLOW_STRING_LITERAL_in_assert_statement2298 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_assert_statement2300 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_collective_assert_statement2325 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_collective_assert_statement2327 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_COLLECTIVE_in_collective_assert_statement2329 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSERT_in_collective_assert_statement2331 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_collective_assert_statement2333 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_collective_assert_statement2335 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_joint_assert_statement2356 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_joint_assert_statement2358 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_JOINT_in_joint_assert_statement2360 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSERT_in_joint_assert_statement2362 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_joint_assert_statement2364 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_joint_assert_statement2366 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_joint_assert_statement2368 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_invariant_statement2389 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_invariant_statement2391 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
public static final BitSet FOLLOW_INVARIANT_in_invariant_statement2393 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_invariant_statement2395 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_invariant_statement2397 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_invariant_statement2399 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_collective_invariant_statement2420 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_collective_invariant_statement2422 = new BitSet(new long[]{0x0000000100000000L});
public static final BitSet FOLLOW_COLLECTIVE_in_collective_invariant_statement2424 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
public static final BitSet FOLLOW_INVARIANT_in_collective_invariant_statement2426 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_collective_invariant_statement2428 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_collective_invariant_statement2430 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_collective_invariant_statement2432 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_joint_invariant_statement2453 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_joint_invariant_statement2455 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_JOINT_in_joint_invariant_statement2457 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
public static final BitSet FOLLOW_INVARIANT_in_joint_invariant_statement2459 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_joint_invariant_statement2461 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_joint_invariant_statement2463 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_joint_invariant_statement2465 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_compound_statement2490 = new BitSet(new long[]{0x0080000040010100L,0x040880800C0C8418L,0x4028A14322701101L});
public static final BitSet FOLLOW_statement_list_in_compound_statement2492 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_compound_statement2495 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_condition_statement2522 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_condition_statement2524 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_condition_statement2526 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_condition_statement2528 = new BitSet(new long[]{0x0080000040010100L,0x040880800C0C8418L,0x4028A14322601101L});
public static final BitSet FOLLOW_statement_in_condition_statement2530 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
public static final BitSet FOLLOW_ELSE_in_condition_statement2533 = new BitSet(new long[]{0x0080000040010100L,0x040880800C0C8418L,0x4028A14322601101L});
public static final BitSet FOLLOW_statement_in_condition_statement2535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SELECT_in_select_statement2574 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_LCURLY_in_select_statement2576 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2000000000000000L});
public static final BitSet FOLLOW_choice_in_select_statement2578 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_select_statement2581 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHEN_in_choice2603 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_choice2605 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_choice2607 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_choice2609 = new BitSet(new long[]{0x0080000040010100L,0x040880800C0C8418L,0x4028A14322601101L});
public static final BitSet FOLLOW_statement_in_choice2611 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_correspondence_annotation_in_iterative_statement2640 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L,0x4000000000000000L});
public static final BitSet FOLLOW_loop_statement_in_iterative_statement2644 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHILE_in_loop_statement2669 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_loop_statement2671 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_loop_statement2673 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_loop_statement2675 = new BitSet(new long[]{0x0080000040010100L,0x040880800C0C8418L,0x4028A14322601101L});
public static final BitSet FOLLOW_statement_in_loop_statement2677 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_loop_statement2700 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_loop_statement2702 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14100200101L});
public static final BitSet FOLLOW_expr_in_loop_statement2706 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_loop_statement2709 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14100200101L});
public static final BitSet FOLLOW_expr_in_loop_statement2713 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_loop_statement2716 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14008200101L});
public static final BitSet FOLLOW_expr_in_loop_statement2720 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_loop_statement2723 = new BitSet(new long[]{0x0080000040010100L,0x040880800C0C8418L,0x4028A14322601101L});
public static final BitSet FOLLOW_statement_in_loop_statement2725 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_correspondence_annotation2767 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_COLON_in_correspondence_annotation2769 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_PRAGMA_in_correspondence_annotation2772 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_correspondence_annotation2774 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_JOINT_in_correspondence_annotation2776 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
public static final BitSet FOLLOW_INVARIANT_in_correspondence_annotation2778 = new BitSet(new long[]{0x0000000000800000L});
public static final BitSet FOLLOW_AT_in_correspondence_annotation2780 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_correspondence_annotation2782 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_LCURLY_in_correspondence_annotation2784 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_skew_factor_in_correspondence_annotation2786 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_correspondence_annotation2789 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_correspondence_annotation2791 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_correspondence_annotation2820 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_COLON_in_correspondence_annotation2822 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_PRAGMA_in_correspondence_annotation2825 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_correspondence_annotation2827 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
public static final BitSet FOLLOW_INVARIANT_in_correspondence_annotation2829 = new BitSet(new long[]{0x0000000000800000L});
public static final BitSet FOLLOW_AT_in_correspondence_annotation2831 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_correspondence_annotation2833 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_LCURLY_in_correspondence_annotation2835 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_skew_factor_in_correspondence_annotation2837 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_correspondence_annotation2840 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_correspondence_annotation2842 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INT_LITERAL_in_skew_factor2878 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_COLON_in_skew_factor2880 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_INT_LITERAL_in_skew_factor2882 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RETURN_in_return_statement2904 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14100200101L});
public static final BitSet FOLLOW_expr_in_return_statement2906 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_return_statement2909 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMI_in_empty_statement2934 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEND_in_send_statement2954 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_send_statement2956 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_send_statement2960 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_send_statement2962 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_send_statement2966 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_send_statement2968 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_send_statement2972 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_send_statement2974 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_send_statement2976 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECV_in_recv_statement3009 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_recv_statement3011 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_recv_statement3015 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_recv_statement3017 = new BitSet(new long[]{0x0080000040001100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_comm_expr_in_recv_statement3021 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_recv_statement3023 = new BitSet(new long[]{0x0080000040001100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_comm_expr_in_recv_statement3027 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_recv_statement3029 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_recv_statement3031 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECV_in_recv_statement3057 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_recv_statement3059 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_recv_statement3063 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_recv_statement3065 = new BitSet(new long[]{0x0080000040001100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_comm_expr_in_recv_statement3069 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_recv_statement3071 = new BitSet(new long[]{0x0080000040001100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_comm_expr_in_recv_statement3075 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_recv_statement3077 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_unary_expr_in_recv_statement3083 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_recv_statement3085 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_recv_statement3087 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_comm_expr3123 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_wildcard_expr_in_comm_expr3136 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ANY_in_wildcard_expr3156 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_wildcard_expr3158 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_wildcard_expr3160 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_wildcard_expr3162 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_expr_in_call_statement3190 = new BitSet(new long[]{0x0000000000040000L});
public static final BitSet FOLLOW_ASSIGN_in_call_statement3192 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_call_statement3196 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_call_statement3198 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14008200101L});
public static final BitSet FOLLOW_parameter_list_in_call_statement3200 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_call_statement3203 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_call_statement3205 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_expr_in_allocate_statement3238 = new BitSet(new long[]{0x0000000000040000L});
public static final BitSet FOLLOW_ASSIGN_in_allocate_statement3240 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_allocate_statement3242 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_type_name_in_allocate_statement3244 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_MULTI_in_allocate_statement3246 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_allocate_statement3248 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_MALLOC_in_allocate_statement3250 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_unary_expr_in_allocate_statement3252 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_allocate_statement3254 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameter_in_parameter_list3281 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_COMMA_in_parameter_list3284 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_parameter_in_parameter_list3286 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_expr_in_parameter3308 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_partial_in_partial_list3327 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_COMMA_in_partial_list3330 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_partial_in_partial_list3332 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_LCURLY_in_partial3354 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_partial3356 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_partial3358 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_INT_LITERAL_in_partial3360 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_partial3362 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_expr_statement3383 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_expr_statement3385 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assign_expr_in_expr3409 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifier_expr_in_expr3422 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_expr_in_assign_expr3442 = new BitSet(new long[]{0x0000000000040000L,0x1200000000000001L,0x0001000000000200L});
public static final BitSet FOLLOW_assign_operator_in_assign_expr3444 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_assign_expr_in_assign_expr3446 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ifThenElse_expr_in_assign_expr3466 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logical_or_expr_in_ifThenElse_expr3489 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000020000L});
public static final BitSet FOLLOW_QMARK_in_ifThenElse_expr3492 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_ifThenElse_expr3496 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_COLON_in_ifThenElse_expr3498 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_ifThenElse_expr3502 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifier_in_quantifier_expr3536 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_LCURLY_in_quantifier_expr3538 = new BitSet(new long[]{0x0000000024000000L,0x0000004000020004L,0x1000000000000000L});
public static final BitSet FOLLOW_simple_type_in_quantifier_expr3540 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_quantifier_expr3542 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_quantifier_expr3544 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_quantifier_expr3546 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifier_in_quantifier_expr3567 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_LCURLY_in_quantifier_expr3569 = new BitSet(new long[]{0x0000000024000000L,0x0000004000020004L,0x1000000000000000L});
public static final BitSet FOLLOW_simple_type_in_quantifier_expr3571 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_quantifier_expr3573 = new BitSet(new long[]{0x0000000001000000L});
public static final BitSet FOLLOW_BAR_in_quantifier_expr3575 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_logical_or_expr_in_quantifier_expr3577 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_quantifier_expr3579 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_quantifier_expr3581 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FORALL_in_quantifier3613 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXISTS_in_quantifier3626 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logical_and_expr_in_logical_or_expr3645 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_OR_in_logical_or_expr3648 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_logical_and_expr_in_logical_or_expr3650 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_equality_expr_in_logical_and_expr3681 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_AND_in_logical_and_expr3684 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_equality_expr_in_logical_and_expr3686 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_relational_expr_in_equality_expr3717 = new BitSet(new long[]{0x0000000000000002L,0x4000000000000080L});
public static final BitSet FOLLOW_equality_operator_in_equality_expr3720 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_relational_expr_in_equality_expr3722 = new BitSet(new long[]{0x0000000000000002L,0x4000000000000080L});
public static final BitSet FOLLOW_additive_expr_in_relational_expr3769 = new BitSet(new long[]{0x0000000000000002L,0x0060000001800000L});
public static final BitSet FOLLOW_relational_operator_in_relational_expr3772 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_additive_expr_in_relational_expr3774 = new BitSet(new long[]{0x0000000000000002L,0x0060000001800000L});
public static final BitSet FOLLOW_multi_expr_in_additive_expr3831 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000800000000100L});
public static final BitSet FOLLOW_additive_operator_in_additive_expr3834 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_multi_expr_in_additive_expr3836 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000800000000100L});
public static final BitSet FOLLOW_unary_expr_in_multi_expr3883 = new BitSet(new long[]{0x8000000000000002L,0x0500000000000000L});
public static final BitSet FOLLOW_multi_operator_in_multi_expr3886 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_unary_expr_in_multi_expr3888 = new BitSet(new long[]{0x8000000000000002L,0x0500000000000000L});
public static final BitSet FOLLOW_postfix_expr_in_unary_expr3977 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_operator_in_unary_expr3990 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_unary_expr_in_unary_expr3992 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_self_change_op_in_unary_expr4007 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_unary_expr_in_unary_expr4009 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unary_expr4024 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_unary_expr4026 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_type_name_in_unary_expr4028 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_unary_expr4030 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unary_expr4045 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_unary_expr_in_unary_expr4047 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_unary_expr4062 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_type_name_in_unary_expr4064 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_unary_expr4066 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_unary_expr_in_unary_expr4068 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_unary_operator4093 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUB_in_unary_operator4106 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOT_in_unary_operator4119 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MULTI_in_unary_operator4132 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ADDR_OF_in_unary_operator4145 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SPEC_in_spec_expr4166 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_spec_expr4168 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_spec_expr4170 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primary_expr_in_postfix_expr4192 = new BitSet(new long[]{0x0000000000808002L,0x001000000000001AL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr4194 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_postfix_expr_suffix4219 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfix_expr_suffix4221 = new BitSet(new long[]{0x0000000000808002L,0x001000000000001AL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix4223 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ARROW_in_postfix_expr_suffix4244 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfix_expr_suffix4246 = new BitSet(new long[]{0x0000000000808002L,0x001000000000001AL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix4248 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LSQUARE_in_postfix_expr_suffix4270 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_postfix_expr_suffix4272 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_RSQUARE_in_postfix_expr_suffix4274 = new BitSet(new long[]{0x0000000000808002L,0x001000000000001AL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix4276 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_self_change_op_in_postfix_expr_suffix4297 = new BitSet(new long[]{0x0000000000808002L,0x001000000000001AL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix4299 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_in_postfix_expr_suffix4318 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfix_expr_suffix4320 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_postfix_expr_suffix4322 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfix_expr_suffix4324 = new BitSet(new long[]{0x0000000000808002L,0x001000000000001AL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix4326 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constant_in_primary_expr4359 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_evaluated_function_expr_in_primary_expr4372 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_primary_expr4385 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_primary_expr4387 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_primary_expr4389 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_primary_expr4404 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_spec_expr_in_primary_expr4417 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_derivative_expr_in_primary_expr4430 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_evaluated_function_expr4450 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_evaluated_function_expr4452 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14008200101L});
public static final BitSet FOLLOW_parameter_list_in_evaluated_function_expr4454 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_evaluated_function_expr4457 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DERIVATIVE_in_derivative_expr4485 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_LSQUARE_in_derivative_expr4487 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_derivative_expr4489 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_derivative_expr4491 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_partial_list_in_derivative_expr4493 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_RSQUARE_in_derivative_expr4495 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_derivative_expr4497 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14008200101L});
public static final BitSet FOLLOW_parameter_list_in_derivative_expr4499 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_derivative_expr4502 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_PLUS_in_self_change_op4531 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_SUB_in_self_change_op4544 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRUE_in_constant4565 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FALSE_in_constant4578 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INT_LITERAL_in_constant4592 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REAL_LITERAL_in_constant4605 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHAR_LITERAL_in_constant4618 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_LITERAL_in_constant4631 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SYS_VAR_in_constant4644 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_in_synpred4_MiniMP467 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_abstract_function_in_synpred5_MiniMP472 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_in_synpred8_MiniMP512 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_specifier_in_synpred13_MiniMP659 = new BitSet(new long[]{0x0000000000000000L,0x0408000004000000L});
public static final BitSet FOLLOW_declaration_unit_in_synpred13_MiniMP661 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred13_MiniMP664 = new BitSet(new long[]{0x0000000000000000L,0x0408000004000000L});
public static final BitSet FOLLOW_declaration_unit_in_synpred13_MiniMP666 = new BitSet(new long[]{0x0000001000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_synpred13_MiniMP670 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_prefix_in_synpred16_MiniMP704 = new BitSet(new long[]{0x0000020024000000L,0x0000844004020004L,0x1000500000000000L});
public static final BitSet FOLLOW_suffix_in_synpred16_MiniMP707 = new BitSet(new long[]{0x0000020024000000L,0x0000004004020004L,0x1000500000000000L});
public static final BitSet FOLLOW_declaration_body_in_synpred16_MiniMP710 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_synpred16_MiniMP712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_name_in_synpred57_MiniMP1682 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_synpred57_MiniMP1684 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred57_MiniMP1686 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400008000000L});
public static final BitSet FOLLOW_argument_list_in_synpred57_MiniMP1688 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred57_MiniMP1691 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_LCURLY_in_synpred57_MiniMP1693 = new BitSet(new long[]{0x0080020064010100L,0x040884C00C0E841CL,0x50A8F14322701101L});
public static final BitSet FOLLOW_body_in_synpred57_MiniMP1695 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_synpred57_MiniMP1697 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_name_in_synpred59_MiniMP1727 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_synpred59_MiniMP1729 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred59_MiniMP1731 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400008000000L});
public static final BitSet FOLLOW_argument_list_in_synpred59_MiniMP1733 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred59_MiniMP1736 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_synpred59_MiniMP1738 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_synpred61_MiniMP1753 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_synpred61_MiniMP1755 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_SYSTEM_in_synpred61_MiniMP1757 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_type_name_in_synpred61_MiniMP1759 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_synpred61_MiniMP1761 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred61_MiniMP1763 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400008000000L});
public static final BitSet FOLLOW_argument_list_in_synpred61_MiniMP1765 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred61_MiniMP1768 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_synpred61_MiniMP1770 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declaration_list_in_synpred64_MiniMP1910 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assert_statement_in_synpred67_MiniMP1963 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_collective_assert_statement_in_synpred68_MiniMP1976 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_joint_assert_statement_in_synpred69_MiniMP1989 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_invariant_statement_in_synpred70_MiniMP2002 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_collective_invariant_statement_in_synpred71_MiniMP2015 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_joint_invariant_statement_in_synpred72_MiniMP2028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assume_statement_in_synpred73_MiniMP2041 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_iterative_statement_in_synpred77_MiniMP2096 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_call_statement_in_synpred82_MiniMP2161 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_statement_in_synpred83_MiniMP2174 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_synpred84_MiniMP2240 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_synpred84_MiniMP2242 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSERT_in_synpred84_MiniMP2244 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_synpred84_MiniMP2246 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_synpred84_MiniMP2248 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELSE_in_synpred87_MiniMP2533 = new BitSet(new long[]{0x0080000040010100L,0x040880800C0C8418L,0x4028A14322601101L});
public static final BitSet FOLLOW_statement_in_synpred87_MiniMP2535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_synpred96_MiniMP2767 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_COLON_in_synpred96_MiniMP2769 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_PRAGMA_in_synpred96_MiniMP2772 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_TASS_in_synpred96_MiniMP2774 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_JOINT_in_synpred96_MiniMP2776 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
public static final BitSet FOLLOW_INVARIANT_in_synpred96_MiniMP2778 = new BitSet(new long[]{0x0000000000800000L});
public static final BitSet FOLLOW_AT_in_synpred96_MiniMP2780 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_synpred96_MiniMP2782 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_LCURLY_in_synpred96_MiniMP2784 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_skew_factor_in_synpred96_MiniMP2786 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_synpred96_MiniMP2789 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_synpred96_MiniMP2791 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECV_in_synpred100_MiniMP3009 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred100_MiniMP3011 = new BitSet(new long[]{0x0080000040000100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_expr_in_synpred100_MiniMP3015 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred100_MiniMP3017 = new BitSet(new long[]{0x0080000040001100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_comm_expr_in_synpred100_MiniMP3021 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred100_MiniMP3023 = new BitSet(new long[]{0x0080000040001100L,0x0408008004088418L,0x0028A14000200101L});
public static final BitSet FOLLOW_comm_expr_in_synpred100_MiniMP3027 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred100_MiniMP3029 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
public static final BitSet FOLLOW_SEMI_in_synpred100_MiniMP3031 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_expr_in_synpred102_MiniMP3190 = new BitSet(new long[]{0x0000000000040000L});
public static final BitSet FOLLOW_ASSIGN_in_synpred102_MiniMP3192 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_expr_in_synpred107_MiniMP3442 = new BitSet(new long[]{0x0000000000040000L,0x1200000000000001L,0x0001000000000200L});
public static final BitSet FOLLOW_assign_operator_in_synpred107_MiniMP3444 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_assign_expr_in_synpred107_MiniMP3446 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_additive_operator_in_synpred119_MiniMP3834 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_multi_expr_in_synpred119_MiniMP3836 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_multi_operator_in_synpred121_MiniMP3886 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_unary_expr_in_synpred121_MiniMP3888 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_in_synpred129_MiniMP3977 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_synpred132_MiniMP4024 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred132_MiniMP4026 = new BitSet(new long[]{0x0000000024000000L,0x0000004004020004L,0x1000400000000000L});
public static final BitSet FOLLOW_type_name_in_synpred132_MiniMP4028 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
public static final BitSet FOLLOW_RPAREN_in_synpred132_MiniMP4030 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_synpred133_MiniMP4045 = new BitSet(new long[]{0x0080000040000100L,0x0408008004008018L,0x0028A14000200101L});
public static final BitSet FOLLOW_unary_expr_in_synpred133_MiniMP4047 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred138_MiniMP4194 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred139_MiniMP4223 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred141_MiniMP4248 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred143_MiniMP4276 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred145_MiniMP4299 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred147_MiniMP4326 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_evaluated_function_expr_in_synpred149_MiniMP4372 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_synpred151_MiniMP4404 = new BitSet(new long[]{0x0000000000000002L});
}