PragmaStringParser.java
// $ANTLR 3.5.2 /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g 2015-03-26 17:31:22
package edu.udel.cis.vsl.tass.ast.impl.pragmaParser;
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 PragmaStringParser 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", "CONDITIONAL_EXPR",
"CONDITION_STMT", "CONST", "CONSTANT", "CONTINUOUS", "CORRESPONDENCE",
"DEALLOCATE_STMT", "DECL", "DECLARATION", "DECLARATOR", "DECL_BODY", "DECL_LIST",
"DECL_SUFFIX", "DEFINE", "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", "FUNCTION_DECL",
"GLOBAL_VARIABLE", "GT", "GTE", "GUARD", "IDENTIFIER", "IF", "IGNORE",
"IMPL", "INCLUDE", "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",
"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", "SMOOTH",
"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 CONDITIONAL_EXPR=40;
public static final int CONDITION_STMT=41;
public static final int CONST=42;
public static final int CONSTANT=43;
public static final int CONTINUOUS=44;
public static final int CORRESPONDENCE=45;
public static final int DEALLOCATE_STMT=46;
public static final int DECL=47;
public static final int DECLARATION=48;
public static final int DECLARATOR=49;
public static final int DECL_BODY=50;
public static final int DECL_LIST=51;
public static final int DECL_SUFFIX=52;
public static final int DEFINE=53;
public static final int DERIVATIVE=54;
public static final int DERIVATIVE_EXPR=55;
public static final int DESIGNATION=56;
public static final int DESIGNATOR=57;
public static final int DESIGNATOR_LIST=58;
public static final int DIGIT=59;
public static final int DIRECT_ABSTRACT_DECLARATOR=60;
public static final int DIRECT_DECL=61;
public static final int DIV=62;
public static final int DIV_ASSIGN=63;
public static final int DOT=64;
public static final int DOUBLE=65;
public static final int DOUBLE_PLUS=66;
public static final int DOUBLE_SUB=67;
public static final int ELSE=68;
public static final int EMPTY_STMT=69;
public static final int EQ=70;
public static final int EQUALITY_EXPR=71;
public static final int EVALUATED_FUNCTION_EXPR=72;
public static final int EXISTS=73;
public static final int EXPR=74;
public static final int EXPR_STMT=75;
public static final int EscapeSequence=76;
public static final int Exponent=77;
public static final int FALSE=78;
public static final int FIELD_DECL=79;
public static final int FLOAT=80;
public static final int FOR=81;
public static final int FORALL=82;
public static final int FOR_STMT=83;
public static final int FUNCTION=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 IGNORE=92;
public static final int IMPL=93;
public static final int INCLUDE=94;
public static final int INITIALIZER=95;
public static final int INITIALIZER_LIST=96;
public static final int INITIALIZER_LIST_REST=97;
public static final int INPUT=98;
public static final int INT=99;
public static final int INT_LITERAL=100;
public static final int INVARIANT=101;
public static final int INVARIANT_STMT=102;
public static final int IS=103;
public static final int ITERATIVE_STMT=104;
public static final int JOINT=105;
public static final int JOINT_ASSERT_STMT=106;
public static final int JOINT_INVARIANT_STMT=107;
public static final int LCURLY=108;
public static final int LETTER=109;
public static final int LOGICAL_AND_EXPR=110;
public static final int LOGICAL_OR_EXPR=111;
public static final int LPAREN=112;
public static final int LSQUARE=113;
public static final int LT=114;
public static final int LTE=115;
public static final int MALLOC=116;
public static final int MOD=117;
public static final int MOD_ASSIGN=118;
public static final int MULTI=119;
public static final int MULTIPLICATIVE_EXPR=120;
public static final int MULTI_ASSIGN=121;
public static final int MULTI_DECLARATION=122;
public static final int NEQ=123;
public static final int NEWLINE=124;
public static final int NOT=125;
public static final int OR=126;
public static final int OUTPUT=127;
public static final int OctalEscape=128;
public static final int PARAMETER=129;
public static final int PARAMETER_LIST=130;
public static final int PARTIAL=131;
public static final int PARTIAL_LIST=132;
public static final int PLUS=133;
public static final int PLUS_ASSIGN=134;
public static final int POSTFIX_EXPR=135;
public static final int POSTFIX_EXPR_SUFFIX=136;
public static final int PRAGMA=137;
public static final int PREFIX=138;
public static final int PRIMARY_EXPR=139;
public static final int PROTOTYPE=140;
public static final int QMARK=141;
public static final int QUANTIFIER=142;
public static final int QUANTIFIER_EXPR=143;
public static final int RCURLY=144;
public static final int REAL_LITERAL=145;
public static final int RECV=146;
public static final int RECV_STMT=147;
public static final int RELATIONAL_EXPR=148;
public static final int RETURN=149;
public static final int RETURN_STMT=150;
public static final int RPAREN=151;
public static final int RSQUARE=152;
public static final int SELECT=153;
public static final int SELECT_STMT=154;
public static final int SELFCHANGE_OP=155;
public static final int SEMI=156;
public static final int SEND=157;
public static final int SEND_STMT=158;
public static final int SHARED=159;
public static final int SIMPLE_TYPE=160;
public static final int SINGLE_COMMENT=161;
public static final int SIZEOF=162;
public static final int SKEW_FACTOR=163;
public static final int SMOOTH=164;
public static final int SPEC=165;
public static final int SPEC_EXPR=166;
public static final int STATEMENT=167;
public static final int STATEMENT_LIST=168;
public static final int STATIC=169;
public static final int STRING_LITERAL=170;
public static final int STRUCT=171;
public static final int SUB=172;
public static final int SUB_ASSIGN=173;
public static final int SUFFIX=174;
public static final int SYSTEM=175;
public static final int SYS_VAR=176;
public static final int TASS=177;
public static final int TRUE=178;
public static final int TUPLE=179;
public static final int TYPEDEF=180;
public static final int TYPE_NAME=181;
public static final int TYPE_SPECIFIER=182;
public static final int UNARY_EXPR=183;
public static final int UNARY_OP=184;
public static final int VOID=185;
public static final int WHEN=186;
public static final int WHILE=187;
public static final int WHILE_STMT=188;
public static final int WHITESPACE=189;
public static final int WILDCARD_EXPR=190;
// delegates
public Parser[] getDelegates() {
return new Parser[] {};
}
// delegators
public PragmaStringParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public PragmaStringParser(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 PragmaStringParser.tokenNames; }
@Override public String getGrammarFileName() { return "/home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g"; }
public static class pragma_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "pragma"
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:113:1: pragma : ( ( PRAGMA )? TASS function -> function | ( PRAGMA )? TASS statement -> statement | ( PRAGMA )? TASS prefix ( LCURLY expr RCURLY )? ( type_name IDENTIFIER )? -> ^( PREFIX prefix ( expr )? ( type_name IDENTIFIER )? ) );
public final PragmaStringParser.pragma_return pragma() throws RecognitionException {
PragmaStringParser.pragma_return retval = new PragmaStringParser.pragma_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PRAGMA1=null;
Token TASS2=null;
Token PRAGMA4=null;
Token TASS5=null;
Token PRAGMA7=null;
Token TASS8=null;
Token LCURLY10=null;
Token RCURLY12=null;
Token IDENTIFIER14=null;
ParserRuleReturnScope function3 =null;
ParserRuleReturnScope statement6 =null;
ParserRuleReturnScope prefix9 =null;
ParserRuleReturnScope expr11 =null;
ParserRuleReturnScope type_name13 =null;
Object PRAGMA1_tree=null;
Object TASS2_tree=null;
Object PRAGMA4_tree=null;
Object TASS5_tree=null;
Object PRAGMA7_tree=null;
Object TASS8_tree=null;
Object LCURLY10_tree=null;
Object RCURLY12_tree=null;
Object IDENTIFIER14_tree=null;
RewriteRuleTokenStream stream_LCURLY=new RewriteRuleTokenStream(adaptor,"token LCURLY");
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");
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
RewriteRuleSubtreeStream stream_prefix=new RewriteRuleSubtreeStream(adaptor,"rule prefix");
RewriteRuleSubtreeStream stream_type_name=new RewriteRuleSubtreeStream(adaptor,"rule type_name");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_function=new RewriteRuleSubtreeStream(adaptor,"rule function");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:114:2: ( ( PRAGMA )? TASS function -> function | ( PRAGMA )? TASS statement -> statement | ( PRAGMA )? TASS prefix ( LCURLY expr RCURLY )? ( type_name IDENTIFIER )? -> ^( PREFIX prefix ( expr )? ( type_name IDENTIFIER )? ) )
int alt6=3;
int LA6_0 = input.LA(1);
if ( (LA6_0==PRAGMA) ) {
int LA6_1 = input.LA(2);
if ( (LA6_1==TASS) ) {
switch ( input.LA(3) ) {
case ABSTRACT:
case SYSTEM:
{
alt6=1;
}
break;
case ADDR_OF:
case ASSERT:
case ASSUME:
case CHAR_LITERAL:
case COLLECTIVE:
case DERIVATIVE:
case DOUBLE_PLUS:
case DOUBLE_SUB:
case EXISTS:
case FALSE:
case FOR:
case FORALL:
case IDENTIFIER:
case IF:
case INT_LITERAL:
case INVARIANT:
case JOINT:
case LCURLY:
case LPAREN:
case MULTI:
case NOT:
case PLUS:
case REAL_LITERAL:
case RECV:
case RETURN:
case SELECT:
case SEMI:
case SEND:
case SIZEOF:
case SPEC:
case STRING_LITERAL:
case SUB:
case SYS_VAR:
case TRUE:
case WHILE:
{
alt6=2;
}
break;
case INPUT:
case OUTPUT:
case SHARED:
case TYPEDEF:
{
alt6=3;
}
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("", 6, 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("", 6, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA6_0==TASS) ) {
switch ( input.LA(2) ) {
case ABSTRACT:
case SYSTEM:
{
alt6=1;
}
break;
case ADDR_OF:
case ASSERT:
case ASSUME:
case CHAR_LITERAL:
case COLLECTIVE:
case DERIVATIVE:
case DOUBLE_PLUS:
case DOUBLE_SUB:
case EXISTS:
case FALSE:
case FOR:
case FORALL:
case IDENTIFIER:
case IF:
case INT_LITERAL:
case INVARIANT:
case JOINT:
case LCURLY:
case LPAREN:
case MULTI:
case NOT:
case PLUS:
case REAL_LITERAL:
case RECV:
case RETURN:
case SELECT:
case SEMI:
case SEND:
case SIZEOF:
case SPEC:
case STRING_LITERAL:
case SUB:
case SYS_VAR:
case TRUE:
case WHILE:
{
alt6=2;
}
break;
case INPUT:
case OUTPUT:
case SHARED:
case TYPEDEF:
{
alt6=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 6, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 6, 0, input);
throw nvae;
}
switch (alt6) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:114:4: ( PRAGMA )? TASS function
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:114:4: ( PRAGMA )?
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==PRAGMA) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:114:4: PRAGMA
{
PRAGMA1=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_pragma418); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA1);
}
break;
}
TASS2=(Token)match(input,TASS,FOLLOW_TASS_in_pragma421); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS2);
pushFollow(FOLLOW_function_in_pragma423);
function3=function();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_function.add(function3.getTree());
// AST REWRITE
// elements: function
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 114:26: -> function
{
adaptor.addChild(root_0, stream_function.nextTree());
}
retval.tree = root_0;
}
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:115:4: ( PRAGMA )? TASS statement
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:115:4: ( PRAGMA )?
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==PRAGMA) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:115:4: PRAGMA
{
PRAGMA4=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_pragma432); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA4);
}
break;
}
TASS5=(Token)match(input,TASS,FOLLOW_TASS_in_pragma435); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS5);
pushFollow(FOLLOW_statement_in_pragma437);
statement6=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement6.getTree());
// 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();
// 115:27: -> statement
{
adaptor.addChild(root_0, stream_statement.nextTree());
}
retval.tree = root_0;
}
}
break;
case 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:116:4: ( PRAGMA )? TASS prefix ( LCURLY expr RCURLY )? ( type_name IDENTIFIER )?
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:116:4: ( PRAGMA )?
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==PRAGMA) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:116:4: PRAGMA
{
PRAGMA7=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_pragma447); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA7);
}
break;
}
TASS8=(Token)match(input,TASS,FOLLOW_TASS_in_pragma450); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS8);
pushFollow(FOLLOW_prefix_in_pragma452);
prefix9=prefix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_prefix.add(prefix9.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:116:24: ( LCURLY expr RCURLY )?
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==LCURLY) ) {
alt4=1;
}
switch (alt4) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:116:25: LCURLY expr RCURLY
{
LCURLY10=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_pragma455); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY10);
pushFollow(FOLLOW_expr_in_pragma457);
expr11=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr11.getTree());
RCURLY12=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_pragma459); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY12);
}
break;
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:116:46: ( type_name IDENTIFIER )?
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==BOOLEAN||LA5_0==CHAR||LA5_0==DOUBLE||LA5_0==FLOAT||LA5_0==IDENTIFIER||LA5_0==INT||LA5_0==STRUCT||LA5_0==VOID) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:116:47: type_name IDENTIFIER
{
pushFollow(FOLLOW_type_name_in_pragma464);
type_name13=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name13.getTree());
IDENTIFIER14=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_pragma466); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER14);
}
break;
}
// AST REWRITE
// elements: IDENTIFIER, type_name, expr, prefix
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 116:69: -> ^( PREFIX prefix ( expr )? ( type_name IDENTIFIER )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:116:72: ^( PREFIX prefix ( expr )? ( type_name IDENTIFIER )? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PREFIX, "PREFIX"), root_1);
adaptor.addChild(root_1, stream_prefix.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:116:88: ( expr )?
if ( stream_expr.hasNext() ) {
adaptor.addChild(root_1, stream_expr.nextTree());
}
stream_expr.reset();
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:116:94: ( type_name IDENTIFIER )?
if ( stream_IDENTIFIER.hasNext()||stream_type_name.hasNext() ) {
adaptor.addChild(root_1, stream_type_name.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
}
stream_IDENTIFIER.reset();
stream_type_name.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 "pragma"
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/ast/impl/pragmaParser/PragmaString.g:119:1: function : ( SYSTEM declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( SYSTEM declarator IDENTIFIER ( argument_list )? RPAREN ) | SYSTEM GUARD expr declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( SYSTEM GUARD expr declarator IDENTIFIER ( argument_list )? RPAREN ) | ABSTRACT CONTINUOUS ( LPAREN INT_LITERAL RPAREN )? declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( ABSTRACT ( INT_LITERAL )? RPAREN declarator IDENTIFIER ( argument_list )? RPAREN ) | ABSTRACT declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( ABSTRACT IGNORE IGNORE declarator IDENTIFIER ( argument_list )? RPAREN ) | ABSTRACT SMOOTH declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( ABSTRACT SMOOTH IGNORE declarator IDENTIFIER ( argument_list )? RPAREN ) );
public final PragmaStringParser.function_return function() throws RecognitionException {
PragmaStringParser.function_return retval = new PragmaStringParser.function_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SYSTEM15=null;
Token IDENTIFIER17=null;
Token LPAREN18=null;
Token RPAREN20=null;
Token SEMI21=null;
Token SYSTEM22=null;
Token GUARD23=null;
Token IDENTIFIER26=null;
Token LPAREN27=null;
Token RPAREN29=null;
Token SEMI30=null;
Token ABSTRACT31=null;
Token CONTINUOUS32=null;
Token LPAREN33=null;
Token INT_LITERAL34=null;
Token RPAREN35=null;
Token IDENTIFIER37=null;
Token LPAREN38=null;
Token RPAREN40=null;
Token SEMI41=null;
Token ABSTRACT42=null;
Token IDENTIFIER44=null;
Token LPAREN45=null;
Token RPAREN47=null;
Token SEMI48=null;
Token ABSTRACT49=null;
Token SMOOTH50=null;
Token IDENTIFIER52=null;
Token LPAREN53=null;
Token RPAREN55=null;
Token SEMI56=null;
ParserRuleReturnScope declarator16 =null;
ParserRuleReturnScope argument_list19 =null;
ParserRuleReturnScope expr24 =null;
ParserRuleReturnScope declarator25 =null;
ParserRuleReturnScope argument_list28 =null;
ParserRuleReturnScope declarator36 =null;
ParserRuleReturnScope argument_list39 =null;
ParserRuleReturnScope declarator43 =null;
ParserRuleReturnScope argument_list46 =null;
ParserRuleReturnScope declarator51 =null;
ParserRuleReturnScope argument_list54 =null;
Object SYSTEM15_tree=null;
Object IDENTIFIER17_tree=null;
Object LPAREN18_tree=null;
Object RPAREN20_tree=null;
Object SEMI21_tree=null;
Object SYSTEM22_tree=null;
Object GUARD23_tree=null;
Object IDENTIFIER26_tree=null;
Object LPAREN27_tree=null;
Object RPAREN29_tree=null;
Object SEMI30_tree=null;
Object ABSTRACT31_tree=null;
Object CONTINUOUS32_tree=null;
Object LPAREN33_tree=null;
Object INT_LITERAL34_tree=null;
Object RPAREN35_tree=null;
Object IDENTIFIER37_tree=null;
Object LPAREN38_tree=null;
Object RPAREN40_tree=null;
Object SEMI41_tree=null;
Object ABSTRACT42_tree=null;
Object IDENTIFIER44_tree=null;
Object LPAREN45_tree=null;
Object RPAREN47_tree=null;
Object SEMI48_tree=null;
Object ABSTRACT49_tree=null;
Object SMOOTH50_tree=null;
Object IDENTIFIER52_tree=null;
Object LPAREN53_tree=null;
Object RPAREN55_tree=null;
Object SEMI56_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_INT_LITERAL=new RewriteRuleTokenStream(adaptor,"token INT_LITERAL");
RewriteRuleTokenStream stream_SMOOTH=new RewriteRuleTokenStream(adaptor,"token SMOOTH");
RewriteRuleTokenStream stream_ABSTRACT=new RewriteRuleTokenStream(adaptor,"token ABSTRACT");
RewriteRuleTokenStream stream_CONTINUOUS=new RewriteRuleTokenStream(adaptor,"token CONTINUOUS");
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_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_argument_list=new RewriteRuleSubtreeStream(adaptor,"rule argument_list");
RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:120:2: ( SYSTEM declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( SYSTEM declarator IDENTIFIER ( argument_list )? RPAREN ) | SYSTEM GUARD expr declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( SYSTEM GUARD expr declarator IDENTIFIER ( argument_list )? RPAREN ) | ABSTRACT CONTINUOUS ( LPAREN INT_LITERAL RPAREN )? declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( ABSTRACT ( INT_LITERAL )? RPAREN declarator IDENTIFIER ( argument_list )? RPAREN ) | ABSTRACT declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( ABSTRACT IGNORE IGNORE declarator IDENTIFIER ( argument_list )? RPAREN ) | ABSTRACT SMOOTH declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI -> ^( ABSTRACT SMOOTH IGNORE declarator IDENTIFIER ( argument_list )? RPAREN ) )
int alt13=5;
int LA13_0 = input.LA(1);
if ( (LA13_0==SYSTEM) ) {
int LA13_1 = input.LA(2);
if ( (LA13_1==GUARD) ) {
alt13=2;
}
else if ( (LA13_1==BOOLEAN||LA13_1==CHAR||LA13_1==DOUBLE||LA13_1==FLOAT||LA13_1==IDENTIFIER||LA13_1==INT||LA13_1==LPAREN||LA13_1==MULTI||LA13_1==STRUCT||LA13_1==VOID) ) {
alt13=1;
}
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);
}
}
}
else if ( (LA13_0==ABSTRACT) ) {
switch ( input.LA(2) ) {
case CONTINUOUS:
{
alt13=3;
}
break;
case SMOOTH:
{
alt13=5;
}
break;
case BOOLEAN:
case CHAR:
case DOUBLE:
case FLOAT:
case IDENTIFIER:
case INT:
case LPAREN:
case MULTI:
case STRUCT:
case VOID:
{
alt13=4;
}
break;
default:
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);
}
}
}
else {
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/ast/impl/pragmaParser/PragmaString.g:120:4: SYSTEM declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
SYSTEM15=(Token)match(input,SYSTEM,FOLLOW_SYSTEM_in_function497); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SYSTEM.add(SYSTEM15);
pushFollow(FOLLOW_declarator_in_function499);
declarator16=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator16.getTree());
IDENTIFIER17=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_function501); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER17);
LPAREN18=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_function503); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN18);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:120:40: ( argument_list )?
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==BOOLEAN||LA7_0==CHAR||LA7_0==DOUBLE||LA7_0==FLOAT||LA7_0==IDENTIFIER||LA7_0==INT||LA7_0==STRUCT||LA7_0==VOID) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:120:40: argument_list
{
pushFollow(FOLLOW_argument_list_in_function505);
argument_list19=argument_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument_list.add(argument_list19.getTree());
}
break;
}
RPAREN20=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_function508); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN20);
SEMI21=(Token)match(input,SEMI,FOLLOW_SEMI_in_function510); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI21);
// AST REWRITE
// elements: SYSTEM, RPAREN, argument_list, IDENTIFIER, 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();
// 121:3: -> ^( SYSTEM declarator IDENTIFIER ( argument_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:121:6: ^( SYSTEM declarator IDENTIFIER ( argument_list )? RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_SYSTEM.nextNode(), root_1);
adaptor.addChild(root_1, stream_declarator.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:121:37: ( 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/ast/impl/pragmaParser/PragmaString.g:122:4: SYSTEM GUARD expr declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
SYSTEM22=(Token)match(input,SYSTEM,FOLLOW_SYSTEM_in_function532); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SYSTEM.add(SYSTEM22);
GUARD23=(Token)match(input,GUARD,FOLLOW_GUARD_in_function534); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_GUARD.add(GUARD23);
pushFollow(FOLLOW_expr_in_function536);
expr24=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr24.getTree());
pushFollow(FOLLOW_declarator_in_function538);
declarator25=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator25.getTree());
IDENTIFIER26=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_function540); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER26);
LPAREN27=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_function542); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN27);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:122:51: ( argument_list )?
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==BOOLEAN||LA8_0==CHAR||LA8_0==DOUBLE||LA8_0==FLOAT||LA8_0==IDENTIFIER||LA8_0==INT||LA8_0==STRUCT||LA8_0==VOID) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:122:51: argument_list
{
pushFollow(FOLLOW_argument_list_in_function544);
argument_list28=argument_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument_list.add(argument_list28.getTree());
}
break;
}
RPAREN29=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_function547); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN29);
SEMI30=(Token)match(input,SEMI,FOLLOW_SEMI_in_function549); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI30);
// AST REWRITE
// elements: SYSTEM, declarator, GUARD, RPAREN, IDENTIFIER, argument_list, 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();
// 123:3: -> ^( SYSTEM GUARD expr declarator IDENTIFIER ( argument_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:123:6: ^( SYSTEM GUARD expr declarator IDENTIFIER ( argument_list )? RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_SYSTEM.nextNode(), root_1);
adaptor.addChild(root_1, stream_GUARD.nextNode());
adaptor.addChild(root_1, stream_expr.nextTree());
adaptor.addChild(root_1, stream_declarator.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:123:48: ( 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 3 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:124:4: ABSTRACT CONTINUOUS ( LPAREN INT_LITERAL RPAREN )? declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
ABSTRACT31=(Token)match(input,ABSTRACT,FOLLOW_ABSTRACT_in_function575); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ABSTRACT.add(ABSTRACT31);
CONTINUOUS32=(Token)match(input,CONTINUOUS,FOLLOW_CONTINUOUS_in_function577); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CONTINUOUS.add(CONTINUOUS32);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:124:24: ( LPAREN INT_LITERAL RPAREN )?
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==LPAREN) ) {
int LA9_1 = input.LA(2);
if ( (LA9_1==INT_LITERAL) ) {
alt9=1;
}
}
switch (alt9) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:124:25: LPAREN INT_LITERAL RPAREN
{
LPAREN33=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_function580); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN33);
INT_LITERAL34=(Token)match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_function582); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INT_LITERAL.add(INT_LITERAL34);
RPAREN35=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_function584); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN35);
}
break;
}
pushFollow(FOLLOW_declarator_in_function588);
declarator36=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator36.getTree());
IDENTIFIER37=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_function590); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER37);
LPAREN38=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_function592); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN38);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:124:82: ( argument_list )?
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==BOOLEAN||LA10_0==CHAR||LA10_0==DOUBLE||LA10_0==FLOAT||LA10_0==IDENTIFIER||LA10_0==INT||LA10_0==STRUCT||LA10_0==VOID) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:124:82: argument_list
{
pushFollow(FOLLOW_argument_list_in_function594);
argument_list39=argument_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument_list.add(argument_list39.getTree());
}
break;
}
RPAREN40=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_function597); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN40);
SEMI41=(Token)match(input,SEMI,FOLLOW_SEMI_in_function599); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI41);
// AST REWRITE
// elements: IDENTIFIER, argument_list, RPAREN, INT_LITERAL, RPAREN, declarator, ABSTRACT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 125:3: -> ^( ABSTRACT ( INT_LITERAL )? RPAREN declarator IDENTIFIER ( argument_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:125:6: ^( ABSTRACT ( INT_LITERAL )? RPAREN declarator IDENTIFIER ( argument_list )? RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ABSTRACT.nextNode(), root_1);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:125:17: ( INT_LITERAL )?
if ( stream_INT_LITERAL.hasNext() ) {
adaptor.addChild(root_1, stream_INT_LITERAL.nextNode());
}
stream_INT_LITERAL.reset();
adaptor.addChild(root_1, stream_RPAREN.nextNode());
adaptor.addChild(root_1, stream_declarator.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:125:59: ( 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/ast/impl/pragmaParser/PragmaString.g:126:4: ABSTRACT declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
ABSTRACT42=(Token)match(input,ABSTRACT,FOLLOW_ABSTRACT_in_function626); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ABSTRACT.add(ABSTRACT42);
pushFollow(FOLLOW_declarator_in_function628);
declarator43=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator43.getTree());
IDENTIFIER44=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_function630); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER44);
LPAREN45=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_function632); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN45);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:126:42: ( argument_list )?
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==BOOLEAN||LA11_0==CHAR||LA11_0==DOUBLE||LA11_0==FLOAT||LA11_0==IDENTIFIER||LA11_0==INT||LA11_0==STRUCT||LA11_0==VOID) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:126:42: argument_list
{
pushFollow(FOLLOW_argument_list_in_function634);
argument_list46=argument_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument_list.add(argument_list46.getTree());
}
break;
}
RPAREN47=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_function637); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN47);
SEMI48=(Token)match(input,SEMI,FOLLOW_SEMI_in_function639); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI48);
// AST REWRITE
// elements: IDENTIFIER, declarator, ABSTRACT, RPAREN, argument_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();
// 127:3: -> ^( ABSTRACT IGNORE IGNORE declarator IDENTIFIER ( argument_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:127:6: ^( ABSTRACT IGNORE IGNORE declarator IDENTIFIER ( argument_list )? RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ABSTRACT.nextNode(), 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_declarator.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:127:53: ( 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 5 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:128:4: ABSTRACT SMOOTH declarator IDENTIFIER LPAREN ( argument_list )? RPAREN SEMI
{
ABSTRACT49=(Token)match(input,ABSTRACT,FOLLOW_ABSTRACT_in_function665); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ABSTRACT.add(ABSTRACT49);
SMOOTH50=(Token)match(input,SMOOTH,FOLLOW_SMOOTH_in_function667); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SMOOTH.add(SMOOTH50);
pushFollow(FOLLOW_declarator_in_function669);
declarator51=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator51.getTree());
IDENTIFIER52=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_function671); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER52);
LPAREN53=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_function673); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN53);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:128:49: ( argument_list )?
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==BOOLEAN||LA12_0==CHAR||LA12_0==DOUBLE||LA12_0==FLOAT||LA12_0==IDENTIFIER||LA12_0==INT||LA12_0==STRUCT||LA12_0==VOID) ) {
alt12=1;
}
switch (alt12) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:128:49: argument_list
{
pushFollow(FOLLOW_argument_list_in_function675);
argument_list54=argument_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument_list.add(argument_list54.getTree());
}
break;
}
RPAREN55=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_function678); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN55);
SEMI56=(Token)match(input,SEMI,FOLLOW_SEMI_in_function680); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI56);
// AST REWRITE
// elements: declarator, argument_list, RPAREN, SMOOTH, IDENTIFIER, ABSTRACT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 129:3: -> ^( ABSTRACT SMOOTH IGNORE declarator IDENTIFIER ( argument_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:129:6: ^( ABSTRACT SMOOTH IGNORE declarator IDENTIFIER ( argument_list )? RPAREN )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(stream_ABSTRACT.nextNode(), root_1);
adaptor.addChild(root_1, stream_SMOOTH.nextNode());
adaptor.addChild(root_1, (Object)adaptor.create(IGNORE, "IGNORE"));
adaptor.addChild(root_1, stream_declarator.nextTree());
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:129:53: ( 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/ast/impl/pragmaParser/PragmaString.g:132:1: argument_list : argument ( COMMA argument )* -> ^( ARGUMENT_LIST argument ( COMMA argument )* ) ;
public final PragmaStringParser.argument_list_return argument_list() throws RecognitionException {
PragmaStringParser.argument_list_return retval = new PragmaStringParser.argument_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA58=null;
ParserRuleReturnScope argument57 =null;
ParserRuleReturnScope argument59 =null;
Object COMMA58_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/ast/impl/pragmaParser/PragmaString.g:134:2: ( argument ( COMMA argument )* -> ^( ARGUMENT_LIST argument ( COMMA argument )* ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:134:4: argument ( COMMA argument )*
{
pushFollow(FOLLOW_argument_in_argument_list715);
argument57=argument();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument.add(argument57.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:134:13: ( COMMA argument )*
loop14:
while (true) {
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==COMMA) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:134:14: COMMA argument
{
COMMA58=(Token)match(input,COMMA,FOLLOW_COMMA_in_argument_list718); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA58);
pushFollow(FOLLOW_argument_in_argument_list720);
argument59=argument();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_argument.add(argument59.getTree());
}
break;
default :
break loop14;
}
}
// 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();
// 134:31: -> ^( ARGUMENT_LIST argument ( COMMA argument )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:134: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/ast/impl/pragmaParser/PragmaString.g:134: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/ast/impl/pragmaParser/PragmaString.g:137:1: argument : type_specifier declarator -> ^( ARGUMENT type_specifier declarator ) ;
public final PragmaStringParser.argument_return argument() throws RecognitionException {
PragmaStringParser.argument_return retval = new PragmaStringParser.argument_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope type_specifier60 =null;
ParserRuleReturnScope declarator61 =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/ast/impl/pragmaParser/PragmaString.g:138:2: ( type_specifier declarator -> ^( ARGUMENT type_specifier declarator ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:138:4: type_specifier declarator
{
pushFollow(FOLLOW_type_specifier_in_argument749);
type_specifier60=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_specifier.add(type_specifier60.getTree());
pushFollow(FOLLOW_declarator_in_argument751);
declarator61=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator61.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();
// 138:30: -> ^( ARGUMENT type_specifier declarator )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:138: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 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/ast/impl/pragmaParser/PragmaString.g:141:1: declaration_unit : declarator ( ASSIGN initializer )? -> declarator ( initializer )? ;
public final PragmaStringParser.declaration_unit_return declaration_unit() throws RecognitionException {
PragmaStringParser.declaration_unit_return retval = new PragmaStringParser.declaration_unit_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN63=null;
ParserRuleReturnScope declarator62 =null;
ParserRuleReturnScope initializer64 =null;
Object ASSIGN63_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/ast/impl/pragmaParser/PragmaString.g:142:2: ( declarator ( ASSIGN initializer )? -> declarator ( initializer )? )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:142:4: declarator ( ASSIGN initializer )?
{
pushFollow(FOLLOW_declarator_in_declaration_unit773);
declarator62=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator62.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:142:15: ( ASSIGN initializer )?
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==ASSIGN) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:142:16: ASSIGN initializer
{
ASSIGN63=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_declaration_unit776); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN63);
pushFollow(FOLLOW_initializer_in_declaration_unit778);
initializer64=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(initializer64.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();
// 142:37: -> declarator ( initializer )?
{
adaptor.addChild(root_0, stream_declarator.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:142: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/ast/impl/pragmaParser/PragmaString.g:144: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 ) | INPUT ( suffix )? type_specifier DEFINE IDENTIFIER expr -> ^( DECLARATION ^( PREFIX INPUT ) ^( DECL_BODY type_specifier ^( DECLARATOR ^( DIRECT_DECL IDENTIFIER ) ) ) ( suffix )? SEMI ) );
public final PragmaStringParser.declaration_return declaration() throws RecognitionException {
PragmaStringParser.declaration_return retval = new PragmaStringParser.declaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA66=null;
Token SEMI68=null;
Token SEMI72=null;
Token INPUT73=null;
Token DEFINE76=null;
Token IDENTIFIER77=null;
ParserRuleReturnScope type =null;
ParserRuleReturnScope declaration_unit65 =null;
ParserRuleReturnScope declaration_unit67 =null;
ParserRuleReturnScope prefix69 =null;
ParserRuleReturnScope suffix70 =null;
ParserRuleReturnScope declaration_body71 =null;
ParserRuleReturnScope suffix74 =null;
ParserRuleReturnScope type_specifier75 =null;
ParserRuleReturnScope expr78 =null;
Object COMMA66_tree=null;
Object SEMI68_tree=null;
Object SEMI72_tree=null;
Object INPUT73_tree=null;
Object DEFINE76_tree=null;
Object IDENTIFIER77_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");
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/ast/impl/pragmaParser/PragmaString.g:145: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 ) | INPUT ( suffix )? type_specifier DEFINE IDENTIFIER expr -> ^( DECLARATION ^( PREFIX INPUT ) ^( DECL_BODY type_specifier ^( DECLARATOR ^( DIRECT_DECL IDENTIFIER ) ) ) ( suffix )? SEMI ) )
int alt20=3;
switch ( input.LA(1) ) {
case BOOLEAN:
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case VOID:
{
int LA20_1 = input.LA(2);
if ( (synpred21_PragmaString()) ) {
alt20=1;
}
else if ( (synpred24_PragmaString()) ) {
alt20=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 20, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case STRUCT:
{
int LA20_2 = input.LA(2);
if ( (synpred21_PragmaString()) ) {
alt20=1;
}
else if ( (synpred24_PragmaString()) ) {
alt20=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 20, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENTIFIER:
{
int LA20_3 = input.LA(2);
if ( (synpred21_PragmaString()) ) {
alt20=1;
}
else if ( (synpred24_PragmaString()) ) {
alt20=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 20, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INPUT:
{
int LA20_4 = input.LA(2);
if ( (synpred24_PragmaString()) ) {
alt20=2;
}
else if ( (true) ) {
alt20=3;
}
}
break;
case CONST:
case IS:
case LCURLY:
case OUTPUT:
case SHARED:
case STATIC:
case TYPEDEF:
{
alt20=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 20, 0, input);
throw nvae;
}
switch (alt20) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:145:5: type= type_specifier declaration_unit ( COMMA declaration_unit )+ SEMI
{
pushFollow(FOLLOW_type_specifier_in_declaration800);
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_declaration802);
declaration_unit65=declaration_unit();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration_unit.add(declaration_unit65.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:145:42: ( COMMA declaration_unit )+
int cnt16=0;
loop16:
while (true) {
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==COMMA) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:145:43: COMMA declaration_unit
{
COMMA66=(Token)match(input,COMMA,FOLLOW_COMMA_in_declaration805); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA66);
pushFollow(FOLLOW_declaration_unit_in_declaration807);
declaration_unit67=declaration_unit();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration_unit.add(declaration_unit67.getTree());
}
break;
default :
if ( cnt16 >= 1 ) break loop16;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(16, input);
throw eee;
}
cnt16++;
}
SEMI68=(Token)match(input,SEMI,FOLLOW_SEMI_in_declaration811); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI68);
// AST REWRITE
// elements: SEMI, declaration_unit, type
// 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();
// 146:3: -> ^( MULTI_DECLARATION ( ^( DECLARATION ^( DECL_BODY $type declaration_unit ) SEMI ) )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:146: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_declaration_unit.hasNext()||stream_type.hasNext()) ) {
throw new RewriteEarlyExitException();
}
while ( stream_SEMI.hasNext()||stream_declaration_unit.hasNext()||stream_type.hasNext() ) {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:147: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/ast/impl/pragmaParser/PragmaString.g:147: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_declaration_unit.reset();
stream_type.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/ast/impl/pragmaParser/PragmaString.g:148:6: ( prefix )? ( suffix )? declaration_body SEMI
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:148:6: ( prefix )?
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==INPUT||LA17_0==OUTPUT||LA17_0==SHARED||LA17_0==TYPEDEF) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:148:6: prefix
{
pushFollow(FOLLOW_prefix_in_declaration845);
prefix69=prefix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_prefix.add(prefix69.getTree());
}
break;
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:148:14: ( suffix )?
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==IS||LA18_0==LCURLY) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:148:14: suffix
{
pushFollow(FOLLOW_suffix_in_declaration848);
suffix70=suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_suffix.add(suffix70.getTree());
}
break;
}
pushFollow(FOLLOW_declaration_body_in_declaration851);
declaration_body71=declaration_body();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declaration_body.add(declaration_body71.getTree());
SEMI72=(Token)match(input,SEMI,FOLLOW_SEMI_in_declaration853); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI72);
// AST REWRITE
// elements: declaration_body, SEMI, prefix, 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();
// 149:3: -> ^( DECLARATION ( prefix )? declaration_body ( suffix )? SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:149: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/ast/impl/pragmaParser/PragmaString.g:149: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/ast/impl/pragmaParser/PragmaString.g:149: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/ast/impl/pragmaParser/PragmaString.g:150:4: INPUT ( suffix )? type_specifier DEFINE IDENTIFIER expr
{
INPUT73=(Token)match(input,INPUT,FOLLOW_INPUT_in_declaration876); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INPUT.add(INPUT73);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:150:10: ( suffix )?
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==IS||LA19_0==LCURLY) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:150:10: suffix
{
pushFollow(FOLLOW_suffix_in_declaration878);
suffix74=suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_suffix.add(suffix74.getTree());
}
break;
}
pushFollow(FOLLOW_type_specifier_in_declaration881);
type_specifier75=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_specifier.add(type_specifier75.getTree());
DEFINE76=(Token)match(input,DEFINE,FOLLOW_DEFINE_in_declaration883); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DEFINE.add(DEFINE76);
IDENTIFIER77=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_declaration885); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER77);
pushFollow(FOLLOW_expr_in_declaration887);
expr78=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr78.getTree());
// AST REWRITE
// elements: IDENTIFIER, INPUT, suffix, 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();
// 151: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/ast/impl/pragmaParser/PragmaString.g:151: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/ast/impl/pragmaParser/PragmaString.g:151: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/ast/impl/pragmaParser/PragmaString.g:151: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/ast/impl/pragmaParser/PragmaString.g:151: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/ast/impl/pragmaParser/PragmaString.g:151: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/ast/impl/pragmaParser/PragmaString.g:151: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/ast/impl/pragmaParser/PragmaString.g:154:1: prefix : ( TYPEDEF | INPUT | OUTPUT | SHARED );
public final PragmaStringParser.prefix_return prefix() throws RecognitionException {
PragmaStringParser.prefix_return retval = new PragmaStringParser.prefix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set79=null;
Object set79_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:155:2: ( TYPEDEF | INPUT | OUTPUT | SHARED )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:
{
root_0 = (Object)adaptor.nil();
set79=input.LT(1);
if ( input.LA(1)==INPUT||input.LA(1)==OUTPUT||input.LA(1)==SHARED||input.LA(1)==TYPEDEF ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set79));
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 "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/ast/impl/pragmaParser/PragmaString.g:167:1: declaration_body : ( ignored )* type_specifier ( declarator ( ASSIGN initializer )? )? -> ^( DECL_BODY type_specifier ( declarator ( initializer )? )? ) ;
public final PragmaStringParser.declaration_body_return declaration_body() throws RecognitionException {
PragmaStringParser.declaration_body_return retval = new PragmaStringParser.declaration_body_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN83=null;
ParserRuleReturnScope ignored80 =null;
ParserRuleReturnScope type_specifier81 =null;
ParserRuleReturnScope declarator82 =null;
ParserRuleReturnScope initializer84 =null;
Object ASSIGN83_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/ast/impl/pragmaParser/PragmaString.g:168: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/ast/impl/pragmaParser/PragmaString.g:168:4: ( ignored )* type_specifier ( declarator ( ASSIGN initializer )? )?
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:168:4: ( ignored )*
loop21:
while (true) {
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==CONST||LA21_0==STATIC) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:168:4: ignored
{
pushFollow(FOLLOW_ignored_in_declaration_body967);
ignored80=ignored();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ignored.add(ignored80.getTree());
}
break;
default :
break loop21;
}
}
pushFollow(FOLLOW_type_specifier_in_declaration_body970);
type_specifier81=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_specifier.add(type_specifier81.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:168:28: ( declarator ( ASSIGN initializer )? )?
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==BOOLEAN||LA23_0==CHAR||LA23_0==DOUBLE||LA23_0==FLOAT||LA23_0==IDENTIFIER||LA23_0==INT||LA23_0==LPAREN||LA23_0==MULTI||LA23_0==STRUCT||LA23_0==VOID) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:168:29: declarator ( ASSIGN initializer )?
{
pushFollow(FOLLOW_declarator_in_declaration_body973);
declarator82=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator82.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:168:40: ( ASSIGN initializer )?
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==ASSIGN) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:168:41: ASSIGN initializer
{
ASSIGN83=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_declaration_body976); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN83);
pushFollow(FOLLOW_initializer_in_declaration_body978);
initializer84=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(initializer84.getTree());
}
break;
}
}
break;
}
// AST REWRITE
// elements: type_specifier, declarator, initializer
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 168:64: -> ^( DECL_BODY type_specifier ( declarator ( initializer )? )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:168: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/ast/impl/pragmaParser/PragmaString.g:168:94: ( declarator ( initializer )? )?
if ( stream_declarator.hasNext()||stream_initializer.hasNext() ) {
adaptor.addChild(root_1, stream_declarator.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:168:106: ( initializer )?
if ( stream_initializer.hasNext() ) {
adaptor.addChild(root_1, stream_initializer.nextTree());
}
stream_initializer.reset();
}
stream_declarator.reset();
stream_initializer.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/ast/impl/pragmaParser/PragmaString.g:171:1: pointer : MULTI ;
public final PragmaStringParser.pointer_return pointer() throws RecognitionException {
PragmaStringParser.pointer_return retval = new PragmaStringParser.pointer_return();
retval.start = input.LT(1);
Object root_0 = null;
Token MULTI85=null;
Object MULTI85_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:172:2: ( MULTI )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:172:4: MULTI
{
root_0 = (Object)adaptor.nil();
MULTI85=(Token)match(input,MULTI,FOLLOW_MULTI_in_pointer1009); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MULTI85_tree = (Object)adaptor.create(MULTI85);
adaptor.addChild(root_0, MULTI85_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/ast/impl/pragmaParser/PragmaString.g:175:1: declarator : ( pointer )* direct_declarator -> ^( DECLARATOR ( pointer )* direct_declarator ) ;
public final PragmaStringParser.declarator_return declarator() throws RecognitionException {
PragmaStringParser.declarator_return retval = new PragmaStringParser.declarator_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope pointer86 =null;
ParserRuleReturnScope direct_declarator87 =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/ast/impl/pragmaParser/PragmaString.g:176:2: ( ( pointer )* direct_declarator -> ^( DECLARATOR ( pointer )* direct_declarator ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:176:4: ( pointer )* direct_declarator
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:176:4: ( pointer )*
loop24:
while (true) {
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==MULTI) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:176:4: pointer
{
pushFollow(FOLLOW_pointer_in_declarator1020);
pointer86=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer86.getTree());
}
break;
default :
break loop24;
}
}
pushFollow(FOLLOW_direct_declarator_in_declarator1023);
direct_declarator87=direct_declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_direct_declarator.add(direct_declarator87.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();
// 177:3: -> ^( DECLARATOR ( pointer )* direct_declarator )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:177: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/ast/impl/pragmaParser/PragmaString.g:177: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/ast/impl/pragmaParser/PragmaString.g:180:1: direct_declarator : ( type_specifier ( declarator_suffix )* -> ^( DIRECT_DECL IDENTIFIER ( declarator_suffix )* ) | LPAREN declarator RPAREN ( declarator_suffix )+ -> ^( DIRECT_DECL declarator RPAREN ( declarator_suffix )+ ) );
public final PragmaStringParser.direct_declarator_return direct_declarator() throws RecognitionException {
PragmaStringParser.direct_declarator_return retval = new PragmaStringParser.direct_declarator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN90=null;
Token RPAREN92=null;
ParserRuleReturnScope type_specifier88 =null;
ParserRuleReturnScope declarator_suffix89 =null;
ParserRuleReturnScope declarator91 =null;
ParserRuleReturnScope declarator_suffix93 =null;
Object LPAREN90_tree=null;
Object RPAREN92_tree=null;
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator");
RewriteRuleSubtreeStream stream_type_specifier=new RewriteRuleSubtreeStream(adaptor,"rule type_specifier");
RewriteRuleSubtreeStream stream_declarator_suffix=new RewriteRuleSubtreeStream(adaptor,"rule declarator_suffix");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:181:2: ( type_specifier ( declarator_suffix )* -> ^( DIRECT_DECL IDENTIFIER ( declarator_suffix )* ) | LPAREN declarator RPAREN ( declarator_suffix )+ -> ^( DIRECT_DECL declarator RPAREN ( declarator_suffix )+ ) )
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==BOOLEAN||LA27_0==CHAR||LA27_0==DOUBLE||LA27_0==FLOAT||LA27_0==IDENTIFIER||LA27_0==INT||LA27_0==STRUCT||LA27_0==VOID) ) {
alt27=1;
}
else if ( (LA27_0==LPAREN) ) {
alt27=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 27, 0, input);
throw nvae;
}
switch (alt27) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:181:4: type_specifier ( declarator_suffix )*
{
pushFollow(FOLLOW_type_specifier_in_direct_declarator1047);
type_specifier88=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_specifier.add(type_specifier88.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:181:19: ( declarator_suffix )*
loop25:
while (true) {
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==LSQUARE) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:181:19: declarator_suffix
{
pushFollow(FOLLOW_declarator_suffix_in_direct_declarator1049);
declarator_suffix89=declarator_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator_suffix.add(declarator_suffix89.getTree());
}
break;
default :
break loop25;
}
}
// AST REWRITE
// elements: 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();
// 182:3: -> ^( DIRECT_DECL IDENTIFIER ( declarator_suffix )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:182: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, (Object)adaptor.create(IDENTIFIER, "IDENTIFIER"));
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:182: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/ast/impl/pragmaParser/PragmaString.g:183:4: LPAREN declarator RPAREN ( declarator_suffix )+
{
LPAREN90=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_direct_declarator1068); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN90);
pushFollow(FOLLOW_declarator_in_direct_declarator1070);
declarator91=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator91.getTree());
RPAREN92=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_direct_declarator1072); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN92);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:183:29: ( declarator_suffix )+
int cnt26=0;
loop26:
while (true) {
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==LSQUARE) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:183:29: declarator_suffix
{
pushFollow(FOLLOW_declarator_suffix_in_direct_declarator1074);
declarator_suffix93=declarator_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator_suffix.add(declarator_suffix93.getTree());
}
break;
default :
if ( cnt26 >= 1 ) break loop26;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(26, input);
throw eee;
}
cnt26++;
}
// AST REWRITE
// elements: declarator, declarator_suffix, 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();
// 184:3: -> ^( DIRECT_DECL declarator RPAREN ( declarator_suffix )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:184: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/ast/impl/pragmaParser/PragmaString.g:187:1: declarator_suffix : LSQUARE ( expr )? RSQUARE -> ^( DECL_SUFFIX ( expr )? RSQUARE ) ;
public final PragmaStringParser.declarator_suffix_return declarator_suffix() throws RecognitionException {
PragmaStringParser.declarator_suffix_return retval = new PragmaStringParser.declarator_suffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LSQUARE94=null;
Token RSQUARE96=null;
ParserRuleReturnScope expr95 =null;
Object LSQUARE94_tree=null;
Object RSQUARE96_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/ast/impl/pragmaParser/PragmaString.g:188:2: ( LSQUARE ( expr )? RSQUARE -> ^( DECL_SUFFIX ( expr )? RSQUARE ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:188:4: LSQUARE ( expr )? RSQUARE
{
LSQUARE94=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_declarator_suffix1101); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE94);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:188:12: ( expr )?
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==ADDR_OF||LA28_0==CHAR_LITERAL||LA28_0==DERIVATIVE||(LA28_0 >= DOUBLE_PLUS && LA28_0 <= DOUBLE_SUB)||LA28_0==EXISTS||LA28_0==FALSE||LA28_0==FORALL||LA28_0==IDENTIFIER||LA28_0==INT_LITERAL||LA28_0==LPAREN||LA28_0==MULTI||LA28_0==NOT||LA28_0==PLUS||LA28_0==REAL_LITERAL||LA28_0==SIZEOF||LA28_0==SPEC||LA28_0==STRING_LITERAL||LA28_0==SUB||LA28_0==SYS_VAR||LA28_0==TRUE) ) {
alt28=1;
}
switch (alt28) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:188:12: expr
{
pushFollow(FOLLOW_expr_in_declarator_suffix1103);
expr95=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr95.getTree());
}
break;
}
RSQUARE96=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_declarator_suffix1106); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE96);
// AST REWRITE
// elements: RSQUARE, 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();
// 188:26: -> ^( DECL_SUFFIX ( expr )? RSQUARE )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:188: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/ast/impl/pragmaParser/PragmaString.g:188: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/ast/impl/pragmaParser/PragmaString.g:191:1: initializer : ( expr -> ^( INITIALIZER expr ) | LCURLY ( initializer_list )? RCURLY -> ^( INITIALIZER LCURLY ( initializer_list )? RCURLY ) );
public final PragmaStringParser.initializer_return initializer() throws RecognitionException {
PragmaStringParser.initializer_return retval = new PragmaStringParser.initializer_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY98=null;
Token RCURLY100=null;
ParserRuleReturnScope expr97 =null;
ParserRuleReturnScope initializer_list99 =null;
Object LCURLY98_tree=null;
Object RCURLY100_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/ast/impl/pragmaParser/PragmaString.g:192:2: ( expr -> ^( INITIALIZER expr ) | LCURLY ( initializer_list )? RCURLY -> ^( INITIALIZER LCURLY ( initializer_list )? RCURLY ) )
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==ADDR_OF||LA30_0==CHAR_LITERAL||LA30_0==DERIVATIVE||(LA30_0 >= DOUBLE_PLUS && LA30_0 <= DOUBLE_SUB)||LA30_0==EXISTS||LA30_0==FALSE||LA30_0==FORALL||LA30_0==IDENTIFIER||LA30_0==INT_LITERAL||LA30_0==LPAREN||LA30_0==MULTI||LA30_0==NOT||LA30_0==PLUS||LA30_0==REAL_LITERAL||LA30_0==SIZEOF||LA30_0==SPEC||LA30_0==STRING_LITERAL||LA30_0==SUB||LA30_0==SYS_VAR||LA30_0==TRUE) ) {
alt30=1;
}
else if ( (LA30_0==LCURLY) ) {
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/ast/impl/pragmaParser/PragmaString.g:192:4: expr
{
pushFollow(FOLLOW_expr_in_initializer1130);
expr97=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr97.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();
// 193:3: -> ^( INITIALIZER expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:193: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/ast/impl/pragmaParser/PragmaString.g:194:4: LCURLY ( initializer_list )? RCURLY
{
LCURLY98=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_initializer1146); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY98);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:194:11: ( initializer_list )?
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==ADDR_OF||LA29_0==CHAR_LITERAL||LA29_0==DERIVATIVE||LA29_0==DOT||(LA29_0 >= DOUBLE_PLUS && LA29_0 <= DOUBLE_SUB)||LA29_0==EXISTS||LA29_0==FALSE||LA29_0==FORALL||LA29_0==IDENTIFIER||LA29_0==INT_LITERAL||LA29_0==LCURLY||(LA29_0 >= LPAREN && LA29_0 <= LSQUARE)||LA29_0==MULTI||LA29_0==NOT||LA29_0==PLUS||LA29_0==REAL_LITERAL||LA29_0==SIZEOF||LA29_0==SPEC||LA29_0==STRING_LITERAL||LA29_0==SUB||LA29_0==SYS_VAR||LA29_0==TRUE) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:194:11: initializer_list
{
pushFollow(FOLLOW_initializer_list_in_initializer1148);
initializer_list99=initializer_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer_list.add(initializer_list99.getTree());
}
break;
}
RCURLY100=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_initializer1151); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY100);
// 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();
// 195:3: -> ^( INITIALIZER LCURLY ( initializer_list )? RCURLY )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:195: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/ast/impl/pragmaParser/PragmaString.g:195: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/ast/impl/pragmaParser/PragmaString.g:198:1: initializer_list : ( designation )? initializer ( COMMA initializer_list )? -> ^( INITIALIZER_LIST ( designation )? initializer ( initializer_list )? ) ;
public final PragmaStringParser.initializer_list_return initializer_list() throws RecognitionException {
PragmaStringParser.initializer_list_return retval = new PragmaStringParser.initializer_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA103=null;
ParserRuleReturnScope designation101 =null;
ParserRuleReturnScope initializer102 =null;
ParserRuleReturnScope initializer_list104 =null;
Object COMMA103_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/ast/impl/pragmaParser/PragmaString.g:199: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/ast/impl/pragmaParser/PragmaString.g:199:4: ( designation )? initializer ( COMMA initializer_list )?
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:199:4: ( designation )?
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==DOT||LA31_0==LSQUARE) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:199:4: designation
{
pushFollow(FOLLOW_designation_in_initializer_list1179);
designation101=designation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designation.add(designation101.getTree());
}
break;
}
pushFollow(FOLLOW_initializer_in_initializer_list1182);
initializer102=initializer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer.add(initializer102.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:199:29: ( COMMA initializer_list )?
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==COMMA) ) {
alt32=1;
}
switch (alt32) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:199:30: COMMA initializer_list
{
COMMA103=(Token)match(input,COMMA,FOLLOW_COMMA_in_initializer_list1185); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA103);
pushFollow(FOLLOW_initializer_list_in_initializer_list1187);
initializer_list104=initializer_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_initializer_list.add(initializer_list104.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();
// 200:3: -> ^( INITIALIZER_LIST ( designation )? initializer ( initializer_list )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:200: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/ast/impl/pragmaParser/PragmaString.g:200: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/ast/impl/pragmaParser/PragmaString.g:200: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/ast/impl/pragmaParser/PragmaString.g:203:1: designation : designator_list ASSIGN -> ^( DESIGNATION designator_list ASSIGN ) ;
public final PragmaStringParser.designation_return designation() throws RecognitionException {
PragmaStringParser.designation_return retval = new PragmaStringParser.designation_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN106=null;
ParserRuleReturnScope designator_list105 =null;
Object ASSIGN106_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/ast/impl/pragmaParser/PragmaString.g:204:2: ( designator_list ASSIGN -> ^( DESIGNATION designator_list ASSIGN ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:204:4: designator_list ASSIGN
{
pushFollow(FOLLOW_designator_list_in_designation1217);
designator_list105=designator_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designator_list.add(designator_list105.getTree());
ASSIGN106=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_designation1219); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN106);
// 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();
// 204:27: -> ^( DESIGNATION designator_list ASSIGN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:204: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/ast/impl/pragmaParser/PragmaString.g:207:1: designator_list : ( designator )+ -> ^( DESIGNATOR_LIST ( designator )+ ) ;
public final PragmaStringParser.designator_list_return designator_list() throws RecognitionException {
PragmaStringParser.designator_list_return retval = new PragmaStringParser.designator_list_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope designator107 =null;
RewriteRuleSubtreeStream stream_designator=new RewriteRuleSubtreeStream(adaptor,"rule designator");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:208:2: ( ( designator )+ -> ^( DESIGNATOR_LIST ( designator )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:208:4: ( designator )+
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:208:4: ( designator )+
int cnt33=0;
loop33:
while (true) {
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==DOT||LA33_0==LSQUARE) ) {
alt33=1;
}
switch (alt33) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:208:4: designator
{
pushFollow(FOLLOW_designator_in_designator_list1241);
designator107=designator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_designator.add(designator107.getTree());
}
break;
default :
if ( cnt33 >= 1 ) break loop33;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(33, input);
throw eee;
}
cnt33++;
}
// 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();
// 208:16: -> ^( DESIGNATOR_LIST ( designator )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:208: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/ast/impl/pragmaParser/PragmaString.g:211:1: designator : ( LSQUARE ifThenElse_expr RSQUARE -> ^( DESIGNATOR ifThenElse_expr RSQUARE ) | DOT IDENTIFIER -> ^( DESIGNATOR IDENTIFIER ) );
public final PragmaStringParser.designator_return designator() throws RecognitionException {
PragmaStringParser.designator_return retval = new PragmaStringParser.designator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LSQUARE108=null;
Token RSQUARE110=null;
Token DOT111=null;
Token IDENTIFIER112=null;
ParserRuleReturnScope ifThenElse_expr109 =null;
Object LSQUARE108_tree=null;
Object RSQUARE110_tree=null;
Object DOT111_tree=null;
Object IDENTIFIER112_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/ast/impl/pragmaParser/PragmaString.g:212:2: ( LSQUARE ifThenElse_expr RSQUARE -> ^( DESIGNATOR ifThenElse_expr RSQUARE ) | DOT IDENTIFIER -> ^( DESIGNATOR IDENTIFIER ) )
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==LSQUARE) ) {
alt34=1;
}
else if ( (LA34_0==DOT) ) {
alt34=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 34, 0, input);
throw nvae;
}
switch (alt34) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:212:4: LSQUARE ifThenElse_expr RSQUARE
{
LSQUARE108=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_designator1262); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE108);
pushFollow(FOLLOW_ifThenElse_expr_in_designator1264);
ifThenElse_expr109=ifThenElse_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ifThenElse_expr.add(ifThenElse_expr109.getTree());
RSQUARE110=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_designator1266); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE110);
// 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();
// 212:36: -> ^( DESIGNATOR ifThenElse_expr RSQUARE )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:212: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/ast/impl/pragmaParser/PragmaString.g:213:4: DOT IDENTIFIER
{
DOT111=(Token)match(input,DOT,FOLLOW_DOT_in_designator1282); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT111);
IDENTIFIER112=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_designator1284); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER112);
// 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();
// 213:19: -> ^( DESIGNATOR IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:213: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/ast/impl/pragmaParser/PragmaString.g:216:1: suffix : ( LCURLY expr RCURLY ( IS IDENTIFIER )? -> ^( SUFFIX expr RCURLY ( IDENTIFIER )? ) | IS IDENTIFIER -> ^( SUFFIX IDENTIFIER ) );
public final PragmaStringParser.suffix_return suffix() throws RecognitionException {
PragmaStringParser.suffix_return retval = new PragmaStringParser.suffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY113=null;
Token RCURLY115=null;
Token IS116=null;
Token IDENTIFIER117=null;
Token IS118=null;
Token IDENTIFIER119=null;
ParserRuleReturnScope expr114 =null;
Object LCURLY113_tree=null;
Object RCURLY115_tree=null;
Object IS116_tree=null;
Object IDENTIFIER117_tree=null;
Object IS118_tree=null;
Object IDENTIFIER119_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/ast/impl/pragmaParser/PragmaString.g:217:2: ( LCURLY expr RCURLY ( IS IDENTIFIER )? -> ^( SUFFIX expr RCURLY ( IDENTIFIER )? ) | IS IDENTIFIER -> ^( SUFFIX IDENTIFIER ) )
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==LCURLY) ) {
alt36=1;
}
else if ( (LA36_0==IS) ) {
alt36=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 36, 0, input);
throw nvae;
}
switch (alt36) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:217:4: LCURLY expr RCURLY ( IS IDENTIFIER )?
{
LCURLY113=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_suffix1306); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY113);
pushFollow(FOLLOW_expr_in_suffix1308);
expr114=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr114.getTree());
RCURLY115=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_suffix1310); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY115);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:217:23: ( IS IDENTIFIER )?
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==IS) ) {
alt35=1;
}
switch (alt35) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:217:24: IS IDENTIFIER
{
IS116=(Token)match(input,IS,FOLLOW_IS_in_suffix1313); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IS.add(IS116);
IDENTIFIER117=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_suffix1315); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER117);
}
break;
}
// AST REWRITE
// elements: IDENTIFIER, RCURLY, 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();
// 218:3: -> ^( SUFFIX expr RCURLY ( IDENTIFIER )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:218: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/ast/impl/pragmaParser/PragmaString.g:218: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/ast/impl/pragmaParser/PragmaString.g:219:4: IS IDENTIFIER
{
IS118=(Token)match(input,IS,FOLLOW_IS_in_suffix1337); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IS.add(IS118);
IDENTIFIER119=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_suffix1339); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER119);
// 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();
// 220:3: -> ^( SUFFIX IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:220: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/ast/impl/pragmaParser/PragmaString.g:223:1: program_name : ( SPEC | IMPL );
public final PragmaStringParser.program_name_return program_name() throws RecognitionException {
PragmaStringParser.program_name_return retval = new PragmaStringParser.program_name_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set120=null;
Object set120_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:224:2: ( SPEC | IMPL )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:
{
root_0 = (Object)adaptor.nil();
set120=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(set120));
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/ast/impl/pragmaParser/PragmaString.g:228:1: 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 PragmaStringParser.type_specifier_return type_specifier() throws RecognitionException {
PragmaStringParser.type_specifier_return retval = new PragmaStringParser.type_specifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token STRUCT122=null;
Token IDENTIFIER123=null;
Token LCURLY124=null;
Token RCURLY126=null;
Token STRUCT127=null;
Token IDENTIFIER128=null;
Token IDENTIFIER129=null;
ParserRuleReturnScope simple_type121 =null;
ParserRuleReturnScope field_declaration125 =null;
Object STRUCT122_tree=null;
Object IDENTIFIER123_tree=null;
Object LCURLY124_tree=null;
Object RCURLY126_tree=null;
Object STRUCT127_tree=null;
Object IDENTIFIER128_tree=null;
Object IDENTIFIER129_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");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:229:2: ( 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 alt39=4;
switch ( input.LA(1) ) {
case BOOLEAN:
case CHAR:
case DOUBLE:
case FLOAT:
case INT:
case VOID:
{
alt39=1;
}
break;
case STRUCT:
{
int LA39_2 = input.LA(2);
if ( (LA39_2==IDENTIFIER) ) {
int LA39_4 = input.LA(3);
if ( (LA39_4==EOF||LA39_4==ASSIGN||LA39_4==BOOLEAN||LA39_4==CHAR||LA39_4==COMMA||LA39_4==DEFINE||LA39_4==DOUBLE||LA39_4==FLOAT||LA39_4==IDENTIFIER||LA39_4==INT||(LA39_4 >= LPAREN && LA39_4 <= LSQUARE)||LA39_4==MULTI||LA39_4==RPAREN||LA39_4==SEMI||LA39_4==STRUCT||LA39_4==VOID) ) {
alt39=3;
}
else if ( (LA39_4==LCURLY) ) {
alt39=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("", 39, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA39_2==LCURLY) ) {
alt39=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 39, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case IDENTIFIER:
{
alt39=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 39, 0, input);
throw nvae;
}
switch (alt39) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:229:4: simple_type
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_simple_type_in_type_specifier1379);
simple_type121=simple_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, simple_type121.getTree());
}
break;
case 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:231:4: STRUCT ( IDENTIFIER )? LCURLY ( field_declaration )* RCURLY
{
STRUCT122=(Token)match(input,STRUCT,FOLLOW_STRUCT_in_type_specifier1386); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRUCT.add(STRUCT122);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:231:11: ( IDENTIFIER )?
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==IDENTIFIER) ) {
alt37=1;
}
switch (alt37) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:231:11: IDENTIFIER
{
IDENTIFIER123=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_type_specifier1388); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER123);
}
break;
}
LCURLY124=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_type_specifier1391); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY124);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:231:30: ( field_declaration )*
loop38:
while (true) {
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==BOOLEAN||LA38_0==CHAR||LA38_0==DOUBLE||LA38_0==FLOAT||LA38_0==IDENTIFIER||LA38_0==INT||LA38_0==STRUCT||LA38_0==VOID) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:231:30: field_declaration
{
pushFollow(FOLLOW_field_declaration_in_type_specifier1393);
field_declaration125=field_declaration();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_field_declaration.add(field_declaration125.getTree());
}
break;
default :
break loop38;
}
}
RCURLY126=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_type_specifier1396); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY126);
// AST REWRITE
// elements: field_declaration, IDENTIFIER, STRUCT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 232:3: -> ^( TYPE_SPECIFIER STRUCT ( IDENTIFIER )? ( field_declaration )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:232: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/ast/impl/pragmaParser/PragmaString.g:232: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/ast/impl/pragmaParser/PragmaString.g:232: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/ast/impl/pragmaParser/PragmaString.g:233:4: STRUCT IDENTIFIER
{
STRUCT127=(Token)match(input,STRUCT,FOLLOW_STRUCT_in_type_specifier1417); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRUCT.add(STRUCT127);
IDENTIFIER128=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_type_specifier1419); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER128);
// AST REWRITE
// elements: IDENTIFIER, STRUCT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 234:3: -> ^( TYPE_SPECIFIER STRUCT IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:234: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/ast/impl/pragmaParser/PragmaString.g:235:4: IDENTIFIER
{
IDENTIFIER129=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_type_specifier1436); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER129);
// 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();
// 236:3: -> ^( TYPE_SPECIFIER IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:236: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/ast/impl/pragmaParser/PragmaString.g:239:1: simple_type : ( BOOLEAN | CHAR | INT | FLOAT | DOUBLE | VOID );
public final PragmaStringParser.simple_type_return simple_type() throws RecognitionException {
PragmaStringParser.simple_type_return retval = new PragmaStringParser.simple_type_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set130=null;
Object set130_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:240:2: ( BOOLEAN | CHAR | INT | FLOAT | DOUBLE | VOID )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:
{
root_0 = (Object)adaptor.nil();
set130=input.LT(1);
if ( input.LA(1)==BOOLEAN||input.LA(1)==CHAR||input.LA(1)==DOUBLE||input.LA(1)==FLOAT||input.LA(1)==INT||input.LA(1)==VOID ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set130));
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 "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/ast/impl/pragmaParser/PragmaString.g:254:1: type_name : type_specifier ( abstract_declarator )? ;
public final PragmaStringParser.type_name_return type_name() throws RecognitionException {
PragmaStringParser.type_name_return retval = new PragmaStringParser.type_name_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope type_specifier131 =null;
ParserRuleReturnScope abstract_declarator132 =null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:255:2: ( type_specifier ( abstract_declarator )? )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:255:4: type_specifier ( abstract_declarator )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_type_specifier_in_type_name1501);
type_specifier131=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, type_specifier131.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:255:19: ( abstract_declarator )?
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==MULTI) ) {
int LA40_1 = input.LA(2);
if ( (LA40_1==RPAREN) ) {
int LA40_3 = input.LA(3);
if ( (LA40_3==EOF||LA40_3==ADDR_OF||LA40_3==AND||LA40_3==ASSERT||LA40_3==ASSIGN||LA40_3==ASSUME||LA40_3==BOOLEAN||(LA40_3 >= CHAR && LA40_3 <= CHAR_LITERAL)||LA40_3==COLLECTIVE||(LA40_3 >= COLON && LA40_3 <= COMMA)||LA40_3==DERIVATIVE||(LA40_3 >= DIV && LA40_3 <= DIV_ASSIGN)||(LA40_3 >= DOUBLE && LA40_3 <= ELSE)||LA40_3==EQ||LA40_3==EXISTS||LA40_3==FALSE||(LA40_3 >= FLOAT && LA40_3 <= FORALL)||(LA40_3 >= GT && LA40_3 <= GTE)||(LA40_3 >= IDENTIFIER && LA40_3 <= IF)||(LA40_3 >= INT && LA40_3 <= INVARIANT)||LA40_3==JOINT||LA40_3==LCURLY||LA40_3==LPAREN||(LA40_3 >= LT && LA40_3 <= LTE)||(LA40_3 >= MOD && LA40_3 <= MULTI)||LA40_3==MULTI_ASSIGN||LA40_3==NEQ||(LA40_3 >= NOT && LA40_3 <= OR)||(LA40_3 >= PLUS && LA40_3 <= PLUS_ASSIGN)||LA40_3==QMARK||(LA40_3 >= RCURLY && LA40_3 <= RECV)||LA40_3==RETURN||(LA40_3 >= RPAREN && LA40_3 <= SELECT)||(LA40_3 >= SEMI && LA40_3 <= SEND)||LA40_3==SIZEOF||LA40_3==SPEC||(LA40_3 >= STRING_LITERAL && LA40_3 <= SUB_ASSIGN)||LA40_3==SYS_VAR||LA40_3==TRUE||(LA40_3 >= VOID && LA40_3 <= WHILE)) ) {
alt40=1;
}
}
else if ( (LA40_1==IDENTIFIER||(LA40_1 >= LPAREN && LA40_1 <= LSQUARE)||LA40_1==MULTI) ) {
alt40=1;
}
}
switch (alt40) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:255:19: abstract_declarator
{
pushFollow(FOLLOW_abstract_declarator_in_type_name1503);
abstract_declarator132=abstract_declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, abstract_declarator132.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 "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/ast/impl/pragmaParser/PragmaString.g:259:1: abstract_declarator : ( pointer )+ ( direct_abstract_declarator )? ( declarator_suffix )* -> ^( ABSTRACT_DECLARATOR ( pointer )+ ( direct_abstract_declarator )? ( declarator_suffix )* ) ;
public final PragmaStringParser.abstract_declarator_return abstract_declarator() throws RecognitionException {
PragmaStringParser.abstract_declarator_return retval = new PragmaStringParser.abstract_declarator_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope pointer133 =null;
ParserRuleReturnScope direct_abstract_declarator134 =null;
ParserRuleReturnScope declarator_suffix135 =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/ast/impl/pragmaParser/PragmaString.g:260: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/ast/impl/pragmaParser/PragmaString.g:260:4: ( pointer )+ ( direct_abstract_declarator )? ( declarator_suffix )*
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:260:4: ( pointer )+
int cnt41=0;
loop41:
while (true) {
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==MULTI) ) {
int LA41_2 = input.LA(2);
if ( (LA41_2==RPAREN) ) {
int LA41_3 = input.LA(3);
if ( (LA41_3==EOF||LA41_3==ADDR_OF||LA41_3==AND||LA41_3==ASSERT||LA41_3==ASSIGN||LA41_3==ASSUME||LA41_3==BOOLEAN||(LA41_3 >= CHAR && LA41_3 <= CHAR_LITERAL)||LA41_3==COLLECTIVE||(LA41_3 >= COLON && LA41_3 <= COMMA)||LA41_3==DERIVATIVE||(LA41_3 >= DIV && LA41_3 <= DIV_ASSIGN)||(LA41_3 >= DOUBLE && LA41_3 <= ELSE)||LA41_3==EQ||LA41_3==EXISTS||LA41_3==FALSE||(LA41_3 >= FLOAT && LA41_3 <= FORALL)||(LA41_3 >= GT && LA41_3 <= GTE)||(LA41_3 >= IDENTIFIER && LA41_3 <= IF)||(LA41_3 >= INT && LA41_3 <= INVARIANT)||LA41_3==JOINT||LA41_3==LCURLY||(LA41_3 >= LPAREN && LA41_3 <= LTE)||(LA41_3 >= MOD && LA41_3 <= MULTI)||LA41_3==MULTI_ASSIGN||LA41_3==NEQ||(LA41_3 >= NOT && LA41_3 <= OR)||(LA41_3 >= PLUS && LA41_3 <= PLUS_ASSIGN)||LA41_3==QMARK||(LA41_3 >= RCURLY && LA41_3 <= RECV)||LA41_3==RETURN||(LA41_3 >= RPAREN && LA41_3 <= SELECT)||(LA41_3 >= SEMI && LA41_3 <= SEND)||LA41_3==SIZEOF||LA41_3==SPEC||(LA41_3 >= STRING_LITERAL && LA41_3 <= SUB_ASSIGN)||LA41_3==SYS_VAR||LA41_3==TRUE||(LA41_3 >= VOID && LA41_3 <= WHILE)) ) {
alt41=1;
}
}
else if ( (LA41_2==EOF||LA41_2==IDENTIFIER||(LA41_2 >= LPAREN && LA41_2 <= LSQUARE)||LA41_2==MULTI) ) {
alt41=1;
}
}
switch (alt41) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:260:4: pointer
{
pushFollow(FOLLOW_pointer_in_abstract_declarator1517);
pointer133=pointer();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_pointer.add(pointer133.getTree());
}
break;
default :
if ( cnt41 >= 1 ) break loop41;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(41, input);
throw eee;
}
cnt41++;
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:260:13: ( direct_abstract_declarator )?
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==LPAREN) ) {
alt42=1;
}
switch (alt42) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:260:13: direct_abstract_declarator
{
pushFollow(FOLLOW_direct_abstract_declarator_in_abstract_declarator1520);
direct_abstract_declarator134=direct_abstract_declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_direct_abstract_declarator.add(direct_abstract_declarator134.getTree());
}
break;
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:260:41: ( declarator_suffix )*
loop43:
while (true) {
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==LSQUARE) ) {
alt43=1;
}
switch (alt43) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:260:41: declarator_suffix
{
pushFollow(FOLLOW_declarator_suffix_in_abstract_declarator1523);
declarator_suffix135=declarator_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator_suffix.add(declarator_suffix135.getTree());
}
break;
default :
break loop43;
}
}
// AST REWRITE
// elements: pointer, declarator_suffix, direct_abstract_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();
// 261:3: -> ^( ABSTRACT_DECLARATOR ( pointer )+ ( direct_abstract_declarator )? ( declarator_suffix )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:261: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/ast/impl/pragmaParser/PragmaString.g:261: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/ast/impl/pragmaParser/PragmaString.g:261: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/ast/impl/pragmaParser/PragmaString.g:264:1: direct_abstract_declarator : LPAREN abstract_declarator RPAREN -> ^( DIRECT_ABSTRACT_DECLARATOR abstract_declarator RPAREN ) ;
public final PragmaStringParser.direct_abstract_declarator_return direct_abstract_declarator() throws RecognitionException {
PragmaStringParser.direct_abstract_declarator_return retval = new PragmaStringParser.direct_abstract_declarator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN136=null;
Token RPAREN138=null;
ParserRuleReturnScope abstract_declarator137 =null;
Object LPAREN136_tree=null;
Object RPAREN138_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/ast/impl/pragmaParser/PragmaString.g:265:2: ( LPAREN abstract_declarator RPAREN -> ^( DIRECT_ABSTRACT_DECLARATOR abstract_declarator RPAREN ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:265:4: LPAREN abstract_declarator RPAREN
{
LPAREN136=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_direct_abstract_declarator1552); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN136);
pushFollow(FOLLOW_abstract_declarator_in_direct_abstract_declarator1554);
abstract_declarator137=abstract_declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_abstract_declarator.add(abstract_declarator137.getTree());
RPAREN138=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_direct_abstract_declarator1556); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN138);
// 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();
// 266:3: -> ^( DIRECT_ABSTRACT_DECLARATOR abstract_declarator RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:266: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/ast/impl/pragmaParser/PragmaString.g:269:1: field_declaration : type_specifier declarator SEMI -> ^( FIELD_DECL type_specifier declarator SEMI ) ;
public final PragmaStringParser.field_declaration_return field_declaration() throws RecognitionException {
PragmaStringParser.field_declaration_return retval = new PragmaStringParser.field_declaration_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI141=null;
ParserRuleReturnScope type_specifier139 =null;
ParserRuleReturnScope declarator140 =null;
Object SEMI141_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/ast/impl/pragmaParser/PragmaString.g:270:2: ( type_specifier declarator SEMI -> ^( FIELD_DECL type_specifier declarator SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:270:4: type_specifier declarator SEMI
{
pushFollow(FOLLOW_type_specifier_in_field_declaration1581);
type_specifier139=type_specifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_specifier.add(type_specifier139.getTree());
pushFollow(FOLLOW_declarator_in_field_declaration1583);
declarator140=declarator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_declarator.add(declarator140.getTree());
SEMI141=(Token)match(input,SEMI,FOLLOW_SEMI_in_field_declaration1585); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI141);
// 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();
// 271:3: -> ^( FIELD_DECL type_specifier declarator SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:271: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 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/ast/impl/pragmaParser/PragmaString.g:275:1: statement_list : ( statement )+ -> ^( STATEMENT_LIST ( statement )+ ) ;
public final PragmaStringParser.statement_list_return statement_list() throws RecognitionException {
PragmaStringParser.statement_list_return retval = new PragmaStringParser.statement_list_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope statement142 =null;
RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:276:2: ( ( statement )+ -> ^( STATEMENT_LIST ( statement )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:276:4: ( statement )+
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:276:4: ( statement )+
int cnt44=0;
loop44:
while (true) {
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==ADDR_OF||LA44_0==ASSERT||LA44_0==ASSUME||LA44_0==CHAR_LITERAL||LA44_0==COLLECTIVE||LA44_0==DERIVATIVE||(LA44_0 >= DOUBLE_PLUS && LA44_0 <= DOUBLE_SUB)||LA44_0==EXISTS||LA44_0==FALSE||(LA44_0 >= FOR && LA44_0 <= FORALL)||(LA44_0 >= IDENTIFIER && LA44_0 <= IF)||(LA44_0 >= INT_LITERAL && LA44_0 <= INVARIANT)||LA44_0==JOINT||LA44_0==LCURLY||LA44_0==LPAREN||LA44_0==MULTI||LA44_0==NOT||LA44_0==PLUS||(LA44_0 >= REAL_LITERAL && LA44_0 <= RECV)||LA44_0==RETURN||LA44_0==SELECT||(LA44_0 >= SEMI && LA44_0 <= SEND)||LA44_0==SIZEOF||LA44_0==SPEC||LA44_0==STRING_LITERAL||LA44_0==SUB||LA44_0==SYS_VAR||LA44_0==TRUE||LA44_0==WHILE) ) {
alt44=1;
}
switch (alt44) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:276:4: statement
{
pushFollow(FOLLOW_statement_in_statement_list1612);
statement142=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement142.getTree());
}
break;
default :
if ( cnt44 >= 1 ) break loop44;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(44, input);
throw eee;
}
cnt44++;
}
// 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();
// 276:15: -> ^( STATEMENT_LIST ( statement )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:276: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/ast/impl/pragmaParser/PragmaString.g:279: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 PragmaStringParser.statement_return statement() throws RecognitionException {
PragmaStringParser.statement_return retval = new PragmaStringParser.statement_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope assert_statement143 =null;
ParserRuleReturnScope collective_assert_statement144 =null;
ParserRuleReturnScope joint_assert_statement145 =null;
ParserRuleReturnScope invariant_statement146 =null;
ParserRuleReturnScope collective_invariant_statement147 =null;
ParserRuleReturnScope joint_invariant_statement148 =null;
ParserRuleReturnScope assume_statement149 =null;
ParserRuleReturnScope compound_statement150 =null;
ParserRuleReturnScope condition_statement151 =null;
ParserRuleReturnScope select_statement152 =null;
ParserRuleReturnScope iterative_statement153 =null;
ParserRuleReturnScope return_statement154 =null;
ParserRuleReturnScope empty_statement155 =null;
ParserRuleReturnScope send_statement156 =null;
ParserRuleReturnScope recv_statement157 =null;
ParserRuleReturnScope call_statement158 =null;
ParserRuleReturnScope expr_statement159 =null;
ParserRuleReturnScope allocate_statement160 =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/ast/impl/pragmaParser/PragmaString.g:283: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 alt45=18;
switch ( input.LA(1) ) {
case ASSERT:
{
alt45=1;
}
break;
case COLLECTIVE:
{
int LA45_2 = input.LA(2);
if ( (synpred62_PragmaString()) ) {
alt45=2;
}
else if ( (synpred65_PragmaString()) ) {
alt45=5;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 45, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case JOINT:
{
int LA45_3 = input.LA(2);
if ( (synpred63_PragmaString()) ) {
alt45=3;
}
else if ( (synpred66_PragmaString()) ) {
alt45=6;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 45, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case INVARIANT:
{
alt45=4;
}
break;
case ASSUME:
{
alt45=7;
}
break;
case LCURLY:
{
alt45=8;
}
break;
case IF:
{
alt45=9;
}
break;
case SELECT:
{
alt45=10;
}
break;
case IDENTIFIER:
{
int LA45_9 = input.LA(2);
if ( (synpred71_PragmaString()) ) {
alt45=11;
}
else if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case FOR:
case WHILE:
{
alt45=11;
}
break;
case RETURN:
{
alt45=12;
}
break;
case SEMI:
{
alt45=13;
}
break;
case SEND:
{
alt45=14;
}
break;
case RECV:
{
alt45=15;
}
break;
case TRUE:
{
int LA45_16 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case FALSE:
{
int LA45_17 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case INT_LITERAL:
{
int LA45_18 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case REAL_LITERAL:
{
int LA45_19 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case CHAR_LITERAL:
{
int LA45_20 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case STRING_LITERAL:
{
int LA45_21 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case SYS_VAR:
{
int LA45_22 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case LPAREN:
{
int LA45_23 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case SPEC:
{
int LA45_24 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case DERIVATIVE:
{
int LA45_25 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case PLUS:
{
int LA45_26 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case SUB:
{
int LA45_27 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case NOT:
{
int LA45_28 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case MULTI:
{
int LA45_29 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case ADDR_OF:
{
int LA45_30 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case DOUBLE_PLUS:
{
int LA45_31 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case DOUBLE_SUB:
{
int LA45_32 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case SIZEOF:
{
int LA45_33 = input.LA(2);
if ( (synpred76_PragmaString()) ) {
alt45=16;
}
else if ( (synpred77_PragmaString()) ) {
alt45=17;
}
else if ( (true) ) {
alt45=18;
}
}
break;
case EXISTS:
case FORALL:
{
alt45=17;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 45, 0, input);
throw nvae;
}
switch (alt45) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:283:4: assert_statement
{
pushFollow(FOLLOW_assert_statement_in_statement1637);
assert_statement143=assert_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assert_statement.add(assert_statement143.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();
// 283:21: -> ^( STATEMENT assert_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:283: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/ast/impl/pragmaParser/PragmaString.g:284:4: collective_assert_statement
{
pushFollow(FOLLOW_collective_assert_statement_in_statement1650);
collective_assert_statement144=collective_assert_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_collective_assert_statement.add(collective_assert_statement144.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();
// 284:32: -> ^( STATEMENT collective_assert_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:284: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/ast/impl/pragmaParser/PragmaString.g:285:4: joint_assert_statement
{
pushFollow(FOLLOW_joint_assert_statement_in_statement1663);
joint_assert_statement145=joint_assert_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_joint_assert_statement.add(joint_assert_statement145.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();
// 285:27: -> ^( STATEMENT joint_assert_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:285: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/ast/impl/pragmaParser/PragmaString.g:286:4: invariant_statement
{
pushFollow(FOLLOW_invariant_statement_in_statement1676);
invariant_statement146=invariant_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_invariant_statement.add(invariant_statement146.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();
// 286:24: -> ^( STATEMENT invariant_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:286: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/ast/impl/pragmaParser/PragmaString.g:287:4: collective_invariant_statement
{
pushFollow(FOLLOW_collective_invariant_statement_in_statement1689);
collective_invariant_statement147=collective_invariant_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_collective_invariant_statement.add(collective_invariant_statement147.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();
// 287:35: -> ^( STATEMENT collective_invariant_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:287: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/ast/impl/pragmaParser/PragmaString.g:288:4: joint_invariant_statement
{
pushFollow(FOLLOW_joint_invariant_statement_in_statement1702);
joint_invariant_statement148=joint_invariant_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_joint_invariant_statement.add(joint_invariant_statement148.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();
// 288:30: -> ^( STATEMENT joint_invariant_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:288: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/ast/impl/pragmaParser/PragmaString.g:289:4: assume_statement
{
pushFollow(FOLLOW_assume_statement_in_statement1715);
assume_statement149=assume_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assume_statement.add(assume_statement149.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();
// 289:21: -> ^( STATEMENT assume_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:289: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/ast/impl/pragmaParser/PragmaString.g:294:4: compound_statement
{
pushFollow(FOLLOW_compound_statement_in_statement1731);
compound_statement150=compound_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_compound_statement.add(compound_statement150.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();
// 294:23: -> ^( STATEMENT compound_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:294: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/ast/impl/pragmaParser/PragmaString.g:295:4: condition_statement
{
pushFollow(FOLLOW_condition_statement_in_statement1744);
condition_statement151=condition_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_condition_statement.add(condition_statement151.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();
// 295:24: -> ^( STATEMENT condition_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:295: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/ast/impl/pragmaParser/PragmaString.g:296:4: select_statement
{
pushFollow(FOLLOW_select_statement_in_statement1757);
select_statement152=select_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_select_statement.add(select_statement152.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();
// 296:21: -> ^( STATEMENT select_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:296: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/ast/impl/pragmaParser/PragmaString.g:297:4: iterative_statement
{
pushFollow(FOLLOW_iterative_statement_in_statement1770);
iterative_statement153=iterative_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_iterative_statement.add(iterative_statement153.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();
// 297:24: -> ^( STATEMENT iterative_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:297: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/ast/impl/pragmaParser/PragmaString.g:298:4: return_statement
{
pushFollow(FOLLOW_return_statement_in_statement1783);
return_statement154=return_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_return_statement.add(return_statement154.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();
// 298:21: -> ^( STATEMENT return_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:298: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/ast/impl/pragmaParser/PragmaString.g:299:4: empty_statement
{
pushFollow(FOLLOW_empty_statement_in_statement1796);
empty_statement155=empty_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_empty_statement.add(empty_statement155.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();
// 299:20: -> ^( STATEMENT empty_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:299: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/ast/impl/pragmaParser/PragmaString.g:300:4: send_statement
{
pushFollow(FOLLOW_send_statement_in_statement1809);
send_statement156=send_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_send_statement.add(send_statement156.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();
// 300:19: -> ^( STATEMENT send_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:300: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/ast/impl/pragmaParser/PragmaString.g:301:4: recv_statement
{
pushFollow(FOLLOW_recv_statement_in_statement1822);
recv_statement157=recv_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_recv_statement.add(recv_statement157.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();
// 301:19: -> ^( STATEMENT recv_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:301: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/ast/impl/pragmaParser/PragmaString.g:302:4: call_statement
{
pushFollow(FOLLOW_call_statement_in_statement1835);
call_statement158=call_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_call_statement.add(call_statement158.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();
// 302:19: -> ^( STATEMENT call_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:302: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/ast/impl/pragmaParser/PragmaString.g:303:4: expr_statement
{
pushFollow(FOLLOW_expr_statement_in_statement1848);
expr_statement159=expr_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr_statement.add(expr_statement159.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();
// 303:19: -> ^( STATEMENT expr_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:303: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/ast/impl/pragmaParser/PragmaString.g:304:4: allocate_statement
{
pushFollow(FOLLOW_allocate_statement_in_statement1861);
allocate_statement160=allocate_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_allocate_statement.add(allocate_statement160.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();
// 304:22: -> ^( STATEMENT allocate_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:304: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/ast/impl/pragmaParser/PragmaString.g:319:1: assume_statement : ASSUME expr SEMI -> ^( ASSUME_STMT ASSUME expr SEMI ) ;
public final PragmaStringParser.assume_statement_return assume_statement() throws RecognitionException {
PragmaStringParser.assume_statement_return retval = new PragmaStringParser.assume_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSUME161=null;
Token SEMI163=null;
ParserRuleReturnScope expr162 =null;
Object ASSUME161_tree=null;
Object SEMI163_tree=null;
RewriteRuleTokenStream stream_ASSUME=new RewriteRuleTokenStream(adaptor,"token ASSUME");
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/ast/impl/pragmaParser/PragmaString.g:320:2: ( ASSUME expr SEMI -> ^( ASSUME_STMT ASSUME expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:320:4: ASSUME expr SEMI
{
ASSUME161=(Token)match(input,ASSUME,FOLLOW_ASSUME_in_assume_statement1882); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSUME.add(ASSUME161);
pushFollow(FOLLOW_expr_in_assume_statement1884);
expr162=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr162.getTree());
SEMI163=(Token)match(input,SEMI,FOLLOW_SEMI_in_assume_statement1886); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI163);
// AST REWRITE
// elements: ASSUME, expr, 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();
// 320:21: -> ^( ASSUME_STMT ASSUME expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:320:24: ^( 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/ast/impl/pragmaParser/PragmaString.g:323:1: assert_statement : ( ASSERT expr SEMI -> ^( ASSERT_STMT ASSERT expr SEMI ) | ASSERT expr COMMA STRING_LITERAL SEMI -> ^( ASSERT_STMT ASSERT expr STRING_LITERAL SEMI ) );
public final PragmaStringParser.assert_statement_return assert_statement() throws RecognitionException {
PragmaStringParser.assert_statement_return retval = new PragmaStringParser.assert_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSERT164=null;
Token SEMI166=null;
Token ASSERT167=null;
Token COMMA169=null;
Token STRING_LITERAL170=null;
Token SEMI171=null;
ParserRuleReturnScope expr165 =null;
ParserRuleReturnScope expr168 =null;
Object ASSERT164_tree=null;
Object SEMI166_tree=null;
Object ASSERT167_tree=null;
Object COMMA169_tree=null;
Object STRING_LITERAL170_tree=null;
Object SEMI171_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");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:324:2: ( ASSERT expr SEMI -> ^( ASSERT_STMT ASSERT expr SEMI ) | ASSERT expr COMMA STRING_LITERAL SEMI -> ^( ASSERT_STMT ASSERT expr STRING_LITERAL SEMI ) )
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==ASSERT) ) {
int LA46_1 = input.LA(2);
if ( (synpred78_PragmaString()) ) {
alt46=1;
}
else if ( (true) ) {
alt46=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 46, 0, input);
throw nvae;
}
switch (alt46) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:324:6: ASSERT expr SEMI
{
ASSERT164=(Token)match(input,ASSERT,FOLLOW_ASSERT_in_assert_statement1912); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSERT.add(ASSERT164);
pushFollow(FOLLOW_expr_in_assert_statement1914);
expr165=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr165.getTree());
SEMI166=(Token)match(input,SEMI,FOLLOW_SEMI_in_assert_statement1916); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI166);
// AST REWRITE
// elements: expr, ASSERT, 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();
// 324:23: -> ^( ASSERT_STMT ASSERT expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:324: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 2 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:325:4: ASSERT expr COMMA STRING_LITERAL SEMI
{
ASSERT167=(Token)match(input,ASSERT,FOLLOW_ASSERT_in_assert_statement1933); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSERT.add(ASSERT167);
pushFollow(FOLLOW_expr_in_assert_statement1935);
expr168=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr168.getTree());
COMMA169=(Token)match(input,COMMA,FOLLOW_COMMA_in_assert_statement1937); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA169);
STRING_LITERAL170=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_assert_statement1939); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL170);
SEMI171=(Token)match(input,SEMI,FOLLOW_SEMI_in_assert_statement1941); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI171);
// AST REWRITE
// elements: SEMI, expr, ASSERT, 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();
// 325:42: -> ^( ASSERT_STMT ASSERT expr STRING_LITERAL SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:325:45: ^( 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/ast/impl/pragmaParser/PragmaString.g:328:1: collective_assert_statement : COLLECTIVE ASSERT IDENTIFIER expr -> ^( COLLECTIVE_ASSERT_STMT IDENTIFIER expr SEMI ) ;
public final PragmaStringParser.collective_assert_statement_return collective_assert_statement() throws RecognitionException {
PragmaStringParser.collective_assert_statement_return retval = new PragmaStringParser.collective_assert_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COLLECTIVE172=null;
Token ASSERT173=null;
Token IDENTIFIER174=null;
ParserRuleReturnScope expr175 =null;
Object COLLECTIVE172_tree=null;
Object ASSERT173_tree=null;
Object IDENTIFIER174_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");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:329:2: ( COLLECTIVE ASSERT IDENTIFIER expr -> ^( COLLECTIVE_ASSERT_STMT IDENTIFIER expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:329:4: COLLECTIVE ASSERT IDENTIFIER expr
{
COLLECTIVE172=(Token)match(input,COLLECTIVE,FOLLOW_COLLECTIVE_in_collective_assert_statement1966); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLLECTIVE.add(COLLECTIVE172);
ASSERT173=(Token)match(input,ASSERT,FOLLOW_ASSERT_in_collective_assert_statement1968); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSERT.add(ASSERT173);
IDENTIFIER174=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_collective_assert_statement1970); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER174);
pushFollow(FOLLOW_expr_in_collective_assert_statement1972);
expr175=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr175.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();
// 329:38: -> ^( COLLECTIVE_ASSERT_STMT IDENTIFIER expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:329:41: ^( 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/ast/impl/pragmaParser/PragmaString.g:331:1: joint_assert_statement : JOINT ASSERT IDENTIFIER expr SEMI -> ^( JOINT_ASSERT_STMT IDENTIFIER expr SEMI ) ;
public final PragmaStringParser.joint_assert_statement_return joint_assert_statement() throws RecognitionException {
PragmaStringParser.joint_assert_statement_return retval = new PragmaStringParser.joint_assert_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token JOINT176=null;
Token ASSERT177=null;
Token IDENTIFIER178=null;
Token SEMI180=null;
ParserRuleReturnScope expr179 =null;
Object JOINT176_tree=null;
Object ASSERT177_tree=null;
Object IDENTIFIER178_tree=null;
Object SEMI180_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");
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:332:2: ( JOINT ASSERT IDENTIFIER expr SEMI -> ^( JOINT_ASSERT_STMT IDENTIFIER expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:332:4: JOINT ASSERT IDENTIFIER expr SEMI
{
JOINT176=(Token)match(input,JOINT,FOLLOW_JOINT_in_joint_assert_statement1993); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_JOINT.add(JOINT176);
ASSERT177=(Token)match(input,ASSERT,FOLLOW_ASSERT_in_joint_assert_statement1995); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSERT.add(ASSERT177);
IDENTIFIER178=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_joint_assert_statement1997); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER178);
pushFollow(FOLLOW_expr_in_joint_assert_statement1999);
expr179=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr179.getTree());
SEMI180=(Token)match(input,SEMI,FOLLOW_SEMI_in_joint_assert_statement2001); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI180);
// 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();
// 332:38: -> ^( JOINT_ASSERT_STMT IDENTIFIER expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:332:41: ^( 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/ast/impl/pragmaParser/PragmaString.g:334:1: invariant_statement : INVARIANT IDENTIFIER expr SEMI -> ^( INVARIANT_STMT IDENTIFIER expr SEMI ) ;
public final PragmaStringParser.invariant_statement_return invariant_statement() throws RecognitionException {
PragmaStringParser.invariant_statement_return retval = new PragmaStringParser.invariant_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token INVARIANT181=null;
Token IDENTIFIER182=null;
Token SEMI184=null;
ParserRuleReturnScope expr183 =null;
Object INVARIANT181_tree=null;
Object IDENTIFIER182_tree=null;
Object SEMI184_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER");
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/ast/impl/pragmaParser/PragmaString.g:335:2: ( INVARIANT IDENTIFIER expr SEMI -> ^( INVARIANT_STMT IDENTIFIER expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:335:4: INVARIANT IDENTIFIER expr SEMI
{
INVARIANT181=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_invariant_statement2022); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT181);
IDENTIFIER182=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_invariant_statement2024); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER182);
pushFollow(FOLLOW_expr_in_invariant_statement2026);
expr183=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr183.getTree());
SEMI184=(Token)match(input,SEMI,FOLLOW_SEMI_in_invariant_statement2028); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI184);
// 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();
// 335:35: -> ^( INVARIANT_STMT IDENTIFIER expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:335:38: ^( 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/ast/impl/pragmaParser/PragmaString.g:337:1: collective_invariant_statement : COLLECTIVE INVARIANT IDENTIFIER expr SEMI -> ^( COLLECTIVE_INVARIANT_STMT IDENTIFIER expr SEMI ) ;
public final PragmaStringParser.collective_invariant_statement_return collective_invariant_statement() throws RecognitionException {
PragmaStringParser.collective_invariant_statement_return retval = new PragmaStringParser.collective_invariant_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COLLECTIVE185=null;
Token INVARIANT186=null;
Token IDENTIFIER187=null;
Token SEMI189=null;
ParserRuleReturnScope expr188 =null;
Object COLLECTIVE185_tree=null;
Object INVARIANT186_tree=null;
Object IDENTIFIER187_tree=null;
Object SEMI189_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_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/ast/impl/pragmaParser/PragmaString.g:338:2: ( COLLECTIVE INVARIANT IDENTIFIER expr SEMI -> ^( COLLECTIVE_INVARIANT_STMT IDENTIFIER expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:338:4: COLLECTIVE INVARIANT IDENTIFIER expr SEMI
{
COLLECTIVE185=(Token)match(input,COLLECTIVE,FOLLOW_COLLECTIVE_in_collective_invariant_statement2049); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLLECTIVE.add(COLLECTIVE185);
INVARIANT186=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_collective_invariant_statement2051); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT186);
IDENTIFIER187=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_collective_invariant_statement2053); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER187);
pushFollow(FOLLOW_expr_in_collective_invariant_statement2055);
expr188=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr188.getTree());
SEMI189=(Token)match(input,SEMI,FOLLOW_SEMI_in_collective_invariant_statement2057); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI189);
// AST REWRITE
// elements: IDENTIFIER, expr, 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();
// 338:46: -> ^( COLLECTIVE_INVARIANT_STMT IDENTIFIER expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:338:49: ^( 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/ast/impl/pragmaParser/PragmaString.g:340:1: joint_invariant_statement : JOINT INVARIANT IDENTIFIER expr SEMI -> ^( JOINT_INVARIANT_STMT IDENTIFIER expr SEMI ) ;
public final PragmaStringParser.joint_invariant_statement_return joint_invariant_statement() throws RecognitionException {
PragmaStringParser.joint_invariant_statement_return retval = new PragmaStringParser.joint_invariant_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token JOINT190=null;
Token INVARIANT191=null;
Token IDENTIFIER192=null;
Token SEMI194=null;
ParserRuleReturnScope expr193 =null;
Object JOINT190_tree=null;
Object INVARIANT191_tree=null;
Object IDENTIFIER192_tree=null;
Object SEMI194_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_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/ast/impl/pragmaParser/PragmaString.g:341:2: ( JOINT INVARIANT IDENTIFIER expr SEMI -> ^( JOINT_INVARIANT_STMT IDENTIFIER expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:341:4: JOINT INVARIANT IDENTIFIER expr SEMI
{
JOINT190=(Token)match(input,JOINT,FOLLOW_JOINT_in_joint_invariant_statement2078); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_JOINT.add(JOINT190);
INVARIANT191=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_joint_invariant_statement2080); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT191);
IDENTIFIER192=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_joint_invariant_statement2082); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER192);
pushFollow(FOLLOW_expr_in_joint_invariant_statement2084);
expr193=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr193.getTree());
SEMI194=(Token)match(input,SEMI,FOLLOW_SEMI_in_joint_invariant_statement2086); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI194);
// AST REWRITE
// elements: SEMI, 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();
// 341:41: -> ^( JOINT_INVARIANT_STMT IDENTIFIER expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:341:44: ^( 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/ast/impl/pragmaParser/PragmaString.g:350:1: compound_statement : LCURLY ( statement_list )? RCURLY -> ^( COMPOUND_STMT LCURLY ( statement_list )? RCURLY ) ;
public final PragmaStringParser.compound_statement_return compound_statement() throws RecognitionException {
PragmaStringParser.compound_statement_return retval = new PragmaStringParser.compound_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY195=null;
Token RCURLY197=null;
ParserRuleReturnScope statement_list196 =null;
Object LCURLY195_tree=null;
Object RCURLY197_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/ast/impl/pragmaParser/PragmaString.g:351:2: ( LCURLY ( statement_list )? RCURLY -> ^( COMPOUND_STMT LCURLY ( statement_list )? RCURLY ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:351:4: LCURLY ( statement_list )? RCURLY
{
LCURLY195=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_compound_statement2111); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY195);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:351:11: ( statement_list )?
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==ADDR_OF||LA47_0==ASSERT||LA47_0==ASSUME||LA47_0==CHAR_LITERAL||LA47_0==COLLECTIVE||LA47_0==DERIVATIVE||(LA47_0 >= DOUBLE_PLUS && LA47_0 <= DOUBLE_SUB)||LA47_0==EXISTS||LA47_0==FALSE||(LA47_0 >= FOR && LA47_0 <= FORALL)||(LA47_0 >= IDENTIFIER && LA47_0 <= IF)||(LA47_0 >= INT_LITERAL && LA47_0 <= INVARIANT)||LA47_0==JOINT||LA47_0==LCURLY||LA47_0==LPAREN||LA47_0==MULTI||LA47_0==NOT||LA47_0==PLUS||(LA47_0 >= REAL_LITERAL && LA47_0 <= RECV)||LA47_0==RETURN||LA47_0==SELECT||(LA47_0 >= SEMI && LA47_0 <= SEND)||LA47_0==SIZEOF||LA47_0==SPEC||LA47_0==STRING_LITERAL||LA47_0==SUB||LA47_0==SYS_VAR||LA47_0==TRUE||LA47_0==WHILE) ) {
alt47=1;
}
switch (alt47) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:351:11: statement_list
{
pushFollow(FOLLOW_statement_list_in_compound_statement2113);
statement_list196=statement_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement_list.add(statement_list196.getTree());
}
break;
}
RCURLY197=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_compound_statement2116); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY197);
// AST REWRITE
// elements: LCURLY, statement_list, 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();
// 352:3: -> ^( COMPOUND_STMT LCURLY ( statement_list )? RCURLY )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:352: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/ast/impl/pragmaParser/PragmaString.g:352: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/ast/impl/pragmaParser/PragmaString.g:355:1: condition_statement : IF LPAREN expr RPAREN statement ( ELSE statement )? -> ^( CONDITION_STMT IF LPAREN expr RPAREN statement ( ELSE statement )? ) ;
public final PragmaStringParser.condition_statement_return condition_statement() throws RecognitionException {
PragmaStringParser.condition_statement_return retval = new PragmaStringParser.condition_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IF198=null;
Token LPAREN199=null;
Token RPAREN201=null;
Token ELSE203=null;
ParserRuleReturnScope expr200 =null;
ParserRuleReturnScope statement202 =null;
ParserRuleReturnScope statement204 =null;
Object IF198_tree=null;
Object LPAREN199_tree=null;
Object RPAREN201_tree=null;
Object ELSE203_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/ast/impl/pragmaParser/PragmaString.g:356: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/ast/impl/pragmaParser/PragmaString.g:356:4: IF LPAREN expr RPAREN statement ( ELSE statement )?
{
IF198=(Token)match(input,IF,FOLLOW_IF_in_condition_statement2143); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IF.add(IF198);
LPAREN199=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_condition_statement2145); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN199);
pushFollow(FOLLOW_expr_in_condition_statement2147);
expr200=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr200.getTree());
RPAREN201=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_condition_statement2149); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN201);
pushFollow(FOLLOW_statement_in_condition_statement2151);
statement202=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement202.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:356:36: ( ELSE statement )?
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==ELSE) ) {
int LA48_1 = input.LA(2);
if ( (synpred80_PragmaString()) ) {
alt48=1;
}
}
switch (alt48) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:356:37: ELSE statement
{
ELSE203=(Token)match(input,ELSE,FOLLOW_ELSE_in_condition_statement2154); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ELSE.add(ELSE203);
pushFollow(FOLLOW_statement_in_condition_statement2156);
statement204=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement204.getTree());
}
break;
}
// AST REWRITE
// elements: IF, statement, RPAREN, statement, expr, LPAREN, 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();
// 357:3: -> ^( CONDITION_STMT IF LPAREN expr RPAREN statement ( ELSE statement )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:357: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/ast/impl/pragmaParser/PragmaString.g:357: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/ast/impl/pragmaParser/PragmaString.g:360:1: select_statement : SELECT LCURLY ( choice )+ RCURLY -> ^( SELECT_STMT SELECT ( choice )+ ) ;
public final PragmaStringParser.select_statement_return select_statement() throws RecognitionException {
PragmaStringParser.select_statement_return retval = new PragmaStringParser.select_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SELECT205=null;
Token LCURLY206=null;
Token RCURLY208=null;
ParserRuleReturnScope choice207 =null;
Object SELECT205_tree=null;
Object LCURLY206_tree=null;
Object RCURLY208_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/ast/impl/pragmaParser/PragmaString.g:361:2: ( SELECT LCURLY ( choice )+ RCURLY -> ^( SELECT_STMT SELECT ( choice )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:361:4: SELECT LCURLY ( choice )+ RCURLY
{
SELECT205=(Token)match(input,SELECT,FOLLOW_SELECT_in_select_statement2195); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SELECT.add(SELECT205);
LCURLY206=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_select_statement2197); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY206);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:361:18: ( choice )+
int cnt49=0;
loop49:
while (true) {
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==WHEN) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:361:18: choice
{
pushFollow(FOLLOW_choice_in_select_statement2199);
choice207=choice();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_choice.add(choice207.getTree());
}
break;
default :
if ( cnt49 >= 1 ) break loop49;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee = new EarlyExitException(49, input);
throw eee;
}
cnt49++;
}
RCURLY208=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_select_statement2202); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY208);
// AST REWRITE
// elements: SELECT, choice
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 361:33: -> ^( SELECT_STMT SELECT ( choice )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:361: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/ast/impl/pragmaParser/PragmaString.g:364:1: choice : WHEN LPAREN expr RPAREN statement -> ^( CHOICE WHEN LPAREN expr RPAREN statement ) ;
public final PragmaStringParser.choice_return choice() throws RecognitionException {
PragmaStringParser.choice_return retval = new PragmaStringParser.choice_return();
retval.start = input.LT(1);
Object root_0 = null;
Token WHEN209=null;
Token LPAREN210=null;
Token RPAREN212=null;
ParserRuleReturnScope expr211 =null;
ParserRuleReturnScope statement213 =null;
Object WHEN209_tree=null;
Object LPAREN210_tree=null;
Object RPAREN212_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/ast/impl/pragmaParser/PragmaString.g:365: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/ast/impl/pragmaParser/PragmaString.g:365:4: WHEN LPAREN expr RPAREN statement
{
WHEN209=(Token)match(input,WHEN,FOLLOW_WHEN_in_choice2224); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WHEN.add(WHEN209);
LPAREN210=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_choice2226); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN210);
pushFollow(FOLLOW_expr_in_choice2228);
expr211=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr211.getTree());
RPAREN212=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_choice2230); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN212);
pushFollow(FOLLOW_statement_in_choice2232);
statement213=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement213.getTree());
// AST REWRITE
// elements: RPAREN, expr, WHEN, statement, 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();
// 365:38: -> ^( CHOICE WHEN LPAREN expr RPAREN statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:365: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/ast/impl/pragmaParser/PragmaString.g:368:1: iterative_statement : ( correspondence_annotation )? loop_statement -> ^( ITERATIVE_STMT ( correspondence_annotation )? loop_statement ) ;
public final PragmaStringParser.iterative_statement_return iterative_statement() throws RecognitionException {
PragmaStringParser.iterative_statement_return retval = new PragmaStringParser.iterative_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope correspondence_annotation214 =null;
ParserRuleReturnScope loop_statement215 =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/ast/impl/pragmaParser/PragmaString.g:369:2: ( ( correspondence_annotation )? loop_statement -> ^( ITERATIVE_STMT ( correspondence_annotation )? loop_statement ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:369:4: ( correspondence_annotation )? loop_statement
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:369:4: ( correspondence_annotation )?
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==IDENTIFIER) ) {
alt50=1;
}
switch (alt50) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:369:5: correspondence_annotation
{
pushFollow(FOLLOW_correspondence_annotation_in_iterative_statement2261);
correspondence_annotation214=correspondence_annotation();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_correspondence_annotation.add(correspondence_annotation214.getTree());
}
break;
}
pushFollow(FOLLOW_loop_statement_in_iterative_statement2265);
loop_statement215=loop_statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_loop_statement.add(loop_statement215.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();
// 370:3: -> ^( ITERATIVE_STMT ( correspondence_annotation )? loop_statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:370: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/ast/impl/pragmaParser/PragmaString.g:370: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/ast/impl/pragmaParser/PragmaString.g:373: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 PragmaStringParser.loop_statement_return loop_statement() throws RecognitionException {
PragmaStringParser.loop_statement_return retval = new PragmaStringParser.loop_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token WHILE216=null;
Token LPAREN217=null;
Token RPAREN219=null;
Token FOR221=null;
Token LPAREN222=null;
Token SEMI223=null;
Token SEMI224=null;
Token RPAREN225=null;
ParserRuleReturnScope init =null;
ParserRuleReturnScope pred =null;
ParserRuleReturnScope update =null;
ParserRuleReturnScope expr218 =null;
ParserRuleReturnScope statement220 =null;
ParserRuleReturnScope statement226 =null;
Object WHILE216_tree=null;
Object LPAREN217_tree=null;
Object RPAREN219_tree=null;
Object FOR221_tree=null;
Object LPAREN222_tree=null;
Object SEMI223_tree=null;
Object SEMI224_tree=null;
Object RPAREN225_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/ast/impl/pragmaParser/PragmaString.g:374: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 alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==WHILE) ) {
alt54=1;
}
else if ( (LA54_0==FOR) ) {
alt54=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 54, 0, input);
throw nvae;
}
switch (alt54) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:374:4: WHILE LPAREN expr RPAREN statement
{
WHILE216=(Token)match(input,WHILE,FOLLOW_WHILE_in_loop_statement2290); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_WHILE.add(WHILE216);
LPAREN217=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_loop_statement2292); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN217);
pushFollow(FOLLOW_expr_in_loop_statement2294);
expr218=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr218.getTree());
RPAREN219=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_loop_statement2296); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN219);
pushFollow(FOLLOW_statement_in_loop_statement2298);
statement220=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement220.getTree());
// AST REWRITE
// elements: RPAREN, statement, WHILE, expr, 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();
// 375:3: -> ^( WHILE_STMT WHILE LPAREN expr RPAREN statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:375: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/ast/impl/pragmaParser/PragmaString.g:376:4: FOR LPAREN (init= expr )? SEMI (pred= expr )? SEMI (update= expr )? RPAREN statement
{
FOR221=(Token)match(input,FOR,FOLLOW_FOR_in_loop_statement2321); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FOR.add(FOR221);
LPAREN222=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_loop_statement2323); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN222);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:376:19: (init= expr )?
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==ADDR_OF||LA51_0==CHAR_LITERAL||LA51_0==DERIVATIVE||(LA51_0 >= DOUBLE_PLUS && LA51_0 <= DOUBLE_SUB)||LA51_0==EXISTS||LA51_0==FALSE||LA51_0==FORALL||LA51_0==IDENTIFIER||LA51_0==INT_LITERAL||LA51_0==LPAREN||LA51_0==MULTI||LA51_0==NOT||LA51_0==PLUS||LA51_0==REAL_LITERAL||LA51_0==SIZEOF||LA51_0==SPEC||LA51_0==STRING_LITERAL||LA51_0==SUB||LA51_0==SYS_VAR||LA51_0==TRUE) ) {
alt51=1;
}
switch (alt51) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:376:19: init= expr
{
pushFollow(FOLLOW_expr_in_loop_statement2327);
init=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(init.getTree());
}
break;
}
SEMI223=(Token)match(input,SEMI,FOLLOW_SEMI_in_loop_statement2330); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI223);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:376:35: (pred= expr )?
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==ADDR_OF||LA52_0==CHAR_LITERAL||LA52_0==DERIVATIVE||(LA52_0 >= DOUBLE_PLUS && LA52_0 <= DOUBLE_SUB)||LA52_0==EXISTS||LA52_0==FALSE||LA52_0==FORALL||LA52_0==IDENTIFIER||LA52_0==INT_LITERAL||LA52_0==LPAREN||LA52_0==MULTI||LA52_0==NOT||LA52_0==PLUS||LA52_0==REAL_LITERAL||LA52_0==SIZEOF||LA52_0==SPEC||LA52_0==STRING_LITERAL||LA52_0==SUB||LA52_0==SYS_VAR||LA52_0==TRUE) ) {
alt52=1;
}
switch (alt52) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:376:35: pred= expr
{
pushFollow(FOLLOW_expr_in_loop_statement2334);
pred=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(pred.getTree());
}
break;
}
SEMI224=(Token)match(input,SEMI,FOLLOW_SEMI_in_loop_statement2337); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI224);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:376:53: (update= expr )?
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==ADDR_OF||LA53_0==CHAR_LITERAL||LA53_0==DERIVATIVE||(LA53_0 >= DOUBLE_PLUS && LA53_0 <= DOUBLE_SUB)||LA53_0==EXISTS||LA53_0==FALSE||LA53_0==FORALL||LA53_0==IDENTIFIER||LA53_0==INT_LITERAL||LA53_0==LPAREN||LA53_0==MULTI||LA53_0==NOT||LA53_0==PLUS||LA53_0==REAL_LITERAL||LA53_0==SIZEOF||LA53_0==SPEC||LA53_0==STRING_LITERAL||LA53_0==SUB||LA53_0==SYS_VAR||LA53_0==TRUE) ) {
alt53=1;
}
switch (alt53) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:376:53: update= expr
{
pushFollow(FOLLOW_expr_in_loop_statement2341);
update=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(update.getTree());
}
break;
}
RPAREN225=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_loop_statement2344); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN225);
pushFollow(FOLLOW_statement_in_loop_statement2346);
statement226=statement();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_statement.add(statement226.getTree());
// AST REWRITE
// elements: update, pred, init, FOR, SEMI, statement, RPAREN, SEMI
// 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();
// 377:3: -> ^( FOR_STMT FOR ( $init)? SEMI ( $pred)? SEMI ( $update)? RPAREN statement )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:377: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/ast/impl/pragmaParser/PragmaString.g:377: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/ast/impl/pragmaParser/PragmaString.g:377: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/ast/impl/pragmaParser/PragmaString.g:377: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/ast/impl/pragmaParser/PragmaString.g:380: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 PragmaStringParser.correspondence_annotation_return correspondence_annotation() throws RecognitionException {
PragmaStringParser.correspondence_annotation_return retval = new PragmaStringParser.correspondence_annotation_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER227=null;
Token COLON228=null;
Token PRAGMA229=null;
Token TASS230=null;
Token JOINT231=null;
Token INVARIANT232=null;
Token AT233=null;
Token IDENTIFIER234=null;
Token LCURLY235=null;
Token RCURLY238=null;
Token IDENTIFIER239=null;
Token COLON240=null;
Token PRAGMA241=null;
Token TASS242=null;
Token INVARIANT243=null;
Token AT244=null;
Token IDENTIFIER245=null;
Token LCURLY246=null;
Token RCURLY249=null;
ParserRuleReturnScope skew_factor236 =null;
ParserRuleReturnScope expr237 =null;
ParserRuleReturnScope skew_factor247 =null;
ParserRuleReturnScope expr248 =null;
Object IDENTIFIER227_tree=null;
Object COLON228_tree=null;
Object PRAGMA229_tree=null;
Object TASS230_tree=null;
Object JOINT231_tree=null;
Object INVARIANT232_tree=null;
Object AT233_tree=null;
Object IDENTIFIER234_tree=null;
Object LCURLY235_tree=null;
Object RCURLY238_tree=null;
Object IDENTIFIER239_tree=null;
Object COLON240_tree=null;
Object PRAGMA241_tree=null;
Object TASS242_tree=null;
Object INVARIANT243_tree=null;
Object AT244_tree=null;
Object IDENTIFIER245_tree=null;
Object LCURLY246_tree=null;
Object RCURLY249_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/ast/impl/pragmaParser/PragmaString.g:381: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 alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==IDENTIFIER) ) {
int LA59_1 = input.LA(2);
if ( (LA59_1==COLON) ) {
int LA59_2 = input.LA(3);
if ( (synpred89_PragmaString()) ) {
alt59=1;
}
else if ( (true) ) {
alt59=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 59, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 59, 0, input);
throw nvae;
}
switch (alt59) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:381:4: IDENTIFIER COLON ( PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
{
IDENTIFIER227=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_correspondence_annotation2388); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER227);
COLON228=(Token)match(input,COLON,FOLLOW_COLON_in_correspondence_annotation2390); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON228);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:381:21: ( PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==PRAGMA) ) {
alt56=1;
}
switch (alt56) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:381:22: PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY
{
PRAGMA229=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_correspondence_annotation2393); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA229);
TASS230=(Token)match(input,TASS,FOLLOW_TASS_in_correspondence_annotation2395); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS230);
JOINT231=(Token)match(input,JOINT,FOLLOW_JOINT_in_correspondence_annotation2397); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_JOINT.add(JOINT231);
INVARIANT232=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_correspondence_annotation2399); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT232);
AT233=(Token)match(input,AT,FOLLOW_AT_in_correspondence_annotation2401); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AT.add(AT233);
IDENTIFIER234=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_correspondence_annotation2403); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER234);
LCURLY235=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_correspondence_annotation2405); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY235);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:381:71: ( skew_factor )?
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==INT_LITERAL) ) {
int LA55_1 = input.LA(2);
if ( (LA55_1==COLON) ) {
alt55=1;
}
}
switch (alt55) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:381:71: skew_factor
{
pushFollow(FOLLOW_skew_factor_in_correspondence_annotation2407);
skew_factor236=skew_factor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_skew_factor.add(skew_factor236.getTree());
}
break;
}
pushFollow(FOLLOW_expr_in_correspondence_annotation2410);
expr237=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr237.getTree());
RCURLY238=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_correspondence_annotation2412); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY238);
}
break;
}
// AST REWRITE
// elements: expr, IDENTIFIER, skew_factor, IDENTIFIER, COLON
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.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:3: -> ^( CORRESPONDENCE IDENTIFIER ( IDENTIFIER ( skew_factor )? expr )? COLON )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:382: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/ast/impl/pragmaParser/PragmaString.g:382:34: ( IDENTIFIER ( skew_factor )? expr )?
if ( stream_expr.hasNext()||stream_skew_factor.hasNext()||stream_IDENTIFIER.hasNext() ) {
adaptor.addChild(root_1, stream_IDENTIFIER.nextNode());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:382: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_expr.reset();
stream_skew_factor.reset();
stream_IDENTIFIER.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/ast/impl/pragmaParser/PragmaString.g:383:4: IDENTIFIER COLON ( PRAGMA TASS INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
{
IDENTIFIER239=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_correspondence_annotation2441); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER239);
COLON240=(Token)match(input,COLON,FOLLOW_COLON_in_correspondence_annotation2443); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON240);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:383:21: ( PRAGMA TASS INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==PRAGMA) ) {
alt58=1;
}
switch (alt58) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:383:22: PRAGMA TASS INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY
{
PRAGMA241=(Token)match(input,PRAGMA,FOLLOW_PRAGMA_in_correspondence_annotation2446); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PRAGMA.add(PRAGMA241);
TASS242=(Token)match(input,TASS,FOLLOW_TASS_in_correspondence_annotation2448); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TASS.add(TASS242);
INVARIANT243=(Token)match(input,INVARIANT,FOLLOW_INVARIANT_in_correspondence_annotation2450); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INVARIANT.add(INVARIANT243);
AT244=(Token)match(input,AT,FOLLOW_AT_in_correspondence_annotation2452); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AT.add(AT244);
IDENTIFIER245=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_correspondence_annotation2454); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER245);
LCURLY246=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_correspondence_annotation2456); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY246);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:383:65: ( skew_factor )?
int alt57=2;
int LA57_0 = input.LA(1);
if ( (LA57_0==INT_LITERAL) ) {
int LA57_1 = input.LA(2);
if ( (LA57_1==COLON) ) {
alt57=1;
}
}
switch (alt57) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:383:65: skew_factor
{
pushFollow(FOLLOW_skew_factor_in_correspondence_annotation2458);
skew_factor247=skew_factor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_skew_factor.add(skew_factor247.getTree());
}
break;
}
pushFollow(FOLLOW_expr_in_correspondence_annotation2461);
expr248=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr248.getTree());
RCURLY249=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_correspondence_annotation2463); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY249);
}
break;
}
// AST REWRITE
// elements: IDENTIFIER, IDENTIFIER, expr, COLON, 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();
// 384:3: -> ^( CORRESPONDENCE IDENTIFIER ( IDENTIFIER ( skew_factor )? expr )? COLON )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:384: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/ast/impl/pragmaParser/PragmaString.g:384: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/ast/impl/pragmaParser/PragmaString.g:384: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/ast/impl/pragmaParser/PragmaString.g:387:1: skew_factor : INT_LITERAL COLON INT_LITERAL -> ^( SKEW_FACTOR INT_LITERAL INT_LITERAL ) ;
public final PragmaStringParser.skew_factor_return skew_factor() throws RecognitionException {
PragmaStringParser.skew_factor_return retval = new PragmaStringParser.skew_factor_return();
retval.start = input.LT(1);
Object root_0 = null;
Token INT_LITERAL250=null;
Token COLON251=null;
Token INT_LITERAL252=null;
Object INT_LITERAL250_tree=null;
Object COLON251_tree=null;
Object INT_LITERAL252_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/ast/impl/pragmaParser/PragmaString.g:388: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/ast/impl/pragmaParser/PragmaString.g:388:4: INT_LITERAL COLON INT_LITERAL
{
INT_LITERAL250=(Token)match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_skew_factor2499); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INT_LITERAL.add(INT_LITERAL250);
COLON251=(Token)match(input,COLON,FOLLOW_COLON_in_skew_factor2501); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON251);
INT_LITERAL252=(Token)match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_skew_factor2503); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INT_LITERAL.add(INT_LITERAL252);
// 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();
// 388:34: -> ^( SKEW_FACTOR INT_LITERAL INT_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:388: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/ast/impl/pragmaParser/PragmaString.g:391:1: return_statement : RETURN ( expr )? SEMI -> ^( RETURN_STMT RETURN ( expr )? SEMI ) ;
public final PragmaStringParser.return_statement_return return_statement() throws RecognitionException {
PragmaStringParser.return_statement_return retval = new PragmaStringParser.return_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token RETURN253=null;
Token SEMI255=null;
ParserRuleReturnScope expr254 =null;
Object RETURN253_tree=null;
Object SEMI255_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/ast/impl/pragmaParser/PragmaString.g:392:2: ( RETURN ( expr )? SEMI -> ^( RETURN_STMT RETURN ( expr )? SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:392:4: RETURN ( expr )? SEMI
{
RETURN253=(Token)match(input,RETURN,FOLLOW_RETURN_in_return_statement2525); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RETURN.add(RETURN253);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:392:11: ( expr )?
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==ADDR_OF||LA60_0==CHAR_LITERAL||LA60_0==DERIVATIVE||(LA60_0 >= DOUBLE_PLUS && LA60_0 <= DOUBLE_SUB)||LA60_0==EXISTS||LA60_0==FALSE||LA60_0==FORALL||LA60_0==IDENTIFIER||LA60_0==INT_LITERAL||LA60_0==LPAREN||LA60_0==MULTI||LA60_0==NOT||LA60_0==PLUS||LA60_0==REAL_LITERAL||LA60_0==SIZEOF||LA60_0==SPEC||LA60_0==STRING_LITERAL||LA60_0==SUB||LA60_0==SYS_VAR||LA60_0==TRUE) ) {
alt60=1;
}
switch (alt60) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:392:11: expr
{
pushFollow(FOLLOW_expr_in_return_statement2527);
expr254=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr254.getTree());
}
break;
}
SEMI255=(Token)match(input,SEMI,FOLLOW_SEMI_in_return_statement2530); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI255);
// AST REWRITE
// elements: SEMI, RETURN, 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();
// 392:22: -> ^( RETURN_STMT RETURN ( expr )? SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:392: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/ast/impl/pragmaParser/PragmaString.g:392: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/ast/impl/pragmaParser/PragmaString.g:395:1: empty_statement : SEMI -> ^( EMPTY_STMT SEMI ) ;
public final PragmaStringParser.empty_statement_return empty_statement() throws RecognitionException {
PragmaStringParser.empty_statement_return retval = new PragmaStringParser.empty_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI256=null;
Object SEMI256_tree=null;
RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:396:2: ( SEMI -> ^( EMPTY_STMT SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:396:4: SEMI
{
SEMI256=(Token)match(input,SEMI,FOLLOW_SEMI_in_empty_statement2555); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI256);
// 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();
// 396:9: -> ^( EMPTY_STMT SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:396: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/ast/impl/pragmaParser/PragmaString.g:399:1: send_statement : SEND LPAREN data= expr COMMA dest= expr COMMA tag= expr RPAREN SEMI -> ^( SEND_STMT SEND $data $dest $tag SEMI ) ;
public final PragmaStringParser.send_statement_return send_statement() throws RecognitionException {
PragmaStringParser.send_statement_return retval = new PragmaStringParser.send_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEND257=null;
Token LPAREN258=null;
Token COMMA259=null;
Token COMMA260=null;
Token RPAREN261=null;
Token SEMI262=null;
ParserRuleReturnScope data =null;
ParserRuleReturnScope dest =null;
ParserRuleReturnScope tag =null;
Object SEND257_tree=null;
Object LPAREN258_tree=null;
Object COMMA259_tree=null;
Object COMMA260_tree=null;
Object RPAREN261_tree=null;
Object SEMI262_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/ast/impl/pragmaParser/PragmaString.g:400: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/ast/impl/pragmaParser/PragmaString.g:400:4: SEND LPAREN data= expr COMMA dest= expr COMMA tag= expr RPAREN SEMI
{
SEND257=(Token)match(input,SEND,FOLLOW_SEND_in_send_statement2575); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEND.add(SEND257);
LPAREN258=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_send_statement2577); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN258);
pushFollow(FOLLOW_expr_in_send_statement2581);
data=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(data.getTree());
COMMA259=(Token)match(input,COMMA,FOLLOW_COMMA_in_send_statement2583); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA259);
pushFollow(FOLLOW_expr_in_send_statement2587);
dest=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(dest.getTree());
COMMA260=(Token)match(input,COMMA,FOLLOW_COMMA_in_send_statement2589); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA260);
pushFollow(FOLLOW_expr_in_send_statement2593);
tag=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(tag.getTree());
RPAREN261=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_send_statement2595); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN261);
SEMI262=(Token)match(input,SEMI,FOLLOW_SEMI_in_send_statement2597); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI262);
// AST REWRITE
// elements: tag, dest, SEND, data, SEMI
// 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();
// 401:3: -> ^( SEND_STMT SEND $data $dest $tag SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:401: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/ast/impl/pragmaParser/PragmaString.g:404: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 PragmaStringParser.recv_statement_return recv_statement() throws RecognitionException {
PragmaStringParser.recv_statement_return retval = new PragmaStringParser.recv_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token RECV263=null;
Token LPAREN264=null;
Token COMMA265=null;
Token COMMA266=null;
Token RPAREN267=null;
Token SEMI268=null;
Token RECV269=null;
Token LPAREN270=null;
Token COMMA271=null;
Token COMMA272=null;
Token COMMA273=null;
Token RPAREN274=null;
Token SEMI275=null;
ParserRuleReturnScope data =null;
ParserRuleReturnScope src =null;
ParserRuleReturnScope tag =null;
ParserRuleReturnScope size =null;
Object RECV263_tree=null;
Object LPAREN264_tree=null;
Object COMMA265_tree=null;
Object COMMA266_tree=null;
Object RPAREN267_tree=null;
Object SEMI268_tree=null;
Object RECV269_tree=null;
Object LPAREN270_tree=null;
Object COMMA271_tree=null;
Object COMMA272_tree=null;
Object COMMA273_tree=null;
Object RPAREN274_tree=null;
Object SEMI275_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/ast/impl/pragmaParser/PragmaString.g:405: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 alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==RECV) ) {
int LA61_1 = input.LA(2);
if ( (synpred93_PragmaString()) ) {
alt61=1;
}
else if ( (true) ) {
alt61=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 61, 0, input);
throw nvae;
}
switch (alt61) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:405:4: RECV LPAREN data= expr COMMA src= comm_expr COMMA tag= comm_expr RPAREN SEMI
{
RECV263=(Token)match(input,RECV,FOLLOW_RECV_in_recv_statement2630); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RECV.add(RECV263);
LPAREN264=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_recv_statement2632); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN264);
pushFollow(FOLLOW_expr_in_recv_statement2636);
data=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(data.getTree());
COMMA265=(Token)match(input,COMMA,FOLLOW_COMMA_in_recv_statement2638); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA265);
pushFollow(FOLLOW_comm_expr_in_recv_statement2642);
src=comm_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_comm_expr.add(src.getTree());
COMMA266=(Token)match(input,COMMA,FOLLOW_COMMA_in_recv_statement2644); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA266);
pushFollow(FOLLOW_comm_expr_in_recv_statement2648);
tag=comm_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_comm_expr.add(tag.getTree());
RPAREN267=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_recv_statement2650); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN267);
SEMI268=(Token)match(input,SEMI,FOLLOW_SEMI_in_recv_statement2652); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI268);
// AST REWRITE
// elements: RECV, tag, src, data, SEMI
// 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();
// 406:3: -> ^( RECV_STMT RECV $data $src $tag SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:406: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/ast/impl/pragmaParser/PragmaString.g:407:4: RECV LPAREN data= expr COMMA src= comm_expr COMMA tag= comm_expr COMMA size= unary_expr RPAREN SEMI
{
RECV269=(Token)match(input,RECV,FOLLOW_RECV_in_recv_statement2678); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RECV.add(RECV269);
LPAREN270=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_recv_statement2680); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN270);
pushFollow(FOLLOW_expr_in_recv_statement2684);
data=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(data.getTree());
COMMA271=(Token)match(input,COMMA,FOLLOW_COMMA_in_recv_statement2686); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA271);
pushFollow(FOLLOW_comm_expr_in_recv_statement2690);
src=comm_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_comm_expr.add(src.getTree());
COMMA272=(Token)match(input,COMMA,FOLLOW_COMMA_in_recv_statement2692); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA272);
pushFollow(FOLLOW_comm_expr_in_recv_statement2696);
tag=comm_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_comm_expr.add(tag.getTree());
COMMA273=(Token)match(input,COMMA,FOLLOW_COMMA_in_recv_statement2698); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA273);
pushFollow(FOLLOW_unary_expr_in_recv_statement2704);
size=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(size.getTree());
RPAREN274=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_recv_statement2706); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN274);
SEMI275=(Token)match(input,SEMI,FOLLOW_SEMI_in_recv_statement2708); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI275);
// AST REWRITE
// elements: RECV, tag, SEMI, data, src, size
// 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();
// 408:3: -> ^( RECV_STMT RECV $data $src $tag $size SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:408: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/ast/impl/pragmaParser/PragmaString.g:411:1: comm_expr : ( expr -> ^( COMM_EXPR expr ) | wildcard_expr -> ^( COMM_EXPR wildcard_expr ) );
public final PragmaStringParser.comm_expr_return comm_expr() throws RecognitionException {
PragmaStringParser.comm_expr_return retval = new PragmaStringParser.comm_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope expr276 =null;
ParserRuleReturnScope wildcard_expr277 =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/ast/impl/pragmaParser/PragmaString.g:412:2: ( expr -> ^( COMM_EXPR expr ) | wildcard_expr -> ^( COMM_EXPR wildcard_expr ) )
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==ADDR_OF||LA62_0==CHAR_LITERAL||LA62_0==DERIVATIVE||(LA62_0 >= DOUBLE_PLUS && LA62_0 <= DOUBLE_SUB)||LA62_0==EXISTS||LA62_0==FALSE||LA62_0==FORALL||LA62_0==IDENTIFIER||LA62_0==INT_LITERAL||LA62_0==LPAREN||LA62_0==MULTI||LA62_0==NOT||LA62_0==PLUS||LA62_0==REAL_LITERAL||LA62_0==SIZEOF||LA62_0==SPEC||LA62_0==STRING_LITERAL||LA62_0==SUB||LA62_0==SYS_VAR||LA62_0==TRUE) ) {
alt62=1;
}
else if ( (LA62_0==ANY) ) {
alt62=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 62, 0, input);
throw nvae;
}
switch (alt62) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:412:4: expr
{
pushFollow(FOLLOW_expr_in_comm_expr2744);
expr276=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr276.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();
// 412:9: -> ^( COMM_EXPR expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:412: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/ast/impl/pragmaParser/PragmaString.g:413:4: wildcard_expr
{
pushFollow(FOLLOW_wildcard_expr_in_comm_expr2757);
wildcard_expr277=wildcard_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_wildcard_expr.add(wildcard_expr277.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();
// 413:18: -> ^( COMM_EXPR wildcard_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:413: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/ast/impl/pragmaParser/PragmaString.g:416:1: wildcard_expr : ANY LPAREN expr RPAREN -> ^( WILDCARD_EXPR ANY LPAREN expr RPAREN ) ;
public final PragmaStringParser.wildcard_expr_return wildcard_expr() throws RecognitionException {
PragmaStringParser.wildcard_expr_return retval = new PragmaStringParser.wildcard_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ANY278=null;
Token LPAREN279=null;
Token RPAREN281=null;
ParserRuleReturnScope expr280 =null;
Object ANY278_tree=null;
Object LPAREN279_tree=null;
Object RPAREN281_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/ast/impl/pragmaParser/PragmaString.g:417:2: ( ANY LPAREN expr RPAREN -> ^( WILDCARD_EXPR ANY LPAREN expr RPAREN ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:417:4: ANY LPAREN expr RPAREN
{
ANY278=(Token)match(input,ANY,FOLLOW_ANY_in_wildcard_expr2777); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ANY.add(ANY278);
LPAREN279=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_wildcard_expr2779); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN279);
pushFollow(FOLLOW_expr_in_wildcard_expr2781);
expr280=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr280.getTree());
RPAREN281=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_wildcard_expr2783); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN281);
// AST REWRITE
// elements: RPAREN, expr, LPAREN, ANY
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 418:3: -> ^( WILDCARD_EXPR ANY LPAREN expr RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:418: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/ast/impl/pragmaParser/PragmaString.g:421:1: call_statement : ( unary_expr ASSIGN )? IDENTIFIER LPAREN ( parameter_list )? RPAREN SEMI -> ^( CALL_STMT ( unary_expr )? IDENTIFIER LPAREN ( parameter_list )? RPAREN SEMI ) ;
public final PragmaStringParser.call_statement_return call_statement() throws RecognitionException {
PragmaStringParser.call_statement_return retval = new PragmaStringParser.call_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN283=null;
Token IDENTIFIER284=null;
Token LPAREN285=null;
Token RPAREN287=null;
Token SEMI288=null;
ParserRuleReturnScope unary_expr282 =null;
ParserRuleReturnScope parameter_list286 =null;
Object ASSIGN283_tree=null;
Object IDENTIFIER284_tree=null;
Object LPAREN285_tree=null;
Object RPAREN287_tree=null;
Object SEMI288_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/ast/impl/pragmaParser/PragmaString.g:422: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/ast/impl/pragmaParser/PragmaString.g:422:4: ( unary_expr ASSIGN )? IDENTIFIER LPAREN ( parameter_list )? RPAREN SEMI
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:422:4: ( unary_expr ASSIGN )?
int alt63=2;
int LA63_0 = input.LA(1);
if ( (LA63_0==ADDR_OF||LA63_0==CHAR_LITERAL||LA63_0==DERIVATIVE||(LA63_0 >= DOUBLE_PLUS && LA63_0 <= DOUBLE_SUB)||LA63_0==FALSE||LA63_0==INT_LITERAL||LA63_0==LPAREN||LA63_0==MULTI||LA63_0==NOT||LA63_0==PLUS||LA63_0==REAL_LITERAL||LA63_0==SIZEOF||LA63_0==SPEC||LA63_0==STRING_LITERAL||LA63_0==SUB||LA63_0==SYS_VAR||LA63_0==TRUE) ) {
alt63=1;
}
else if ( (LA63_0==IDENTIFIER) ) {
int LA63_8 = input.LA(2);
if ( (synpred95_PragmaString()) ) {
alt63=1;
}
}
switch (alt63) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:422:5: unary_expr ASSIGN
{
pushFollow(FOLLOW_unary_expr_in_call_statement2811);
unary_expr282=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr282.getTree());
ASSIGN283=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_call_statement2813); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN283);
}
break;
}
IDENTIFIER284=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_call_statement2817); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER284);
LPAREN285=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_call_statement2819); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN285);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:422:43: ( parameter_list )?
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==ADDR_OF||LA64_0==CHAR_LITERAL||LA64_0==DERIVATIVE||(LA64_0 >= DOUBLE_PLUS && LA64_0 <= DOUBLE_SUB)||LA64_0==EXISTS||LA64_0==FALSE||LA64_0==FORALL||LA64_0==IDENTIFIER||LA64_0==INT_LITERAL||LA64_0==LPAREN||LA64_0==MULTI||LA64_0==NOT||LA64_0==PLUS||LA64_0==REAL_LITERAL||LA64_0==SIZEOF||LA64_0==SPEC||LA64_0==STRING_LITERAL||LA64_0==SUB||LA64_0==SYS_VAR||LA64_0==TRUE) ) {
alt64=1;
}
switch (alt64) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:422:43: parameter_list
{
pushFollow(FOLLOW_parameter_list_in_call_statement2821);
parameter_list286=parameter_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameter_list.add(parameter_list286.getTree());
}
break;
}
RPAREN287=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_call_statement2824); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN287);
SEMI288=(Token)match(input,SEMI,FOLLOW_SEMI_in_call_statement2826); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI288);
// AST REWRITE
// elements: parameter_list, RPAREN, SEMI, IDENTIFIER, unary_expr, LPAREN
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 423:3: -> ^( CALL_STMT ( unary_expr )? IDENTIFIER LPAREN ( parameter_list )? RPAREN SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:423: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/ast/impl/pragmaParser/PragmaString.g:423: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/ast/impl/pragmaParser/PragmaString.g:423: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/ast/impl/pragmaParser/PragmaString.g:426: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 PragmaStringParser.allocate_statement_return allocate_statement() throws RecognitionException {
PragmaStringParser.allocate_statement_return retval = new PragmaStringParser.allocate_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token ASSIGN290=null;
Token LPAREN291=null;
Token MULTI293=null;
Token RPAREN294=null;
Token MALLOC295=null;
Token SEMI297=null;
ParserRuleReturnScope unary_expr289 =null;
ParserRuleReturnScope type_name292 =null;
ParserRuleReturnScope unary_expr296 =null;
Object ASSIGN290_tree=null;
Object LPAREN291_tree=null;
Object MULTI293_tree=null;
Object RPAREN294_tree=null;
Object MALLOC295_tree=null;
Object SEMI297_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/ast/impl/pragmaParser/PragmaString.g:427: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/ast/impl/pragmaParser/PragmaString.g:427:4: unary_expr ASSIGN LPAREN type_name MULTI RPAREN MALLOC unary_expr SEMI
{
pushFollow(FOLLOW_unary_expr_in_allocate_statement2859);
unary_expr289=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr289.getTree());
ASSIGN290=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_allocate_statement2861); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN290);
LPAREN291=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_allocate_statement2863); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN291);
pushFollow(FOLLOW_type_name_in_allocate_statement2865);
type_name292=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name292.getTree());
MULTI293=(Token)match(input,MULTI,FOLLOW_MULTI_in_allocate_statement2867); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MULTI.add(MULTI293);
RPAREN294=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_allocate_statement2869); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN294);
MALLOC295=(Token)match(input,MALLOC,FOLLOW_MALLOC_in_allocate_statement2871); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MALLOC.add(MALLOC295);
pushFollow(FOLLOW_unary_expr_in_allocate_statement2873);
unary_expr296=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr296.getTree());
SEMI297=(Token)match(input,SEMI,FOLLOW_SEMI_in_allocate_statement2875); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI297);
// AST REWRITE
// elements: unary_expr, unary_expr, SEMI, 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();
// 428:3: -> ^( ALLOCATE_STMT unary_expr type_name unary_expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:428: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/ast/impl/pragmaParser/PragmaString.g:431:1: parameter_list : parameter ( COMMA parameter )* -> ^( PARAMETER_LIST ( parameter )+ ) ;
public final PragmaStringParser.parameter_list_return parameter_list() throws RecognitionException {
PragmaStringParser.parameter_list_return retval = new PragmaStringParser.parameter_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA299=null;
ParserRuleReturnScope parameter298 =null;
ParserRuleReturnScope parameter300 =null;
Object COMMA299_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/ast/impl/pragmaParser/PragmaString.g:432:2: ( parameter ( COMMA parameter )* -> ^( PARAMETER_LIST ( parameter )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:432:4: parameter ( COMMA parameter )*
{
pushFollow(FOLLOW_parameter_in_parameter_list2902);
parameter298=parameter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameter.add(parameter298.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:432:14: ( COMMA parameter )*
loop65:
while (true) {
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==COMMA) ) {
alt65=1;
}
switch (alt65) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:432:15: COMMA parameter
{
COMMA299=(Token)match(input,COMMA,FOLLOW_COMMA_in_parameter_list2905); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA299);
pushFollow(FOLLOW_parameter_in_parameter_list2907);
parameter300=parameter();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameter.add(parameter300.getTree());
}
break;
default :
break loop65;
}
}
// 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();
// 432:33: -> ^( PARAMETER_LIST ( parameter )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:432: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/ast/impl/pragmaParser/PragmaString.g:435:1: parameter : expr -> ^( PARAMETER expr ) ;
public final PragmaStringParser.parameter_return parameter() throws RecognitionException {
PragmaStringParser.parameter_return retval = new PragmaStringParser.parameter_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope expr301 =null;
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:436:2: ( expr -> ^( PARAMETER expr ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:436:4: expr
{
pushFollow(FOLLOW_expr_in_parameter2929);
expr301=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr301.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();
// 436:9: -> ^( PARAMETER expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:436: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/ast/impl/pragmaParser/PragmaString.g:439:1: partial_list : partial ( COMMA partial )* -> ^( PARTIAL_LIST ( partial )+ ) ;
public final PragmaStringParser.partial_list_return partial_list() throws RecognitionException {
PragmaStringParser.partial_list_return retval = new PragmaStringParser.partial_list_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA303=null;
ParserRuleReturnScope partial302 =null;
ParserRuleReturnScope partial304 =null;
Object COMMA303_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/ast/impl/pragmaParser/PragmaString.g:440:2: ( partial ( COMMA partial )* -> ^( PARTIAL_LIST ( partial )+ ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:440:4: partial ( COMMA partial )*
{
pushFollow(FOLLOW_partial_in_partial_list2948);
partial302=partial();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_partial.add(partial302.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:440:12: ( COMMA partial )*
loop66:
while (true) {
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==COMMA) ) {
alt66=1;
}
switch (alt66) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:440:13: COMMA partial
{
COMMA303=(Token)match(input,COMMA,FOLLOW_COMMA_in_partial_list2951); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA303);
pushFollow(FOLLOW_partial_in_partial_list2953);
partial304=partial();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_partial.add(partial304.getTree());
}
break;
default :
break loop66;
}
}
// 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();
// 440:29: -> ^( PARTIAL_LIST ( partial )+ )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:440: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/ast/impl/pragmaParser/PragmaString.g:443:1: partial : LCURLY IDENTIFIER COMMA INT_LITERAL RCURLY -> ^( PARTIAL IDENTIFIER INT_LITERAL ) ;
public final PragmaStringParser.partial_return partial() throws RecognitionException {
PragmaStringParser.partial_return retval = new PragmaStringParser.partial_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY305=null;
Token IDENTIFIER306=null;
Token COMMA307=null;
Token INT_LITERAL308=null;
Token RCURLY309=null;
Object LCURLY305_tree=null;
Object IDENTIFIER306_tree=null;
Object COMMA307_tree=null;
Object INT_LITERAL308_tree=null;
Object RCURLY309_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/ast/impl/pragmaParser/PragmaString.g:444:2: ( LCURLY IDENTIFIER COMMA INT_LITERAL RCURLY -> ^( PARTIAL IDENTIFIER INT_LITERAL ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:444:4: LCURLY IDENTIFIER COMMA INT_LITERAL RCURLY
{
LCURLY305=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_partial2975); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY305);
IDENTIFIER306=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_partial2977); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER306);
COMMA307=(Token)match(input,COMMA,FOLLOW_COMMA_in_partial2979); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA307);
INT_LITERAL308=(Token)match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_partial2981); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INT_LITERAL.add(INT_LITERAL308);
RCURLY309=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_partial2983); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY309);
// 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();
// 444:47: -> ^( PARTIAL IDENTIFIER INT_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:444: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/ast/impl/pragmaParser/PragmaString.g:447:1: expr_statement : expr SEMI -> ^( EXPR_STMT expr SEMI ) ;
public final PragmaStringParser.expr_statement_return expr_statement() throws RecognitionException {
PragmaStringParser.expr_statement_return retval = new PragmaStringParser.expr_statement_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEMI311=null;
ParserRuleReturnScope expr310 =null;
Object SEMI311_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/ast/impl/pragmaParser/PragmaString.g:448:2: ( expr SEMI -> ^( EXPR_STMT expr SEMI ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:448:4: expr SEMI
{
pushFollow(FOLLOW_expr_in_expr_statement3004);
expr310=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr310.getTree());
SEMI311=(Token)match(input,SEMI,FOLLOW_SEMI_in_expr_statement3006); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SEMI.add(SEMI311);
// 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();
// 448:14: -> ^( EXPR_STMT expr SEMI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:448: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/ast/impl/pragmaParser/PragmaString.g:451:1: expr : ( assign_expr -> ^( EXPR assign_expr ) | quantifier_expr -> ^( EXPR quantifier_expr ) );
public final PragmaStringParser.expr_return expr() throws RecognitionException {
PragmaStringParser.expr_return retval = new PragmaStringParser.expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope assign_expr312 =null;
ParserRuleReturnScope quantifier_expr313 =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/ast/impl/pragmaParser/PragmaString.g:452:2: ( assign_expr -> ^( EXPR assign_expr ) | quantifier_expr -> ^( EXPR quantifier_expr ) )
int alt67=2;
int LA67_0 = input.LA(1);
if ( (LA67_0==ADDR_OF||LA67_0==CHAR_LITERAL||LA67_0==DERIVATIVE||(LA67_0 >= DOUBLE_PLUS && LA67_0 <= DOUBLE_SUB)||LA67_0==FALSE||LA67_0==IDENTIFIER||LA67_0==INT_LITERAL||LA67_0==LPAREN||LA67_0==MULTI||LA67_0==NOT||LA67_0==PLUS||LA67_0==REAL_LITERAL||LA67_0==SIZEOF||LA67_0==SPEC||LA67_0==STRING_LITERAL||LA67_0==SUB||LA67_0==SYS_VAR||LA67_0==TRUE) ) {
alt67=1;
}
else if ( (LA67_0==EXISTS||LA67_0==FORALL) ) {
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/ast/impl/pragmaParser/PragmaString.g:452:4: assign_expr
{
pushFollow(FOLLOW_assign_expr_in_expr3030);
assign_expr312=assign_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assign_expr.add(assign_expr312.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();
// 452:16: -> ^( EXPR assign_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:452: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/ast/impl/pragmaParser/PragmaString.g:453:4: quantifier_expr
{
pushFollow(FOLLOW_quantifier_expr_in_expr3043);
quantifier_expr313=quantifier_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifier_expr.add(quantifier_expr313.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();
// 453:20: -> ^( EXPR quantifier_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:453: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/ast/impl/pragmaParser/PragmaString.g:456: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 PragmaStringParser.assign_expr_return assign_expr() throws RecognitionException {
PragmaStringParser.assign_expr_return retval = new PragmaStringParser.assign_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope unary_expr314 =null;
ParserRuleReturnScope assign_operator315 =null;
ParserRuleReturnScope assign_expr316 =null;
ParserRuleReturnScope ifThenElse_expr317 =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/ast/impl/pragmaParser/PragmaString.g:457:2: ( unary_expr assign_operator assign_expr -> ^( ASSIGN_EXPR unary_expr assign_operator assign_expr ) | ifThenElse_expr -> ^( ASSIGN_EXPR ifThenElse_expr ) )
int alt68=2;
switch ( input.LA(1) ) {
case TRUE:
{
int LA68_1 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case FALSE:
{
int LA68_2 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case INT_LITERAL:
{
int LA68_3 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case REAL_LITERAL:
{
int LA68_4 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case CHAR_LITERAL:
{
int LA68_5 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case STRING_LITERAL:
{
int LA68_6 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case SYS_VAR:
{
int LA68_7 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case IDENTIFIER:
{
int LA68_8 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case LPAREN:
{
int LA68_9 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case SPEC:
{
int LA68_10 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case DERIVATIVE:
{
int LA68_11 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case PLUS:
{
int LA68_12 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case SUB:
{
int LA68_13 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case NOT:
{
int LA68_14 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case MULTI:
{
int LA68_15 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case ADDR_OF:
{
int LA68_16 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case DOUBLE_PLUS:
{
int LA68_17 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case DOUBLE_SUB:
{
int LA68_18 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
case SIZEOF:
{
int LA68_19 = input.LA(2);
if ( (synpred100_PragmaString()) ) {
alt68=1;
}
else if ( (true) ) {
alt68=2;
}
}
break;
default:
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/ast/impl/pragmaParser/PragmaString.g:457:4: unary_expr assign_operator assign_expr
{
pushFollow(FOLLOW_unary_expr_in_assign_expr3063);
unary_expr314=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr314.getTree());
pushFollow(FOLLOW_assign_operator_in_assign_expr3065);
assign_operator315=assign_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assign_operator.add(assign_operator315.getTree());
pushFollow(FOLLOW_assign_expr_in_assign_expr3067);
assign_expr316=assign_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_assign_expr.add(assign_expr316.getTree());
// AST REWRITE
// elements: unary_expr, assign_operator, 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();
// 458:3: -> ^( ASSIGN_EXPR unary_expr assign_operator assign_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:458: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/ast/impl/pragmaParser/PragmaString.g:459:4: ifThenElse_expr
{
pushFollow(FOLLOW_ifThenElse_expr_in_assign_expr3087);
ifThenElse_expr317=ifThenElse_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ifThenElse_expr.add(ifThenElse_expr317.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();
// 460:3: -> ^( ASSIGN_EXPR ifThenElse_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:460: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/ast/impl/pragmaParser/PragmaString.g:463:1: ifThenElse_expr : pred= logical_or_expr ( QMARK trueBranch= expr COLON falseBranch= expr )? -> ^( CONDITIONAL_EXPR $pred ( $trueBranch $falseBranch)? ) ;
public final PragmaStringParser.ifThenElse_expr_return ifThenElse_expr() throws RecognitionException {
PragmaStringParser.ifThenElse_expr_return retval = new PragmaStringParser.ifThenElse_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token QMARK318=null;
Token COLON319=null;
ParserRuleReturnScope pred =null;
ParserRuleReturnScope trueBranch =null;
ParserRuleReturnScope falseBranch =null;
Object QMARK318_tree=null;
Object COLON319_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/ast/impl/pragmaParser/PragmaString.g:464:2: (pred= logical_or_expr ( QMARK trueBranch= expr COLON falseBranch= expr )? -> ^( CONDITIONAL_EXPR $pred ( $trueBranch $falseBranch)? ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:464:4: pred= logical_or_expr ( QMARK trueBranch= expr COLON falseBranch= expr )?
{
pushFollow(FOLLOW_logical_or_expr_in_ifThenElse_expr3110);
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/ast/impl/pragmaParser/PragmaString.g:464:25: ( QMARK trueBranch= expr COLON falseBranch= expr )?
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==QMARK) ) {
alt69=1;
}
switch (alt69) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:464:26: QMARK trueBranch= expr COLON falseBranch= expr
{
QMARK318=(Token)match(input,QMARK,FOLLOW_QMARK_in_ifThenElse_expr3113); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_QMARK.add(QMARK318);
pushFollow(FOLLOW_expr_in_ifThenElse_expr3117);
trueBranch=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(trueBranch.getTree());
COLON319=(Token)match(input,COLON,FOLLOW_COLON_in_ifThenElse_expr3119); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON319);
pushFollow(FOLLOW_expr_in_ifThenElse_expr3123);
falseBranch=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(falseBranch.getTree());
}
break;
}
// AST REWRITE
// elements: trueBranch, pred, 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();
// 465:3: -> ^( CONDITIONAL_EXPR $pred ( $trueBranch $falseBranch)? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:465:6: ^( CONDITIONAL_EXPR $pred ( $trueBranch $falseBranch)? )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CONDITIONAL_EXPR, "CONDITIONAL_EXPR"), root_1);
adaptor.addChild(root_1, stream_pred.nextTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:465:31: ( $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/ast/impl/pragmaParser/PragmaString.g:468: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 PragmaStringParser.quantifier_expr_return quantifier_expr() throws RecognitionException {
PragmaStringParser.quantifier_expr_return retval = new PragmaStringParser.quantifier_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LCURLY321=null;
Token IDENTIFIER323=null;
Token RCURLY324=null;
Token LCURLY327=null;
Token IDENTIFIER329=null;
Token BAR330=null;
Token RCURLY332=null;
ParserRuleReturnScope quantifier320 =null;
ParserRuleReturnScope simple_type322 =null;
ParserRuleReturnScope expr325 =null;
ParserRuleReturnScope quantifier326 =null;
ParserRuleReturnScope simple_type328 =null;
ParserRuleReturnScope logical_or_expr331 =null;
ParserRuleReturnScope expr333 =null;
Object LCURLY321_tree=null;
Object IDENTIFIER323_tree=null;
Object RCURLY324_tree=null;
Object LCURLY327_tree=null;
Object IDENTIFIER329_tree=null;
Object BAR330_tree=null;
Object RCURLY332_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/ast/impl/pragmaParser/PragmaString.g:469: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 alt70=2;
int LA70_0 = input.LA(1);
if ( (LA70_0==FORALL) ) {
int LA70_1 = input.LA(2);
if ( (LA70_1==LCURLY) ) {
int LA70_3 = input.LA(3);
if ( (LA70_3==BOOLEAN||LA70_3==CHAR||LA70_3==DOUBLE||LA70_3==FLOAT||LA70_3==INT||LA70_3==VOID) ) {
int LA70_4 = input.LA(4);
if ( (LA70_4==IDENTIFIER) ) {
int LA70_5 = input.LA(5);
if ( (LA70_5==RCURLY) ) {
alt70=1;
}
else if ( (LA70_5==BAR) ) {
alt70=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("", 70, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 70, 4, 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("", 70, 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("", 70, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA70_0==EXISTS) ) {
int LA70_2 = input.LA(2);
if ( (LA70_2==LCURLY) ) {
int LA70_3 = input.LA(3);
if ( (LA70_3==BOOLEAN||LA70_3==CHAR||LA70_3==DOUBLE||LA70_3==FLOAT||LA70_3==INT||LA70_3==VOID) ) {
int LA70_4 = input.LA(4);
if ( (LA70_4==IDENTIFIER) ) {
int LA70_5 = input.LA(5);
if ( (LA70_5==RCURLY) ) {
alt70=1;
}
else if ( (LA70_5==BAR) ) {
alt70=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("", 70, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 70, 4, 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("", 70, 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("", 70, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 70, 0, input);
throw nvae;
}
switch (alt70) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:469:4: quantifier LCURLY simple_type IDENTIFIER RCURLY expr
{
pushFollow(FOLLOW_quantifier_in_quantifier_expr3157);
quantifier320=quantifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifier.add(quantifier320.getTree());
LCURLY321=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_quantifier_expr3159); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY321);
pushFollow(FOLLOW_simple_type_in_quantifier_expr3161);
simple_type322=simple_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_simple_type.add(simple_type322.getTree());
IDENTIFIER323=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_quantifier_expr3163); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER323);
RCURLY324=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_quantifier_expr3165); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY324);
pushFollow(FOLLOW_expr_in_quantifier_expr3167);
expr325=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr325.getTree());
// AST REWRITE
// elements: expr, IDENTIFIER, simple_type, 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();
// 470:3: -> ^( QUANTIFIER_EXPR quantifier simple_type IDENTIFIER expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:470: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/ast/impl/pragmaParser/PragmaString.g:471:4: quantifier LCURLY simple_type IDENTIFIER BAR logical_or_expr RCURLY expr
{
pushFollow(FOLLOW_quantifier_in_quantifier_expr3188);
quantifier326=quantifier();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_quantifier.add(quantifier326.getTree());
LCURLY327=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_quantifier_expr3190); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LCURLY.add(LCURLY327);
pushFollow(FOLLOW_simple_type_in_quantifier_expr3192);
simple_type328=simple_type();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_simple_type.add(simple_type328.getTree());
IDENTIFIER329=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_quantifier_expr3194); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER329);
BAR330=(Token)match(input,BAR,FOLLOW_BAR_in_quantifier_expr3196); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_BAR.add(BAR330);
pushFollow(FOLLOW_logical_or_expr_in_quantifier_expr3198);
logical_or_expr331=logical_or_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logical_or_expr.add(logical_or_expr331.getTree());
RCURLY332=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_quantifier_expr3200); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RCURLY.add(RCURLY332);
pushFollow(FOLLOW_expr_in_quantifier_expr3202);
expr333=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr333.getTree());
// AST REWRITE
// elements: BAR, expr, IDENTIFIER, quantifier, logical_or_expr, 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();
// 472: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/ast/impl/pragmaParser/PragmaString.g:472: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/ast/impl/pragmaParser/PragmaString.g:475:1: quantifier : ( FORALL -> ^( QUANTIFIER FORALL ) | EXISTS -> ^( QUANTIFIER EXISTS ) );
public final PragmaStringParser.quantifier_return quantifier() throws RecognitionException {
PragmaStringParser.quantifier_return retval = new PragmaStringParser.quantifier_return();
retval.start = input.LT(1);
Object root_0 = null;
Token FORALL334=null;
Token EXISTS335=null;
Object FORALL334_tree=null;
Object EXISTS335_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/ast/impl/pragmaParser/PragmaString.g:476:2: ( FORALL -> ^( QUANTIFIER FORALL ) | EXISTS -> ^( QUANTIFIER EXISTS ) )
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==FORALL) ) {
alt71=1;
}
else if ( (LA71_0==EXISTS) ) {
alt71=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 71, 0, input);
throw nvae;
}
switch (alt71) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:476:4: FORALL
{
FORALL334=(Token)match(input,FORALL,FOLLOW_FORALL_in_quantifier3234); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FORALL.add(FORALL334);
// 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();
// 476:11: -> ^( QUANTIFIER FORALL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:476: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/ast/impl/pragmaParser/PragmaString.g:477:4: EXISTS
{
EXISTS335=(Token)match(input,EXISTS,FOLLOW_EXISTS_in_quantifier3247); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_EXISTS.add(EXISTS335);
// 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();
// 477:11: -> ^( QUANTIFIER EXISTS )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:477: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/ast/impl/pragmaParser/PragmaString.g:480:1: logical_or_expr : logical_and_expr ( OR logical_and_expr )* -> ^( LOGICAL_OR_EXPR logical_and_expr ( OR logical_and_expr )* ) ;
public final PragmaStringParser.logical_or_expr_return logical_or_expr() throws RecognitionException {
PragmaStringParser.logical_or_expr_return retval = new PragmaStringParser.logical_or_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token OR337=null;
ParserRuleReturnScope logical_and_expr336 =null;
ParserRuleReturnScope logical_and_expr338 =null;
Object OR337_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/ast/impl/pragmaParser/PragmaString.g:481: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/ast/impl/pragmaParser/PragmaString.g:481:4: logical_and_expr ( OR logical_and_expr )*
{
pushFollow(FOLLOW_logical_and_expr_in_logical_or_expr3266);
logical_and_expr336=logical_and_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logical_and_expr.add(logical_and_expr336.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:481:21: ( OR logical_and_expr )*
loop72:
while (true) {
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==OR) ) {
alt72=1;
}
switch (alt72) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:481:22: OR logical_and_expr
{
OR337=(Token)match(input,OR,FOLLOW_OR_in_logical_or_expr3269); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_OR.add(OR337);
pushFollow(FOLLOW_logical_and_expr_in_logical_or_expr3271);
logical_and_expr338=logical_and_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_logical_and_expr.add(logical_and_expr338.getTree());
}
break;
default :
break loop72;
}
}
// AST REWRITE
// elements: logical_and_expr, logical_and_expr, OR
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 482:3: -> ^( LOGICAL_OR_EXPR logical_and_expr ( OR logical_and_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:482: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/ast/impl/pragmaParser/PragmaString.g:482: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/ast/impl/pragmaParser/PragmaString.g:485:1: logical_and_expr : equality_expr ( AND equality_expr )* -> ^( LOGICAL_AND_EXPR equality_expr ( AND equality_expr )* ) ;
public final PragmaStringParser.logical_and_expr_return logical_and_expr() throws RecognitionException {
PragmaStringParser.logical_and_expr_return retval = new PragmaStringParser.logical_and_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token AND340=null;
ParserRuleReturnScope equality_expr339 =null;
ParserRuleReturnScope equality_expr341 =null;
Object AND340_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/ast/impl/pragmaParser/PragmaString.g:486: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/ast/impl/pragmaParser/PragmaString.g:486:4: equality_expr ( AND equality_expr )*
{
pushFollow(FOLLOW_equality_expr_in_logical_and_expr3302);
equality_expr339=equality_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equality_expr.add(equality_expr339.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:486:18: ( AND equality_expr )*
loop73:
while (true) {
int alt73=2;
int LA73_0 = input.LA(1);
if ( (LA73_0==AND) ) {
alt73=1;
}
switch (alt73) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:486:19: AND equality_expr
{
AND340=(Token)match(input,AND,FOLLOW_AND_in_logical_and_expr3305); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AND.add(AND340);
pushFollow(FOLLOW_equality_expr_in_logical_and_expr3307);
equality_expr341=equality_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equality_expr.add(equality_expr341.getTree());
}
break;
default :
break loop73;
}
}
// AST REWRITE
// elements: equality_expr, equality_expr, AND
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 487:3: -> ^( LOGICAL_AND_EXPR equality_expr ( AND equality_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:487: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/ast/impl/pragmaParser/PragmaString.g:487: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/ast/impl/pragmaParser/PragmaString.g:490:1: equality_expr : relational_expr ( equality_operator relational_expr )* -> ^( EQUALITY_EXPR relational_expr ( equality_operator relational_expr )* ) ;
public final PragmaStringParser.equality_expr_return equality_expr() throws RecognitionException {
PragmaStringParser.equality_expr_return retval = new PragmaStringParser.equality_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope relational_expr342 =null;
ParserRuleReturnScope equality_operator343 =null;
ParserRuleReturnScope relational_expr344 =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/ast/impl/pragmaParser/PragmaString.g:491: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/ast/impl/pragmaParser/PragmaString.g:491:4: relational_expr ( equality_operator relational_expr )*
{
pushFollow(FOLLOW_relational_expr_in_equality_expr3338);
relational_expr342=relational_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relational_expr.add(relational_expr342.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:491:20: ( equality_operator relational_expr )*
loop74:
while (true) {
int alt74=2;
int LA74_0 = input.LA(1);
if ( (LA74_0==EQ||LA74_0==NEQ) ) {
alt74=1;
}
switch (alt74) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:491:21: equality_operator relational_expr
{
pushFollow(FOLLOW_equality_operator_in_equality_expr3341);
equality_operator343=equality_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_equality_operator.add(equality_operator343.getTree());
pushFollow(FOLLOW_relational_expr_in_equality_expr3343);
relational_expr344=relational_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relational_expr.add(relational_expr344.getTree());
}
break;
default :
break loop74;
}
}
// AST REWRITE
// elements: relational_expr, relational_expr, equality_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();
// 492:3: -> ^( EQUALITY_EXPR relational_expr ( equality_operator relational_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:492: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/ast/impl/pragmaParser/PragmaString.g:492:38: ( equality_operator relational_expr )*
while ( stream_relational_expr.hasNext()||stream_equality_operator.hasNext() ) {
adaptor.addChild(root_1, stream_equality_operator.nextTree());
adaptor.addChild(root_1, stream_relational_expr.nextTree());
}
stream_relational_expr.reset();
stream_equality_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 "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/ast/impl/pragmaParser/PragmaString.g:495:1: equality_operator : ( EQ | NEQ );
public final PragmaStringParser.equality_operator_return equality_operator() throws RecognitionException {
PragmaStringParser.equality_operator_return retval = new PragmaStringParser.equality_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set345=null;
Object set345_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:496:2: ( EQ | NEQ )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:
{
root_0 = (Object)adaptor.nil();
set345=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(set345));
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/ast/impl/pragmaParser/PragmaString.g:500:1: relational_expr : additive_expr ( relational_operator additive_expr )* -> ^( RELATIONAL_EXPR additive_expr ( relational_operator additive_expr )* ) ;
public final PragmaStringParser.relational_expr_return relational_expr() throws RecognitionException {
PragmaStringParser.relational_expr_return retval = new PragmaStringParser.relational_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope additive_expr346 =null;
ParserRuleReturnScope relational_operator347 =null;
ParserRuleReturnScope additive_expr348 =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/ast/impl/pragmaParser/PragmaString.g:501: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/ast/impl/pragmaParser/PragmaString.g:501:4: additive_expr ( relational_operator additive_expr )*
{
pushFollow(FOLLOW_additive_expr_in_relational_expr3390);
additive_expr346=additive_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additive_expr.add(additive_expr346.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:501:18: ( relational_operator additive_expr )*
loop75:
while (true) {
int alt75=2;
int LA75_0 = input.LA(1);
if ( ((LA75_0 >= GT && LA75_0 <= GTE)||(LA75_0 >= LT && LA75_0 <= LTE)) ) {
alt75=1;
}
switch (alt75) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:501:19: relational_operator additive_expr
{
pushFollow(FOLLOW_relational_operator_in_relational_expr3393);
relational_operator347=relational_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_relational_operator.add(relational_operator347.getTree());
pushFollow(FOLLOW_additive_expr_in_relational_expr3395);
additive_expr348=additive_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additive_expr.add(additive_expr348.getTree());
}
break;
default :
break loop75;
}
}
// AST REWRITE
// elements: relational_operator, additive_expr, 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();
// 502:3: -> ^( RELATIONAL_EXPR additive_expr ( relational_operator additive_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:502: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/ast/impl/pragmaParser/PragmaString.g:502:38: ( relational_operator additive_expr )*
while ( stream_relational_operator.hasNext()||stream_additive_expr.hasNext() ) {
adaptor.addChild(root_1, stream_relational_operator.nextTree());
adaptor.addChild(root_1, stream_additive_expr.nextTree());
}
stream_relational_operator.reset();
stream_additive_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 "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/ast/impl/pragmaParser/PragmaString.g:505:1: relational_operator : ( LT | GT | LTE | GTE );
public final PragmaStringParser.relational_operator_return relational_operator() throws RecognitionException {
PragmaStringParser.relational_operator_return retval = new PragmaStringParser.relational_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set349=null;
Object set349_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:506:2: ( LT | GT | LTE | GTE )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:
{
root_0 = (Object)adaptor.nil();
set349=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(set349));
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/ast/impl/pragmaParser/PragmaString.g:512:1: additive_expr : multi_expr ( additive_operator multi_expr )* -> ^( ADDITIVE_EXPR multi_expr ( additive_operator multi_expr )* ) ;
public final PragmaStringParser.additive_expr_return additive_expr() throws RecognitionException {
PragmaStringParser.additive_expr_return retval = new PragmaStringParser.additive_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope multi_expr350 =null;
ParserRuleReturnScope additive_operator351 =null;
ParserRuleReturnScope multi_expr352 =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/ast/impl/pragmaParser/PragmaString.g:513: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/ast/impl/pragmaParser/PragmaString.g:513:4: multi_expr ( additive_operator multi_expr )*
{
pushFollow(FOLLOW_multi_expr_in_additive_expr3452);
multi_expr350=multi_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multi_expr.add(multi_expr350.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:513:15: ( additive_operator multi_expr )*
loop76:
while (true) {
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==PLUS) ) {
int LA76_38 = input.LA(2);
if ( (synpred112_PragmaString()) ) {
alt76=1;
}
}
else if ( (LA76_0==SUB) ) {
int LA76_39 = input.LA(2);
if ( (synpred112_PragmaString()) ) {
alt76=1;
}
}
switch (alt76) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:513:16: additive_operator multi_expr
{
pushFollow(FOLLOW_additive_operator_in_additive_expr3455);
additive_operator351=additive_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_additive_operator.add(additive_operator351.getTree());
pushFollow(FOLLOW_multi_expr_in_additive_expr3457);
multi_expr352=multi_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multi_expr.add(multi_expr352.getTree());
}
break;
default :
break loop76;
}
}
// 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();
// 514:3: -> ^( ADDITIVE_EXPR multi_expr ( additive_operator multi_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:514: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/ast/impl/pragmaParser/PragmaString.g:514: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/ast/impl/pragmaParser/PragmaString.g:517:1: additive_operator : ( PLUS | SUB );
public final PragmaStringParser.additive_operator_return additive_operator() throws RecognitionException {
PragmaStringParser.additive_operator_return retval = new PragmaStringParser.additive_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set353=null;
Object set353_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:518:2: ( PLUS | SUB )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:
{
root_0 = (Object)adaptor.nil();
set353=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(set353));
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/ast/impl/pragmaParser/PragmaString.g:522:1: multi_expr : unary_expr ( multi_operator unary_expr )* -> ^( MULTIPLICATIVE_EXPR unary_expr ( multi_operator unary_expr )* ) ;
public final PragmaStringParser.multi_expr_return multi_expr() throws RecognitionException {
PragmaStringParser.multi_expr_return retval = new PragmaStringParser.multi_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope unary_expr354 =null;
ParserRuleReturnScope multi_operator355 =null;
ParserRuleReturnScope unary_expr356 =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/ast/impl/pragmaParser/PragmaString.g:523: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/ast/impl/pragmaParser/PragmaString.g:523:4: unary_expr ( multi_operator unary_expr )*
{
pushFollow(FOLLOW_unary_expr_in_multi_expr3504);
unary_expr354=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr354.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:523:15: ( multi_operator unary_expr )*
loop77:
while (true) {
int alt77=2;
int LA77_0 = input.LA(1);
if ( (LA77_0==MULTI) ) {
int LA77_9 = input.LA(2);
if ( (synpred114_PragmaString()) ) {
alt77=1;
}
}
else if ( (LA77_0==DIV||LA77_0==MOD) ) {
alt77=1;
}
switch (alt77) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:523:16: multi_operator unary_expr
{
pushFollow(FOLLOW_multi_operator_in_multi_expr3507);
multi_operator355=multi_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_multi_operator.add(multi_operator355.getTree());
pushFollow(FOLLOW_unary_expr_in_multi_expr3509);
unary_expr356=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr356.getTree());
}
break;
default :
break loop77;
}
}
// AST REWRITE
// elements: multi_operator, 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();
// 524:3: -> ^( MULTIPLICATIVE_EXPR unary_expr ( multi_operator unary_expr )* )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:524: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/ast/impl/pragmaParser/PragmaString.g:524:39: ( multi_operator unary_expr )*
while ( stream_multi_operator.hasNext()||stream_unary_expr.hasNext() ) {
adaptor.addChild(root_1, stream_multi_operator.nextTree());
adaptor.addChild(root_1, stream_unary_expr.nextTree());
}
stream_multi_operator.reset();
stream_unary_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 "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/ast/impl/pragmaParser/PragmaString.g:527:1: multi_operator : ( MULTI | DIV | MOD );
public final PragmaStringParser.multi_operator_return multi_operator() throws RecognitionException {
PragmaStringParser.multi_operator_return retval = new PragmaStringParser.multi_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set357=null;
Object set357_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:528:2: ( MULTI | DIV | MOD )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:
{
root_0 = (Object)adaptor.nil();
set357=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(set357));
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/ast/impl/pragmaParser/PragmaString.g:533:1: assign_operator : ( ASSIGN | PLUS_ASSIGN | SUB_ASSIGN | MULTI_ASSIGN | DIV_ASSIGN | MOD_ASSIGN );
public final PragmaStringParser.assign_operator_return assign_operator() throws RecognitionException {
PragmaStringParser.assign_operator_return retval = new PragmaStringParser.assign_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set358=null;
Object set358_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:534: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/ast/impl/pragmaParser/PragmaString.g:
{
root_0 = (Object)adaptor.nil();
set358=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(set358));
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/ast/impl/pragmaParser/PragmaString.g:542: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 PragmaStringParser.unary_expr_return unary_expr() throws RecognitionException {
PragmaStringParser.unary_expr_return retval = new PragmaStringParser.unary_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SIZEOF364=null;
Token LPAREN365=null;
Token RPAREN367=null;
Token SIZEOF368=null;
Token LPAREN370=null;
Token RPAREN372=null;
ParserRuleReturnScope postfix_expr359 =null;
ParserRuleReturnScope unary_operator360 =null;
ParserRuleReturnScope unary_expr361 =null;
ParserRuleReturnScope self_change_op362 =null;
ParserRuleReturnScope unary_expr363 =null;
ParserRuleReturnScope type_name366 =null;
ParserRuleReturnScope unary_expr369 =null;
ParserRuleReturnScope type_name371 =null;
ParserRuleReturnScope unary_expr373 =null;
Object SIZEOF364_tree=null;
Object LPAREN365_tree=null;
Object RPAREN367_tree=null;
Object SIZEOF368_tree=null;
Object LPAREN370_tree=null;
Object RPAREN372_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/ast/impl/pragmaParser/PragmaString.g:543: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 alt78=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:
{
alt78=1;
}
break;
case LPAREN:
{
int LA78_9 = input.LA(2);
if ( (synpred122_PragmaString()) ) {
alt78=1;
}
else if ( (true) ) {
alt78=6;
}
}
break;
case ADDR_OF:
case MULTI:
case NOT:
case PLUS:
case SUB:
{
alt78=2;
}
break;
case DOUBLE_PLUS:
case DOUBLE_SUB:
{
alt78=3;
}
break;
case SIZEOF:
{
int LA78_19 = input.LA(2);
if ( (synpred125_PragmaString()) ) {
alt78=4;
}
else if ( (synpred126_PragmaString()) ) {
alt78=5;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 78, 19, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 78, 0, input);
throw nvae;
}
switch (alt78) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:543:4: postfix_expr
{
pushFollow(FOLLOW_postfix_expr_in_unary_expr3598);
postfix_expr359=postfix_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr.add(postfix_expr359.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();
// 543:17: -> ^( UNARY_EXPR postfix_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:543: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/ast/impl/pragmaParser/PragmaString.g:544:4: unary_operator unary_expr
{
pushFollow(FOLLOW_unary_operator_in_unary_expr3611);
unary_operator360=unary_operator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_operator.add(unary_operator360.getTree());
pushFollow(FOLLOW_unary_expr_in_unary_expr3613);
unary_expr361=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr361.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();
// 544:30: -> ^( UNARY_EXPR unary_operator unary_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:544: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/ast/impl/pragmaParser/PragmaString.g:545:4: self_change_op unary_expr
{
pushFollow(FOLLOW_self_change_op_in_unary_expr3628);
self_change_op362=self_change_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_self_change_op.add(self_change_op362.getTree());
pushFollow(FOLLOW_unary_expr_in_unary_expr3630);
unary_expr363=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr363.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();
// 545:30: -> ^( UNARY_EXPR self_change_op unary_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:545: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/ast/impl/pragmaParser/PragmaString.g:546:4: SIZEOF LPAREN type_name RPAREN
{
SIZEOF364=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unary_expr3645); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF364);
LPAREN365=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unary_expr3647); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN365);
pushFollow(FOLLOW_type_name_in_unary_expr3649);
type_name366=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name366.getTree());
RPAREN367=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unary_expr3651); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN367);
// 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();
// 546:35: -> ^( UNARY_EXPR SIZEOF type_name )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:546: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/ast/impl/pragmaParser/PragmaString.g:547:4: SIZEOF unary_expr
{
SIZEOF368=(Token)match(input,SIZEOF,FOLLOW_SIZEOF_in_unary_expr3666); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SIZEOF.add(SIZEOF368);
pushFollow(FOLLOW_unary_expr_in_unary_expr3668);
unary_expr369=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr369.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();
// 547:22: -> ^( UNARY_EXPR SIZEOF unary_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:547: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/ast/impl/pragmaParser/PragmaString.g:548:4: LPAREN type_name RPAREN unary_expr
{
LPAREN370=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unary_expr3683); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN370);
pushFollow(FOLLOW_type_name_in_unary_expr3685);
type_name371=type_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_type_name.add(type_name371.getTree());
RPAREN372=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unary_expr3687); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN372);
pushFollow(FOLLOW_unary_expr_in_unary_expr3689);
unary_expr373=unary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_unary_expr.add(unary_expr373.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();
// 548:39: -> ^( UNARY_EXPR CAST type_name unary_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:548: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/ast/impl/pragmaParser/PragmaString.g:552: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 PragmaStringParser.unary_operator_return unary_operator() throws RecognitionException {
PragmaStringParser.unary_operator_return retval = new PragmaStringParser.unary_operator_return();
retval.start = input.LT(1);
Object root_0 = null;
Token PLUS374=null;
Token SUB375=null;
Token NOT376=null;
Token MULTI377=null;
Token ADDR_OF378=null;
Object PLUS374_tree=null;
Object SUB375_tree=null;
Object NOT376_tree=null;
Object MULTI377_tree=null;
Object ADDR_OF378_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/ast/impl/pragmaParser/PragmaString.g:553:2: ( PLUS -> ^( UNARY_OP PLUS ) | SUB -> ^( UNARY_OP SUB ) | NOT -> ^( UNARY_OP NOT ) | MULTI -> ^( UNARY_OP MULTI ) | ADDR_OF -> ^( UNARY_OP ADDR_OF ) )
int alt79=5;
switch ( input.LA(1) ) {
case PLUS:
{
alt79=1;
}
break;
case SUB:
{
alt79=2;
}
break;
case NOT:
{
alt79=3;
}
break;
case MULTI:
{
alt79=4;
}
break;
case ADDR_OF:
{
alt79=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 79, 0, input);
throw nvae;
}
switch (alt79) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:553:4: PLUS
{
PLUS374=(Token)match(input,PLUS,FOLLOW_PLUS_in_unary_operator3714); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_PLUS.add(PLUS374);
// 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();
// 553:9: -> ^( UNARY_OP PLUS )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:553: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/ast/impl/pragmaParser/PragmaString.g:554:4: SUB
{
SUB375=(Token)match(input,SUB,FOLLOW_SUB_in_unary_operator3727); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SUB.add(SUB375);
// 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();
// 554:8: -> ^( UNARY_OP SUB )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:554: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/ast/impl/pragmaParser/PragmaString.g:555:4: NOT
{
NOT376=(Token)match(input,NOT,FOLLOW_NOT_in_unary_operator3740); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_NOT.add(NOT376);
// 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();
// 555:8: -> ^( UNARY_OP NOT )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:555: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/ast/impl/pragmaParser/PragmaString.g:556:4: MULTI
{
MULTI377=(Token)match(input,MULTI,FOLLOW_MULTI_in_unary_operator3753); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_MULTI.add(MULTI377);
// 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();
// 556:10: -> ^( UNARY_OP MULTI )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:556: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/ast/impl/pragmaParser/PragmaString.g:557:4: ADDR_OF
{
ADDR_OF378=(Token)match(input,ADDR_OF,FOLLOW_ADDR_OF_in_unary_operator3766); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ADDR_OF.add(ADDR_OF378);
// 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();
// 557:12: -> ^( UNARY_OP ADDR_OF )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:557: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/ast/impl/pragmaParser/PragmaString.g:560:1: spec_expr : SPEC DOT IDENTIFIER -> ^( SPEC_EXPR IDENTIFIER ) ;
public final PragmaStringParser.spec_expr_return spec_expr() throws RecognitionException {
PragmaStringParser.spec_expr_return retval = new PragmaStringParser.spec_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SPEC379=null;
Token DOT380=null;
Token IDENTIFIER381=null;
Object SPEC379_tree=null;
Object DOT380_tree=null;
Object IDENTIFIER381_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/ast/impl/pragmaParser/PragmaString.g:561:2: ( SPEC DOT IDENTIFIER -> ^( SPEC_EXPR IDENTIFIER ) )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:561:4: SPEC DOT IDENTIFIER
{
SPEC379=(Token)match(input,SPEC,FOLLOW_SPEC_in_spec_expr3787); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SPEC.add(SPEC379);
DOT380=(Token)match(input,DOT,FOLLOW_DOT_in_spec_expr3789); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT380);
IDENTIFIER381=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_spec_expr3791); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER381);
// 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();
// 561:24: -> ^( SPEC_EXPR IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:561: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/ast/impl/pragmaParser/PragmaString.g:564:1: postfix_expr : primary_expr ( postfix_expr_suffix )? -> ^( POSTFIX_EXPR primary_expr ( postfix_expr_suffix )? ) ;
public final PragmaStringParser.postfix_expr_return postfix_expr() throws RecognitionException {
PragmaStringParser.postfix_expr_return retval = new PragmaStringParser.postfix_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope primary_expr382 =null;
ParserRuleReturnScope postfix_expr_suffix383 =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/ast/impl/pragmaParser/PragmaString.g:566: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/ast/impl/pragmaParser/PragmaString.g:566:4: primary_expr ( postfix_expr_suffix )?
{
pushFollow(FOLLOW_primary_expr_in_postfix_expr3813);
primary_expr382=primary_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_primary_expr.add(primary_expr382.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:566:17: ( postfix_expr_suffix )?
int alt80=2;
switch ( input.LA(1) ) {
case ARROW:
case AT:
case DOT:
case LSQUARE:
{
alt80=1;
}
break;
case DOUBLE_PLUS:
{
int LA80_4 = input.LA(2);
if ( (synpred131_PragmaString()) ) {
alt80=1;
}
}
break;
case DOUBLE_SUB:
{
int LA80_5 = input.LA(2);
if ( (synpred131_PragmaString()) ) {
alt80=1;
}
}
break;
}
switch (alt80) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:566:17: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr3815);
postfix_expr_suffix383=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix383.getTree());
}
break;
}
// AST REWRITE
// elements: postfix_expr_suffix, primary_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();
// 567:3: -> ^( POSTFIX_EXPR primary_expr ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:567: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/ast/impl/pragmaParser/PragmaString.g:567: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/ast/impl/pragmaParser/PragmaString.g:570: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 PragmaStringParser.postfix_expr_suffix_return postfix_expr_suffix() throws RecognitionException {
PragmaStringParser.postfix_expr_suffix_return retval = new PragmaStringParser.postfix_expr_suffix_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DOT384=null;
Token IDENTIFIER385=null;
Token ARROW387=null;
Token IDENTIFIER388=null;
Token LSQUARE390=null;
Token RSQUARE392=null;
Token AT396=null;
Token IDENTIFIER397=null;
Token DOT398=null;
Token IDENTIFIER399=null;
ParserRuleReturnScope postfix_expr_suffix386 =null;
ParserRuleReturnScope postfix_expr_suffix389 =null;
ParserRuleReturnScope expr391 =null;
ParserRuleReturnScope postfix_expr_suffix393 =null;
ParserRuleReturnScope self_change_op394 =null;
ParserRuleReturnScope postfix_expr_suffix395 =null;
ParserRuleReturnScope postfix_expr_suffix400 =null;
Object DOT384_tree=null;
Object IDENTIFIER385_tree=null;
Object ARROW387_tree=null;
Object IDENTIFIER388_tree=null;
Object LSQUARE390_tree=null;
Object RSQUARE392_tree=null;
Object AT396_tree=null;
Object IDENTIFIER397_tree=null;
Object DOT398_tree=null;
Object IDENTIFIER399_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/ast/impl/pragmaParser/PragmaString.g:571: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 alt86=5;
switch ( input.LA(1) ) {
case DOT:
{
alt86=1;
}
break;
case ARROW:
{
alt86=2;
}
break;
case LSQUARE:
{
alt86=3;
}
break;
case DOUBLE_PLUS:
case DOUBLE_SUB:
{
alt86=4;
}
break;
case AT:
{
alt86=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 86, 0, input);
throw nvae;
}
switch (alt86) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:571:4: DOT IDENTIFIER ( postfix_expr_suffix )?
{
DOT384=(Token)match(input,DOT,FOLLOW_DOT_in_postfix_expr_suffix3840); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT384);
IDENTIFIER385=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfix_expr_suffix3842); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER385);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:571:19: ( postfix_expr_suffix )?
int alt81=2;
switch ( input.LA(1) ) {
case ARROW:
case AT:
case DOT:
case LSQUARE:
{
alt81=1;
}
break;
case DOUBLE_PLUS:
{
int LA81_4 = input.LA(2);
if ( (synpred132_PragmaString()) ) {
alt81=1;
}
}
break;
case DOUBLE_SUB:
{
int LA81_5 = input.LA(2);
if ( (synpred132_PragmaString()) ) {
alt81=1;
}
}
break;
}
switch (alt81) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:571:19: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix3844);
postfix_expr_suffix386=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix386.getTree());
}
break;
}
// AST REWRITE
// elements: IDENTIFIER, DOT, 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();
// 572:3: -> ^( POSTFIX_EXPR_SUFFIX DOT IDENTIFIER ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:572: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/ast/impl/pragmaParser/PragmaString.g:572: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/ast/impl/pragmaParser/PragmaString.g:573:4: ARROW IDENTIFIER ( postfix_expr_suffix )?
{
ARROW387=(Token)match(input,ARROW,FOLLOW_ARROW_in_postfix_expr_suffix3865); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ARROW.add(ARROW387);
IDENTIFIER388=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfix_expr_suffix3867); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER388);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:573:21: ( postfix_expr_suffix )?
int alt82=2;
switch ( input.LA(1) ) {
case ARROW:
case AT:
case DOT:
case LSQUARE:
{
alt82=1;
}
break;
case DOUBLE_PLUS:
{
int LA82_4 = input.LA(2);
if ( (synpred134_PragmaString()) ) {
alt82=1;
}
}
break;
case DOUBLE_SUB:
{
int LA82_5 = input.LA(2);
if ( (synpred134_PragmaString()) ) {
alt82=1;
}
}
break;
}
switch (alt82) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:573:21: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix3869);
postfix_expr_suffix389=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix389.getTree());
}
break;
}
// AST REWRITE
// elements: IDENTIFIER, postfix_expr_suffix, ARROW
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 574:3: -> ^( POSTFIX_EXPR_SUFFIX ARROW IDENTIFIER ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:574: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/ast/impl/pragmaParser/PragmaString.g:574: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/ast/impl/pragmaParser/PragmaString.g:575:4: LSQUARE expr RSQUARE ( postfix_expr_suffix )?
{
LSQUARE390=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_postfix_expr_suffix3891); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE390);
pushFollow(FOLLOW_expr_in_postfix_expr_suffix3893);
expr391=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr391.getTree());
RSQUARE392=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_postfix_expr_suffix3895); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE392);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:575:25: ( postfix_expr_suffix )?
int alt83=2;
switch ( input.LA(1) ) {
case ARROW:
case AT:
case DOT:
case LSQUARE:
{
alt83=1;
}
break;
case DOUBLE_PLUS:
{
int LA83_4 = input.LA(2);
if ( (synpred136_PragmaString()) ) {
alt83=1;
}
}
break;
case DOUBLE_SUB:
{
int LA83_5 = input.LA(2);
if ( (synpred136_PragmaString()) ) {
alt83=1;
}
}
break;
}
switch (alt83) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:575:25: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix3897);
postfix_expr_suffix393=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix393.getTree());
}
break;
}
// AST REWRITE
// elements: expr, RSQUARE, 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();
// 576:3: -> ^( POSTFIX_EXPR_SUFFIX expr RSQUARE ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:576: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/ast/impl/pragmaParser/PragmaString.g:576: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/ast/impl/pragmaParser/PragmaString.g:577:4: self_change_op ( postfix_expr_suffix )?
{
pushFollow(FOLLOW_self_change_op_in_postfix_expr_suffix3918);
self_change_op394=self_change_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_self_change_op.add(self_change_op394.getTree());
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:577:19: ( postfix_expr_suffix )?
int alt84=2;
switch ( input.LA(1) ) {
case ARROW:
case AT:
case DOT:
case LSQUARE:
{
alt84=1;
}
break;
case DOUBLE_PLUS:
{
int LA84_4 = input.LA(2);
if ( (synpred138_PragmaString()) ) {
alt84=1;
}
}
break;
case DOUBLE_SUB:
{
int LA84_5 = input.LA(2);
if ( (synpred138_PragmaString()) ) {
alt84=1;
}
}
break;
}
switch (alt84) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:577:19: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix3920);
postfix_expr_suffix395=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix395.getTree());
}
break;
}
// AST REWRITE
// elements: self_change_op, 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();
// 578:3: -> ^( POSTFIX_EXPR_SUFFIX self_change_op ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:578: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/ast/impl/pragmaParser/PragmaString.g:578: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/ast/impl/pragmaParser/PragmaString.g:579:4: AT IDENTIFIER DOT IDENTIFIER ( postfix_expr_suffix )?
{
AT396=(Token)match(input,AT,FOLLOW_AT_in_postfix_expr_suffix3939); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AT.add(AT396);
IDENTIFIER397=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfix_expr_suffix3941); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER397);
DOT398=(Token)match(input,DOT,FOLLOW_DOT_in_postfix_expr_suffix3943); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOT.add(DOT398);
IDENTIFIER399=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfix_expr_suffix3945); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER399);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:579:33: ( postfix_expr_suffix )?
int alt85=2;
switch ( input.LA(1) ) {
case ARROW:
case AT:
case DOT:
case LSQUARE:
{
alt85=1;
}
break;
case DOUBLE_PLUS:
{
int LA85_4 = input.LA(2);
if ( (synpred140_PragmaString()) ) {
alt85=1;
}
}
break;
case DOUBLE_SUB:
{
int LA85_5 = input.LA(2);
if ( (synpred140_PragmaString()) ) {
alt85=1;
}
}
break;
}
switch (alt85) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:579:33: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix3947);
postfix_expr_suffix400=postfix_expr_suffix();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_postfix_expr_suffix.add(postfix_expr_suffix400.getTree());
}
break;
}
// AST REWRITE
// elements: postfix_expr_suffix, IDENTIFIER, AT, IDENTIFIER, DOT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
root_0 = (Object)adaptor.nil();
// 580:3: -> ^( POSTFIX_EXPR_SUFFIX AT IDENTIFIER DOT IDENTIFIER ( postfix_expr_suffix )? )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:580: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/ast/impl/pragmaParser/PragmaString.g:580: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/ast/impl/pragmaParser/PragmaString.g:583: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 PragmaStringParser.primary_expr_return primary_expr() throws RecognitionException {
PragmaStringParser.primary_expr_return retval = new PragmaStringParser.primary_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LPAREN403=null;
Token RPAREN405=null;
Token IDENTIFIER406=null;
ParserRuleReturnScope constant401 =null;
ParserRuleReturnScope evaluated_function_expr402 =null;
ParserRuleReturnScope expr404 =null;
ParserRuleReturnScope spec_expr407 =null;
ParserRuleReturnScope derivative_expr408 =null;
Object LPAREN403_tree=null;
Object RPAREN405_tree=null;
Object IDENTIFIER406_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/ast/impl/pragmaParser/PragmaString.g:584: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 alt87=6;
switch ( input.LA(1) ) {
case CHAR_LITERAL:
case FALSE:
case INT_LITERAL:
case REAL_LITERAL:
case STRING_LITERAL:
case SYS_VAR:
case TRUE:
{
alt87=1;
}
break;
case IDENTIFIER:
{
int LA87_8 = input.LA(2);
if ( (synpred142_PragmaString()) ) {
alt87=2;
}
else if ( (synpred144_PragmaString()) ) {
alt87=4;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 87, 8, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case LPAREN:
{
alt87=3;
}
break;
case SPEC:
{
alt87=5;
}
break;
case DERIVATIVE:
{
alt87=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 87, 0, input);
throw nvae;
}
switch (alt87) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:584:4: constant
{
pushFollow(FOLLOW_constant_in_primary_expr3980);
constant401=constant();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_constant.add(constant401.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();
// 584:13: -> ^( PRIMARY_EXPR constant )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:584: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/ast/impl/pragmaParser/PragmaString.g:585:4: evaluated_function_expr
{
pushFollow(FOLLOW_evaluated_function_expr_in_primary_expr3993);
evaluated_function_expr402=evaluated_function_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_evaluated_function_expr.add(evaluated_function_expr402.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();
// 585:28: -> ^( PRIMARY_EXPR evaluated_function_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:585: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/ast/impl/pragmaParser/PragmaString.g:586:4: LPAREN expr RPAREN
{
LPAREN403=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_primary_expr4006); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN403);
pushFollow(FOLLOW_expr_in_primary_expr4008);
expr404=expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(expr404.getTree());
RPAREN405=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_primary_expr4010); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN405);
// AST REWRITE
// elements: expr, 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();
// 586:23: -> ^( PRIMARY_EXPR expr RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:586: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/ast/impl/pragmaParser/PragmaString.g:587:4: IDENTIFIER
{
IDENTIFIER406=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_primary_expr4025); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER406);
// 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();
// 587:15: -> ^( PRIMARY_EXPR IDENTIFIER )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:587: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/ast/impl/pragmaParser/PragmaString.g:588:4: spec_expr
{
pushFollow(FOLLOW_spec_expr_in_primary_expr4038);
spec_expr407=spec_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_spec_expr.add(spec_expr407.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();
// 588:14: -> ^( PRIMARY_EXPR spec_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:588: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/ast/impl/pragmaParser/PragmaString.g:589:4: derivative_expr
{
pushFollow(FOLLOW_derivative_expr_in_primary_expr4051);
derivative_expr408=derivative_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_derivative_expr.add(derivative_expr408.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();
// 589:20: -> ^( PRIMARY_EXPR derivative_expr )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:589: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/ast/impl/pragmaParser/PragmaString.g:592:1: evaluated_function_expr : IDENTIFIER LPAREN ( parameter_list )? RPAREN -> ^( EVALUATED_FUNCTION_EXPR IDENTIFIER ( parameter_list )? RPAREN ) ;
public final PragmaStringParser.evaluated_function_expr_return evaluated_function_expr() throws RecognitionException {
PragmaStringParser.evaluated_function_expr_return retval = new PragmaStringParser.evaluated_function_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token IDENTIFIER409=null;
Token LPAREN410=null;
Token RPAREN412=null;
ParserRuleReturnScope parameter_list411 =null;
Object IDENTIFIER409_tree=null;
Object LPAREN410_tree=null;
Object RPAREN412_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/ast/impl/pragmaParser/PragmaString.g:593: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/ast/impl/pragmaParser/PragmaString.g:593:4: IDENTIFIER LPAREN ( parameter_list )? RPAREN
{
IDENTIFIER409=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_evaluated_function_expr4071); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER409);
LPAREN410=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_evaluated_function_expr4073); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN410);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:593:22: ( parameter_list )?
int alt88=2;
int LA88_0 = input.LA(1);
if ( (LA88_0==ADDR_OF||LA88_0==CHAR_LITERAL||LA88_0==DERIVATIVE||(LA88_0 >= DOUBLE_PLUS && LA88_0 <= DOUBLE_SUB)||LA88_0==EXISTS||LA88_0==FALSE||LA88_0==FORALL||LA88_0==IDENTIFIER||LA88_0==INT_LITERAL||LA88_0==LPAREN||LA88_0==MULTI||LA88_0==NOT||LA88_0==PLUS||LA88_0==REAL_LITERAL||LA88_0==SIZEOF||LA88_0==SPEC||LA88_0==STRING_LITERAL||LA88_0==SUB||LA88_0==SYS_VAR||LA88_0==TRUE) ) {
alt88=1;
}
switch (alt88) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:593:22: parameter_list
{
pushFollow(FOLLOW_parameter_list_in_evaluated_function_expr4075);
parameter_list411=parameter_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameter_list.add(parameter_list411.getTree());
}
break;
}
RPAREN412=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_evaluated_function_expr4078); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN412);
// AST REWRITE
// elements: 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();
// 594:3: -> ^( EVALUATED_FUNCTION_EXPR IDENTIFIER ( parameter_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:594: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/ast/impl/pragmaParser/PragmaString.g:594: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/ast/impl/pragmaParser/PragmaString.g:597:1: derivative_expr : DERIVATIVE LSQUARE IDENTIFIER COMMA partial_list RSQUARE LPAREN ( parameter_list )? RPAREN -> ^( DERIVATIVE_EXPR IDENTIFIER partial_list ( parameter_list )? RPAREN ) ;
public final PragmaStringParser.derivative_expr_return derivative_expr() throws RecognitionException {
PragmaStringParser.derivative_expr_return retval = new PragmaStringParser.derivative_expr_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DERIVATIVE413=null;
Token LSQUARE414=null;
Token IDENTIFIER415=null;
Token COMMA416=null;
Token RSQUARE418=null;
Token LPAREN419=null;
Token RPAREN421=null;
ParserRuleReturnScope partial_list417 =null;
ParserRuleReturnScope parameter_list420 =null;
Object DERIVATIVE413_tree=null;
Object LSQUARE414_tree=null;
Object IDENTIFIER415_tree=null;
Object COMMA416_tree=null;
Object RSQUARE418_tree=null;
Object LPAREN419_tree=null;
Object RPAREN421_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/ast/impl/pragmaParser/PragmaString.g:598: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/ast/impl/pragmaParser/PragmaString.g:598:4: DERIVATIVE LSQUARE IDENTIFIER COMMA partial_list RSQUARE LPAREN ( parameter_list )? RPAREN
{
DERIVATIVE413=(Token)match(input,DERIVATIVE,FOLLOW_DERIVATIVE_in_derivative_expr4106); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DERIVATIVE.add(DERIVATIVE413);
LSQUARE414=(Token)match(input,LSQUARE,FOLLOW_LSQUARE_in_derivative_expr4108); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LSQUARE.add(LSQUARE414);
IDENTIFIER415=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_derivative_expr4110); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER415);
COMMA416=(Token)match(input,COMMA,FOLLOW_COMMA_in_derivative_expr4112); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(COMMA416);
pushFollow(FOLLOW_partial_list_in_derivative_expr4114);
partial_list417=partial_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_partial_list.add(partial_list417.getTree());
RSQUARE418=(Token)match(input,RSQUARE,FOLLOW_RSQUARE_in_derivative_expr4116); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RSQUARE.add(RSQUARE418);
LPAREN419=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_derivative_expr4118); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN419);
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:598:68: ( parameter_list )?
int alt89=2;
int LA89_0 = input.LA(1);
if ( (LA89_0==ADDR_OF||LA89_0==CHAR_LITERAL||LA89_0==DERIVATIVE||(LA89_0 >= DOUBLE_PLUS && LA89_0 <= DOUBLE_SUB)||LA89_0==EXISTS||LA89_0==FALSE||LA89_0==FORALL||LA89_0==IDENTIFIER||LA89_0==INT_LITERAL||LA89_0==LPAREN||LA89_0==MULTI||LA89_0==NOT||LA89_0==PLUS||LA89_0==REAL_LITERAL||LA89_0==SIZEOF||LA89_0==SPEC||LA89_0==STRING_LITERAL||LA89_0==SUB||LA89_0==SYS_VAR||LA89_0==TRUE) ) {
alt89=1;
}
switch (alt89) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:598:68: parameter_list
{
pushFollow(FOLLOW_parameter_list_in_derivative_expr4120);
parameter_list420=parameter_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_parameter_list.add(parameter_list420.getTree());
}
break;
}
RPAREN421=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_derivative_expr4123); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN421);
// AST REWRITE
// elements: RPAREN, partial_list, IDENTIFIER, parameter_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();
// 599:3: -> ^( DERIVATIVE_EXPR IDENTIFIER partial_list ( parameter_list )? RPAREN )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:599: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/ast/impl/pragmaParser/PragmaString.g:599: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/ast/impl/pragmaParser/PragmaString.g:602:1: self_change_op : ( DOUBLE_PLUS -> ^( SELFCHANGE_OP DOUBLE_PLUS ) | DOUBLE_SUB -> ^( SELFCHANGE_OP DOUBLE_SUB ) );
public final PragmaStringParser.self_change_op_return self_change_op() throws RecognitionException {
PragmaStringParser.self_change_op_return retval = new PragmaStringParser.self_change_op_return();
retval.start = input.LT(1);
Object root_0 = null;
Token DOUBLE_PLUS422=null;
Token DOUBLE_SUB423=null;
Object DOUBLE_PLUS422_tree=null;
Object DOUBLE_SUB423_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/ast/impl/pragmaParser/PragmaString.g:603:2: ( DOUBLE_PLUS -> ^( SELFCHANGE_OP DOUBLE_PLUS ) | DOUBLE_SUB -> ^( SELFCHANGE_OP DOUBLE_SUB ) )
int alt90=2;
int LA90_0 = input.LA(1);
if ( (LA90_0==DOUBLE_PLUS) ) {
alt90=1;
}
else if ( (LA90_0==DOUBLE_SUB) ) {
alt90=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 90, 0, input);
throw nvae;
}
switch (alt90) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:603:4: DOUBLE_PLUS
{
DOUBLE_PLUS422=(Token)match(input,DOUBLE_PLUS,FOLLOW_DOUBLE_PLUS_in_self_change_op4152); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOUBLE_PLUS.add(DOUBLE_PLUS422);
// 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();
// 603:16: -> ^( SELFCHANGE_OP DOUBLE_PLUS )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:603: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/ast/impl/pragmaParser/PragmaString.g:604:4: DOUBLE_SUB
{
DOUBLE_SUB423=(Token)match(input,DOUBLE_SUB,FOLLOW_DOUBLE_SUB_in_self_change_op4165); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_DOUBLE_SUB.add(DOUBLE_SUB423);
// 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();
// 604:15: -> ^( SELFCHANGE_OP DOUBLE_SUB )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:604: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/ast/impl/pragmaParser/PragmaString.g:607: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 PragmaStringParser.constant_return constant() throws RecognitionException {
PragmaStringParser.constant_return retval = new PragmaStringParser.constant_return();
retval.start = input.LT(1);
Object root_0 = null;
Token TRUE424=null;
Token FALSE425=null;
Token INT_LITERAL426=null;
Token REAL_LITERAL427=null;
Token CHAR_LITERAL428=null;
Token STRING_LITERAL429=null;
Token SYS_VAR430=null;
Object TRUE424_tree=null;
Object FALSE425_tree=null;
Object INT_LITERAL426_tree=null;
Object REAL_LITERAL427_tree=null;
Object CHAR_LITERAL428_tree=null;
Object STRING_LITERAL429_tree=null;
Object SYS_VAR430_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/ast/impl/pragmaParser/PragmaString.g:608: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 alt91=7;
switch ( input.LA(1) ) {
case TRUE:
{
alt91=1;
}
break;
case FALSE:
{
alt91=2;
}
break;
case INT_LITERAL:
{
alt91=3;
}
break;
case REAL_LITERAL:
{
alt91=4;
}
break;
case CHAR_LITERAL:
{
alt91=5;
}
break;
case STRING_LITERAL:
{
alt91=6;
}
break;
case SYS_VAR:
{
alt91=7;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 91, 0, input);
throw nvae;
}
switch (alt91) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:608:4: TRUE
{
TRUE424=(Token)match(input,TRUE,FOLLOW_TRUE_in_constant4186); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_TRUE.add(TRUE424);
// 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();
// 608:9: -> ^( CONSTANT TRUE )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:608: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/ast/impl/pragmaParser/PragmaString.g:609:4: FALSE
{
FALSE425=(Token)match(input,FALSE,FOLLOW_FALSE_in_constant4199); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_FALSE.add(FALSE425);
// 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();
// 609:10: -> ^( CONSTANT FALSE )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:609: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/ast/impl/pragmaParser/PragmaString.g:610:4: INT_LITERAL
{
INT_LITERAL426=(Token)match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_constant4213); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_INT_LITERAL.add(INT_LITERAL426);
// 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();
// 610:16: -> ^( CONSTANT INT_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:610: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/ast/impl/pragmaParser/PragmaString.g:611:4: REAL_LITERAL
{
REAL_LITERAL427=(Token)match(input,REAL_LITERAL,FOLLOW_REAL_LITERAL_in_constant4226); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_REAL_LITERAL.add(REAL_LITERAL427);
// 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();
// 611:17: -> ^( CONSTANT REAL_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:611: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/ast/impl/pragmaParser/PragmaString.g:612:4: CHAR_LITERAL
{
CHAR_LITERAL428=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_constant4239); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CHAR_LITERAL.add(CHAR_LITERAL428);
// 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();
// 612:17: -> ^( CONSTANT CHAR_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:612: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/ast/impl/pragmaParser/PragmaString.g:613:4: STRING_LITERAL
{
STRING_LITERAL429=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_constant4252); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL429);
// 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();
// 613:19: -> ^( CONSTANT STRING_LITERAL )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:613: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/ast/impl/pragmaParser/PragmaString.g:614:4: SYS_VAR
{
SYS_VAR430=(Token)match(input,SYS_VAR,FOLLOW_SYS_VAR_in_constant4265); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_SYS_VAR.add(SYS_VAR430);
// 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();
// 614:12: -> ^( CONSTANT SYS_VAR )
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:614: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/ast/impl/pragmaParser/PragmaString.g:618:1: ignored : ( STATIC | CONST );
public final PragmaStringParser.ignored_return ignored() throws RecognitionException {
PragmaStringParser.ignored_return retval = new PragmaStringParser.ignored_return();
retval.start = input.LT(1);
Object root_0 = null;
Token set431=null;
Object set431_tree=null;
try {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:619:2: ( STATIC | CONST )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:
{
root_0 = (Object)adaptor.nil();
set431=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(set431));
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 synpred21_PragmaString
public final void synpred21_PragmaString_fragment() throws RecognitionException {
ParserRuleReturnScope type =null;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:145:5: (type= type_specifier declaration_unit ( COMMA declaration_unit )+ SEMI )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:145:5: type= type_specifier declaration_unit ( COMMA declaration_unit )+ SEMI
{
pushFollow(FOLLOW_type_specifier_in_synpred21_PragmaString800);
type=type_specifier();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_declaration_unit_in_synpred21_PragmaString802);
declaration_unit();
state._fsp--;
if (state.failed) return;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:145:42: ( COMMA declaration_unit )+
int cnt99=0;
loop99:
while (true) {
int alt99=2;
int LA99_0 = input.LA(1);
if ( (LA99_0==COMMA) ) {
alt99=1;
}
switch (alt99) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:145:43: COMMA declaration_unit
{
match(input,COMMA,FOLLOW_COMMA_in_synpred21_PragmaString805); if (state.failed) return;
pushFollow(FOLLOW_declaration_unit_in_synpred21_PragmaString807);
declaration_unit();
state._fsp--;
if (state.failed) return;
}
break;
default :
if ( cnt99 >= 1 ) break loop99;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(99, input);
throw eee;
}
cnt99++;
}
match(input,SEMI,FOLLOW_SEMI_in_synpred21_PragmaString811); if (state.failed) return;
}
}
// $ANTLR end synpred21_PragmaString
// $ANTLR start synpred24_PragmaString
public final void synpred24_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:148:6: ( ( prefix )? ( suffix )? declaration_body SEMI )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:148:6: ( prefix )? ( suffix )? declaration_body SEMI
{
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:148:6: ( prefix )?
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==INPUT||LA100_0==OUTPUT||LA100_0==SHARED||LA100_0==TYPEDEF) ) {
alt100=1;
}
switch (alt100) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:148:6: prefix
{
pushFollow(FOLLOW_prefix_in_synpred24_PragmaString845);
prefix();
state._fsp--;
if (state.failed) return;
}
break;
}
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:148:14: ( suffix )?
int alt101=2;
int LA101_0 = input.LA(1);
if ( (LA101_0==IS||LA101_0==LCURLY) ) {
alt101=1;
}
switch (alt101) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:148:14: suffix
{
pushFollow(FOLLOW_suffix_in_synpred24_PragmaString848);
suffix();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_declaration_body_in_synpred24_PragmaString851);
declaration_body();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred24_PragmaString853); if (state.failed) return;
}
}
// $ANTLR end synpred24_PragmaString
// $ANTLR start synpred62_PragmaString
public final void synpred62_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:284:4: ( collective_assert_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:284:4: collective_assert_statement
{
pushFollow(FOLLOW_collective_assert_statement_in_synpred62_PragmaString1650);
collective_assert_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred62_PragmaString
// $ANTLR start synpred63_PragmaString
public final void synpred63_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:285:4: ( joint_assert_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:285:4: joint_assert_statement
{
pushFollow(FOLLOW_joint_assert_statement_in_synpred63_PragmaString1663);
joint_assert_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred63_PragmaString
// $ANTLR start synpred65_PragmaString
public final void synpred65_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:287:4: ( collective_invariant_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:287:4: collective_invariant_statement
{
pushFollow(FOLLOW_collective_invariant_statement_in_synpred65_PragmaString1689);
collective_invariant_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred65_PragmaString
// $ANTLR start synpred66_PragmaString
public final void synpred66_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:288:4: ( joint_invariant_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:288:4: joint_invariant_statement
{
pushFollow(FOLLOW_joint_invariant_statement_in_synpred66_PragmaString1702);
joint_invariant_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred66_PragmaString
// $ANTLR start synpred71_PragmaString
public final void synpred71_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:297:4: ( iterative_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:297:4: iterative_statement
{
pushFollow(FOLLOW_iterative_statement_in_synpred71_PragmaString1770);
iterative_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred71_PragmaString
// $ANTLR start synpred76_PragmaString
public final void synpred76_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:302:4: ( call_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:302:4: call_statement
{
pushFollow(FOLLOW_call_statement_in_synpred76_PragmaString1835);
call_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred76_PragmaString
// $ANTLR start synpred77_PragmaString
public final void synpred77_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:303:4: ( expr_statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:303:4: expr_statement
{
pushFollow(FOLLOW_expr_statement_in_synpred77_PragmaString1848);
expr_statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred77_PragmaString
// $ANTLR start synpred78_PragmaString
public final void synpred78_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:324:6: ( ASSERT expr SEMI )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:324:6: ASSERT expr SEMI
{
match(input,ASSERT,FOLLOW_ASSERT_in_synpred78_PragmaString1912); if (state.failed) return;
pushFollow(FOLLOW_expr_in_synpred78_PragmaString1914);
expr();
state._fsp--;
if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred78_PragmaString1916); if (state.failed) return;
}
}
// $ANTLR end synpred78_PragmaString
// $ANTLR start synpred80_PragmaString
public final void synpred80_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:356:37: ( ELSE statement )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:356:37: ELSE statement
{
match(input,ELSE,FOLLOW_ELSE_in_synpred80_PragmaString2154); if (state.failed) return;
pushFollow(FOLLOW_statement_in_synpred80_PragmaString2156);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred80_PragmaString
// $ANTLR start synpred89_PragmaString
public final void synpred89_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:381: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/ast/impl/pragmaParser/PragmaString.g:381:4: IDENTIFIER COLON ( PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
{
match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred89_PragmaString2388); if (state.failed) return;
match(input,COLON,FOLLOW_COLON_in_synpred89_PragmaString2390); if (state.failed) return;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:381:21: ( PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY )?
int alt109=2;
int LA109_0 = input.LA(1);
if ( (LA109_0==PRAGMA) ) {
alt109=1;
}
switch (alt109) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:381:22: PRAGMA TASS JOINT INVARIANT AT IDENTIFIER LCURLY ( skew_factor )? expr RCURLY
{
match(input,PRAGMA,FOLLOW_PRAGMA_in_synpred89_PragmaString2393); if (state.failed) return;
match(input,TASS,FOLLOW_TASS_in_synpred89_PragmaString2395); if (state.failed) return;
match(input,JOINT,FOLLOW_JOINT_in_synpred89_PragmaString2397); if (state.failed) return;
match(input,INVARIANT,FOLLOW_INVARIANT_in_synpred89_PragmaString2399); if (state.failed) return;
match(input,AT,FOLLOW_AT_in_synpred89_PragmaString2401); if (state.failed) return;
match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred89_PragmaString2403); if (state.failed) return;
match(input,LCURLY,FOLLOW_LCURLY_in_synpred89_PragmaString2405); if (state.failed) return;
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:381:71: ( skew_factor )?
int alt108=2;
int LA108_0 = input.LA(1);
if ( (LA108_0==INT_LITERAL) ) {
int LA108_1 = input.LA(2);
if ( (LA108_1==COLON) ) {
alt108=1;
}
}
switch (alt108) {
case 1 :
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:381:71: skew_factor
{
pushFollow(FOLLOW_skew_factor_in_synpred89_PragmaString2407);
skew_factor();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_expr_in_synpred89_PragmaString2410);
expr();
state._fsp--;
if (state.failed) return;
match(input,RCURLY,FOLLOW_RCURLY_in_synpred89_PragmaString2412); if (state.failed) return;
}
break;
}
}
}
// $ANTLR end synpred89_PragmaString
// $ANTLR start synpred93_PragmaString
public final void synpred93_PragmaString_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/ast/impl/pragmaParser/PragmaString.g:405: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/ast/impl/pragmaParser/PragmaString.g:405:4: RECV LPAREN data= expr COMMA src= comm_expr COMMA tag= comm_expr RPAREN SEMI
{
match(input,RECV,FOLLOW_RECV_in_synpred93_PragmaString2630); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred93_PragmaString2632); if (state.failed) return;
pushFollow(FOLLOW_expr_in_synpred93_PragmaString2636);
data=expr();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred93_PragmaString2638); if (state.failed) return;
pushFollow(FOLLOW_comm_expr_in_synpred93_PragmaString2642);
src=comm_expr();
state._fsp--;
if (state.failed) return;
match(input,COMMA,FOLLOW_COMMA_in_synpred93_PragmaString2644); if (state.failed) return;
pushFollow(FOLLOW_comm_expr_in_synpred93_PragmaString2648);
tag=comm_expr();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred93_PragmaString2650); if (state.failed) return;
match(input,SEMI,FOLLOW_SEMI_in_synpred93_PragmaString2652); if (state.failed) return;
}
}
// $ANTLR end synpred93_PragmaString
// $ANTLR start synpred95_PragmaString
public final void synpred95_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:422:5: ( unary_expr ASSIGN )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:422:5: unary_expr ASSIGN
{
pushFollow(FOLLOW_unary_expr_in_synpred95_PragmaString2811);
unary_expr();
state._fsp--;
if (state.failed) return;
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred95_PragmaString2813); if (state.failed) return;
}
}
// $ANTLR end synpred95_PragmaString
// $ANTLR start synpred100_PragmaString
public final void synpred100_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:457:4: ( unary_expr assign_operator assign_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:457:4: unary_expr assign_operator assign_expr
{
pushFollow(FOLLOW_unary_expr_in_synpred100_PragmaString3063);
unary_expr();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_assign_operator_in_synpred100_PragmaString3065);
assign_operator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_assign_expr_in_synpred100_PragmaString3067);
assign_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred100_PragmaString
// $ANTLR start synpred112_PragmaString
public final void synpred112_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:513:16: ( additive_operator multi_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:513:16: additive_operator multi_expr
{
pushFollow(FOLLOW_additive_operator_in_synpred112_PragmaString3455);
additive_operator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_multi_expr_in_synpred112_PragmaString3457);
multi_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred112_PragmaString
// $ANTLR start synpred114_PragmaString
public final void synpred114_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:523:16: ( multi_operator unary_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:523:16: multi_operator unary_expr
{
pushFollow(FOLLOW_multi_operator_in_synpred114_PragmaString3507);
multi_operator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_unary_expr_in_synpred114_PragmaString3509);
unary_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred114_PragmaString
// $ANTLR start synpred122_PragmaString
public final void synpred122_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:543:4: ( postfix_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:543:4: postfix_expr
{
pushFollow(FOLLOW_postfix_expr_in_synpred122_PragmaString3598);
postfix_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred122_PragmaString
// $ANTLR start synpred125_PragmaString
public final void synpred125_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:546:4: ( SIZEOF LPAREN type_name RPAREN )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:546:4: SIZEOF LPAREN type_name RPAREN
{
match(input,SIZEOF,FOLLOW_SIZEOF_in_synpred125_PragmaString3645); if (state.failed) return;
match(input,LPAREN,FOLLOW_LPAREN_in_synpred125_PragmaString3647); if (state.failed) return;
pushFollow(FOLLOW_type_name_in_synpred125_PragmaString3649);
type_name();
state._fsp--;
if (state.failed) return;
match(input,RPAREN,FOLLOW_RPAREN_in_synpred125_PragmaString3651); if (state.failed) return;
}
}
// $ANTLR end synpred125_PragmaString
// $ANTLR start synpred126_PragmaString
public final void synpred126_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:547:4: ( SIZEOF unary_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:547:4: SIZEOF unary_expr
{
match(input,SIZEOF,FOLLOW_SIZEOF_in_synpred126_PragmaString3666); if (state.failed) return;
pushFollow(FOLLOW_unary_expr_in_synpred126_PragmaString3668);
unary_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred126_PragmaString
// $ANTLR start synpred131_PragmaString
public final void synpred131_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:566:17: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:566:17: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred131_PragmaString3815);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred131_PragmaString
// $ANTLR start synpred132_PragmaString
public final void synpred132_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:571:19: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:571:19: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred132_PragmaString3844);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred132_PragmaString
// $ANTLR start synpred134_PragmaString
public final void synpred134_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:573:21: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:573:21: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred134_PragmaString3869);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred134_PragmaString
// $ANTLR start synpred136_PragmaString
public final void synpred136_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:575:25: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:575:25: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred136_PragmaString3897);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred136_PragmaString
// $ANTLR start synpred138_PragmaString
public final void synpred138_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:577:19: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:577:19: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred138_PragmaString3920);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred138_PragmaString
// $ANTLR start synpred140_PragmaString
public final void synpred140_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:579:33: ( postfix_expr_suffix )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:579:33: postfix_expr_suffix
{
pushFollow(FOLLOW_postfix_expr_suffix_in_synpred140_PragmaString3947);
postfix_expr_suffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred140_PragmaString
// $ANTLR start synpred142_PragmaString
public final void synpred142_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:585:4: ( evaluated_function_expr )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:585:4: evaluated_function_expr
{
pushFollow(FOLLOW_evaluated_function_expr_in_synpred142_PragmaString3993);
evaluated_function_expr();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred142_PragmaString
// $ANTLR start synpred144_PragmaString
public final void synpred144_PragmaString_fragment() throws RecognitionException {
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:587:4: ( IDENTIFIER )
// /home/svn/work/tass/1.2/r2549/src/edu/udel/cis/vsl/tass/ast/impl/pragmaParser/PragmaString.g:587:4: IDENTIFIER
{
match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred144_PragmaString4025); if (state.failed) return;
}
}
// $ANTLR end synpred144_PragmaString
// Delegated rules
public final boolean synpred131_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred131_PragmaString_fragment(); // can never throw exception
} catch (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_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred71_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred89_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred89_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred62_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred62_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred142_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred142_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred63_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred63_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred122_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred122_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred76_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred76_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred126_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred126_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred125_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred125_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred66_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred66_PragmaString_fragment(); // can never throw exception
} catch (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_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred100_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred140_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred140_PragmaString_fragment(); // can never throw exception
} catch (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_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred132_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred93_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred93_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred78_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred78_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred65_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred65_PragmaString_fragment(); // can never throw exception
} catch (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_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred77_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred134_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred134_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred80_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred80_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred144_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred144_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred21_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred21_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred24_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred24_PragmaString_fragment(); // can never throw exception
} catch (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_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred138_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred114_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred114_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred136_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred136_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred112_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred112_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred95_PragmaString() {
state.backtracking++;
int start = input.mark();
try {
synpred95_PragmaString_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public static final BitSet FOLLOW_PRAGMA_in_pragma418 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_TASS_in_pragma421 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000000L,0x0000800000000000L});
public static final BitSet FOLLOW_function_in_pragma423 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_pragma432 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_TASS_in_pragma435 = new BitSet(new long[]{0x0040000140210100L,0x208112300C06420CL,0x0805142432260020L});
public static final BitSet FOLLOW_statement_in_pragma437 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRAGMA_in_pragma447 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_TASS_in_pragma450 = new BitSet(new long[]{0x0000000000000000L,0x8000000400000000L,0x0010000080000000L});
public static final BitSet FOLLOW_prefix_in_pragma452 = new BitSet(new long[]{0x0000000024000002L,0x0000100804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_LCURLY_in_pragma455 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_pragma457 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_RCURLY_in_pragma459 = new BitSet(new long[]{0x0000000024000002L,0x0000000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_type_name_in_pragma464 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_pragma466 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SYSTEM_in_function497 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declarator_in_function499 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_function501 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_function503 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000800000L});
public static final BitSet FOLLOW_argument_list_in_function505 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_function508 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_function510 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SYSTEM_in_function532 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
public static final BitSet FOLLOW_GUARD_in_function534 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_function536 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declarator_in_function538 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_function540 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_function542 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000800000L});
public static final BitSet FOLLOW_argument_list_in_function544 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_function547 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_function549 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ABSTRACT_in_function575 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_CONTINUOUS_in_function577 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_LPAREN_in_function580 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_INT_LITERAL_in_function582 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_function584 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declarator_in_function588 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_function590 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_function592 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000800000L});
public static final BitSet FOLLOW_argument_list_in_function594 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_function597 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_function599 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ABSTRACT_in_function626 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declarator_in_function628 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_function630 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_function632 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000800000L});
public static final BitSet FOLLOW_argument_list_in_function634 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_function637 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_function639 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ABSTRACT_in_function665 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_SMOOTH_in_function667 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declarator_in_function669 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_function671 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_function673 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000800000L});
public static final BitSet FOLLOW_argument_list_in_function675 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_function678 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_function680 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_argument_in_argument_list715 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_COMMA_in_argument_list718 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_argument_in_argument_list720 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_type_specifier_in_argument749 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declarator_in_argument751 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_declarator_in_declaration_unit773 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_ASSIGN_in_declaration_unit776 = new BitSet(new long[]{0x0040000040000100L,0x208110100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_initializer_in_declaration_unit778 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_specifier_in_declaration800 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declaration_unit_in_declaration802 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_declaration805 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declaration_unit_in_declaration807 = new BitSet(new long[]{0x0000001000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_declaration811 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_prefix_in_declaration845 = new BitSet(new long[]{0x0000040024000000L,0x0000108804010002L,0x02000A0000000000L});
public static final BitSet FOLLOW_suffix_in_declaration848 = new BitSet(new long[]{0x0000040024000000L,0x0000000804010002L,0x02000A0000000000L});
public static final BitSet FOLLOW_declaration_body_in_declaration851 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_declaration853 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INPUT_in_declaration876 = new BitSet(new long[]{0x0000000024000000L,0x0000108804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_suffix_in_declaration878 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_type_specifier_in_declaration881 = new BitSet(new long[]{0x0020000000000000L});
public static final BitSet FOLLOW_DEFINE_in_declaration883 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_declaration885 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_declaration887 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ignored_in_declaration_body967 = new BitSet(new long[]{0x0000040024000000L,0x0000000804010002L,0x02000A0000000000L});
public static final BitSet FOLLOW_type_specifier_in_declaration_body970 = new BitSet(new long[]{0x0000000024000002L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declarator_in_declaration_body973 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_ASSIGN_in_declaration_body976 = new BitSet(new long[]{0x0040000040000100L,0x208110100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_initializer_in_declaration_body978 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MULTI_in_pointer1009 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_declarator1020 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_direct_declarator_in_declarator1023 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_specifier_in_direct_declarator1047 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
public static final BitSet FOLLOW_declarator_suffix_in_direct_declarator1049 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
public static final BitSet FOLLOW_LPAREN_in_direct_declarator1068 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declarator_in_direct_declarator1070 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_direct_declarator1072 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_declarator_suffix_in_direct_declarator1074 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
public static final BitSet FOLLOW_LSQUARE_in_declarator_suffix1101 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142401020020L});
public static final BitSet FOLLOW_expr_in_declarator_suffix1103 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_RSQUARE_in_declarator_suffix1106 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_initializer1130 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_initializer1146 = new BitSet(new long[]{0x0040000040000100L,0x208310100404420DL,0x0005142400030020L});
public static final BitSet FOLLOW_initializer_list_in_initializer1148 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_RCURLY_in_initializer1151 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designation_in_initializer_list1179 = new BitSet(new long[]{0x0040000040000100L,0x208110100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_initializer_in_initializer_list1182 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_COMMA_in_initializer_list1185 = new BitSet(new long[]{0x0040000040000100L,0x208310100404420DL,0x0005142400020020L});
public static final BitSet FOLLOW_initializer_list_in_initializer_list1187 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designator_list_in_designation1217 = new BitSet(new long[]{0x0000000000040000L});
public static final BitSet FOLLOW_ASSIGN_in_designation1219 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_designator_in_designator_list1241 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000001L});
public static final BitSet FOLLOW_LSQUARE_in_designator1262 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_ifThenElse_expr_in_designator1264 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_RSQUARE_in_designator1266 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_designator1282 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_designator1284 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_suffix1306 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_suffix1308 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_RCURLY_in_suffix1310 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
public static final BitSet FOLLOW_IS_in_suffix1313 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_suffix1315 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IS_in_suffix1337 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_suffix1339 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simple_type_in_type_specifier1379 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRUCT_in_type_specifier1386 = new BitSet(new long[]{0x0000000000000000L,0x0000100004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_type_specifier1388 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_LCURLY_in_type_specifier1391 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000010000L});
public static final BitSet FOLLOW_field_declaration_in_type_specifier1393 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000010000L});
public static final BitSet FOLLOW_RCURLY_in_type_specifier1396 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRUCT_in_type_specifier1417 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_type_specifier1419 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_type_specifier1436 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_specifier_in_type_name1501 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
public static final BitSet FOLLOW_abstract_declarator_in_type_name1503 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pointer_in_abstract_declarator1517 = new BitSet(new long[]{0x0000000000000002L,0x0083000000000000L});
public static final BitSet FOLLOW_direct_abstract_declarator_in_abstract_declarator1520 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
public static final BitSet FOLLOW_declarator_suffix_in_abstract_declarator1523 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
public static final BitSet FOLLOW_LPAREN_in_direct_abstract_declarator1552 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_abstract_declarator_in_direct_abstract_declarator1554 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_direct_abstract_declarator1556 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_specifier_in_field_declaration1581 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declarator_in_field_declaration1583 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_field_declaration1585 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_statement_list1612 = new BitSet(new long[]{0x0040000140210102L,0x208112300C06420CL,0x0805142432260020L});
public static final BitSet FOLLOW_assert_statement_in_statement1637 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_collective_assert_statement_in_statement1650 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_joint_assert_statement_in_statement1663 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_invariant_statement_in_statement1676 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_collective_invariant_statement_in_statement1689 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_joint_invariant_statement_in_statement1702 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assume_statement_in_statement1715 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_compound_statement_in_statement1731 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_condition_statement_in_statement1744 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_select_statement_in_statement1757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_iterative_statement_in_statement1770 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_return_statement_in_statement1783 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_empty_statement_in_statement1796 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_send_statement_in_statement1809 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_recv_statement_in_statement1822 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_call_statement_in_statement1835 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_statement_in_statement1848 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_allocate_statement_in_statement1861 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSUME_in_assume_statement1882 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_assume_statement1884 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_assume_statement1886 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSERT_in_assert_statement1912 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_assert_statement1914 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_assert_statement1916 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSERT_in_assert_statement1933 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_assert_statement1935 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_assert_statement1937 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000040000000000L});
public static final BitSet FOLLOW_STRING_LITERAL_in_assert_statement1939 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_assert_statement1941 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLLECTIVE_in_collective_assert_statement1966 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSERT_in_collective_assert_statement1968 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_collective_assert_statement1970 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_collective_assert_statement1972 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_JOINT_in_joint_assert_statement1993 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_ASSERT_in_joint_assert_statement1995 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_joint_assert_statement1997 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_joint_assert_statement1999 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_joint_assert_statement2001 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INVARIANT_in_invariant_statement2022 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_invariant_statement2024 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_invariant_statement2026 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_invariant_statement2028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLLECTIVE_in_collective_invariant_statement2049 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_INVARIANT_in_collective_invariant_statement2051 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_collective_invariant_statement2053 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_collective_invariant_statement2055 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_collective_invariant_statement2057 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_JOINT_in_joint_invariant_statement2078 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_INVARIANT_in_joint_invariant_statement2080 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_joint_invariant_statement2082 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_joint_invariant_statement2084 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_joint_invariant_statement2086 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_compound_statement2111 = new BitSet(new long[]{0x0040000140210100L,0x208112300C06420CL,0x0805142432270020L});
public static final BitSet FOLLOW_statement_list_in_compound_statement2113 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_RCURLY_in_compound_statement2116 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_condition_statement2143 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_condition_statement2145 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_condition_statement2147 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_condition_statement2149 = new BitSet(new long[]{0x0040000140210100L,0x208112300C06420CL,0x0805142432260020L});
public static final BitSet FOLLOW_statement_in_condition_statement2151 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
public static final BitSet FOLLOW_ELSE_in_condition_statement2154 = new BitSet(new long[]{0x0040000140210100L,0x208112300C06420CL,0x0805142432260020L});
public static final BitSet FOLLOW_statement_in_condition_statement2156 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SELECT_in_select_statement2195 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_LCURLY_in_select_statement2197 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L});
public static final BitSet FOLLOW_choice_in_select_statement2199 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000010000L});
public static final BitSet FOLLOW_RCURLY_in_select_statement2202 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHEN_in_choice2224 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_choice2226 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_choice2228 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_choice2230 = new BitSet(new long[]{0x0040000140210100L,0x208112300C06420CL,0x0805142432260020L});
public static final BitSet FOLLOW_statement_in_choice2232 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_correspondence_annotation_in_iterative_statement2261 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L,0x0800000000000000L});
public static final BitSet FOLLOW_loop_statement_in_iterative_statement2265 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHILE_in_loop_statement2290 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_loop_statement2292 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_loop_statement2294 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_loop_statement2296 = new BitSet(new long[]{0x0040000140210100L,0x208112300C06420CL,0x0805142432260020L});
public static final BitSet FOLLOW_statement_in_loop_statement2298 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_loop_statement2321 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_loop_statement2323 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142410020020L});
public static final BitSet FOLLOW_expr_in_loop_statement2327 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_loop_statement2330 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142410020020L});
public static final BitSet FOLLOW_expr_in_loop_statement2334 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_loop_statement2337 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400820020L});
public static final BitSet FOLLOW_expr_in_loop_statement2341 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_loop_statement2344 = new BitSet(new long[]{0x0040000140210100L,0x208112300C06420CL,0x0805142432260020L});
public static final BitSet FOLLOW_statement_in_loop_statement2346 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_correspondence_annotation2388 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_COLON_in_correspondence_annotation2390 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_PRAGMA_in_correspondence_annotation2393 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_TASS_in_correspondence_annotation2395 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_JOINT_in_correspondence_annotation2397 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_INVARIANT_in_correspondence_annotation2399 = new BitSet(new long[]{0x0000000000800000L});
public static final BitSet FOLLOW_AT_in_correspondence_annotation2401 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_correspondence_annotation2403 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_LCURLY_in_correspondence_annotation2405 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_skew_factor_in_correspondence_annotation2407 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_correspondence_annotation2410 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_RCURLY_in_correspondence_annotation2412 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_correspondence_annotation2441 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_COLON_in_correspondence_annotation2443 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_PRAGMA_in_correspondence_annotation2446 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_TASS_in_correspondence_annotation2448 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_INVARIANT_in_correspondence_annotation2450 = new BitSet(new long[]{0x0000000000800000L});
public static final BitSet FOLLOW_AT_in_correspondence_annotation2452 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_correspondence_annotation2454 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_LCURLY_in_correspondence_annotation2456 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_skew_factor_in_correspondence_annotation2458 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_correspondence_annotation2461 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_RCURLY_in_correspondence_annotation2463 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INT_LITERAL_in_skew_factor2499 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_COLON_in_skew_factor2501 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_INT_LITERAL_in_skew_factor2503 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RETURN_in_return_statement2525 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142410020020L});
public static final BitSet FOLLOW_expr_in_return_statement2527 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_return_statement2530 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEMI_in_empty_statement2555 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEND_in_send_statement2575 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_send_statement2577 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_send_statement2581 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_send_statement2583 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_send_statement2587 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_send_statement2589 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_send_statement2593 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_send_statement2595 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_send_statement2597 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECV_in_recv_statement2630 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_recv_statement2632 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_recv_statement2636 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_recv_statement2638 = new BitSet(new long[]{0x0040000040001100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_comm_expr_in_recv_statement2642 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_recv_statement2644 = new BitSet(new long[]{0x0040000040001100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_comm_expr_in_recv_statement2648 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_recv_statement2650 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_recv_statement2652 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECV_in_recv_statement2678 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_recv_statement2680 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_recv_statement2684 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_recv_statement2686 = new BitSet(new long[]{0x0040000040001100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_comm_expr_in_recv_statement2690 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_recv_statement2692 = new BitSet(new long[]{0x0040000040001100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_comm_expr_in_recv_statement2696 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_recv_statement2698 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_unary_expr_in_recv_statement2704 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_recv_statement2706 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_recv_statement2708 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_comm_expr2744 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_wildcard_expr_in_comm_expr2757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ANY_in_wildcard_expr2777 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_wildcard_expr2779 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_wildcard_expr2781 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_wildcard_expr2783 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_expr_in_call_statement2811 = new BitSet(new long[]{0x0000000000040000L});
public static final BitSet FOLLOW_ASSIGN_in_call_statement2813 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_call_statement2817 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_call_statement2819 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400820020L});
public static final BitSet FOLLOW_parameter_list_in_call_statement2821 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_call_statement2824 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_call_statement2826 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_expr_in_allocate_statement2859 = new BitSet(new long[]{0x0000000000040000L});
public static final BitSet FOLLOW_ASSIGN_in_allocate_statement2861 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_allocate_statement2863 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_type_name_in_allocate_statement2865 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_MULTI_in_allocate_statement2867 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_allocate_statement2869 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
public static final BitSet FOLLOW_MALLOC_in_allocate_statement2871 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_unary_expr_in_allocate_statement2873 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_allocate_statement2875 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parameter_in_parameter_list2902 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_COMMA_in_parameter_list2905 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_parameter_in_parameter_list2907 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_expr_in_parameter2929 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_partial_in_partial_list2948 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_COMMA_in_partial_list2951 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_partial_in_partial_list2953 = new BitSet(new long[]{0x0000001000000002L});
public static final BitSet FOLLOW_LCURLY_in_partial2975 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_partial2977 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_partial2979 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_INT_LITERAL_in_partial2981 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_RCURLY_in_partial2983 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_expr_statement3004 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_expr_statement3006 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assign_expr_in_expr3030 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifier_expr_in_expr3043 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_expr_in_assign_expr3063 = new BitSet(new long[]{0x8000000000040000L,0x0240000000000000L,0x0000200000000040L});
public static final BitSet FOLLOW_assign_operator_in_assign_expr3065 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_assign_expr_in_assign_expr3067 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ifThenElse_expr_in_assign_expr3087 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logical_or_expr_in_ifThenElse_expr3110 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_QMARK_in_ifThenElse_expr3113 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_ifThenElse_expr3117 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_COLON_in_ifThenElse_expr3119 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_ifThenElse_expr3123 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifier_in_quantifier_expr3157 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_LCURLY_in_quantifier_expr3159 = new BitSet(new long[]{0x0000000024000000L,0x0000000800010002L,0x0200000000000000L});
public static final BitSet FOLLOW_simple_type_in_quantifier_expr3161 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_quantifier_expr3163 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_RCURLY_in_quantifier_expr3165 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_quantifier_expr3167 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_quantifier_in_quantifier_expr3188 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_LCURLY_in_quantifier_expr3190 = new BitSet(new long[]{0x0000000024000000L,0x0000000800010002L,0x0200000000000000L});
public static final BitSet FOLLOW_simple_type_in_quantifier_expr3192 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_quantifier_expr3194 = new BitSet(new long[]{0x0000000001000000L});
public static final BitSet FOLLOW_BAR_in_quantifier_expr3196 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_logical_or_expr_in_quantifier_expr3198 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_RCURLY_in_quantifier_expr3200 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_quantifier_expr3202 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FORALL_in_quantifier3234 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXISTS_in_quantifier3247 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_logical_and_expr_in_logical_or_expr3266 = new BitSet(new long[]{0x0000000000000002L,0x4000000000000000L});
public static final BitSet FOLLOW_OR_in_logical_or_expr3269 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_logical_and_expr_in_logical_or_expr3271 = new BitSet(new long[]{0x0000000000000002L,0x4000000000000000L});
public static final BitSet FOLLOW_equality_expr_in_logical_and_expr3302 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_AND_in_logical_and_expr3305 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_equality_expr_in_logical_and_expr3307 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_relational_expr_in_equality_expr3338 = new BitSet(new long[]{0x0000000000000002L,0x0800000000000040L});
public static final BitSet FOLLOW_equality_operator_in_equality_expr3341 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_relational_expr_in_equality_expr3343 = new BitSet(new long[]{0x0000000000000002L,0x0800000000000040L});
public static final BitSet FOLLOW_additive_expr_in_relational_expr3390 = new BitSet(new long[]{0x0000000000000002L,0x000C000001800000L});
public static final BitSet FOLLOW_relational_operator_in_relational_expr3393 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_additive_expr_in_relational_expr3395 = new BitSet(new long[]{0x0000000000000002L,0x000C000001800000L});
public static final BitSet FOLLOW_multi_expr_in_additive_expr3452 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000100000000020L});
public static final BitSet FOLLOW_additive_operator_in_additive_expr3455 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_multi_expr_in_additive_expr3457 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000100000000020L});
public static final BitSet FOLLOW_unary_expr_in_multi_expr3504 = new BitSet(new long[]{0x4000000000000002L,0x00A0000000000000L});
public static final BitSet FOLLOW_multi_operator_in_multi_expr3507 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_unary_expr_in_multi_expr3509 = new BitSet(new long[]{0x4000000000000002L,0x00A0000000000000L});
public static final BitSet FOLLOW_postfix_expr_in_unary_expr3598 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_operator_in_unary_expr3611 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_unary_expr_in_unary_expr3613 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_self_change_op_in_unary_expr3628 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_unary_expr_in_unary_expr3630 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unary_expr3645 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_unary_expr3647 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_type_name_in_unary_expr3649 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_unary_expr3651 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_unary_expr3666 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_unary_expr_in_unary_expr3668 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_unary_expr3683 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_type_name_in_unary_expr3685 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_unary_expr3687 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_unary_expr_in_unary_expr3689 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_unary_operator3714 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SUB_in_unary_operator3727 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOT_in_unary_operator3740 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MULTI_in_unary_operator3753 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ADDR_OF_in_unary_operator3766 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SPEC_in_spec_expr3787 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_DOT_in_spec_expr3789 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_spec_expr3791 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primary_expr_in_postfix_expr3813 = new BitSet(new long[]{0x0000000000808002L,0x000200000000000DL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr3815 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_postfix_expr_suffix3840 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfix_expr_suffix3842 = new BitSet(new long[]{0x0000000000808002L,0x000200000000000DL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix3844 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ARROW_in_postfix_expr_suffix3865 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfix_expr_suffix3867 = new BitSet(new long[]{0x0000000000808002L,0x000200000000000DL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix3869 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LSQUARE_in_postfix_expr_suffix3891 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_postfix_expr_suffix3893 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_RSQUARE_in_postfix_expr_suffix3895 = new BitSet(new long[]{0x0000000000808002L,0x000200000000000DL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix3897 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_self_change_op_in_postfix_expr_suffix3918 = new BitSet(new long[]{0x0000000000808002L,0x000200000000000DL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix3920 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_in_postfix_expr_suffix3939 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfix_expr_suffix3941 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_DOT_in_postfix_expr_suffix3943 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_postfix_expr_suffix3945 = new BitSet(new long[]{0x0000000000808002L,0x000200000000000DL});
public static final BitSet FOLLOW_postfix_expr_suffix_in_postfix_expr_suffix3947 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constant_in_primary_expr3980 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_evaluated_function_expr_in_primary_expr3993 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_primary_expr4006 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_primary_expr4008 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_primary_expr4010 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_primary_expr4025 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_spec_expr_in_primary_expr4038 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_derivative_expr_in_primary_expr4051 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_evaluated_function_expr4071 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_evaluated_function_expr4073 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400820020L});
public static final BitSet FOLLOW_parameter_list_in_evaluated_function_expr4075 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_evaluated_function_expr4078 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DERIVATIVE_in_derivative_expr4106 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_LSQUARE_in_derivative_expr4108 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_derivative_expr4110 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_derivative_expr4112 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_partial_list_in_derivative_expr4114 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_RSQUARE_in_derivative_expr4116 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_derivative_expr4118 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400820020L});
public static final BitSet FOLLOW_parameter_list_in_derivative_expr4120 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_derivative_expr4123 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_PLUS_in_self_change_op4152 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_SUB_in_self_change_op4165 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRUE_in_constant4186 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FALSE_in_constant4199 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INT_LITERAL_in_constant4213 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_REAL_LITERAL_in_constant4226 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHAR_LITERAL_in_constant4239 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_LITERAL_in_constant4252 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SYS_VAR_in_constant4265 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_specifier_in_synpred21_PragmaString800 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declaration_unit_in_synpred21_PragmaString802 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred21_PragmaString805 = new BitSet(new long[]{0x0000000024000000L,0x0081000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_declaration_unit_in_synpred21_PragmaString807 = new BitSet(new long[]{0x0000001000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_synpred21_PragmaString811 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_prefix_in_synpred24_PragmaString845 = new BitSet(new long[]{0x0000040024000000L,0x0000108804010002L,0x02000A0000000000L});
public static final BitSet FOLLOW_suffix_in_synpred24_PragmaString848 = new BitSet(new long[]{0x0000040024000000L,0x0000000804010002L,0x02000A0000000000L});
public static final BitSet FOLLOW_declaration_body_in_synpred24_PragmaString851 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_synpred24_PragmaString853 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_collective_assert_statement_in_synpred62_PragmaString1650 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_joint_assert_statement_in_synpred63_PragmaString1663 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_collective_invariant_statement_in_synpred65_PragmaString1689 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_joint_invariant_statement_in_synpred66_PragmaString1702 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_iterative_statement_in_synpred71_PragmaString1770 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_call_statement_in_synpred76_PragmaString1835 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_statement_in_synpred77_PragmaString1848 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSERT_in_synpred78_PragmaString1912 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_synpred78_PragmaString1914 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_synpred78_PragmaString1916 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELSE_in_synpred80_PragmaString2154 = new BitSet(new long[]{0x0040000140210100L,0x208112300C06420CL,0x0805142432260020L});
public static final BitSet FOLLOW_statement_in_synpred80_PragmaString2156 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_synpred89_PragmaString2388 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_COLON_in_synpred89_PragmaString2390 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
public static final BitSet FOLLOW_PRAGMA_in_synpred89_PragmaString2393 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
public static final BitSet FOLLOW_TASS_in_synpred89_PragmaString2395 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_JOINT_in_synpred89_PragmaString2397 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_INVARIANT_in_synpred89_PragmaString2399 = new BitSet(new long[]{0x0000000000800000L});
public static final BitSet FOLLOW_AT_in_synpred89_PragmaString2401 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
public static final BitSet FOLLOW_IDENTIFIER_in_synpred89_PragmaString2403 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_LCURLY_in_synpred89_PragmaString2405 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_skew_factor_in_synpred89_PragmaString2407 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_synpred89_PragmaString2410 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_RCURLY_in_synpred89_PragmaString2412 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RECV_in_synpred93_PragmaString2630 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred93_PragmaString2632 = new BitSet(new long[]{0x0040000040000100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_expr_in_synpred93_PragmaString2636 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred93_PragmaString2638 = new BitSet(new long[]{0x0040000040001100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_comm_expr_in_synpred93_PragmaString2642 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred93_PragmaString2644 = new BitSet(new long[]{0x0040000040001100L,0x208100100404420CL,0x0005142400020020L});
public static final BitSet FOLLOW_comm_expr_in_synpred93_PragmaString2648 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_synpred93_PragmaString2650 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000010000000L});
public static final BitSet FOLLOW_SEMI_in_synpred93_PragmaString2652 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_expr_in_synpred95_PragmaString2811 = new BitSet(new long[]{0x0000000000040000L});
public static final BitSet FOLLOW_ASSIGN_in_synpred95_PragmaString2813 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unary_expr_in_synpred100_PragmaString3063 = new BitSet(new long[]{0x8000000000040000L,0x0240000000000000L,0x0000200000000040L});
public static final BitSet FOLLOW_assign_operator_in_synpred100_PragmaString3065 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_assign_expr_in_synpred100_PragmaString3067 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_additive_operator_in_synpred112_PragmaString3455 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_multi_expr_in_synpred112_PragmaString3457 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_multi_operator_in_synpred114_PragmaString3507 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_unary_expr_in_synpred114_PragmaString3509 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_in_synpred122_PragmaString3598 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_synpred125_PragmaString3645 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
public static final BitSet FOLLOW_LPAREN_in_synpred125_PragmaString3647 = new BitSet(new long[]{0x0000000024000000L,0x0000000804010002L,0x0200080000000000L});
public static final BitSet FOLLOW_type_name_in_synpred125_PragmaString3649 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
public static final BitSet FOLLOW_RPAREN_in_synpred125_PragmaString3651 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SIZEOF_in_synpred126_PragmaString3666 = new BitSet(new long[]{0x0040000040000100L,0x208100100400400CL,0x0005142400020020L});
public static final BitSet FOLLOW_unary_expr_in_synpred126_PragmaString3668 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred131_PragmaString3815 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred132_PragmaString3844 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred134_PragmaString3869 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred136_PragmaString3897 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred138_PragmaString3920 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_postfix_expr_suffix_in_synpred140_PragmaString3947 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_evaluated_function_expr_in_synpred142_PragmaString3993 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IDENTIFIER_in_synpred144_PragmaString4025 = new BitSet(new long[]{0x0000000000000002L});
}