diff --git a/tool/resources/org/antlr/v4/tool/templates/messages/languages/en.stg b/tool/resources/org/antlr/v4/tool/templates/messages/languages/en.stg index 3f0abab0c..43896c1af 100644 --- a/tool/resources/org/antlr/v4/tool/templates/messages/languages/en.stg +++ b/tool/resources/org/antlr/v4/tool/templates/messages/languages/en.stg @@ -93,7 +93,7 @@ NO_VIABLE_DFA_ALT(arg,arg2) ::= */ // GRAMMAR ERRORS -SYNTAX_ERROR(arg) ::= "syntax error: " +SYNTAX_ERROR(arg) ::= "" RULE_REDEFINITION(arg) ::= "rule redefinition" SCOPE_REDEFINITION(arg) ::= diff --git a/tool/src/org/antlr/v4/Tool.java b/tool/src/org/antlr/v4/Tool.java index 2a7f9f978..93394723c 100644 --- a/tool/src/org/antlr/v4/Tool.java +++ b/tool/src/org/antlr/v4/Tool.java @@ -291,7 +291,7 @@ public class Tool { } } - public GrammarRootAST load(String fileName) { + public GrammarAST load(String fileName) { ANTLRFileStream in = null; try { in = new ANTLRFileStream(fileName); @@ -302,18 +302,18 @@ public class Tool { return load(in); } - public GrammarRootAST loadFromString(String grammar) { + public GrammarAST loadFromString(String grammar) { return load(new ANTLRStringStream(grammar)); } - public GrammarRootAST load(CharStream in) { + public GrammarAST load(CharStream in) { try { ANTLRLexer lexer = new ANTLRLexer(in); CommonTokenStream tokens = new CommonTokenStream(lexer); ANTLRParser p = new ANTLRParser(tokens); p.setTreeAdaptor(new GrammarASTAdaptor(in)); ParserRuleReturnScope r = p.grammarSpec(); - return (GrammarRootAST)r.getTree(); + return (GrammarAST)r.getTree(); } catch (RecognitionException re) { // TODO: do we gen errors now? @@ -324,8 +324,10 @@ public class Tool { public void process() { // testing parser - GrammarRootAST ast = load(grammarFileNames.get(0)); + GrammarAST t = load(grammarFileNames.get(0)); GrammarRootAST lexerAST = null; + if ( t instanceof GrammarASTErrorNode ) return; // came back as error node + GrammarRootAST ast = (GrammarRootAST)t; if ( ast.grammarType==ANTLRParser.COMBINED ) { lexerAST = extractImplicitLexer(ast); // alters ast } diff --git a/tool/src/org/antlr/v4/analysis/Label.java b/tool/src/org/antlr/v4/analysis/Label.java new file mode 100644 index 000000000..3cd8a37ba --- /dev/null +++ b/tool/src/org/antlr/v4/analysis/Label.java @@ -0,0 +1,41 @@ +package org.antlr.v4.analysis; + +public class Label implements Comparable, Cloneable { + public static final int INVALID = -7; + + public static final int ACTION = -6; + + public static final int EPSILON = -5; + + public static final String EPSILON_STR = ""; + + /** label is a semantic predicate; implies label is epsilon also */ + public static final int SEMPRED = -4; + + /** label is a set of tokens or char */ + public static final int SET = -3; + + /** End of Token is like EOF for lexer rules. It implies that no more + * characters are available and that NFA conversion should terminate + * for this path. For example + * + * A : 'a' 'b' | 'a' ; + * + * yields a DFA predictor: + * + * o-a->o-b->1 predict alt 1 + * | + * |-EOT->o predict alt 2 + * + * To generate code for EOT, treat it as the "default" path, which + * implies there is no way to mismatch a char for the state from + * which the EOT emanates. + */ + public static final int EOT = -2; + + public static final int EOF = -1; + + public int compareTo(Object o) { + return 0; + } +} \ No newline at end of file diff --git a/tool/src/org/antlr/v4/parse/ANTLRLexer.java b/tool/src/org/antlr/v4/parse/ANTLRLexer.java index 86ade9265..806ecba16 100644 --- a/tool/src/org/antlr/v4/parse/ANTLRLexer.java +++ b/tool/src/org/antlr/v4/parse/ANTLRLexer.java @@ -1,4 +1,4 @@ -// $ANTLR ${project.version} ${buildNumber} ANTLRLexer.g 2010-02-16 17:54:23 +// $ANTLR ${project.version} ${buildNumber} ANTLRLexer.g 2010-02-19 17:45:05 /* [The "BSD licence"] @@ -263,7 +263,7 @@ public class ANTLRLexer extends Lexer { if ( (( input.LA(2) != '/')) ) { alt3=1; } - else if ( ((( true )||(( true )&&( !(input.LA(1) == '*' && input.LA(2) == '/') )))) ) { + else if ( (((( true )&&( !(input.LA(1) == '*' && input.LA(2) == '/') ))||( true ))) ) { alt3=2; } else { diff --git a/tool/src/org/antlr/v4/parse/ANTLRParser.g b/tool/src/org/antlr/v4/parse/ANTLRParser.g index 49013d2e2..6ff639feb 100644 --- a/tool/src/org/antlr/v4/parse/ANTLRParser.g +++ b/tool/src/org/antlr/v4/parse/ANTLRParser.g @@ -73,7 +73,6 @@ tokens { EPSILON; ALT; ALTLIST; - RESULT; ID; ARG; ARGLIST; @@ -132,6 +131,22 @@ package org.antlr.v4.parse; import org.antlr.v4.tool.*; } +@members { +Stack paraphrases = new Stack(); +public void displayRecognitionError(String[] tokenNames, + RecognitionException e) +{ + String msg = ErrorManager.getParserErrorMessage(this, e); + if ( paraphrases.size()>0 ) { + String paraphrase = (String)paraphrases.peek(); + msg = msg+" while "+paraphrase; + } + List stack = getRuleInvocationStack(e, this.getClass().getName()); + msg += ", rule stack = "+stack; + ErrorManager.syntaxError(ErrorType.SYNTAX_ERROR, getSourceName(), e.token, e, msg); +} +} + // The main entry point for parsing a V3 grammar from top to toe. This is // the method call from whence to obtain the AST for the parse. // @@ -158,7 +173,7 @@ grammarSpec // constrained by some arbitrary order of declarations that nobody // can remember. In the next phase of the parse, we verify that these // constructs are valid, not repeated and so on. - prequelConstruct* + sync ( prequelConstruct sync )* // We should now see at least one ANTLR EBNF style rule // declaration. If the rules are missing we will let the @@ -351,13 +366,25 @@ actionScopeName ; rules - : rule* + : sync (rule sync)* // Rewrite with an enclosing node as this is good for counting // the number of rules and an easy marker for the walker to detect // that there are no rules. ->^(RULES rule*) ; +sync +@init { + BitSet followSet = computeErrorRecoverySet(); + if ( input.LA(1)!=Token.EOF && !followSet.member(input.LA(1)) ) { + reportError(new NoViableAltException("",0,0,input)); + beginResync(); + consumeUntil(input, followSet); + endResync(); + } +} : + ; + // The specification of an EBNF rule in ANTLR style, with all the // rule level parameters, declarations, actions, rewrite specs and so // on. @@ -368,6 +395,8 @@ rules // particular functional element is not valid in the context of the // grammar type, such as using returns in lexer rules and so on. rule +@init { paraphrases.push("matching a rule"); } +@after { paraphrases.pop(); } : // A rule may start with an optional documentation comment DOC_COMMENT? @@ -406,20 +435,20 @@ rule // context free and just accept anything that is a syntactically correct // construct. // - rulePrequel* + rulePrequels COLON // The rule is, at the top level, just a list of alts, with // finer grained structure defined within the alts. - altListAsBlock + ruleBlock SEMI exceptionGroup -> ^( RULE id DOC_COMMENT? ruleModifiers? ARG_ACTION? - ruleReturns? rulePrequel* altListAsBlock exceptionGroup* + ruleReturns? rulePrequels? ruleBlock exceptionGroup* ) ; @@ -445,7 +474,13 @@ finallyClause : FINALLY ACTION -> ^(FINALLY ACTION) ; -// An individual rule level configuration as referenced by the ruleActions +rulePrequels +@init { paraphrases.push("matching rule preamble"); } +@after { paraphrases.pop(); } + : sync (rulePrequel sync)* -> rulePrequel* + ; + + // An individual rule level configuration as referenced by the ruleActions // rule above. // rulePrequel @@ -534,13 +569,19 @@ altList // can be processed by the generic BLOCK rule. Note that we // use a separate rule so that the BLOCK node has start and stop // boundaries set correctly by rule post processing of rewrites. -altListAsBlock +ruleBlock : altList -> ^(BLOCK altList) ; + catch [ResyncToEndOfRuleBlock e] { + // just resyncing; ignore error + retval.tree = (GrammarAST)adaptor.errorNode(input, retval.start, input.LT(-1), null); + } // An individual alt with an optional rewrite clause for the // elements of the alt. alternative +@init { paraphrases.push("matching alternative"); } +@after { paraphrases.pop(); } : elements ( rewrite -> ^(ALT_REWRITE elements rewrite) | -> elements @@ -554,6 +595,11 @@ elements ; element +@init { + paraphrases.push("looking for rule element"); + int m = input.mark(); +} +@after { paraphrases.pop(); } : labeledElement ( ebnfSuffix -> ^( ebnfSuffix ^(BLOCK ^(ALT labeledElement ) )) | -> labeledElement @@ -573,9 +619,79 @@ element | -> treeSpec ) ; - + catch [RecognitionException re] { + retval.tree = (GrammarAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + int ttype = input.get(input.range()).getType(); + // look for anything that really belongs at the start of the rule minus the initial ID + if ( ttype==COLON || ttype==RETURNS || ttype==CATCH || ttype==FINALLY || ttype==AT ) { + RecognitionException missingSemi = + new v4ParserException("unterminated rule (missing ';') detected at '"+ + input.LT(1).getText()+" "+input.LT(2).getText()+"'", input); + reportError(missingSemi); + if ( ttype==CATCH || ttype==FINALLY ) { + input.seek(input.range()); // ignore what's before rule trailer stuff + } + if ( ttype==RETURNS || ttype==AT ) { // scan back looking for ID of rule header + int p = input.index(); + Token t = input.get(p); + while ( t.getType()!=RULE_REF && t.getType()!=TOKEN_REF ) { + p--; + t = input.get(p); + } + input.seek(p); + } + throw new ResyncToEndOfRuleBlock(); // make sure it goes back to rule block level to recover + } + reportError(re); + recover(input,re); +/* + input.rewind(m); + final List subset = input.get(input.index(), input.range()); + System.out.println("failed to match as element: '"+subset); + CommonTokenStream ns = new CommonTokenStream( + new TokenSource() { + int i = 0; + public Token nextToken() { + if ( i>=subset.size() ) return Token.EOF_TOKEN; + return (Token)subset.get(i++); + } + public String getSourceName() { return null; } + }); + ANTLRParser errorParser = new ANTLRParser(ns); + errorParser.setTreeAdaptor(this.adaptor); + errorParser.element_errors(re); + retval.tree = (GrammarAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + */ + } + +/* +element_errors[RecognitionException origError] +options {backtrack=true;} +@init { +int m = input.mark(); +//state.backtracking++; +} +@after { +//state.backtracking--; +} + : ( DOC_COMMENT? ruleModifiers? id ARG_ACTION? ruleReturns? rulePrequel* COLON + | exceptionGroup + ) + {reportError(missingSemi); recover(input,null);} + ; + catch [RecognitionException ignore] { + input.rewind(m); + input.consume(); // kill at least one token + reportError(origError); + BitSet followSet = computeErrorRecoverySet(); + beginResync(); + consumeUntil(input, followSet); + endResync(); + } +*/ + labeledElement : id (ASSIGN^|PLUS_ASSIGN^) (atom|block) ; - + // Tree specifying alt // Tree grammars need to have alts that describe a tree structure they // will walk of course. Alts for trees therefore start with ^( XXX, which @@ -650,8 +766,7 @@ atom: range (ROOT^ | BANG^)? // Range x..y - only valid in lexers | ruleref | notSet (ROOT^|BANG^)? ; - - + catch [RecognitionException re] { throw re; } // pass upwards to element // -------------------- // Inverted element set @@ -704,7 +819,8 @@ ruleref | -> ^(RULE_REF ARG_ACTION?) ) ; - + catch [RecognitionException re] { throw re; } // pass upwards to element + // --------------- // Character Range // @@ -895,12 +1011,18 @@ rewriteTemplateArg // reference, hence this rule is used to pick up whichever it is and rewrite // it as a generic ID token. id +@init { paraphrases.push("looking for an identifier"); } +@after { paraphrases.pop(); } : RULE_REF ->ID[$RULE_REF] | TOKEN_REF ->ID[$TOKEN_REF] | TEMPLATE ->ID[$TEMPLATE] // keyword ; -qid : id (DOT id)* -> ID[$qid.start, $text] ; +qid +@init { paraphrases.push("looking for a qualified identifier"); } +@after { paraphrases.pop(); } + : id (DOT id)* -> ID[$qid.start, $text] + ; alternativeEntry : alternative EOF ; // allow gunit to call alternative and see EOF afterwards elementEntry : element EOF ; diff --git a/tool/src/org/antlr/v4/parse/ANTLRParser.java b/tool/src/org/antlr/v4/parse/ANTLRParser.java index c32b00b98..7e5c219a4 100644 --- a/tool/src/org/antlr/v4/parse/ANTLRParser.java +++ b/tool/src/org/antlr/v4/parse/ANTLRParser.java @@ -1,4 +1,4 @@ -// $ANTLR ${project.version} ${buildNumber} ANTLRParser.g 2010-02-16 17:54:25 +// $ANTLR ${project.version} ${buildNumber} ANTLRParser.g 2010-02-20 17:27:09 /* [The "BSD licence"] @@ -35,21 +35,22 @@ import org.antlr.v4.tool.*; import java.util.ArrayList; import java.util.List; +import java.util.Stack; /** The definitive ANTLR v3 grammar to parse ANTLR v4 grammars. * The grammar builds ASTs that are sniffed by subsequent stages. */ public class ANTLRParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "SEMPRED", "FORCED_ACTION", "DOC_COMMENT", "SRC", "NLCHARS", "COMMENT", "DOUBLE_QUOTE_STRING_LITERAL", "DOUBLE_ANGLE_STRING_LITERAL", "ACTION_STRING_LITERAL", "ACTION_CHAR_LITERAL", "ARG_ACTION", "NESTED_ACTION", "ACTION", "ACTION_ESC", "WSNLCHARS", "OPTIONS", "TOKENS", "SCOPE", "IMPORT", "FRAGMENT", "LEXER", "PARSER", "TREE", "GRAMMAR", "PROTECTED", "PUBLIC", "PRIVATE", "RETURNS", "THROWS", "CATCH", "FINALLY", "TEMPLATE", "COLON", "COLONCOLON", "COMMA", "SEMI", "LPAREN", "RPAREN", "IMPLIES", "LT", "GT", "ASSIGN", "QUESTION", "BANG", "STAR", "PLUS", "PLUS_ASSIGN", "OR", "ROOT", "DOLLAR", "DOT", "RANGE", "ETC", "RARROW", "TREE_BEGIN", "AT", "NOT", "RBRACE", "TOKEN_REF", "RULE_REF", "INT", "WSCHARS", "ESC_SEQ", "STRING_LITERAL", "HEX_DIGIT", "UNICODE_ESC", "WS", "ERRCHAR", "RULE", "RULES", "RULEMODIFIERS", "RULEACTIONS", "BLOCK", "REWRITE_BLOCK", "OPTIONAL", "CLOSURE", "POSITIVE_CLOSURE", "SYNPRED", "CHAR_RANGE", "EPSILON", "ALT", "ALTLIST", "RESULT", "ID", "ARG", "ARGLIST", "RET", "COMBINED", "INITACTION", "LABEL", "GATED_SEMPRED", "SYN_SEMPRED", "BACKTRACK_SEMPRED", "WILDCARD", "LIST", "ELEMENT_OPTIONS", "ST_RESULT", "ALT_REWRITE" + "", "", "", "", "SEMPRED", "FORCED_ACTION", "DOC_COMMENT", "SRC", "NLCHARS", "COMMENT", "DOUBLE_QUOTE_STRING_LITERAL", "DOUBLE_ANGLE_STRING_LITERAL", "ACTION_STRING_LITERAL", "ACTION_CHAR_LITERAL", "ARG_ACTION", "NESTED_ACTION", "ACTION", "ACTION_ESC", "WSNLCHARS", "OPTIONS", "TOKENS", "SCOPE", "IMPORT", "FRAGMENT", "LEXER", "PARSER", "TREE", "GRAMMAR", "PROTECTED", "PUBLIC", "PRIVATE", "RETURNS", "THROWS", "CATCH", "FINALLY", "TEMPLATE", "COLON", "COLONCOLON", "COMMA", "SEMI", "LPAREN", "RPAREN", "IMPLIES", "LT", "GT", "ASSIGN", "QUESTION", "BANG", "STAR", "PLUS", "PLUS_ASSIGN", "OR", "ROOT", "DOLLAR", "DOT", "RANGE", "ETC", "RARROW", "TREE_BEGIN", "AT", "NOT", "RBRACE", "TOKEN_REF", "RULE_REF", "INT", "WSCHARS", "ESC_SEQ", "STRING_LITERAL", "HEX_DIGIT", "UNICODE_ESC", "WS", "ERRCHAR", "RULE", "RULES", "RULEMODIFIERS", "RULEACTIONS", "BLOCK", "REWRITE_BLOCK", "OPTIONAL", "CLOSURE", "POSITIVE_CLOSURE", "SYNPRED", "CHAR_RANGE", "EPSILON", "ALT", "ALTLIST", "ID", "ARG", "ARGLIST", "RET", "COMBINED", "INITACTION", "LABEL", "GATED_SEMPRED", "SYN_SEMPRED", "BACKTRACK_SEMPRED", "WILDCARD", "LIST", "ELEMENT_OPTIONS", "ST_RESULT", "RESULT", "ALT_REWRITE" }; public static final int LT=43; - public static final int COMBINED=91; + public static final int COMBINED=90; public static final int STAR=48; - public static final int BACKTRACK_SEMPRED=96; + public static final int BACKTRACK_SEMPRED=95; public static final int DOUBLE_ANGLE_STRING_LITERAL=11; public static final int FORCED_ACTION=5; - public static final int ARGLIST=89; + public static final int ARGLIST=88; public static final int ALTLIST=85; public static final int NOT=60; public static final int EOF=-1; @@ -57,12 +58,12 @@ public class ANTLRParser extends Parser { public static final int ACTION=16; public static final int TOKEN_REF=62; public static final int RULEMODIFIERS=74; - public static final int ST_RESULT=100; + public static final int ST_RESULT=99; public static final int RPAREN=41; - public static final int RET=90; + public static final int RET=89; public static final int IMPORT=22; public static final int STRING_LITERAL=67; - public static final int ARG=88; + public static final int ARG=87; public static final int ARG_ACTION=14; public static final int DOUBLE_QUOTE_STRING_LITERAL=10; public static final int COMMENT=9; @@ -70,7 +71,7 @@ public class ANTLRParser extends Parser { public static final int ACTION_CHAR_LITERAL=13; public static final int WSCHARS=65; public static final int RULEACTIONS=75; - public static final int INITACTION=92; + public static final int INITACTION=91; public static final int ALT_REWRITE=101; public static final int IMPLIES=42; public static final int RBRACE=61; @@ -82,7 +83,7 @@ public class ANTLRParser extends Parser { public static final int INT=64; public static final int CHAR_RANGE=82; public static final int EPSILON=83; - public static final int LIST=98; + public static final int LIST=97; public static final int COLONCOLON=37; public static final int WSNLCHARS=18; public static final int WS=70; @@ -94,10 +95,10 @@ public class ANTLRParser extends Parser { public static final int PARSER=25; public static final int DOLLAR=53; public static final int PROTECTED=28; - public static final int ELEMENT_OPTIONS=99; + public static final int ELEMENT_OPTIONS=98; public static final int NESTED_ACTION=15; public static final int FRAGMENT=23; - public static final int ID=87; + public static final int ID=86; public static final int TREE_BEGIN=58; public static final int LPAREN=40; public static final int AT=59; @@ -107,7 +108,7 @@ public class ANTLRParser extends Parser { public static final int SCOPE=21; public static final int ETC=56; public static final int COMMA=38; - public static final int WILDCARD=97; + public static final int WILDCARD=96; public static final int DOC_COMMENT=6; public static final int PLUS=49; public static final int REWRITE_BLOCK=77; @@ -119,8 +120,8 @@ public class ANTLRParser extends Parser { public static final int HEX_DIGIT=68; public static final int RANGE=55; public static final int TOKENS=20; - public static final int GATED_SEMPRED=94; - public static final int RESULT=86; + public static final int RESULT=100; + public static final int GATED_SEMPRED=93; public static final int BANG=47; public static final int ACTION_STRING_LITERAL=12; public static final int ROOT=52; @@ -132,9 +133,9 @@ public class ANTLRParser extends Parser { public static final int COLON=36; public static final int QUESTION=46; public static final int FINALLY=34; - public static final int LABEL=93; + public static final int LABEL=92; public static final int TEMPLATE=35; - public static final int SYN_SEMPRED=95; + public static final int SYN_SEMPRED=94; public static final int ERRCHAR=71; public static final int BLOCK=76; public static final int PLUS_ASSIGN=50; @@ -168,13 +169,28 @@ public class ANTLRParser extends Parser { public String getGrammarFileName() { return "ANTLRParser.g"; } + Stack paraphrases = new Stack(); + public void displayRecognitionError(String[] tokenNames, + RecognitionException e) + { + String msg = ErrorManager.getParserErrorMessage(this, e); + if ( paraphrases.size()>0 ) { + String paraphrase = (String)paraphrases.peek(); + msg = msg+" while "+paraphrase; + } + List stack = getRuleInvocationStack(e, this.getClass().getName()); + msg += ", rule stack = "+stack; + ErrorManager.syntaxError(ErrorType.SYNTAX_ERROR, getSourceName(), e.token, e, msg); + } + + public static class grammarSpec_return extends ParserRuleReturnScope { GrammarAST tree; public Object getTree() { return tree; } }; // $ANTLR start "grammarSpec" - // ANTLRParser.g:138:1: grammarSpec : ( DOC_COMMENT )? grammarType id SEMI ( prequelConstruct )* rules EOF -> ^( grammarType id ( DOC_COMMENT )? ( prequelConstruct )* rules ) ; + // ANTLRParser.g:153:1: grammarSpec : ( DOC_COMMENT )? grammarType id SEMI sync ( prequelConstruct sync )* rules EOF -> ^( grammarType id ( DOC_COMMENT )? ( prequelConstruct )* rules ) ; public final ANTLRParser.grammarSpec_return grammarSpec() throws RecognitionException { ANTLRParser.grammarSpec_return retval = new ANTLRParser.grammarSpec_return(); retval.start = input.LT(1); @@ -183,31 +199,36 @@ public class ANTLRParser extends Parser { Token DOC_COMMENT1=null; Token SEMI4=null; - Token EOF7=null; + Token EOF9=null; ANTLRParser.grammarType_return grammarType2 = null; ANTLRParser.id_return id3 = null; - ANTLRParser.prequelConstruct_return prequelConstruct5 = null; + ANTLRParser.sync_return sync5 = null; - ANTLRParser.rules_return rules6 = null; + ANTLRParser.prequelConstruct_return prequelConstruct6 = null; + + ANTLRParser.sync_return sync7 = null; + + ANTLRParser.rules_return rules8 = null; GrammarAST DOC_COMMENT1_tree=null; GrammarAST SEMI4_tree=null; - GrammarAST EOF7_tree=null; + GrammarAST EOF9_tree=null; RewriteRuleTokenStream stream_DOC_COMMENT=new RewriteRuleTokenStream(adaptor,"token DOC_COMMENT"); RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF"); RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI"); RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); + RewriteRuleSubtreeStream stream_sync=new RewriteRuleSubtreeStream(adaptor,"rule sync"); RewriteRuleSubtreeStream stream_prequelConstruct=new RewriteRuleSubtreeStream(adaptor,"rule prequelConstruct"); RewriteRuleSubtreeStream stream_grammarType=new RewriteRuleSubtreeStream(adaptor,"rule grammarType"); RewriteRuleSubtreeStream stream_rules=new RewriteRuleSubtreeStream(adaptor,"rule rules"); try { - // ANTLRParser.g:139:5: ( ( DOC_COMMENT )? grammarType id SEMI ( prequelConstruct )* rules EOF -> ^( grammarType id ( DOC_COMMENT )? ( prequelConstruct )* rules ) ) - // ANTLRParser.g:143:7: ( DOC_COMMENT )? grammarType id SEMI ( prequelConstruct )* rules EOF + // ANTLRParser.g:154:5: ( ( DOC_COMMENT )? grammarType id SEMI sync ( prequelConstruct sync )* rules EOF -> ^( grammarType id ( DOC_COMMENT )? ( prequelConstruct )* rules ) ) + // ANTLRParser.g:158:7: ( DOC_COMMENT )? grammarType id SEMI sync ( prequelConstruct sync )* rules EOF { - // ANTLRParser.g:143:7: ( DOC_COMMENT )? + // ANTLRParser.g:158:7: ( DOC_COMMENT )? int alt1=2; int LA1_0 = input.LA(1); @@ -216,9 +237,9 @@ public class ANTLRParser extends Parser { } switch (alt1) { case 1 : - // ANTLRParser.g:143:7: DOC_COMMENT + // ANTLRParser.g:158:7: DOC_COMMENT { - DOC_COMMENT1=(Token)match(input,DOC_COMMENT,FOLLOW_DOC_COMMENT_in_grammarSpec459); if (state.failed) return retval; + DOC_COMMENT1=(Token)match(input,DOC_COMMENT,FOLLOW_DOC_COMMENT_in_grammarSpec456); if (state.failed) return retval; if ( state.backtracking==0 ) stream_DOC_COMMENT.add(DOC_COMMENT1); @@ -227,22 +248,28 @@ public class ANTLRParser extends Parser { } - pushFollow(FOLLOW_grammarType_in_grammarSpec496); + pushFollow(FOLLOW_grammarType_in_grammarSpec493); grammarType2=grammarType(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_grammarType.add(grammarType2.getTree()); - pushFollow(FOLLOW_id_in_grammarSpec498); + pushFollow(FOLLOW_id_in_grammarSpec495); id3=id(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_id.add(id3.getTree()); - SEMI4=(Token)match(input,SEMI,FOLLOW_SEMI_in_grammarSpec500); if (state.failed) return retval; + SEMI4=(Token)match(input,SEMI,FOLLOW_SEMI_in_grammarSpec497); if (state.failed) return retval; if ( state.backtracking==0 ) stream_SEMI.add(SEMI4); - // ANTLRParser.g:161:7: ( prequelConstruct )* + pushFollow(FOLLOW_sync_in_grammarSpec541); + sync5=sync(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_sync.add(sync5.getTree()); + // ANTLRParser.g:176:12: ( prequelConstruct sync )* loop2: do { int alt2=2; @@ -255,14 +282,20 @@ public class ANTLRParser extends Parser { switch (alt2) { case 1 : - // ANTLRParser.g:161:7: prequelConstruct + // ANTLRParser.g:176:14: prequelConstruct sync { - pushFollow(FOLLOW_prequelConstruct_in_grammarSpec544); - prequelConstruct5=prequelConstruct(); + pushFollow(FOLLOW_prequelConstruct_in_grammarSpec545); + prequelConstruct6=prequelConstruct(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_prequelConstruct.add(prequelConstruct5.getTree()); + if ( state.backtracking==0 ) stream_prequelConstruct.add(prequelConstruct6.getTree()); + pushFollow(FOLLOW_sync_in_grammarSpec547); + sync7=sync(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_sync.add(sync7.getTree()); } break; @@ -272,19 +305,19 @@ public class ANTLRParser extends Parser { } } while (true); - pushFollow(FOLLOW_rules_in_grammarSpec572); - rules6=rules(); + pushFollow(FOLLOW_rules_in_grammarSpec577); + rules8=rules(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rules.add(rules6.getTree()); - EOF7=(Token)match(input,EOF,FOLLOW_EOF_in_grammarSpec615); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_EOF.add(EOF7); + if ( state.backtracking==0 ) stream_rules.add(rules8.getTree()); + EOF9=(Token)match(input,EOF,FOLLOW_EOF_in_grammarSpec620); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_EOF.add(EOF9); // AST REWRITE - // elements: prequelConstruct, DOC_COMMENT, grammarType, id, rules + // elements: id, prequelConstruct, rules, DOC_COMMENT, grammarType // token labels: // rule labels: retval // token list labels: @@ -295,21 +328,21 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 180:7: -> ^( grammarType id ( DOC_COMMENT )? ( prequelConstruct )* rules ) + // 195:7: -> ^( grammarType id ( DOC_COMMENT )? ( prequelConstruct )* rules ) { - // ANTLRParser.g:180:10: ^( grammarType id ( DOC_COMMENT )? ( prequelConstruct )* rules ) + // ANTLRParser.g:195:10: ^( grammarType id ( DOC_COMMENT )? ( prequelConstruct )* rules ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_grammarType.nextNode(), root_1); adaptor.addChild(root_1, stream_id.nextTree()); - // ANTLRParser.g:182:14: ( DOC_COMMENT )? + // ANTLRParser.g:197:14: ( DOC_COMMENT )? if ( stream_DOC_COMMENT.hasNext() ) { adaptor.addChild(root_1, stream_DOC_COMMENT.nextNode()); } stream_DOC_COMMENT.reset(); - // ANTLRParser.g:183:14: ( prequelConstruct )* + // ANTLRParser.g:198:14: ( prequelConstruct )* while ( stream_prequelConstruct.hasNext() ) { adaptor.addChild(root_1, stream_prequelConstruct.nextTree()); @@ -351,7 +384,7 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "grammarType" - // ANTLRParser.g:216:1: grammarType : (t= LEXER g= GRAMMAR -> GRAMMAR[$g, \"LEXER_GRAMMAR\"] | t= PARSER g= GRAMMAR -> GRAMMAR[$g, \"PARSER_GRAMMAR\"] | t= TREE g= GRAMMAR -> GRAMMAR[$g, \"TREE_GRAMMAR\"] | g= GRAMMAR -> GRAMMAR[$g, \"COMBINED_GRAMMAR\"] ) ; + // ANTLRParser.g:231:1: grammarType : (t= LEXER g= GRAMMAR -> GRAMMAR[$g, \"LEXER_GRAMMAR\"] | t= PARSER g= GRAMMAR -> GRAMMAR[$g, \"PARSER_GRAMMAR\"] | t= TREE g= GRAMMAR -> GRAMMAR[$g, \"TREE_GRAMMAR\"] | g= GRAMMAR -> GRAMMAR[$g, \"COMBINED_GRAMMAR\"] ) ; public final ANTLRParser.grammarType_return grammarType() throws RecognitionException { ANTLRParser.grammarType_return retval = new ANTLRParser.grammarType_return(); retval.start = input.LT(1); @@ -369,10 +402,10 @@ public class ANTLRParser extends Parser { RewriteRuleTokenStream stream_GRAMMAR=new RewriteRuleTokenStream(adaptor,"token GRAMMAR"); try { - // ANTLRParser.g:221:5: ( (t= LEXER g= GRAMMAR -> GRAMMAR[$g, \"LEXER_GRAMMAR\"] | t= PARSER g= GRAMMAR -> GRAMMAR[$g, \"PARSER_GRAMMAR\"] | t= TREE g= GRAMMAR -> GRAMMAR[$g, \"TREE_GRAMMAR\"] | g= GRAMMAR -> GRAMMAR[$g, \"COMBINED_GRAMMAR\"] ) ) - // ANTLRParser.g:221:7: (t= LEXER g= GRAMMAR -> GRAMMAR[$g, \"LEXER_GRAMMAR\"] | t= PARSER g= GRAMMAR -> GRAMMAR[$g, \"PARSER_GRAMMAR\"] | t= TREE g= GRAMMAR -> GRAMMAR[$g, \"TREE_GRAMMAR\"] | g= GRAMMAR -> GRAMMAR[$g, \"COMBINED_GRAMMAR\"] ) + // ANTLRParser.g:236:5: ( (t= LEXER g= GRAMMAR -> GRAMMAR[$g, \"LEXER_GRAMMAR\"] | t= PARSER g= GRAMMAR -> GRAMMAR[$g, \"PARSER_GRAMMAR\"] | t= TREE g= GRAMMAR -> GRAMMAR[$g, \"TREE_GRAMMAR\"] | g= GRAMMAR -> GRAMMAR[$g, \"COMBINED_GRAMMAR\"] ) ) + // ANTLRParser.g:236:7: (t= LEXER g= GRAMMAR -> GRAMMAR[$g, \"LEXER_GRAMMAR\"] | t= PARSER g= GRAMMAR -> GRAMMAR[$g, \"PARSER_GRAMMAR\"] | t= TREE g= GRAMMAR -> GRAMMAR[$g, \"TREE_GRAMMAR\"] | g= GRAMMAR -> GRAMMAR[$g, \"COMBINED_GRAMMAR\"] ) { - // ANTLRParser.g:221:7: (t= LEXER g= GRAMMAR -> GRAMMAR[$g, \"LEXER_GRAMMAR\"] | t= PARSER g= GRAMMAR -> GRAMMAR[$g, \"PARSER_GRAMMAR\"] | t= TREE g= GRAMMAR -> GRAMMAR[$g, \"TREE_GRAMMAR\"] | g= GRAMMAR -> GRAMMAR[$g, \"COMBINED_GRAMMAR\"] ) + // ANTLRParser.g:236:7: (t= LEXER g= GRAMMAR -> GRAMMAR[$g, \"LEXER_GRAMMAR\"] | t= PARSER g= GRAMMAR -> GRAMMAR[$g, \"PARSER_GRAMMAR\"] | t= TREE g= GRAMMAR -> GRAMMAR[$g, \"TREE_GRAMMAR\"] | g= GRAMMAR -> GRAMMAR[$g, \"COMBINED_GRAMMAR\"] ) int alt3=4; switch ( input.LA(1) ) { case LEXER: @@ -405,12 +438,12 @@ public class ANTLRParser extends Parser { switch (alt3) { case 1 : - // ANTLRParser.g:221:9: t= LEXER g= GRAMMAR + // ANTLRParser.g:236:9: t= LEXER g= GRAMMAR { - t=(Token)match(input,LEXER,FOLLOW_LEXER_in_grammarType809); if (state.failed) return retval; + t=(Token)match(input,LEXER,FOLLOW_LEXER_in_grammarType814); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LEXER.add(t); - g=(Token)match(input,GRAMMAR,FOLLOW_GRAMMAR_in_grammarType813); if (state.failed) return retval; + g=(Token)match(input,GRAMMAR,FOLLOW_GRAMMAR_in_grammarType818); if (state.failed) return retval; if ( state.backtracking==0 ) stream_GRAMMAR.add(g); @@ -427,7 +460,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 221:28: -> GRAMMAR[$g, \"LEXER_GRAMMAR\"] + // 236:28: -> GRAMMAR[$g, \"LEXER_GRAMMAR\"] { adaptor.addChild(root_0, new GrammarRootAST(GRAMMAR, g, "LEXER_GRAMMAR")); @@ -437,12 +470,12 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:223:6: t= PARSER g= GRAMMAR + // ANTLRParser.g:238:6: t= PARSER g= GRAMMAR { - t=(Token)match(input,PARSER,FOLLOW_PARSER_in_grammarType846); if (state.failed) return retval; + t=(Token)match(input,PARSER,FOLLOW_PARSER_in_grammarType851); if (state.failed) return retval; if ( state.backtracking==0 ) stream_PARSER.add(t); - g=(Token)match(input,GRAMMAR,FOLLOW_GRAMMAR_in_grammarType850); if (state.failed) return retval; + g=(Token)match(input,GRAMMAR,FOLLOW_GRAMMAR_in_grammarType855); if (state.failed) return retval; if ( state.backtracking==0 ) stream_GRAMMAR.add(g); @@ -459,7 +492,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 223:25: -> GRAMMAR[$g, \"PARSER_GRAMMAR\"] + // 238:25: -> GRAMMAR[$g, \"PARSER_GRAMMAR\"] { adaptor.addChild(root_0, new GrammarRootAST(GRAMMAR, g, "PARSER_GRAMMAR")); @@ -469,12 +502,12 @@ public class ANTLRParser extends Parser { } break; case 3 : - // ANTLRParser.g:226:6: t= TREE g= GRAMMAR + // ANTLRParser.g:241:6: t= TREE g= GRAMMAR { - t=(Token)match(input,TREE,FOLLOW_TREE_in_grammarType877); if (state.failed) return retval; + t=(Token)match(input,TREE,FOLLOW_TREE_in_grammarType882); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TREE.add(t); - g=(Token)match(input,GRAMMAR,FOLLOW_GRAMMAR_in_grammarType881); if (state.failed) return retval; + g=(Token)match(input,GRAMMAR,FOLLOW_GRAMMAR_in_grammarType886); if (state.failed) return retval; if ( state.backtracking==0 ) stream_GRAMMAR.add(g); @@ -491,7 +524,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 226:25: -> GRAMMAR[$g, \"TREE_GRAMMAR\"] + // 241:25: -> GRAMMAR[$g, \"TREE_GRAMMAR\"] { adaptor.addChild(root_0, new GrammarRootAST(GRAMMAR, g, "TREE_GRAMMAR")); @@ -501,9 +534,9 @@ public class ANTLRParser extends Parser { } break; case 4 : - // ANTLRParser.g:229:6: g= GRAMMAR + // ANTLRParser.g:244:6: g= GRAMMAR { - g=(Token)match(input,GRAMMAR,FOLLOW_GRAMMAR_in_grammarType908); if (state.failed) return retval; + g=(Token)match(input,GRAMMAR,FOLLOW_GRAMMAR_in_grammarType913); if (state.failed) return retval; if ( state.backtracking==0 ) stream_GRAMMAR.add(g); @@ -520,7 +553,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 229:25: -> GRAMMAR[$g, \"COMBINED_GRAMMAR\"] + // 244:25: -> GRAMMAR[$g, \"COMBINED_GRAMMAR\"] { adaptor.addChild(root_0, new GrammarRootAST(GRAMMAR, g, "COMBINED_GRAMMAR")); @@ -567,27 +600,27 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "prequelConstruct" - // ANTLRParser.g:236:1: prequelConstruct : ( optionsSpec | delegateGrammars | tokensSpec | attrScope | action ); + // ANTLRParser.g:251:1: prequelConstruct : ( optionsSpec | delegateGrammars | tokensSpec | attrScope | action ); public final ANTLRParser.prequelConstruct_return prequelConstruct() throws RecognitionException { ANTLRParser.prequelConstruct_return retval = new ANTLRParser.prequelConstruct_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - ANTLRParser.optionsSpec_return optionsSpec8 = null; + ANTLRParser.optionsSpec_return optionsSpec10 = null; - ANTLRParser.delegateGrammars_return delegateGrammars9 = null; + ANTLRParser.delegateGrammars_return delegateGrammars11 = null; - ANTLRParser.tokensSpec_return tokensSpec10 = null; + ANTLRParser.tokensSpec_return tokensSpec12 = null; - ANTLRParser.attrScope_return attrScope11 = null; + ANTLRParser.attrScope_return attrScope13 = null; - ANTLRParser.action_return action12 = null; + ANTLRParser.action_return action14 = null; try { - // ANTLRParser.g:237:2: ( optionsSpec | delegateGrammars | tokensSpec | attrScope | action ) + // ANTLRParser.g:252:2: ( optionsSpec | delegateGrammars | tokensSpec | attrScope | action ) int alt4=5; switch ( input.LA(1) ) { case OPTIONS: @@ -625,72 +658,72 @@ public class ANTLRParser extends Parser { switch (alt4) { case 1 : - // ANTLRParser.g:238:4: optionsSpec + // ANTLRParser.g:253:4: optionsSpec { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_optionsSpec_in_prequelConstruct972); - optionsSpec8=optionsSpec(); + pushFollow(FOLLOW_optionsSpec_in_prequelConstruct977); + optionsSpec10=optionsSpec(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, optionsSpec8.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, optionsSpec10.getTree()); } break; case 2 : - // ANTLRParser.g:242:7: delegateGrammars + // ANTLRParser.g:257:7: delegateGrammars { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_delegateGrammars_in_prequelConstruct998); - delegateGrammars9=delegateGrammars(); + pushFollow(FOLLOW_delegateGrammars_in_prequelConstruct1003); + delegateGrammars11=delegateGrammars(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, delegateGrammars9.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, delegateGrammars11.getTree()); } break; case 3 : - // ANTLRParser.g:249:7: tokensSpec + // ANTLRParser.g:264:7: tokensSpec { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_tokensSpec_in_prequelConstruct1048); - tokensSpec10=tokensSpec(); + pushFollow(FOLLOW_tokensSpec_in_prequelConstruct1053); + tokensSpec12=tokensSpec(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, tokensSpec10.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, tokensSpec12.getTree()); } break; case 4 : - // ANTLRParser.g:254:7: attrScope + // ANTLRParser.g:269:7: attrScope { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_attrScope_in_prequelConstruct1084); - attrScope11=attrScope(); + pushFollow(FOLLOW_attrScope_in_prequelConstruct1089); + attrScope13=attrScope(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, attrScope11.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, attrScope13.getTree()); } break; case 5 : - // ANTLRParser.g:260:7: action + // ANTLRParser.g:275:7: action { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_action_in_prequelConstruct1127); - action12=action(); + pushFollow(FOLLOW_action_in_prequelConstruct1132); + action14=action(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, action12.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, action14.getTree()); } break; @@ -722,34 +755,34 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "optionsSpec" - // ANTLRParser.g:264:1: optionsSpec : OPTIONS ( option SEMI )* RBRACE -> ^( OPTIONS[$OPTIONS, \"OPTIONS\"] ( option )+ ) ; + // ANTLRParser.g:279:1: optionsSpec : OPTIONS ( option SEMI )* RBRACE -> ^( OPTIONS[$OPTIONS, \"OPTIONS\"] ( option )+ ) ; public final ANTLRParser.optionsSpec_return optionsSpec() throws RecognitionException { ANTLRParser.optionsSpec_return retval = new ANTLRParser.optionsSpec_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token OPTIONS13=null; - Token SEMI15=null; - Token RBRACE16=null; - ANTLRParser.option_return option14 = null; + Token OPTIONS15=null; + Token SEMI17=null; + Token RBRACE18=null; + ANTLRParser.option_return option16 = null; - GrammarAST OPTIONS13_tree=null; - GrammarAST SEMI15_tree=null; - GrammarAST RBRACE16_tree=null; + GrammarAST OPTIONS15_tree=null; + GrammarAST SEMI17_tree=null; + GrammarAST RBRACE18_tree=null; RewriteRuleTokenStream stream_RBRACE=new RewriteRuleTokenStream(adaptor,"token RBRACE"); RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI"); RewriteRuleTokenStream stream_OPTIONS=new RewriteRuleTokenStream(adaptor,"token OPTIONS"); RewriteRuleSubtreeStream stream_option=new RewriteRuleSubtreeStream(adaptor,"rule option"); try { - // ANTLRParser.g:265:2: ( OPTIONS ( option SEMI )* RBRACE -> ^( OPTIONS[$OPTIONS, \"OPTIONS\"] ( option )+ ) ) - // ANTLRParser.g:265:4: OPTIONS ( option SEMI )* RBRACE + // ANTLRParser.g:280:2: ( OPTIONS ( option SEMI )* RBRACE -> ^( OPTIONS[$OPTIONS, \"OPTIONS\"] ( option )+ ) ) + // ANTLRParser.g:280:4: OPTIONS ( option SEMI )* RBRACE { - OPTIONS13=(Token)match(input,OPTIONS,FOLLOW_OPTIONS_in_optionsSpec1144); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_OPTIONS.add(OPTIONS13); + OPTIONS15=(Token)match(input,OPTIONS,FOLLOW_OPTIONS_in_optionsSpec1149); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_OPTIONS.add(OPTIONS15); - // ANTLRParser.g:265:12: ( option SEMI )* + // ANTLRParser.g:280:12: ( option SEMI )* loop5: do { int alt5=2; @@ -762,16 +795,16 @@ public class ANTLRParser extends Parser { switch (alt5) { case 1 : - // ANTLRParser.g:265:13: option SEMI + // ANTLRParser.g:280:13: option SEMI { - pushFollow(FOLLOW_option_in_optionsSpec1147); - option14=option(); + pushFollow(FOLLOW_option_in_optionsSpec1152); + option16=option(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_option.add(option14.getTree()); - SEMI15=(Token)match(input,SEMI,FOLLOW_SEMI_in_optionsSpec1149); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_SEMI.add(SEMI15); + if ( state.backtracking==0 ) stream_option.add(option16.getTree()); + SEMI17=(Token)match(input,SEMI,FOLLOW_SEMI_in_optionsSpec1154); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEMI.add(SEMI17); } @@ -782,13 +815,13 @@ public class ANTLRParser extends Parser { } } while (true); - RBRACE16=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_optionsSpec1153); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RBRACE.add(RBRACE16); + RBRACE18=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_optionsSpec1158); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RBRACE.add(RBRACE18); // AST REWRITE - // elements: option, OPTIONS + // elements: OPTIONS, option // token labels: // rule labels: retval // token list labels: @@ -799,12 +832,12 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 265:34: -> ^( OPTIONS[$OPTIONS, \"OPTIONS\"] ( option )+ ) + // 280:34: -> ^( OPTIONS[$OPTIONS, \"OPTIONS\"] ( option )+ ) { - // ANTLRParser.g:265:37: ^( OPTIONS[$OPTIONS, \"OPTIONS\"] ( option )+ ) + // ANTLRParser.g:280:37: ^( OPTIONS[$OPTIONS, \"OPTIONS\"] ( option )+ ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); - root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(OPTIONS, OPTIONS13, "OPTIONS"), root_1); + root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(OPTIONS, OPTIONS15, "OPTIONS"), root_1); if ( !(stream_option.hasNext()) ) { throw new RewriteEarlyExitException(); @@ -849,44 +882,44 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "option" - // ANTLRParser.g:268:1: option : id ASSIGN optionValue ; + // ANTLRParser.g:283:1: option : id ASSIGN optionValue ; public final ANTLRParser.option_return option() throws RecognitionException { ANTLRParser.option_return retval = new ANTLRParser.option_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token ASSIGN18=null; - ANTLRParser.id_return id17 = null; + Token ASSIGN20=null; + ANTLRParser.id_return id19 = null; - ANTLRParser.optionValue_return optionValue19 = null; + ANTLRParser.optionValue_return optionValue21 = null; - GrammarAST ASSIGN18_tree=null; + GrammarAST ASSIGN20_tree=null; try { - // ANTLRParser.g:269:5: ( id ASSIGN optionValue ) - // ANTLRParser.g:269:9: id ASSIGN optionValue + // ANTLRParser.g:284:5: ( id ASSIGN optionValue ) + // ANTLRParser.g:284:9: id ASSIGN optionValue { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_id_in_option1190); - id17=id(); + pushFollow(FOLLOW_id_in_option1195); + id19=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, id17.getTree()); - ASSIGN18=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_option1192); if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, id19.getTree()); + ASSIGN20=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_option1197); if (state.failed) return retval; if ( state.backtracking==0 ) { - ASSIGN18_tree = (GrammarAST)adaptor.create(ASSIGN18); - root_0 = (GrammarAST)adaptor.becomeRoot(ASSIGN18_tree, root_0); + ASSIGN20_tree = (GrammarAST)adaptor.create(ASSIGN20); + root_0 = (GrammarAST)adaptor.becomeRoot(ASSIGN20_tree, root_0); } - pushFollow(FOLLOW_optionValue_in_option1195); - optionValue19=optionValue(); + pushFollow(FOLLOW_optionValue_in_option1200); + optionValue21=optionValue(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, optionValue19.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, optionValue21.getTree()); } @@ -916,25 +949,25 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "optionValue" - // ANTLRParser.g:277:1: optionValue : ( qid | STRING_LITERAL | INT | STAR ); + // ANTLRParser.g:292:1: optionValue : ( qid | STRING_LITERAL | INT | STAR ); public final ANTLRParser.optionValue_return optionValue() throws RecognitionException { ANTLRParser.optionValue_return retval = new ANTLRParser.optionValue_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token STRING_LITERAL21=null; - Token INT22=null; - Token STAR23=null; - ANTLRParser.qid_return qid20 = null; + Token STRING_LITERAL23=null; + Token INT24=null; + Token STAR25=null; + ANTLRParser.qid_return qid22 = null; - GrammarAST STRING_LITERAL21_tree=null; - GrammarAST INT22_tree=null; - GrammarAST STAR23_tree=null; + GrammarAST STRING_LITERAL23_tree=null; + GrammarAST INT24_tree=null; + GrammarAST STAR25_tree=null; try { - // ANTLRParser.g:278:5: ( qid | STRING_LITERAL | INT | STAR ) + // ANTLRParser.g:293:5: ( qid | STRING_LITERAL | INT | STAR ) int alt6=4; switch ( input.LA(1) ) { case TEMPLATE: @@ -969,54 +1002,54 @@ public class ANTLRParser extends Parser { switch (alt6) { case 1 : - // ANTLRParser.g:282:7: qid + // ANTLRParser.g:297:7: qid { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_qid_in_optionValue1245); - qid20=qid(); + pushFollow(FOLLOW_qid_in_optionValue1250); + qid22=qid(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, qid20.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, qid22.getTree()); } break; case 2 : - // ANTLRParser.g:286:7: STRING_LITERAL + // ANTLRParser.g:301:7: STRING_LITERAL { root_0 = (GrammarAST)adaptor.nil(); - STRING_LITERAL21=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_optionValue1269); if (state.failed) return retval; + STRING_LITERAL23=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_optionValue1274); if (state.failed) return retval; if ( state.backtracking==0 ) { - STRING_LITERAL21_tree = new TerminalAST(STRING_LITERAL21) ; - adaptor.addChild(root_0, STRING_LITERAL21_tree); + STRING_LITERAL23_tree = new TerminalAST(STRING_LITERAL23) ; + adaptor.addChild(root_0, STRING_LITERAL23_tree); } } break; case 3 : - // ANTLRParser.g:290:7: INT + // ANTLRParser.g:305:7: INT { root_0 = (GrammarAST)adaptor.nil(); - INT22=(Token)match(input,INT,FOLLOW_INT_in_optionValue1295); if (state.failed) return retval; + INT24=(Token)match(input,INT,FOLLOW_INT_in_optionValue1300); if (state.failed) return retval; if ( state.backtracking==0 ) { - INT22_tree = (GrammarAST)adaptor.create(INT22); - adaptor.addChild(root_0, INT22_tree); + INT24_tree = (GrammarAST)adaptor.create(INT24); + adaptor.addChild(root_0, INT24_tree); } } break; case 4 : - // ANTLRParser.g:294:7: STAR + // ANTLRParser.g:309:7: STAR { root_0 = (GrammarAST)adaptor.nil(); - STAR23=(Token)match(input,STAR,FOLLOW_STAR_in_optionValue1324); if (state.failed) return retval; + STAR25=(Token)match(input,STAR,FOLLOW_STAR_in_optionValue1329); if (state.failed) return retval; if ( state.backtracking==0 ) { - STAR23_tree = (GrammarAST)adaptor.create(STAR23); - adaptor.addChild(root_0, STAR23_tree); + STAR25_tree = (GrammarAST)adaptor.create(STAR25); + adaptor.addChild(root_0, STAR25_tree); } } @@ -1049,42 +1082,42 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "delegateGrammars" - // ANTLRParser.g:299:1: delegateGrammars : IMPORT delegateGrammar ( COMMA delegateGrammar )* SEMI -> ^( IMPORT ( delegateGrammar )+ ) ; + // ANTLRParser.g:314:1: delegateGrammars : IMPORT delegateGrammar ( COMMA delegateGrammar )* SEMI -> ^( IMPORT ( delegateGrammar )+ ) ; public final ANTLRParser.delegateGrammars_return delegateGrammars() throws RecognitionException { ANTLRParser.delegateGrammars_return retval = new ANTLRParser.delegateGrammars_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token IMPORT24=null; - Token COMMA26=null; - Token SEMI28=null; - ANTLRParser.delegateGrammar_return delegateGrammar25 = null; - + Token IMPORT26=null; + Token COMMA28=null; + Token SEMI30=null; ANTLRParser.delegateGrammar_return delegateGrammar27 = null; + ANTLRParser.delegateGrammar_return delegateGrammar29 = null; - GrammarAST IMPORT24_tree=null; - GrammarAST COMMA26_tree=null; - GrammarAST SEMI28_tree=null; + + GrammarAST IMPORT26_tree=null; + GrammarAST COMMA28_tree=null; + GrammarAST SEMI30_tree=null; RewriteRuleTokenStream stream_IMPORT=new RewriteRuleTokenStream(adaptor,"token IMPORT"); RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI"); RewriteRuleSubtreeStream stream_delegateGrammar=new RewriteRuleSubtreeStream(adaptor,"rule delegateGrammar"); try { - // ANTLRParser.g:300:2: ( IMPORT delegateGrammar ( COMMA delegateGrammar )* SEMI -> ^( IMPORT ( delegateGrammar )+ ) ) - // ANTLRParser.g:300:4: IMPORT delegateGrammar ( COMMA delegateGrammar )* SEMI + // ANTLRParser.g:315:2: ( IMPORT delegateGrammar ( COMMA delegateGrammar )* SEMI -> ^( IMPORT ( delegateGrammar )+ ) ) + // ANTLRParser.g:315:4: IMPORT delegateGrammar ( COMMA delegateGrammar )* SEMI { - IMPORT24=(Token)match(input,IMPORT,FOLLOW_IMPORT_in_delegateGrammars1340); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_IMPORT.add(IMPORT24); + IMPORT26=(Token)match(input,IMPORT,FOLLOW_IMPORT_in_delegateGrammars1345); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_IMPORT.add(IMPORT26); - pushFollow(FOLLOW_delegateGrammar_in_delegateGrammars1342); - delegateGrammar25=delegateGrammar(); + pushFollow(FOLLOW_delegateGrammar_in_delegateGrammars1347); + delegateGrammar27=delegateGrammar(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_delegateGrammar.add(delegateGrammar25.getTree()); - // ANTLRParser.g:300:27: ( COMMA delegateGrammar )* + if ( state.backtracking==0 ) stream_delegateGrammar.add(delegateGrammar27.getTree()); + // ANTLRParser.g:315:27: ( COMMA delegateGrammar )* loop7: do { int alt7=2; @@ -1097,17 +1130,17 @@ public class ANTLRParser extends Parser { switch (alt7) { case 1 : - // ANTLRParser.g:300:28: COMMA delegateGrammar + // ANTLRParser.g:315:28: COMMA delegateGrammar { - COMMA26=(Token)match(input,COMMA,FOLLOW_COMMA_in_delegateGrammars1345); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COMMA.add(COMMA26); + COMMA28=(Token)match(input,COMMA,FOLLOW_COMMA_in_delegateGrammars1350); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COMMA.add(COMMA28); - pushFollow(FOLLOW_delegateGrammar_in_delegateGrammars1347); - delegateGrammar27=delegateGrammar(); + pushFollow(FOLLOW_delegateGrammar_in_delegateGrammars1352); + delegateGrammar29=delegateGrammar(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_delegateGrammar.add(delegateGrammar27.getTree()); + if ( state.backtracking==0 ) stream_delegateGrammar.add(delegateGrammar29.getTree()); } break; @@ -1117,13 +1150,13 @@ public class ANTLRParser extends Parser { } } while (true); - SEMI28=(Token)match(input,SEMI,FOLLOW_SEMI_in_delegateGrammars1351); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_SEMI.add(SEMI28); + SEMI30=(Token)match(input,SEMI,FOLLOW_SEMI_in_delegateGrammars1356); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEMI.add(SEMI30); // AST REWRITE - // elements: IMPORT, delegateGrammar + // elements: delegateGrammar, IMPORT // token labels: // rule labels: retval // token list labels: @@ -1134,9 +1167,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 300:57: -> ^( IMPORT ( delegateGrammar )+ ) + // 315:57: -> ^( IMPORT ( delegateGrammar )+ ) { - // ANTLRParser.g:300:60: ^( IMPORT ( delegateGrammar )+ ) + // ANTLRParser.g:315:60: ^( IMPORT ( delegateGrammar )+ ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_IMPORT.nextNode(), root_1); @@ -1184,37 +1217,37 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "delegateGrammar" - // ANTLRParser.g:305:1: delegateGrammar : ( id ASSIGN id | id ); + // ANTLRParser.g:320:1: delegateGrammar : ( id ASSIGN id | id ); public final ANTLRParser.delegateGrammar_return delegateGrammar() throws RecognitionException { ANTLRParser.delegateGrammar_return retval = new ANTLRParser.delegateGrammar_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token ASSIGN30=null; - ANTLRParser.id_return id29 = null; - + Token ASSIGN32=null; ANTLRParser.id_return id31 = null; - ANTLRParser.id_return id32 = null; + ANTLRParser.id_return id33 = null; + + ANTLRParser.id_return id34 = null; - GrammarAST ASSIGN30_tree=null; + GrammarAST ASSIGN32_tree=null; try { - // ANTLRParser.g:306:5: ( id ASSIGN id | id ) + // ANTLRParser.g:321:5: ( id ASSIGN id | id ) int alt8=2; switch ( input.LA(1) ) { case RULE_REF: { int LA8_1 = input.LA(2); - if ( (LA8_1==ASSIGN) ) { - alt8=1; - } - else if ( ((LA8_1>=COMMA && LA8_1<=SEMI)) ) { + if ( ((LA8_1>=COMMA && LA8_1<=SEMI)) ) { alt8=2; } + else if ( (LA8_1==ASSIGN) ) { + alt8=1; + } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = @@ -1228,12 +1261,12 @@ public class ANTLRParser extends Parser { { int LA8_2 = input.LA(2); - if ( (LA8_2==ASSIGN) ) { - alt8=1; - } - else if ( ((LA8_2>=COMMA && LA8_2<=SEMI)) ) { + if ( ((LA8_2>=COMMA && LA8_2<=SEMI)) ) { alt8=2; } + else if ( (LA8_2==ASSIGN) ) { + alt8=1; + } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = @@ -1272,41 +1305,41 @@ public class ANTLRParser extends Parser { switch (alt8) { case 1 : - // ANTLRParser.g:306:9: id ASSIGN id + // ANTLRParser.g:321:9: id ASSIGN id { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_id_in_delegateGrammar1378); - id29=id(); - - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, id29.getTree()); - ASSIGN30=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_delegateGrammar1380); if (state.failed) return retval; - if ( state.backtracking==0 ) { - ASSIGN30_tree = (GrammarAST)adaptor.create(ASSIGN30); - root_0 = (GrammarAST)adaptor.becomeRoot(ASSIGN30_tree, root_0); - } pushFollow(FOLLOW_id_in_delegateGrammar1383); id31=id(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, id31.getTree()); + ASSIGN32=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_delegateGrammar1385); if (state.failed) return retval; + if ( state.backtracking==0 ) { + ASSIGN32_tree = (GrammarAST)adaptor.create(ASSIGN32); + root_0 = (GrammarAST)adaptor.becomeRoot(ASSIGN32_tree, root_0); + } + pushFollow(FOLLOW_id_in_delegateGrammar1388); + id33=id(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, id33.getTree()); } break; case 2 : - // ANTLRParser.g:307:9: id + // ANTLRParser.g:322:9: id { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_id_in_delegateGrammar1393); - id32=id(); + pushFollow(FOLLOW_id_in_delegateGrammar1398); + id34=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, id32.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, id34.getTree()); } break; @@ -1338,31 +1371,31 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "tokensSpec" - // ANTLRParser.g:310:1: tokensSpec : TOKENS ( tokenSpec )+ RBRACE -> ^( TOKENS ( tokenSpec )+ ) ; + // ANTLRParser.g:325:1: tokensSpec : TOKENS ( tokenSpec )+ RBRACE -> ^( TOKENS ( tokenSpec )+ ) ; public final ANTLRParser.tokensSpec_return tokensSpec() throws RecognitionException { ANTLRParser.tokensSpec_return retval = new ANTLRParser.tokensSpec_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token TOKENS33=null; - Token RBRACE35=null; - ANTLRParser.tokenSpec_return tokenSpec34 = null; + Token TOKENS35=null; + Token RBRACE37=null; + ANTLRParser.tokenSpec_return tokenSpec36 = null; - GrammarAST TOKENS33_tree=null; - GrammarAST RBRACE35_tree=null; + GrammarAST TOKENS35_tree=null; + GrammarAST RBRACE37_tree=null; RewriteRuleTokenStream stream_TOKENS=new RewriteRuleTokenStream(adaptor,"token TOKENS"); RewriteRuleTokenStream stream_RBRACE=new RewriteRuleTokenStream(adaptor,"token RBRACE"); RewriteRuleSubtreeStream stream_tokenSpec=new RewriteRuleSubtreeStream(adaptor,"rule tokenSpec"); try { - // ANTLRParser.g:317:2: ( TOKENS ( tokenSpec )+ RBRACE -> ^( TOKENS ( tokenSpec )+ ) ) - // ANTLRParser.g:317:4: TOKENS ( tokenSpec )+ RBRACE + // ANTLRParser.g:332:2: ( TOKENS ( tokenSpec )+ RBRACE -> ^( TOKENS ( tokenSpec )+ ) ) + // ANTLRParser.g:332:4: TOKENS ( tokenSpec )+ RBRACE { - TOKENS33=(Token)match(input,TOKENS,FOLLOW_TOKENS_in_tokensSpec1409); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TOKENS.add(TOKENS33); + TOKENS35=(Token)match(input,TOKENS,FOLLOW_TOKENS_in_tokensSpec1414); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TOKENS.add(TOKENS35); - // ANTLRParser.g:317:11: ( tokenSpec )+ + // ANTLRParser.g:332:11: ( tokenSpec )+ int cnt9=0; loop9: do { @@ -1376,14 +1409,14 @@ public class ANTLRParser extends Parser { switch (alt9) { case 1 : - // ANTLRParser.g:317:11: tokenSpec + // ANTLRParser.g:332:11: tokenSpec { - pushFollow(FOLLOW_tokenSpec_in_tokensSpec1411); - tokenSpec34=tokenSpec(); + pushFollow(FOLLOW_tokenSpec_in_tokensSpec1416); + tokenSpec36=tokenSpec(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_tokenSpec.add(tokenSpec34.getTree()); + if ( state.backtracking==0 ) stream_tokenSpec.add(tokenSpec36.getTree()); } break; @@ -1398,8 +1431,8 @@ public class ANTLRParser extends Parser { cnt9++; } while (true); - RBRACE35=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_tokensSpec1414); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RBRACE.add(RBRACE35); + RBRACE37=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_tokensSpec1419); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RBRACE.add(RBRACE37); @@ -1415,9 +1448,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 317:29: -> ^( TOKENS ( tokenSpec )+ ) + // 332:29: -> ^( TOKENS ( tokenSpec )+ ) { - // ANTLRParser.g:317:32: ^( TOKENS ( tokenSpec )+ ) + // ANTLRParser.g:332:32: ^( TOKENS ( tokenSpec )+ ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_TOKENS.nextNode(), root_1); @@ -1465,42 +1498,42 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "tokenSpec" - // ANTLRParser.g:320:1: tokenSpec : ( id ( ASSIGN STRING_LITERAL -> ^( ASSIGN id STRING_LITERAL ) | -> id ) SEMI | RULE_REF ); + // ANTLRParser.g:335:1: tokenSpec : ( id ( ASSIGN STRING_LITERAL -> ^( ASSIGN id STRING_LITERAL ) | -> id ) SEMI | RULE_REF ); public final ANTLRParser.tokenSpec_return tokenSpec() throws RecognitionException { ANTLRParser.tokenSpec_return retval = new ANTLRParser.tokenSpec_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token ASSIGN37=null; - Token STRING_LITERAL38=null; - Token SEMI39=null; - Token RULE_REF40=null; - ANTLRParser.id_return id36 = null; + Token ASSIGN39=null; + Token STRING_LITERAL40=null; + Token SEMI41=null; + Token RULE_REF42=null; + ANTLRParser.id_return id38 = null; - GrammarAST ASSIGN37_tree=null; - GrammarAST STRING_LITERAL38_tree=null; - GrammarAST SEMI39_tree=null; - GrammarAST RULE_REF40_tree=null; + GrammarAST ASSIGN39_tree=null; + GrammarAST STRING_LITERAL40_tree=null; + GrammarAST SEMI41_tree=null; + GrammarAST RULE_REF42_tree=null; RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI"); RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN"); RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); try { - // ANTLRParser.g:321:2: ( id ( ASSIGN STRING_LITERAL -> ^( ASSIGN id STRING_LITERAL ) | -> id ) SEMI | RULE_REF ) + // ANTLRParser.g:336:2: ( id ( ASSIGN STRING_LITERAL -> ^( ASSIGN id STRING_LITERAL ) | -> id ) SEMI | RULE_REF ) int alt11=2; int LA11_0 = input.LA(1); if ( (LA11_0==RULE_REF) ) { int LA11_1 = input.LA(2); - if ( (LA11_1==TEMPLATE||(LA11_1>=RBRACE && LA11_1<=RULE_REF)) ) { - alt11=2; - } - else if ( (LA11_1==SEMI||LA11_1==ASSIGN) ) { + if ( (LA11_1==SEMI||LA11_1==ASSIGN) ) { alt11=1; } + else if ( (LA11_1==TEMPLATE||(LA11_1>=RBRACE && LA11_1<=RULE_REF)) ) { + alt11=2; + } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = @@ -1521,15 +1554,15 @@ public class ANTLRParser extends Parser { } switch (alt11) { case 1 : - // ANTLRParser.g:321:4: id ( ASSIGN STRING_LITERAL -> ^( ASSIGN id STRING_LITERAL ) | -> id ) SEMI + // ANTLRParser.g:336:4: id ( ASSIGN STRING_LITERAL -> ^( ASSIGN id STRING_LITERAL ) | -> id ) SEMI { - pushFollow(FOLLOW_id_in_tokenSpec1434); - id36=id(); + pushFollow(FOLLOW_id_in_tokenSpec1439); + id38=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id36.getTree()); - // ANTLRParser.g:322:3: ( ASSIGN STRING_LITERAL -> ^( ASSIGN id STRING_LITERAL ) | -> id ) + if ( state.backtracking==0 ) stream_id.add(id38.getTree()); + // ANTLRParser.g:337:3: ( ASSIGN STRING_LITERAL -> ^( ASSIGN id STRING_LITERAL ) | -> id ) int alt10=2; int LA10_0 = input.LA(1); @@ -1548,18 +1581,18 @@ public class ANTLRParser extends Parser { } switch (alt10) { case 1 : - // ANTLRParser.g:322:5: ASSIGN STRING_LITERAL + // ANTLRParser.g:337:5: ASSIGN STRING_LITERAL { - ASSIGN37=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_tokenSpec1440); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN37); + ASSIGN39=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_tokenSpec1445); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN39); - STRING_LITERAL38=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_tokenSpec1442); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL38); + STRING_LITERAL40=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_tokenSpec1447); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL40); // AST REWRITE - // elements: STRING_LITERAL, ASSIGN, id + // elements: ASSIGN, id, STRING_LITERAL // token labels: // rule labels: retval // token list labels: @@ -1570,9 +1603,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 322:27: -> ^( ASSIGN id STRING_LITERAL ) + // 337:27: -> ^( ASSIGN id STRING_LITERAL ) { - // ANTLRParser.g:322:30: ^( ASSIGN id STRING_LITERAL ) + // ANTLRParser.g:337:30: ^( ASSIGN id STRING_LITERAL ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_ASSIGN.nextNode(), root_1); @@ -1589,7 +1622,7 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:323:11: + // ANTLRParser.g:338:11: { // AST REWRITE @@ -1604,7 +1637,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 323:11: -> id + // 338:11: -> id { adaptor.addChild(root_0, stream_id.nextTree()); @@ -1616,21 +1649,21 @@ public class ANTLRParser extends Parser { } - SEMI39=(Token)match(input,SEMI,FOLLOW_SEMI_in_tokenSpec1477); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_SEMI.add(SEMI39); + SEMI41=(Token)match(input,SEMI,FOLLOW_SEMI_in_tokenSpec1482); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEMI.add(SEMI41); } break; case 2 : - // ANTLRParser.g:326:4: RULE_REF + // ANTLRParser.g:341:4: RULE_REF { root_0 = (GrammarAST)adaptor.nil(); - RULE_REF40=(Token)match(input,RULE_REF,FOLLOW_RULE_REF_in_tokenSpec1482); if (state.failed) return retval; + RULE_REF42=(Token)match(input,RULE_REF,FOLLOW_RULE_REF_in_tokenSpec1487); if (state.failed) return retval; if ( state.backtracking==0 ) { - RULE_REF40_tree = (GrammarAST)adaptor.create(RULE_REF40); - adaptor.addChild(root_0, RULE_REF40_tree); + RULE_REF42_tree = (GrammarAST)adaptor.create(RULE_REF42); + adaptor.addChild(root_0, RULE_REF42_tree); } } @@ -1663,43 +1696,43 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "attrScope" - // ANTLRParser.g:332:1: attrScope : SCOPE id ACTION -> ^( SCOPE id ACTION ) ; + // ANTLRParser.g:347:1: attrScope : SCOPE id ACTION -> ^( SCOPE id ACTION ) ; public final ANTLRParser.attrScope_return attrScope() throws RecognitionException { ANTLRParser.attrScope_return retval = new ANTLRParser.attrScope_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token SCOPE41=null; - Token ACTION43=null; - ANTLRParser.id_return id42 = null; + Token SCOPE43=null; + Token ACTION45=null; + ANTLRParser.id_return id44 = null; - GrammarAST SCOPE41_tree=null; - GrammarAST ACTION43_tree=null; + GrammarAST SCOPE43_tree=null; + GrammarAST ACTION45_tree=null; RewriteRuleTokenStream stream_SCOPE=new RewriteRuleTokenStream(adaptor,"token SCOPE"); RewriteRuleTokenStream stream_ACTION=new RewriteRuleTokenStream(adaptor,"token ACTION"); RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); try { - // ANTLRParser.g:333:2: ( SCOPE id ACTION -> ^( SCOPE id ACTION ) ) - // ANTLRParser.g:333:4: SCOPE id ACTION + // ANTLRParser.g:348:2: ( SCOPE id ACTION -> ^( SCOPE id ACTION ) ) + // ANTLRParser.g:348:4: SCOPE id ACTION { - SCOPE41=(Token)match(input,SCOPE,FOLLOW_SCOPE_in_attrScope1497); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_SCOPE.add(SCOPE41); + SCOPE43=(Token)match(input,SCOPE,FOLLOW_SCOPE_in_attrScope1502); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SCOPE.add(SCOPE43); - pushFollow(FOLLOW_id_in_attrScope1499); - id42=id(); + pushFollow(FOLLOW_id_in_attrScope1504); + id44=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id42.getTree()); - ACTION43=(Token)match(input,ACTION,FOLLOW_ACTION_in_attrScope1501); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ACTION.add(ACTION43); + if ( state.backtracking==0 ) stream_id.add(id44.getTree()); + ACTION45=(Token)match(input,ACTION,FOLLOW_ACTION_in_attrScope1506); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ACTION.add(ACTION45); // AST REWRITE - // elements: SCOPE, id, ACTION + // elements: id, ACTION, SCOPE // token labels: // rule labels: retval // token list labels: @@ -1710,9 +1743,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 333:20: -> ^( SCOPE id ACTION ) + // 348:20: -> ^( SCOPE id ACTION ) { - // ANTLRParser.g:333:23: ^( SCOPE id ACTION ) + // ANTLRParser.g:348:23: ^( SCOPE id ACTION ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_SCOPE.nextNode(), root_1); @@ -1754,37 +1787,37 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "action" - // ANTLRParser.g:339:1: action : AT ( actionScopeName COLONCOLON )? id ACTION -> ^( AT ( actionScopeName )? id ACTION ) ; + // ANTLRParser.g:354:1: action : AT ( actionScopeName COLONCOLON )? id ACTION -> ^( AT ( actionScopeName )? id ACTION ) ; public final ANTLRParser.action_return action() throws RecognitionException { ANTLRParser.action_return retval = new ANTLRParser.action_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token AT44=null; - Token COLONCOLON46=null; - Token ACTION48=null; - ANTLRParser.actionScopeName_return actionScopeName45 = null; + Token AT46=null; + Token COLONCOLON48=null; + Token ACTION50=null; + ANTLRParser.actionScopeName_return actionScopeName47 = null; - ANTLRParser.id_return id47 = null; + ANTLRParser.id_return id49 = null; - GrammarAST AT44_tree=null; - GrammarAST COLONCOLON46_tree=null; - GrammarAST ACTION48_tree=null; + GrammarAST AT46_tree=null; + GrammarAST COLONCOLON48_tree=null; + GrammarAST ACTION50_tree=null; RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT"); RewriteRuleTokenStream stream_COLONCOLON=new RewriteRuleTokenStream(adaptor,"token COLONCOLON"); RewriteRuleTokenStream stream_ACTION=new RewriteRuleTokenStream(adaptor,"token ACTION"); RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); RewriteRuleSubtreeStream stream_actionScopeName=new RewriteRuleSubtreeStream(adaptor,"rule actionScopeName"); try { - // ANTLRParser.g:341:2: ( AT ( actionScopeName COLONCOLON )? id ACTION -> ^( AT ( actionScopeName )? id ACTION ) ) - // ANTLRParser.g:341:4: AT ( actionScopeName COLONCOLON )? id ACTION + // ANTLRParser.g:356:2: ( AT ( actionScopeName COLONCOLON )? id ACTION -> ^( AT ( actionScopeName )? id ACTION ) ) + // ANTLRParser.g:356:4: AT ( actionScopeName COLONCOLON )? id ACTION { - AT44=(Token)match(input,AT,FOLLOW_AT_in_action1530); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_AT.add(AT44); + AT46=(Token)match(input,AT,FOLLOW_AT_in_action1535); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_AT.add(AT46); - // ANTLRParser.g:341:7: ( actionScopeName COLONCOLON )? + // ANTLRParser.g:356:7: ( actionScopeName COLONCOLON )? int alt12=2; switch ( input.LA(1) ) { case RULE_REF: @@ -1824,16 +1857,16 @@ public class ANTLRParser extends Parser { switch (alt12) { case 1 : - // ANTLRParser.g:341:8: actionScopeName COLONCOLON + // ANTLRParser.g:356:8: actionScopeName COLONCOLON { - pushFollow(FOLLOW_actionScopeName_in_action1533); - actionScopeName45=actionScopeName(); + pushFollow(FOLLOW_actionScopeName_in_action1538); + actionScopeName47=actionScopeName(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_actionScopeName.add(actionScopeName45.getTree()); - COLONCOLON46=(Token)match(input,COLONCOLON,FOLLOW_COLONCOLON_in_action1535); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COLONCOLON.add(COLONCOLON46); + if ( state.backtracking==0 ) stream_actionScopeName.add(actionScopeName47.getTree()); + COLONCOLON48=(Token)match(input,COLONCOLON,FOLLOW_COLONCOLON_in_action1540); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLONCOLON.add(COLONCOLON48); } @@ -1841,19 +1874,19 @@ public class ANTLRParser extends Parser { } - pushFollow(FOLLOW_id_in_action1539); - id47=id(); + pushFollow(FOLLOW_id_in_action1544); + id49=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id47.getTree()); - ACTION48=(Token)match(input,ACTION,FOLLOW_ACTION_in_action1541); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ACTION.add(ACTION48); + if ( state.backtracking==0 ) stream_id.add(id49.getTree()); + ACTION50=(Token)match(input,ACTION,FOLLOW_ACTION_in_action1546); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ACTION.add(ACTION50); // AST REWRITE - // elements: actionScopeName, id, AT, ACTION + // elements: AT, id, actionScopeName, ACTION // token labels: // rule labels: retval // token list labels: @@ -1864,14 +1897,14 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 341:47: -> ^( AT ( actionScopeName )? id ACTION ) + // 356:47: -> ^( AT ( actionScopeName )? id ACTION ) { - // ANTLRParser.g:341:50: ^( AT ( actionScopeName )? id ACTION ) + // ANTLRParser.g:356:50: ^( AT ( actionScopeName )? id ACTION ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_AT.nextNode(), root_1); - // ANTLRParser.g:341:55: ( actionScopeName )? + // ANTLRParser.g:356:55: ( actionScopeName )? if ( stream_actionScopeName.hasNext() ) { adaptor.addChild(root_1, stream_actionScopeName.nextTree()); @@ -1914,25 +1947,25 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "actionScopeName" - // ANTLRParser.g:344:1: actionScopeName : ( id | LEXER -> ID[$LEXER] | PARSER -> ID[$PARSER] ); + // ANTLRParser.g:359:1: actionScopeName : ( id | LEXER -> ID[$LEXER] | PARSER -> ID[$PARSER] ); public final ANTLRParser.actionScopeName_return actionScopeName() throws RecognitionException { ANTLRParser.actionScopeName_return retval = new ANTLRParser.actionScopeName_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token LEXER50=null; - Token PARSER51=null; - ANTLRParser.id_return id49 = null; + Token LEXER52=null; + Token PARSER53=null; + ANTLRParser.id_return id51 = null; - GrammarAST LEXER50_tree=null; - GrammarAST PARSER51_tree=null; + GrammarAST LEXER52_tree=null; + GrammarAST PARSER53_tree=null; RewriteRuleTokenStream stream_PARSER=new RewriteRuleTokenStream(adaptor,"token PARSER"); RewriteRuleTokenStream stream_LEXER=new RewriteRuleTokenStream(adaptor,"token LEXER"); try { - // ANTLRParser.g:348:2: ( id | LEXER -> ID[$LEXER] | PARSER -> ID[$PARSER] ) + // ANTLRParser.g:363:2: ( id | LEXER -> ID[$LEXER] | PARSER -> ID[$PARSER] ) int alt13=3; switch ( input.LA(1) ) { case TEMPLATE: @@ -1962,24 +1995,24 @@ public class ANTLRParser extends Parser { switch (alt13) { case 1 : - // ANTLRParser.g:348:4: id + // ANTLRParser.g:363:4: id { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_id_in_actionScopeName1572); - id49=id(); + pushFollow(FOLLOW_id_in_actionScopeName1577); + id51=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, id49.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, id51.getTree()); } break; case 2 : - // ANTLRParser.g:349:4: LEXER + // ANTLRParser.g:364:4: LEXER { - LEXER50=(Token)match(input,LEXER,FOLLOW_LEXER_in_actionScopeName1577); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_LEXER.add(LEXER50); + LEXER52=(Token)match(input,LEXER,FOLLOW_LEXER_in_actionScopeName1582); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LEXER.add(LEXER52); @@ -1995,9 +2028,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 349:10: -> ID[$LEXER] + // 364:10: -> ID[$LEXER] { - adaptor.addChild(root_0, (GrammarAST)adaptor.create(ID, LEXER50)); + adaptor.addChild(root_0, (GrammarAST)adaptor.create(ID, LEXER52)); } @@ -2005,10 +2038,10 @@ public class ANTLRParser extends Parser { } break; case 3 : - // ANTLRParser.g:350:9: PARSER + // ANTLRParser.g:365:9: PARSER { - PARSER51=(Token)match(input,PARSER,FOLLOW_PARSER_in_actionScopeName1592); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_PARSER.add(PARSER51); + PARSER53=(Token)match(input,PARSER,FOLLOW_PARSER_in_actionScopeName1597); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_PARSER.add(PARSER53); @@ -2024,9 +2057,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 350:16: -> ID[$PARSER] + // 365:16: -> ID[$PARSER] { - adaptor.addChild(root_0, (GrammarAST)adaptor.create(ID, PARSER51)); + adaptor.addChild(root_0, (GrammarAST)adaptor.create(ID, PARSER53)); } @@ -2061,22 +2094,33 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rules" - // ANTLRParser.g:353:1: rules : ( rule )* -> ^( RULES ( rule )* ) ; + // ANTLRParser.g:368:1: rules : sync ( rule sync )* -> ^( RULES ( rule )* ) ; public final ANTLRParser.rules_return rules() throws RecognitionException { ANTLRParser.rules_return retval = new ANTLRParser.rules_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - ANTLRParser.rule_return rule52 = null; + ANTLRParser.sync_return sync54 = null; + + ANTLRParser.rule_return rule55 = null; + + ANTLRParser.sync_return sync56 = null; + RewriteRuleSubtreeStream stream_sync=new RewriteRuleSubtreeStream(adaptor,"rule sync"); RewriteRuleSubtreeStream stream_rule=new RewriteRuleSubtreeStream(adaptor,"rule rule"); try { - // ANTLRParser.g:354:5: ( ( rule )* -> ^( RULES ( rule )* ) ) - // ANTLRParser.g:354:7: ( rule )* + // ANTLRParser.g:369:5: ( sync ( rule sync )* -> ^( RULES ( rule )* ) ) + // ANTLRParser.g:369:7: sync ( rule sync )* { - // ANTLRParser.g:354:7: ( rule )* + pushFollow(FOLLOW_sync_in_rules1616); + sync54=sync(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_sync.add(sync54.getTree()); + // ANTLRParser.g:369:12: ( rule sync )* loop14: do { int alt14=2; @@ -2089,14 +2133,20 @@ public class ANTLRParser extends Parser { switch (alt14) { case 1 : - // ANTLRParser.g:354:7: rule + // ANTLRParser.g:369:13: rule sync { - pushFollow(FOLLOW_rule_in_rules1611); - rule52=rule(); + pushFollow(FOLLOW_rule_in_rules1619); + rule55=rule(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rule.add(rule52.getTree()); + if ( state.backtracking==0 ) stream_rule.add(rule55.getTree()); + pushFollow(FOLLOW_sync_in_rules1621); + sync56=sync(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_sync.add(sync56.getTree()); } break; @@ -2120,14 +2170,14 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 358:7: -> ^( RULES ( rule )* ) + // 373:7: -> ^( RULES ( rule )* ) { - // ANTLRParser.g:358:9: ^( RULES ( rule )* ) + // ANTLRParser.g:373:9: ^( RULES ( rule )* ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(RULES, "RULES"), root_1); - // ANTLRParser.g:358:17: ( rule )* + // ANTLRParser.g:373:17: ( rule )* while ( stream_rule.hasNext() ) { adaptor.addChild(root_1, stream_rule.nextTree()); @@ -2162,55 +2212,100 @@ public class ANTLRParser extends Parser { } // $ANTLR end "rules" + public static class sync_return extends ParserRuleReturnScope { + GrammarAST tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "sync" + // ANTLRParser.g:376:1: sync : ; + public final ANTLRParser.sync_return sync() throws RecognitionException { + ANTLRParser.sync_return retval = new ANTLRParser.sync_return(); + retval.start = input.LT(1); + + GrammarAST root_0 = null; + + + BitSet followSet = computeErrorRecoverySet(); + if ( input.LA(1)!=Token.EOF && !followSet.member(input.LA(1)) ) { + reportError(new NoViableAltException("",0,0,input)); + beginResync(); + consumeUntil(input, followSet); + endResync(); + } + + try { + // ANTLRParser.g:385:3: () + // ANTLRParser.g:386:2: + { + root_0 = (GrammarAST)adaptor.nil(); + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (GrammarAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + finally { + } + return retval; + } + // $ANTLR end "sync" + public static class rule_return extends ParserRuleReturnScope { GrammarAST tree; public Object getTree() { return tree; } }; // $ANTLR start "rule" - // ANTLRParser.g:370:1: rule : ( DOC_COMMENT )? ( ruleModifiers )? id ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* COLON altListAsBlock SEMI exceptionGroup -> ^( RULE id ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* altListAsBlock ( exceptionGroup )* ) ; + // ANTLRParser.g:397:1: rule : ( DOC_COMMENT )? ( ruleModifiers )? id ( ARG_ACTION )? ( ruleReturns )? rulePrequels COLON ruleBlock SEMI exceptionGroup -> ^( RULE id ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequels )? ruleBlock ( exceptionGroup )* ) ; public final ANTLRParser.rule_return rule() throws RecognitionException { ANTLRParser.rule_return retval = new ANTLRParser.rule_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token DOC_COMMENT53=null; - Token ARG_ACTION56=null; - Token COLON59=null; - Token SEMI61=null; - ANTLRParser.ruleModifiers_return ruleModifiers54 = null; + Token DOC_COMMENT57=null; + Token ARG_ACTION60=null; + Token COLON63=null; + Token SEMI65=null; + ANTLRParser.ruleModifiers_return ruleModifiers58 = null; - ANTLRParser.id_return id55 = null; + ANTLRParser.id_return id59 = null; - ANTLRParser.ruleReturns_return ruleReturns57 = null; + ANTLRParser.ruleReturns_return ruleReturns61 = null; - ANTLRParser.rulePrequel_return rulePrequel58 = null; + ANTLRParser.rulePrequels_return rulePrequels62 = null; - ANTLRParser.altListAsBlock_return altListAsBlock60 = null; + ANTLRParser.ruleBlock_return ruleBlock64 = null; - ANTLRParser.exceptionGroup_return exceptionGroup62 = null; + ANTLRParser.exceptionGroup_return exceptionGroup66 = null; - GrammarAST DOC_COMMENT53_tree=null; - GrammarAST ARG_ACTION56_tree=null; - GrammarAST COLON59_tree=null; - GrammarAST SEMI61_tree=null; + GrammarAST DOC_COMMENT57_tree=null; + GrammarAST ARG_ACTION60_tree=null; + GrammarAST COLON63_tree=null; + GrammarAST SEMI65_tree=null; RewriteRuleTokenStream stream_DOC_COMMENT=new RewriteRuleTokenStream(adaptor,"token DOC_COMMENT"); RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI"); RewriteRuleTokenStream stream_ARG_ACTION=new RewriteRuleTokenStream(adaptor,"token ARG_ACTION"); RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); RewriteRuleSubtreeStream stream_ruleModifiers=new RewriteRuleSubtreeStream(adaptor,"rule ruleModifiers"); - RewriteRuleSubtreeStream stream_rulePrequel=new RewriteRuleSubtreeStream(adaptor,"rule rulePrequel"); + RewriteRuleSubtreeStream stream_rulePrequels=new RewriteRuleSubtreeStream(adaptor,"rule rulePrequels"); RewriteRuleSubtreeStream stream_exceptionGroup=new RewriteRuleSubtreeStream(adaptor,"rule exceptionGroup"); RewriteRuleSubtreeStream stream_ruleReturns=new RewriteRuleSubtreeStream(adaptor,"rule ruleReturns"); - RewriteRuleSubtreeStream stream_altListAsBlock=new RewriteRuleSubtreeStream(adaptor,"rule altListAsBlock"); + RewriteRuleSubtreeStream stream_ruleBlock=new RewriteRuleSubtreeStream(adaptor,"rule ruleBlock"); + paraphrases.push("matching a rule"); try { - // ANTLRParser.g:371:5: ( ( DOC_COMMENT )? ( ruleModifiers )? id ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* COLON altListAsBlock SEMI exceptionGroup -> ^( RULE id ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* altListAsBlock ( exceptionGroup )* ) ) - // ANTLRParser.g:372:7: ( DOC_COMMENT )? ( ruleModifiers )? id ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* COLON altListAsBlock SEMI exceptionGroup + // ANTLRParser.g:400:5: ( ( DOC_COMMENT )? ( ruleModifiers )? id ( ARG_ACTION )? ( ruleReturns )? rulePrequels COLON ruleBlock SEMI exceptionGroup -> ^( RULE id ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequels )? ruleBlock ( exceptionGroup )* ) ) + // ANTLRParser.g:401:7: ( DOC_COMMENT )? ( ruleModifiers )? id ( ARG_ACTION )? ( ruleReturns )? rulePrequels COLON ruleBlock SEMI exceptionGroup { - // ANTLRParser.g:372:7: ( DOC_COMMENT )? + // ANTLRParser.g:401:7: ( DOC_COMMENT )? int alt15=2; int LA15_0 = input.LA(1); @@ -2219,10 +2314,10 @@ public class ANTLRParser extends Parser { } switch (alt15) { case 1 : - // ANTLRParser.g:372:7: DOC_COMMENT + // ANTLRParser.g:401:7: DOC_COMMENT { - DOC_COMMENT53=(Token)match(input,DOC_COMMENT,FOLLOW_DOC_COMMENT_in_rule1690); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_DOC_COMMENT.add(DOC_COMMENT53); + DOC_COMMENT57=(Token)match(input,DOC_COMMENT,FOLLOW_DOC_COMMENT_in_rule1722); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_DOC_COMMENT.add(DOC_COMMENT57); } @@ -2230,7 +2325,7 @@ public class ANTLRParser extends Parser { } - // ANTLRParser.g:378:7: ( ruleModifiers )? + // ANTLRParser.g:407:7: ( ruleModifiers )? int alt16=2; int LA16_0 = input.LA(1); @@ -2239,27 +2334,27 @@ public class ANTLRParser extends Parser { } switch (alt16) { case 1 : - // ANTLRParser.g:378:7: ruleModifiers + // ANTLRParser.g:407:7: ruleModifiers { - pushFollow(FOLLOW_ruleModifiers_in_rule1734); - ruleModifiers54=ruleModifiers(); + pushFollow(FOLLOW_ruleModifiers_in_rule1766); + ruleModifiers58=ruleModifiers(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ruleModifiers.add(ruleModifiers54.getTree()); + if ( state.backtracking==0 ) stream_ruleModifiers.add(ruleModifiers58.getTree()); } break; } - pushFollow(FOLLOW_id_in_rule1757); - id55=id(); + pushFollow(FOLLOW_id_in_rule1789); + id59=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id55.getTree()); - // ANTLRParser.g:392:4: ( ARG_ACTION )? + if ( state.backtracking==0 ) stream_id.add(id59.getTree()); + // ANTLRParser.g:421:4: ( ARG_ACTION )? int alt17=2; int LA17_0 = input.LA(1); @@ -2268,10 +2363,10 @@ public class ANTLRParser extends Parser { } switch (alt17) { case 1 : - // ANTLRParser.g:392:4: ARG_ACTION + // ANTLRParser.g:421:4: ARG_ACTION { - ARG_ACTION56=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_rule1790); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ARG_ACTION.add(ARG_ACTION56); + ARG_ACTION60=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_rule1822); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ARG_ACTION.add(ARG_ACTION60); } @@ -2279,7 +2374,7 @@ public class ANTLRParser extends Parser { } - // ANTLRParser.g:394:4: ( ruleReturns )? + // ANTLRParser.g:423:4: ( ruleReturns )? int alt18=2; int LA18_0 = input.LA(1); @@ -2288,72 +2383,48 @@ public class ANTLRParser extends Parser { } switch (alt18) { case 1 : - // ANTLRParser.g:394:4: ruleReturns + // ANTLRParser.g:423:4: ruleReturns { - pushFollow(FOLLOW_ruleReturns_in_rule1800); - ruleReturns57=ruleReturns(); + pushFollow(FOLLOW_ruleReturns_in_rule1832); + ruleReturns61=ruleReturns(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ruleReturns.add(ruleReturns57.getTree()); + if ( state.backtracking==0 ) stream_ruleReturns.add(ruleReturns61.getTree()); } break; } - // ANTLRParser.g:409:7: ( rulePrequel )* - loop19: - do { - int alt19=2; - int LA19_0 = input.LA(1); - - if ( (LA19_0==OPTIONS||LA19_0==SCOPE||LA19_0==THROWS||LA19_0==AT) ) { - alt19=1; - } - - - switch (alt19) { - case 1 : - // ANTLRParser.g:409:7: rulePrequel - { - pushFollow(FOLLOW_rulePrequel_in_rule1838); - rulePrequel58=rulePrequel(); - - state._fsp--; - if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rulePrequel.add(rulePrequel58.getTree()); - - } - break; - - default : - break loop19; - } - } while (true); - - COLON59=(Token)match(input,COLON,FOLLOW_COLON_in_rule1854); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COLON.add(COLON59); - - pushFollow(FOLLOW_altListAsBlock_in_rule1883); - altListAsBlock60=altListAsBlock(); + pushFollow(FOLLOW_rulePrequels_in_rule1870); + rulePrequels62=rulePrequels(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_altListAsBlock.add(altListAsBlock60.getTree()); - SEMI61=(Token)match(input,SEMI,FOLLOW_SEMI_in_rule1898); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_SEMI.add(SEMI61); + if ( state.backtracking==0 ) stream_rulePrequels.add(rulePrequels62.getTree()); + COLON63=(Token)match(input,COLON,FOLLOW_COLON_in_rule1885); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON63); - pushFollow(FOLLOW_exceptionGroup_in_rule1907); - exceptionGroup62=exceptionGroup(); + pushFollow(FOLLOW_ruleBlock_in_rule1914); + ruleBlock64=ruleBlock(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_exceptionGroup.add(exceptionGroup62.getTree()); + if ( state.backtracking==0 ) stream_ruleBlock.add(ruleBlock64.getTree()); + SEMI65=(Token)match(input,SEMI,FOLLOW_SEMI_in_rule1929); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEMI.add(SEMI65); + + pushFollow(FOLLOW_exceptionGroup_in_rule1938); + exceptionGroup66=exceptionGroup(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_exceptionGroup.add(exceptionGroup66.getTree()); // AST REWRITE - // elements: exceptionGroup, altListAsBlock, ruleModifiers, id, ARG_ACTION, DOC_COMMENT, rulePrequel, ruleReturns + // elements: DOC_COMMENT, ARG_ACTION, rulePrequels, id, ruleReturns, exceptionGroup, ruleBlock, ruleModifiers // token labels: // rule labels: retval // token list labels: @@ -2364,46 +2435,46 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 421:7: -> ^( RULE id ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* altListAsBlock ( exceptionGroup )* ) + // 450:7: -> ^( RULE id ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequels )? ruleBlock ( exceptionGroup )* ) { - // ANTLRParser.g:421:10: ^( RULE id ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* altListAsBlock ( exceptionGroup )* ) + // ANTLRParser.g:450:10: ^( RULE id ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequels )? ruleBlock ( exceptionGroup )* ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(new RuleAST(RULE), root_1); adaptor.addChild(root_1, stream_id.nextTree()); - // ANTLRParser.g:421:30: ( DOC_COMMENT )? + // ANTLRParser.g:450:30: ( DOC_COMMENT )? if ( stream_DOC_COMMENT.hasNext() ) { adaptor.addChild(root_1, stream_DOC_COMMENT.nextNode()); } stream_DOC_COMMENT.reset(); - // ANTLRParser.g:421:43: ( ruleModifiers )? + // ANTLRParser.g:450:43: ( ruleModifiers )? if ( stream_ruleModifiers.hasNext() ) { adaptor.addChild(root_1, stream_ruleModifiers.nextTree()); } stream_ruleModifiers.reset(); - // ANTLRParser.g:421:58: ( ARG_ACTION )? + // ANTLRParser.g:450:58: ( ARG_ACTION )? if ( stream_ARG_ACTION.hasNext() ) { adaptor.addChild(root_1, stream_ARG_ACTION.nextNode()); } stream_ARG_ACTION.reset(); - // ANTLRParser.g:422:9: ( ruleReturns )? + // ANTLRParser.g:451:9: ( ruleReturns )? if ( stream_ruleReturns.hasNext() ) { adaptor.addChild(root_1, stream_ruleReturns.nextTree()); } stream_ruleReturns.reset(); - // ANTLRParser.g:422:22: ( rulePrequel )* - while ( stream_rulePrequel.hasNext() ) { - adaptor.addChild(root_1, stream_rulePrequel.nextTree()); + // ANTLRParser.g:451:22: ( rulePrequels )? + if ( stream_rulePrequels.hasNext() ) { + adaptor.addChild(root_1, stream_rulePrequels.nextTree()); } - stream_rulePrequel.reset(); - adaptor.addChild(root_1, stream_altListAsBlock.nextTree()); - // ANTLRParser.g:422:50: ( exceptionGroup )* + stream_rulePrequels.reset(); + adaptor.addChild(root_1, stream_ruleBlock.nextTree()); + // ANTLRParser.g:451:46: ( exceptionGroup )* while ( stream_exceptionGroup.hasNext() ) { adaptor.addChild(root_1, stream_exceptionGroup.nextTree()); @@ -2425,6 +2496,9 @@ public class ANTLRParser extends Parser { retval.tree = (GrammarAST)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } + if ( state.backtracking==0 ) { + paraphrases.pop(); + } } catch (RecognitionException re) { reportError(re); @@ -2444,72 +2518,72 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "exceptionGroup" - // ANTLRParser.g:432:1: exceptionGroup : ( exceptionHandler )* ( finallyClause )? ; + // ANTLRParser.g:461:1: exceptionGroup : ( exceptionHandler )* ( finallyClause )? ; public final ANTLRParser.exceptionGroup_return exceptionGroup() throws RecognitionException { ANTLRParser.exceptionGroup_return retval = new ANTLRParser.exceptionGroup_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - ANTLRParser.exceptionHandler_return exceptionHandler63 = null; + ANTLRParser.exceptionHandler_return exceptionHandler67 = null; - ANTLRParser.finallyClause_return finallyClause64 = null; + ANTLRParser.finallyClause_return finallyClause68 = null; try { - // ANTLRParser.g:433:5: ( ( exceptionHandler )* ( finallyClause )? ) - // ANTLRParser.g:433:7: ( exceptionHandler )* ( finallyClause )? + // ANTLRParser.g:462:5: ( ( exceptionHandler )* ( finallyClause )? ) + // ANTLRParser.g:462:7: ( exceptionHandler )* ( finallyClause )? { root_0 = (GrammarAST)adaptor.nil(); - // ANTLRParser.g:433:7: ( exceptionHandler )* - loop20: + // ANTLRParser.g:462:7: ( exceptionHandler )* + loop19: do { - int alt20=2; - int LA20_0 = input.LA(1); + int alt19=2; + int LA19_0 = input.LA(1); - if ( (LA20_0==CATCH) ) { - alt20=1; + if ( (LA19_0==CATCH) ) { + alt19=1; } - switch (alt20) { + switch (alt19) { case 1 : - // ANTLRParser.g:433:7: exceptionHandler + // ANTLRParser.g:462:7: exceptionHandler { - pushFollow(FOLLOW_exceptionHandler_in_exceptionGroup1999); - exceptionHandler63=exceptionHandler(); + pushFollow(FOLLOW_exceptionHandler_in_exceptionGroup2030); + exceptionHandler67=exceptionHandler(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, exceptionHandler63.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, exceptionHandler67.getTree()); } break; default : - break loop20; + break loop19; } } while (true); - // ANTLRParser.g:433:25: ( finallyClause )? - int alt21=2; - int LA21_0 = input.LA(1); + // ANTLRParser.g:462:25: ( finallyClause )? + int alt20=2; + int LA20_0 = input.LA(1); - if ( (LA21_0==FINALLY) ) { - alt21=1; + if ( (LA20_0==FINALLY) ) { + alt20=1; } - switch (alt21) { + switch (alt20) { case 1 : - // ANTLRParser.g:433:25: finallyClause + // ANTLRParser.g:462:25: finallyClause { - pushFollow(FOLLOW_finallyClause_in_exceptionGroup2002); - finallyClause64=finallyClause(); + pushFollow(FOLLOW_finallyClause_in_exceptionGroup2033); + finallyClause68=finallyClause(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, finallyClause64.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, finallyClause68.getTree()); } break; @@ -2545,36 +2619,36 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "exceptionHandler" - // ANTLRParser.g:438:1: exceptionHandler : CATCH ARG_ACTION ACTION -> ^( CATCH ARG_ACTION ACTION ) ; + // ANTLRParser.g:467:1: exceptionHandler : CATCH ARG_ACTION ACTION -> ^( CATCH ARG_ACTION ACTION ) ; public final ANTLRParser.exceptionHandler_return exceptionHandler() throws RecognitionException { ANTLRParser.exceptionHandler_return retval = new ANTLRParser.exceptionHandler_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token CATCH65=null; - Token ARG_ACTION66=null; - Token ACTION67=null; + Token CATCH69=null; + Token ARG_ACTION70=null; + Token ACTION71=null; - GrammarAST CATCH65_tree=null; - GrammarAST ARG_ACTION66_tree=null; - GrammarAST ACTION67_tree=null; + GrammarAST CATCH69_tree=null; + GrammarAST ARG_ACTION70_tree=null; + GrammarAST ACTION71_tree=null; RewriteRuleTokenStream stream_CATCH=new RewriteRuleTokenStream(adaptor,"token CATCH"); RewriteRuleTokenStream stream_ACTION=new RewriteRuleTokenStream(adaptor,"token ACTION"); RewriteRuleTokenStream stream_ARG_ACTION=new RewriteRuleTokenStream(adaptor,"token ARG_ACTION"); try { - // ANTLRParser.g:439:2: ( CATCH ARG_ACTION ACTION -> ^( CATCH ARG_ACTION ACTION ) ) - // ANTLRParser.g:439:4: CATCH ARG_ACTION ACTION + // ANTLRParser.g:468:2: ( CATCH ARG_ACTION ACTION -> ^( CATCH ARG_ACTION ACTION ) ) + // ANTLRParser.g:468:4: CATCH ARG_ACTION ACTION { - CATCH65=(Token)match(input,CATCH,FOLLOW_CATCH_in_exceptionHandler2019); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_CATCH.add(CATCH65); + CATCH69=(Token)match(input,CATCH,FOLLOW_CATCH_in_exceptionHandler2050); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_CATCH.add(CATCH69); - ARG_ACTION66=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_exceptionHandler2021); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ARG_ACTION.add(ARG_ACTION66); + ARG_ACTION70=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_exceptionHandler2052); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ARG_ACTION.add(ARG_ACTION70); - ACTION67=(Token)match(input,ACTION,FOLLOW_ACTION_in_exceptionHandler2023); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ACTION.add(ACTION67); + ACTION71=(Token)match(input,ACTION,FOLLOW_ACTION_in_exceptionHandler2054); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ACTION.add(ACTION71); @@ -2590,9 +2664,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 439:28: -> ^( CATCH ARG_ACTION ACTION ) + // 468:28: -> ^( CATCH ARG_ACTION ACTION ) { - // ANTLRParser.g:439:31: ^( CATCH ARG_ACTION ACTION ) + // ANTLRParser.g:468:31: ^( CATCH ARG_ACTION ACTION ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_CATCH.nextNode(), root_1); @@ -2634,35 +2708,35 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "finallyClause" - // ANTLRParser.g:444:1: finallyClause : FINALLY ACTION -> ^( FINALLY ACTION ) ; + // ANTLRParser.g:473:1: finallyClause : FINALLY ACTION -> ^( FINALLY ACTION ) ; public final ANTLRParser.finallyClause_return finallyClause() throws RecognitionException { ANTLRParser.finallyClause_return retval = new ANTLRParser.finallyClause_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token FINALLY68=null; - Token ACTION69=null; + Token FINALLY72=null; + Token ACTION73=null; - GrammarAST FINALLY68_tree=null; - GrammarAST ACTION69_tree=null; + GrammarAST FINALLY72_tree=null; + GrammarAST ACTION73_tree=null; RewriteRuleTokenStream stream_FINALLY=new RewriteRuleTokenStream(adaptor,"token FINALLY"); RewriteRuleTokenStream stream_ACTION=new RewriteRuleTokenStream(adaptor,"token ACTION"); try { - // ANTLRParser.g:445:2: ( FINALLY ACTION -> ^( FINALLY ACTION ) ) - // ANTLRParser.g:445:4: FINALLY ACTION + // ANTLRParser.g:474:2: ( FINALLY ACTION -> ^( FINALLY ACTION ) ) + // ANTLRParser.g:474:4: FINALLY ACTION { - FINALLY68=(Token)match(input,FINALLY,FOLLOW_FINALLY_in_finallyClause2049); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_FINALLY.add(FINALLY68); + FINALLY72=(Token)match(input,FINALLY,FOLLOW_FINALLY_in_finallyClause2080); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_FINALLY.add(FINALLY72); - ACTION69=(Token)match(input,ACTION,FOLLOW_ACTION_in_finallyClause2051); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ACTION.add(ACTION69); + ACTION73=(Token)match(input,ACTION,FOLLOW_ACTION_in_finallyClause2082); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ACTION.add(ACTION73); // AST REWRITE - // elements: ACTION, FINALLY + // elements: FINALLY, ACTION // token labels: // rule labels: retval // token list labels: @@ -2673,9 +2747,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 445:19: -> ^( FINALLY ACTION ) + // 474:19: -> ^( FINALLY ACTION ) { - // ANTLRParser.g:445:22: ^( FINALLY ACTION ) + // ANTLRParser.g:474:22: ^( FINALLY ACTION ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_FINALLY.nextNode(), root_1); @@ -2710,31 +2784,151 @@ public class ANTLRParser extends Parser { } // $ANTLR end "finallyClause" + public static class rulePrequels_return extends ParserRuleReturnScope { + GrammarAST tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "rulePrequels" + // ANTLRParser.g:477:1: rulePrequels : sync ( rulePrequel sync )* -> ( rulePrequel )* ; + public final ANTLRParser.rulePrequels_return rulePrequels() throws RecognitionException { + ANTLRParser.rulePrequels_return retval = new ANTLRParser.rulePrequels_return(); + retval.start = input.LT(1); + + GrammarAST root_0 = null; + + ANTLRParser.sync_return sync74 = null; + + ANTLRParser.rulePrequel_return rulePrequel75 = null; + + ANTLRParser.sync_return sync76 = null; + + + RewriteRuleSubtreeStream stream_rulePrequel=new RewriteRuleSubtreeStream(adaptor,"rule rulePrequel"); + RewriteRuleSubtreeStream stream_sync=new RewriteRuleSubtreeStream(adaptor,"rule sync"); + paraphrases.push("matching rule preamble"); + try { + // ANTLRParser.g:480:2: ( sync ( rulePrequel sync )* -> ( rulePrequel )* ) + // ANTLRParser.g:480:4: sync ( rulePrequel sync )* + { + pushFollow(FOLLOW_sync_in_rulePrequels2116); + sync74=sync(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_sync.add(sync74.getTree()); + // ANTLRParser.g:480:9: ( rulePrequel sync )* + loop21: + do { + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0==OPTIONS||LA21_0==SCOPE||LA21_0==THROWS||LA21_0==AT) ) { + alt21=1; + } + + + switch (alt21) { + case 1 : + // ANTLRParser.g:480:10: rulePrequel sync + { + pushFollow(FOLLOW_rulePrequel_in_rulePrequels2119); + rulePrequel75=rulePrequel(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_rulePrequel.add(rulePrequel75.getTree()); + pushFollow(FOLLOW_sync_in_rulePrequels2121); + sync76=sync(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_sync.add(sync76.getTree()); + + } + break; + + default : + break loop21; + } + } while (true); + + + + // AST REWRITE + // elements: rulePrequel + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + // wildcard labels: + if ( state.backtracking==0 ) { + retval.tree = root_0; + RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); + + root_0 = (GrammarAST)adaptor.nil(); + // 480:29: -> ( rulePrequel )* + { + // ANTLRParser.g:480:32: ( rulePrequel )* + while ( stream_rulePrequel.hasNext() ) { + adaptor.addChild(root_0, stream_rulePrequel.nextTree()); + + } + stream_rulePrequel.reset(); + + } + + retval.tree = root_0;} + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (GrammarAST)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + if ( state.backtracking==0 ) { + paraphrases.pop(); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (GrammarAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + } + return retval; + } + // $ANTLR end "rulePrequels" + public static class rulePrequel_return extends ParserRuleReturnScope { GrammarAST tree; public Object getTree() { return tree; } }; // $ANTLR start "rulePrequel" - // ANTLRParser.g:451:1: rulePrequel : ( throwsSpec | ruleScopeSpec | optionsSpec | ruleAction ); + // ANTLRParser.g:486:1: rulePrequel : ( throwsSpec | ruleScopeSpec | optionsSpec | ruleAction ); public final ANTLRParser.rulePrequel_return rulePrequel() throws RecognitionException { ANTLRParser.rulePrequel_return retval = new ANTLRParser.rulePrequel_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - ANTLRParser.throwsSpec_return throwsSpec70 = null; + ANTLRParser.throwsSpec_return throwsSpec77 = null; - ANTLRParser.ruleScopeSpec_return ruleScopeSpec71 = null; + ANTLRParser.ruleScopeSpec_return ruleScopeSpec78 = null; - ANTLRParser.optionsSpec_return optionsSpec72 = null; + ANTLRParser.optionsSpec_return optionsSpec79 = null; - ANTLRParser.ruleAction_return ruleAction73 = null; + ANTLRParser.ruleAction_return ruleAction80 = null; try { - // ANTLRParser.g:452:5: ( throwsSpec | ruleScopeSpec | optionsSpec | ruleAction ) + // ANTLRParser.g:487:5: ( throwsSpec | ruleScopeSpec | optionsSpec | ruleAction ) int alt22=4; switch ( input.LA(1) ) { case THROWS: @@ -2767,58 +2961,58 @@ public class ANTLRParser extends Parser { switch (alt22) { case 1 : - // ANTLRParser.g:452:7: throwsSpec + // ANTLRParser.g:487:7: throwsSpec { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_throwsSpec_in_rulePrequel2081); - throwsSpec70=throwsSpec(); + pushFollow(FOLLOW_throwsSpec_in_rulePrequel2147); + throwsSpec77=throwsSpec(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, throwsSpec70.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, throwsSpec77.getTree()); } break; case 2 : - // ANTLRParser.g:453:7: ruleScopeSpec + // ANTLRParser.g:488:7: ruleScopeSpec { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_ruleScopeSpec_in_rulePrequel2089); - ruleScopeSpec71=ruleScopeSpec(); + pushFollow(FOLLOW_ruleScopeSpec_in_rulePrequel2155); + ruleScopeSpec78=ruleScopeSpec(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ruleScopeSpec71.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ruleScopeSpec78.getTree()); } break; case 3 : - // ANTLRParser.g:454:7: optionsSpec + // ANTLRParser.g:489:7: optionsSpec { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_optionsSpec_in_rulePrequel2097); - optionsSpec72=optionsSpec(); + pushFollow(FOLLOW_optionsSpec_in_rulePrequel2163); + optionsSpec79=optionsSpec(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, optionsSpec72.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, optionsSpec79.getTree()); } break; case 4 : - // ANTLRParser.g:455:7: ruleAction + // ANTLRParser.g:490:7: ruleAction { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_ruleAction_in_rulePrequel2105); - ruleAction73=ruleAction(); + pushFollow(FOLLOW_ruleAction_in_rulePrequel2171); + ruleAction80=ruleAction(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ruleAction73.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ruleAction80.getTree()); } break; @@ -2850,34 +3044,34 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "ruleReturns" - // ANTLRParser.g:464:1: ruleReturns : RETURNS ARG_ACTION ; + // ANTLRParser.g:499:1: ruleReturns : RETURNS ARG_ACTION ; public final ANTLRParser.ruleReturns_return ruleReturns() throws RecognitionException { ANTLRParser.ruleReturns_return retval = new ANTLRParser.ruleReturns_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token RETURNS74=null; - Token ARG_ACTION75=null; + Token RETURNS81=null; + Token ARG_ACTION82=null; - GrammarAST RETURNS74_tree=null; - GrammarAST ARG_ACTION75_tree=null; + GrammarAST RETURNS81_tree=null; + GrammarAST ARG_ACTION82_tree=null; try { - // ANTLRParser.g:465:2: ( RETURNS ARG_ACTION ) - // ANTLRParser.g:465:4: RETURNS ARG_ACTION + // ANTLRParser.g:500:2: ( RETURNS ARG_ACTION ) + // ANTLRParser.g:500:4: RETURNS ARG_ACTION { root_0 = (GrammarAST)adaptor.nil(); - RETURNS74=(Token)match(input,RETURNS,FOLLOW_RETURNS_in_ruleReturns2125); if (state.failed) return retval; + RETURNS81=(Token)match(input,RETURNS,FOLLOW_RETURNS_in_ruleReturns2191); if (state.failed) return retval; if ( state.backtracking==0 ) { - RETURNS74_tree = (GrammarAST)adaptor.create(RETURNS74); - root_0 = (GrammarAST)adaptor.becomeRoot(RETURNS74_tree, root_0); + RETURNS81_tree = (GrammarAST)adaptor.create(RETURNS81); + root_0 = (GrammarAST)adaptor.becomeRoot(RETURNS81_tree, root_0); } - ARG_ACTION75=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleReturns2128); if (state.failed) return retval; + ARG_ACTION82=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleReturns2194); if (state.failed) return retval; if ( state.backtracking==0 ) { - ARG_ACTION75_tree = (GrammarAST)adaptor.create(ARG_ACTION75); - adaptor.addChild(root_0, ARG_ACTION75_tree); + ARG_ACTION82_tree = (GrammarAST)adaptor.create(ARG_ACTION82); + adaptor.addChild(root_0, ARG_ACTION82_tree); } } @@ -2908,39 +3102,39 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "throwsSpec" - // ANTLRParser.g:479:1: throwsSpec : THROWS qid ( COMMA qid )* -> ^( THROWS ( qid )+ ) ; + // ANTLRParser.g:514:1: throwsSpec : THROWS qid ( COMMA qid )* -> ^( THROWS ( qid )+ ) ; public final ANTLRParser.throwsSpec_return throwsSpec() throws RecognitionException { ANTLRParser.throwsSpec_return retval = new ANTLRParser.throwsSpec_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token THROWS76=null; - Token COMMA78=null; - ANTLRParser.qid_return qid77 = null; + Token THROWS83=null; + Token COMMA85=null; + ANTLRParser.qid_return qid84 = null; - ANTLRParser.qid_return qid79 = null; + ANTLRParser.qid_return qid86 = null; - GrammarAST THROWS76_tree=null; - GrammarAST COMMA78_tree=null; + GrammarAST THROWS83_tree=null; + GrammarAST COMMA85_tree=null; RewriteRuleTokenStream stream_THROWS=new RewriteRuleTokenStream(adaptor,"token THROWS"); RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); RewriteRuleSubtreeStream stream_qid=new RewriteRuleSubtreeStream(adaptor,"rule qid"); try { - // ANTLRParser.g:480:5: ( THROWS qid ( COMMA qid )* -> ^( THROWS ( qid )+ ) ) - // ANTLRParser.g:480:7: THROWS qid ( COMMA qid )* + // ANTLRParser.g:515:5: ( THROWS qid ( COMMA qid )* -> ^( THROWS ( qid )+ ) ) + // ANTLRParser.g:515:7: THROWS qid ( COMMA qid )* { - THROWS76=(Token)match(input,THROWS,FOLLOW_THROWS_in_throwsSpec2153); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_THROWS.add(THROWS76); + THROWS83=(Token)match(input,THROWS,FOLLOW_THROWS_in_throwsSpec2219); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_THROWS.add(THROWS83); - pushFollow(FOLLOW_qid_in_throwsSpec2155); - qid77=qid(); + pushFollow(FOLLOW_qid_in_throwsSpec2221); + qid84=qid(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_qid.add(qid77.getTree()); - // ANTLRParser.g:480:18: ( COMMA qid )* + if ( state.backtracking==0 ) stream_qid.add(qid84.getTree()); + // ANTLRParser.g:515:18: ( COMMA qid )* loop23: do { int alt23=2; @@ -2953,17 +3147,17 @@ public class ANTLRParser extends Parser { switch (alt23) { case 1 : - // ANTLRParser.g:480:19: COMMA qid + // ANTLRParser.g:515:19: COMMA qid { - COMMA78=(Token)match(input,COMMA,FOLLOW_COMMA_in_throwsSpec2158); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COMMA.add(COMMA78); + COMMA85=(Token)match(input,COMMA,FOLLOW_COMMA_in_throwsSpec2224); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COMMA.add(COMMA85); - pushFollow(FOLLOW_qid_in_throwsSpec2160); - qid79=qid(); + pushFollow(FOLLOW_qid_in_throwsSpec2226); + qid86=qid(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_qid.add(qid79.getTree()); + if ( state.backtracking==0 ) stream_qid.add(qid86.getTree()); } break; @@ -2987,9 +3181,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 480:31: -> ^( THROWS ( qid )+ ) + // 515:31: -> ^( THROWS ( qid )+ ) { - // ANTLRParser.g:480:34: ^( THROWS ( qid )+ ) + // ANTLRParser.g:515:34: ^( THROWS ( qid )+ ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_THROWS.nextNode(), root_1); @@ -3037,35 +3231,35 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "ruleScopeSpec" - // ANTLRParser.g:487:1: ruleScopeSpec : ( SCOPE ACTION -> ^( SCOPE ACTION ) | SCOPE id ( COMMA id )* SEMI -> ^( SCOPE ( id )+ ) ); + // ANTLRParser.g:522:1: ruleScopeSpec : ( SCOPE ACTION -> ^( SCOPE ACTION ) | SCOPE id ( COMMA id )* SEMI -> ^( SCOPE ( id )+ ) ); public final ANTLRParser.ruleScopeSpec_return ruleScopeSpec() throws RecognitionException { ANTLRParser.ruleScopeSpec_return retval = new ANTLRParser.ruleScopeSpec_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token SCOPE80=null; - Token ACTION81=null; - Token SCOPE82=null; - Token COMMA84=null; - Token SEMI86=null; - ANTLRParser.id_return id83 = null; + Token SCOPE87=null; + Token ACTION88=null; + Token SCOPE89=null; + Token COMMA91=null; + Token SEMI93=null; + ANTLRParser.id_return id90 = null; - ANTLRParser.id_return id85 = null; + ANTLRParser.id_return id92 = null; - GrammarAST SCOPE80_tree=null; - GrammarAST ACTION81_tree=null; - GrammarAST SCOPE82_tree=null; - GrammarAST COMMA84_tree=null; - GrammarAST SEMI86_tree=null; + GrammarAST SCOPE87_tree=null; + GrammarAST ACTION88_tree=null; + GrammarAST SCOPE89_tree=null; + GrammarAST COMMA91_tree=null; + GrammarAST SEMI93_tree=null; RewriteRuleTokenStream stream_SCOPE=new RewriteRuleTokenStream(adaptor,"token SCOPE"); RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI"); RewriteRuleTokenStream stream_ACTION=new RewriteRuleTokenStream(adaptor,"token ACTION"); RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); try { - // ANTLRParser.g:488:2: ( SCOPE ACTION -> ^( SCOPE ACTION ) | SCOPE id ( COMMA id )* SEMI -> ^( SCOPE ( id )+ ) ) + // ANTLRParser.g:523:2: ( SCOPE ACTION -> ^( SCOPE ACTION ) | SCOPE id ( COMMA id )* SEMI -> ^( SCOPE ( id )+ ) ) int alt25=2; int LA25_0 = input.LA(1); @@ -3095,18 +3289,18 @@ public class ANTLRParser extends Parser { } switch (alt25) { case 1 : - // ANTLRParser.g:488:4: SCOPE ACTION + // ANTLRParser.g:523:4: SCOPE ACTION { - SCOPE80=(Token)match(input,SCOPE,FOLLOW_SCOPE_in_ruleScopeSpec2191); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_SCOPE.add(SCOPE80); + SCOPE87=(Token)match(input,SCOPE,FOLLOW_SCOPE_in_ruleScopeSpec2257); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SCOPE.add(SCOPE87); - ACTION81=(Token)match(input,ACTION,FOLLOW_ACTION_in_ruleScopeSpec2193); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ACTION.add(ACTION81); + ACTION88=(Token)match(input,ACTION,FOLLOW_ACTION_in_ruleScopeSpec2259); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ACTION.add(ACTION88); // AST REWRITE - // elements: ACTION, SCOPE + // elements: SCOPE, ACTION // token labels: // rule labels: retval // token list labels: @@ -3117,9 +3311,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 488:17: -> ^( SCOPE ACTION ) + // 523:17: -> ^( SCOPE ACTION ) { - // ANTLRParser.g:488:20: ^( SCOPE ACTION ) + // ANTLRParser.g:523:20: ^( SCOPE ACTION ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_SCOPE.nextNode(), root_1); @@ -3135,18 +3329,18 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:489:4: SCOPE id ( COMMA id )* SEMI + // ANTLRParser.g:524:4: SCOPE id ( COMMA id )* SEMI { - SCOPE82=(Token)match(input,SCOPE,FOLLOW_SCOPE_in_ruleScopeSpec2206); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_SCOPE.add(SCOPE82); + SCOPE89=(Token)match(input,SCOPE,FOLLOW_SCOPE_in_ruleScopeSpec2272); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SCOPE.add(SCOPE89); - pushFollow(FOLLOW_id_in_ruleScopeSpec2208); - id83=id(); + pushFollow(FOLLOW_id_in_ruleScopeSpec2274); + id90=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id83.getTree()); - // ANTLRParser.g:489:13: ( COMMA id )* + if ( state.backtracking==0 ) stream_id.add(id90.getTree()); + // ANTLRParser.g:524:13: ( COMMA id )* loop24: do { int alt24=2; @@ -3159,17 +3353,17 @@ public class ANTLRParser extends Parser { switch (alt24) { case 1 : - // ANTLRParser.g:489:14: COMMA id + // ANTLRParser.g:524:14: COMMA id { - COMMA84=(Token)match(input,COMMA,FOLLOW_COMMA_in_ruleScopeSpec2211); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COMMA.add(COMMA84); + COMMA91=(Token)match(input,COMMA,FOLLOW_COMMA_in_ruleScopeSpec2277); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COMMA.add(COMMA91); - pushFollow(FOLLOW_id_in_ruleScopeSpec2213); - id85=id(); + pushFollow(FOLLOW_id_in_ruleScopeSpec2279); + id92=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id85.getTree()); + if ( state.backtracking==0 ) stream_id.add(id92.getTree()); } break; @@ -3179,8 +3373,8 @@ public class ANTLRParser extends Parser { } } while (true); - SEMI86=(Token)match(input,SEMI,FOLLOW_SEMI_in_ruleScopeSpec2217); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_SEMI.add(SEMI86); + SEMI93=(Token)match(input,SEMI,FOLLOW_SEMI_in_ruleScopeSpec2283); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEMI.add(SEMI93); @@ -3196,9 +3390,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 489:30: -> ^( SCOPE ( id )+ ) + // 524:30: -> ^( SCOPE ( id )+ ) { - // ANTLRParser.g:489:33: ^( SCOPE ( id )+ ) + // ANTLRParser.g:524:33: ^( SCOPE ( id )+ ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_SCOPE.nextNode(), root_1); @@ -3248,43 +3442,43 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "ruleAction" - // ANTLRParser.g:500:1: ruleAction : AT id ACTION -> ^( AT id ACTION ) ; + // ANTLRParser.g:535:1: ruleAction : AT id ACTION -> ^( AT id ACTION ) ; public final ANTLRParser.ruleAction_return ruleAction() throws RecognitionException { ANTLRParser.ruleAction_return retval = new ANTLRParser.ruleAction_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token AT87=null; - Token ACTION89=null; - ANTLRParser.id_return id88 = null; + Token AT94=null; + Token ACTION96=null; + ANTLRParser.id_return id95 = null; - GrammarAST AT87_tree=null; - GrammarAST ACTION89_tree=null; + GrammarAST AT94_tree=null; + GrammarAST ACTION96_tree=null; RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT"); RewriteRuleTokenStream stream_ACTION=new RewriteRuleTokenStream(adaptor,"token ACTION"); RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); try { - // ANTLRParser.g:502:2: ( AT id ACTION -> ^( AT id ACTION ) ) - // ANTLRParser.g:502:4: AT id ACTION + // ANTLRParser.g:537:2: ( AT id ACTION -> ^( AT id ACTION ) ) + // ANTLRParser.g:537:4: AT id ACTION { - AT87=(Token)match(input,AT,FOLLOW_AT_in_ruleAction2247); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_AT.add(AT87); + AT94=(Token)match(input,AT,FOLLOW_AT_in_ruleAction2313); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_AT.add(AT94); - pushFollow(FOLLOW_id_in_ruleAction2249); - id88=id(); + pushFollow(FOLLOW_id_in_ruleAction2315); + id95=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id88.getTree()); - ACTION89=(Token)match(input,ACTION,FOLLOW_ACTION_in_ruleAction2251); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ACTION.add(ACTION89); + if ( state.backtracking==0 ) stream_id.add(id95.getTree()); + ACTION96=(Token)match(input,ACTION,FOLLOW_ACTION_in_ruleAction2317); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ACTION.add(ACTION96); // AST REWRITE - // elements: ACTION, AT, id + // elements: AT, ACTION, id // token labels: // rule labels: retval // token list labels: @@ -3295,9 +3489,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 502:17: -> ^( AT id ACTION ) + // 537:17: -> ^( AT id ACTION ) { - // ANTLRParser.g:502:20: ^( AT id ACTION ) + // ANTLRParser.g:537:20: ^( AT id ACTION ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_AT.nextNode(), root_1); @@ -3339,22 +3533,22 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "ruleModifiers" - // ANTLRParser.g:510:1: ruleModifiers : ( ruleModifier )+ -> ^( RULEMODIFIERS ( ruleModifier )+ ) ; + // ANTLRParser.g:545:1: ruleModifiers : ( ruleModifier )+ -> ^( RULEMODIFIERS ( ruleModifier )+ ) ; public final ANTLRParser.ruleModifiers_return ruleModifiers() throws RecognitionException { ANTLRParser.ruleModifiers_return retval = new ANTLRParser.ruleModifiers_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - ANTLRParser.ruleModifier_return ruleModifier90 = null; + ANTLRParser.ruleModifier_return ruleModifier97 = null; RewriteRuleSubtreeStream stream_ruleModifier=new RewriteRuleSubtreeStream(adaptor,"rule ruleModifier"); try { - // ANTLRParser.g:511:5: ( ( ruleModifier )+ -> ^( RULEMODIFIERS ( ruleModifier )+ ) ) - // ANTLRParser.g:511:7: ( ruleModifier )+ + // ANTLRParser.g:546:5: ( ( ruleModifier )+ -> ^( RULEMODIFIERS ( ruleModifier )+ ) ) + // ANTLRParser.g:546:7: ( ruleModifier )+ { - // ANTLRParser.g:511:7: ( ruleModifier )+ + // ANTLRParser.g:546:7: ( ruleModifier )+ int cnt26=0; loop26: do { @@ -3368,14 +3562,14 @@ public class ANTLRParser extends Parser { switch (alt26) { case 1 : - // ANTLRParser.g:511:7: ruleModifier + // ANTLRParser.g:546:7: ruleModifier { - pushFollow(FOLLOW_ruleModifier_in_ruleModifiers2292); - ruleModifier90=ruleModifier(); + pushFollow(FOLLOW_ruleModifier_in_ruleModifiers2358); + ruleModifier97=ruleModifier(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ruleModifier.add(ruleModifier90.getTree()); + if ( state.backtracking==0 ) stream_ruleModifier.add(ruleModifier97.getTree()); } break; @@ -3404,9 +3598,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 511:21: -> ^( RULEMODIFIERS ( ruleModifier )+ ) + // 546:21: -> ^( RULEMODIFIERS ( ruleModifier )+ ) { - // ANTLRParser.g:511:24: ^( RULEMODIFIERS ( ruleModifier )+ ) + // ANTLRParser.g:546:24: ^( RULEMODIFIERS ( ruleModifier )+ ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(RULEMODIFIERS, "RULEMODIFIERS"), root_1); @@ -3454,27 +3648,27 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "ruleModifier" - // ANTLRParser.g:520:1: ruleModifier : ( PUBLIC | PRIVATE | PROTECTED | FRAGMENT ); + // ANTLRParser.g:555:1: ruleModifier : ( PUBLIC | PRIVATE | PROTECTED | FRAGMENT ); public final ANTLRParser.ruleModifier_return ruleModifier() throws RecognitionException { ANTLRParser.ruleModifier_return retval = new ANTLRParser.ruleModifier_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token set91=null; + Token set98=null; - GrammarAST set91_tree=null; + GrammarAST set98_tree=null; try { - // ANTLRParser.g:521:5: ( PUBLIC | PRIVATE | PROTECTED | FRAGMENT ) + // ANTLRParser.g:556:5: ( PUBLIC | PRIVATE | PROTECTED | FRAGMENT ) // ANTLRParser.g: { root_0 = (GrammarAST)adaptor.nil(); - set91=(Token)input.LT(1); + set98=(Token)input.LT(1); if ( input.LA(1)==FRAGMENT||(input.LA(1)>=PROTECTED && input.LA(1)<=PRIVATE) ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (GrammarAST)adaptor.create(set91)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (GrammarAST)adaptor.create(set98)); state.errorRecovery=false;state.failed=false; } else { @@ -3512,33 +3706,33 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "altList" - // ANTLRParser.g:527:1: altList : alternative ( OR alternative )* -> ( alternative )+ ; + // ANTLRParser.g:562:1: altList : alternative ( OR alternative )* -> ( alternative )+ ; public final ANTLRParser.altList_return altList() throws RecognitionException { ANTLRParser.altList_return retval = new ANTLRParser.altList_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token OR93=null; - ANTLRParser.alternative_return alternative92 = null; + Token OR100=null; + ANTLRParser.alternative_return alternative99 = null; - ANTLRParser.alternative_return alternative94 = null; + ANTLRParser.alternative_return alternative101 = null; - GrammarAST OR93_tree=null; + GrammarAST OR100_tree=null; RewriteRuleTokenStream stream_OR=new RewriteRuleTokenStream(adaptor,"token OR"); RewriteRuleSubtreeStream stream_alternative=new RewriteRuleSubtreeStream(adaptor,"rule alternative"); try { - // ANTLRParser.g:528:5: ( alternative ( OR alternative )* -> ( alternative )+ ) - // ANTLRParser.g:528:7: alternative ( OR alternative )* + // ANTLRParser.g:563:5: ( alternative ( OR alternative )* -> ( alternative )+ ) + // ANTLRParser.g:563:7: alternative ( OR alternative )* { - pushFollow(FOLLOW_alternative_in_altList2368); - alternative92=alternative(); + pushFollow(FOLLOW_alternative_in_altList2434); + alternative99=alternative(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_alternative.add(alternative92.getTree()); - // ANTLRParser.g:528:19: ( OR alternative )* + if ( state.backtracking==0 ) stream_alternative.add(alternative99.getTree()); + // ANTLRParser.g:563:19: ( OR alternative )* loop27: do { int alt27=2; @@ -3551,17 +3745,17 @@ public class ANTLRParser extends Parser { switch (alt27) { case 1 : - // ANTLRParser.g:528:20: OR alternative + // ANTLRParser.g:563:20: OR alternative { - OR93=(Token)match(input,OR,FOLLOW_OR_in_altList2371); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_OR.add(OR93); + OR100=(Token)match(input,OR,FOLLOW_OR_in_altList2437); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_OR.add(OR100); - pushFollow(FOLLOW_alternative_in_altList2373); - alternative94=alternative(); + pushFollow(FOLLOW_alternative_in_altList2439); + alternative101=alternative(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_alternative.add(alternative94.getTree()); + if ( state.backtracking==0 ) stream_alternative.add(alternative101.getTree()); } break; @@ -3585,7 +3779,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 528:37: -> ( alternative )+ + // 563:37: -> ( alternative )+ { if ( !(stream_alternative.hasNext()) ) { throw new RewriteEarlyExitException(); @@ -3621,33 +3815,33 @@ public class ANTLRParser extends Parser { } // $ANTLR end "altList" - public static class altListAsBlock_return extends ParserRuleReturnScope { + public static class ruleBlock_return extends ParserRuleReturnScope { GrammarAST tree; public Object getTree() { return tree; } }; - // $ANTLR start "altListAsBlock" - // ANTLRParser.g:537:1: altListAsBlock : altList -> ^( BLOCK altList ) ; - public final ANTLRParser.altListAsBlock_return altListAsBlock() throws RecognitionException { - ANTLRParser.altListAsBlock_return retval = new ANTLRParser.altListAsBlock_return(); + // $ANTLR start "ruleBlock" + // ANTLRParser.g:572:1: ruleBlock : altList -> ^( BLOCK altList ) ; + public final ANTLRParser.ruleBlock_return ruleBlock() throws RecognitionException { + ANTLRParser.ruleBlock_return retval = new ANTLRParser.ruleBlock_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - ANTLRParser.altList_return altList95 = null; + ANTLRParser.altList_return altList102 = null; RewriteRuleSubtreeStream stream_altList=new RewriteRuleSubtreeStream(adaptor,"rule altList"); try { - // ANTLRParser.g:538:5: ( altList -> ^( BLOCK altList ) ) - // ANTLRParser.g:538:7: altList + // ANTLRParser.g:573:5: ( altList -> ^( BLOCK altList ) ) + // ANTLRParser.g:573:7: altList { - pushFollow(FOLLOW_altList_in_altListAsBlock2403); - altList95=altList(); + pushFollow(FOLLOW_altList_in_ruleBlock2469); + altList102=altList(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_altList.add(altList95.getTree()); + if ( state.backtracking==0 ) stream_altList.add(altList102.getTree()); // AST REWRITE @@ -3662,9 +3856,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 538:15: -> ^( BLOCK altList ) + // 573:15: -> ^( BLOCK altList ) { - // ANTLRParser.g:538:18: ^( BLOCK altList ) + // ANTLRParser.g:573:18: ^( BLOCK altList ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(new BlockAST(BLOCK), root_1); @@ -3687,17 +3881,17 @@ public class ANTLRParser extends Parser { adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (GrammarAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + catch (ResyncToEndOfRuleBlock e) { + // just resyncing; ignore error + retval.tree = (GrammarAST)adaptor.errorNode(input, retval.start, input.LT(-1), null); + } finally { } return retval; } - // $ANTLR end "altListAsBlock" + // $ANTLR end "ruleBlock" public static class alternative_return extends ParserRuleReturnScope { GrammarAST tree; @@ -3705,24 +3899,25 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "alternative" - // ANTLRParser.g:543:1: alternative : ( elements ( rewrite -> ^( ALT_REWRITE elements rewrite ) | -> elements ) | rewrite -> ^( ALT_REWRITE ^( ALT EPSILON ) rewrite ) | -> ^( ALT EPSILON ) ); + // ANTLRParser.g:582:1: alternative : ( elements ( rewrite -> ^( ALT_REWRITE elements rewrite ) | -> elements ) | rewrite -> ^( ALT_REWRITE ^( ALT EPSILON ) rewrite ) | -> ^( ALT EPSILON ) ); public final ANTLRParser.alternative_return alternative() throws RecognitionException { ANTLRParser.alternative_return retval = new ANTLRParser.alternative_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - ANTLRParser.elements_return elements96 = null; + ANTLRParser.elements_return elements103 = null; - ANTLRParser.rewrite_return rewrite97 = null; + ANTLRParser.rewrite_return rewrite104 = null; - ANTLRParser.rewrite_return rewrite98 = null; + ANTLRParser.rewrite_return rewrite105 = null; RewriteRuleSubtreeStream stream_rewrite=new RewriteRuleSubtreeStream(adaptor,"rule rewrite"); RewriteRuleSubtreeStream stream_elements=new RewriteRuleSubtreeStream(adaptor,"rule elements"); + paraphrases.push("matching alternative"); try { - // ANTLRParser.g:544:5: ( elements ( rewrite -> ^( ALT_REWRITE elements rewrite ) | -> elements ) | rewrite -> ^( ALT_REWRITE ^( ALT EPSILON ) rewrite ) | -> ^( ALT EPSILON ) ) + // ANTLRParser.g:585:5: ( elements ( rewrite -> ^( ALT_REWRITE elements rewrite ) | -> elements ) | rewrite -> ^( ALT_REWRITE ^( ALT EPSILON ) rewrite ) | -> ^( ALT EPSILON ) ) int alt29=3; switch ( input.LA(1) ) { case SEMPRED: @@ -3762,15 +3957,15 @@ public class ANTLRParser extends Parser { switch (alt29) { case 1 : - // ANTLRParser.g:544:7: elements ( rewrite -> ^( ALT_REWRITE elements rewrite ) | -> elements ) + // ANTLRParser.g:585:7: elements ( rewrite -> ^( ALT_REWRITE elements rewrite ) | -> elements ) { - pushFollow(FOLLOW_elements_in_alternative2433); - elements96=elements(); + pushFollow(FOLLOW_elements_in_alternative2519); + elements103=elements(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_elements.add(elements96.getTree()); - // ANTLRParser.g:545:6: ( rewrite -> ^( ALT_REWRITE elements rewrite ) | -> elements ) + if ( state.backtracking==0 ) stream_elements.add(elements103.getTree()); + // ANTLRParser.g:586:6: ( rewrite -> ^( ALT_REWRITE elements rewrite ) | -> elements ) int alt28=2; int LA28_0 = input.LA(1); @@ -3789,18 +3984,18 @@ public class ANTLRParser extends Parser { } switch (alt28) { case 1 : - // ANTLRParser.g:545:8: rewrite + // ANTLRParser.g:586:8: rewrite { - pushFollow(FOLLOW_rewrite_in_alternative2442); - rewrite97=rewrite(); + pushFollow(FOLLOW_rewrite_in_alternative2528); + rewrite104=rewrite(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewrite.add(rewrite97.getTree()); + if ( state.backtracking==0 ) stream_rewrite.add(rewrite104.getTree()); // AST REWRITE - // elements: elements, rewrite + // elements: rewrite, elements // token labels: // rule labels: retval // token list labels: @@ -3811,9 +4006,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 545:16: -> ^( ALT_REWRITE elements rewrite ) + // 586:16: -> ^( ALT_REWRITE elements rewrite ) { - // ANTLRParser.g:545:19: ^( ALT_REWRITE elements rewrite ) + // ANTLRParser.g:586:19: ^( ALT_REWRITE elements rewrite ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ALT_REWRITE, "ALT_REWRITE"), root_1); @@ -3830,7 +4025,7 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:546:10: + // ANTLRParser.g:587:10: { // AST REWRITE @@ -3845,7 +4040,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 546:10: -> elements + // 587:10: -> elements { adaptor.addChild(root_0, stream_elements.nextTree()); @@ -3861,14 +4056,14 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:548:7: rewrite + // ANTLRParser.g:589:7: rewrite { - pushFollow(FOLLOW_rewrite_in_alternative2480); - rewrite98=rewrite(); + pushFollow(FOLLOW_rewrite_in_alternative2566); + rewrite105=rewrite(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewrite.add(rewrite98.getTree()); + if ( state.backtracking==0 ) stream_rewrite.add(rewrite105.getTree()); // AST REWRITE @@ -3883,14 +4078,14 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 548:16: -> ^( ALT_REWRITE ^( ALT EPSILON ) rewrite ) + // 589:16: -> ^( ALT_REWRITE ^( ALT EPSILON ) rewrite ) { - // ANTLRParser.g:548:19: ^( ALT_REWRITE ^( ALT EPSILON ) rewrite ) + // ANTLRParser.g:589:19: ^( ALT_REWRITE ^( ALT EPSILON ) rewrite ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ALT_REWRITE, "ALT_REWRITE"), root_1); - // ANTLRParser.g:548:33: ^( ALT EPSILON ) + // ANTLRParser.g:589:33: ^( ALT EPSILON ) { GrammarAST root_2 = (GrammarAST)adaptor.nil(); root_2 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ALT, "ALT"), root_2); @@ -3910,7 +4105,7 @@ public class ANTLRParser extends Parser { } break; case 3 : - // ANTLRParser.g:549:10: + // ANTLRParser.g:590:10: { // AST REWRITE @@ -3925,9 +4120,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 549:10: -> ^( ALT EPSILON ) + // 590:10: -> ^( ALT EPSILON ) { - // ANTLRParser.g:549:13: ^( ALT EPSILON ) + // ANTLRParser.g:590:13: ^( ALT EPSILON ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ALT, "ALT"), root_1); @@ -3951,6 +4146,9 @@ public class ANTLRParser extends Parser { retval.tree = (GrammarAST)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } + if ( state.backtracking==0 ) { + paraphrases.pop(); + } } catch (RecognitionException re) { reportError(re); @@ -3970,7 +4168,7 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "elements" - // ANTLRParser.g:552:1: elements : (e+= element )+ -> ^( ALT ( $e)+ ) ; + // ANTLRParser.g:593:1: elements : (e+= element )+ -> ^( ALT ( $e)+ ) ; public final ANTLRParser.elements_return elements() throws RecognitionException { ANTLRParser.elements_return retval = new ANTLRParser.elements_return(); retval.start = input.LT(1); @@ -3981,10 +4179,10 @@ public class ANTLRParser extends Parser { RuleReturnScope e = null; RewriteRuleSubtreeStream stream_element=new RewriteRuleSubtreeStream(adaptor,"rule element"); try { - // ANTLRParser.g:553:5: ( (e+= element )+ -> ^( ALT ( $e)+ ) ) - // ANTLRParser.g:553:7: (e+= element )+ + // ANTLRParser.g:594:5: ( (e+= element )+ -> ^( ALT ( $e)+ ) ) + // ANTLRParser.g:594:7: (e+= element )+ { - // ANTLRParser.g:553:8: (e+= element )+ + // ANTLRParser.g:594:8: (e+= element )+ int cnt30=0; loop30: do { @@ -3998,9 +4196,9 @@ public class ANTLRParser extends Parser { switch (alt30) { case 1 : - // ANTLRParser.g:553:8: e+= element + // ANTLRParser.g:594:8: e+= element { - pushFollow(FOLLOW_element_in_elements2533); + pushFollow(FOLLOW_element_in_elements2619); e=element(); state._fsp--; @@ -4037,9 +4235,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_e=new RewriteRuleSubtreeStream(adaptor,"token e",list_e); root_0 = (GrammarAST)adaptor.nil(); - // 553:19: -> ^( ALT ( $e)+ ) + // 594:19: -> ^( ALT ( $e)+ ) { - // ANTLRParser.g:553:22: ^( ALT ( $e)+ ) + // ANTLRParser.g:594:22: ^( ALT ( $e)+ ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ALT, "ALT"), root_1); @@ -4087,55 +4285,59 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "element" - // ANTLRParser.g:556:1: element : ( labeledElement ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) | -> labeledElement ) | atom ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) | -> atom ) | ebnf | ACTION | SEMPRED ( IMPLIES -> GATED_SEMPRED[$IMPLIES] | -> SEMPRED ) | treeSpec ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) | -> treeSpec ) ); + // ANTLRParser.g:597:1: element : ( labeledElement ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) | -> labeledElement ) | atom ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) | -> atom ) | ebnf | ACTION | SEMPRED ( IMPLIES -> GATED_SEMPRED[$IMPLIES] | -> SEMPRED ) | treeSpec ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) | -> treeSpec ) ); public final ANTLRParser.element_return element() throws RecognitionException { ANTLRParser.element_return retval = new ANTLRParser.element_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token ACTION104=null; - Token SEMPRED105=null; - Token IMPLIES106=null; - ANTLRParser.labeledElement_return labeledElement99 = null; + Token ACTION111=null; + Token SEMPRED112=null; + Token IMPLIES113=null; + ANTLRParser.labeledElement_return labeledElement106 = null; - ANTLRParser.ebnfSuffix_return ebnfSuffix100 = null; + ANTLRParser.ebnfSuffix_return ebnfSuffix107 = null; - ANTLRParser.atom_return atom101 = null; + ANTLRParser.atom_return atom108 = null; - ANTLRParser.ebnfSuffix_return ebnfSuffix102 = null; + ANTLRParser.ebnfSuffix_return ebnfSuffix109 = null; - ANTLRParser.ebnf_return ebnf103 = null; + ANTLRParser.ebnf_return ebnf110 = null; - ANTLRParser.treeSpec_return treeSpec107 = null; + ANTLRParser.treeSpec_return treeSpec114 = null; - ANTLRParser.ebnfSuffix_return ebnfSuffix108 = null; + ANTLRParser.ebnfSuffix_return ebnfSuffix115 = null; - GrammarAST ACTION104_tree=null; - GrammarAST SEMPRED105_tree=null; - GrammarAST IMPLIES106_tree=null; + GrammarAST ACTION111_tree=null; + GrammarAST SEMPRED112_tree=null; + GrammarAST IMPLIES113_tree=null; RewriteRuleTokenStream stream_IMPLIES=new RewriteRuleTokenStream(adaptor,"token IMPLIES"); RewriteRuleTokenStream stream_SEMPRED=new RewriteRuleTokenStream(adaptor,"token SEMPRED"); RewriteRuleSubtreeStream stream_atom=new RewriteRuleSubtreeStream(adaptor,"rule atom"); RewriteRuleSubtreeStream stream_ebnfSuffix=new RewriteRuleSubtreeStream(adaptor,"rule ebnfSuffix"); RewriteRuleSubtreeStream stream_treeSpec=new RewriteRuleSubtreeStream(adaptor,"rule treeSpec"); RewriteRuleSubtreeStream stream_labeledElement=new RewriteRuleSubtreeStream(adaptor,"rule labeledElement"); + + paraphrases.push("looking for rule element"); + int m = input.mark(); + try { - // ANTLRParser.g:557:2: ( labeledElement ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) | -> labeledElement ) | atom ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) | -> atom ) | ebnf | ACTION | SEMPRED ( IMPLIES -> GATED_SEMPRED[$IMPLIES] | -> SEMPRED ) | treeSpec ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) | -> treeSpec ) ) + // ANTLRParser.g:603:2: ( labeledElement ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) | -> labeledElement ) | atom ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) | -> atom ) | ebnf | ACTION | SEMPRED ( IMPLIES -> GATED_SEMPRED[$IMPLIES] | -> SEMPRED ) | treeSpec ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) | -> treeSpec ) ) int alt35=6; alt35 = dfa35.predict(input); switch (alt35) { case 1 : - // ANTLRParser.g:557:4: labeledElement ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) | -> labeledElement ) + // ANTLRParser.g:603:4: labeledElement ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) | -> labeledElement ) { - pushFollow(FOLLOW_labeledElement_in_element2560); - labeledElement99=labeledElement(); + pushFollow(FOLLOW_labeledElement_in_element2656); + labeledElement106=labeledElement(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_labeledElement.add(labeledElement99.getTree()); - // ANTLRParser.g:558:3: ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) | -> labeledElement ) + if ( state.backtracking==0 ) stream_labeledElement.add(labeledElement106.getTree()); + // ANTLRParser.g:604:3: ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) | -> labeledElement ) int alt31=2; int LA31_0 = input.LA(1); @@ -4154,14 +4356,14 @@ public class ANTLRParser extends Parser { } switch (alt31) { case 1 : - // ANTLRParser.g:558:5: ebnfSuffix + // ANTLRParser.g:604:5: ebnfSuffix { - pushFollow(FOLLOW_ebnfSuffix_in_element2566); - ebnfSuffix100=ebnfSuffix(); + pushFollow(FOLLOW_ebnfSuffix_in_element2662); + ebnfSuffix107=ebnfSuffix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix100.getTree()); + if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix107.getTree()); // AST REWRITE @@ -4176,19 +4378,19 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 558:16: -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) + // 604:16: -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) { - // ANTLRParser.g:558:19: ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) + // ANTLRParser.g:604:19: ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_ebnfSuffix.nextNode(), root_1); - // ANTLRParser.g:558:33: ^( BLOCK ^( ALT labeledElement ) ) + // ANTLRParser.g:604:33: ^( BLOCK ^( ALT labeledElement ) ) { GrammarAST root_2 = (GrammarAST)adaptor.nil(); root_2 = (GrammarAST)adaptor.becomeRoot(new BlockAST(BLOCK), root_2); - // ANTLRParser.g:558:51: ^( ALT labeledElement ) + // ANTLRParser.g:604:51: ^( ALT labeledElement ) { GrammarAST root_3 = (GrammarAST)adaptor.nil(); root_3 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ALT, "ALT"), root_3); @@ -4210,7 +4412,7 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:559:8: + // ANTLRParser.g:605:8: { // AST REWRITE @@ -4225,7 +4427,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 559:8: -> labeledElement + // 605:8: -> labeledElement { adaptor.addChild(root_0, stream_labeledElement.nextTree()); @@ -4241,15 +4443,15 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:561:4: atom ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) | -> atom ) + // ANTLRParser.g:607:4: atom ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) | -> atom ) { - pushFollow(FOLLOW_atom_in_element2608); - atom101=atom(); + pushFollow(FOLLOW_atom_in_element2704); + atom108=atom(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_atom.add(atom101.getTree()); - // ANTLRParser.g:562:3: ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) | -> atom ) + if ( state.backtracking==0 ) stream_atom.add(atom108.getTree()); + // ANTLRParser.g:608:3: ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) | -> atom ) int alt32=2; int LA32_0 = input.LA(1); @@ -4268,18 +4470,18 @@ public class ANTLRParser extends Parser { } switch (alt32) { case 1 : - // ANTLRParser.g:562:5: ebnfSuffix + // ANTLRParser.g:608:5: ebnfSuffix { - pushFollow(FOLLOW_ebnfSuffix_in_element2614); - ebnfSuffix102=ebnfSuffix(); + pushFollow(FOLLOW_ebnfSuffix_in_element2710); + ebnfSuffix109=ebnfSuffix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix102.getTree()); + if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix109.getTree()); // AST REWRITE - // elements: ebnfSuffix, atom + // elements: atom, ebnfSuffix // token labels: // rule labels: retval // token list labels: @@ -4290,19 +4492,19 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 562:16: -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) + // 608:16: -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) { - // ANTLRParser.g:562:19: ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) + // ANTLRParser.g:608:19: ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_ebnfSuffix.nextNode(), root_1); - // ANTLRParser.g:562:33: ^( BLOCK ^( ALT atom ) ) + // ANTLRParser.g:608:33: ^( BLOCK ^( ALT atom ) ) { GrammarAST root_2 = (GrammarAST)adaptor.nil(); root_2 = (GrammarAST)adaptor.becomeRoot(new BlockAST(BLOCK), root_2); - // ANTLRParser.g:562:51: ^( ALT atom ) + // ANTLRParser.g:608:51: ^( ALT atom ) { GrammarAST root_3 = (GrammarAST)adaptor.nil(); root_3 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ALT, "ALT"), root_3); @@ -4324,7 +4526,7 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:563:8: + // ANTLRParser.g:609:8: { // AST REWRITE @@ -4339,7 +4541,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 563:8: -> atom + // 609:8: -> atom { adaptor.addChild(root_0, stream_atom.nextTree()); @@ -4355,39 +4557,39 @@ public class ANTLRParser extends Parser { } break; case 3 : - // ANTLRParser.g:565:4: ebnf + // ANTLRParser.g:611:4: ebnf { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_ebnf_in_element2657); - ebnf103=ebnf(); + pushFollow(FOLLOW_ebnf_in_element2753); + ebnf110=ebnf(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ebnf103.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ebnf110.getTree()); } break; case 4 : - // ANTLRParser.g:566:6: ACTION + // ANTLRParser.g:612:6: ACTION { root_0 = (GrammarAST)adaptor.nil(); - ACTION104=(Token)match(input,ACTION,FOLLOW_ACTION_in_element2664); if (state.failed) return retval; + ACTION111=(Token)match(input,ACTION,FOLLOW_ACTION_in_element2760); if (state.failed) return retval; if ( state.backtracking==0 ) { - ACTION104_tree = new ActionAST(ACTION104) ; - adaptor.addChild(root_0, ACTION104_tree); + ACTION111_tree = new ActionAST(ACTION111) ; + adaptor.addChild(root_0, ACTION111_tree); } } break; case 5 : - // ANTLRParser.g:567:6: SEMPRED ( IMPLIES -> GATED_SEMPRED[$IMPLIES] | -> SEMPRED ) + // ANTLRParser.g:613:6: SEMPRED ( IMPLIES -> GATED_SEMPRED[$IMPLIES] | -> SEMPRED ) { - SEMPRED105=(Token)match(input,SEMPRED,FOLLOW_SEMPRED_in_element2674); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_SEMPRED.add(SEMPRED105); + SEMPRED112=(Token)match(input,SEMPRED,FOLLOW_SEMPRED_in_element2770); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEMPRED.add(SEMPRED112); - // ANTLRParser.g:568:3: ( IMPLIES -> GATED_SEMPRED[$IMPLIES] | -> SEMPRED ) + // ANTLRParser.g:614:3: ( IMPLIES -> GATED_SEMPRED[$IMPLIES] | -> SEMPRED ) int alt33=2; int LA33_0 = input.LA(1); @@ -4406,10 +4608,10 @@ public class ANTLRParser extends Parser { } switch (alt33) { case 1 : - // ANTLRParser.g:568:5: IMPLIES + // ANTLRParser.g:614:5: IMPLIES { - IMPLIES106=(Token)match(input,IMPLIES,FOLLOW_IMPLIES_in_element2680); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_IMPLIES.add(IMPLIES106); + IMPLIES113=(Token)match(input,IMPLIES,FOLLOW_IMPLIES_in_element2776); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_IMPLIES.add(IMPLIES113); @@ -4425,9 +4627,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 568:14: -> GATED_SEMPRED[$IMPLIES] + // 614:14: -> GATED_SEMPRED[$IMPLIES] { - adaptor.addChild(root_0, (GrammarAST)adaptor.create(GATED_SEMPRED, IMPLIES106)); + adaptor.addChild(root_0, (GrammarAST)adaptor.create(GATED_SEMPRED, IMPLIES113)); } @@ -4435,7 +4637,7 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:569:8: + // ANTLRParser.g:615:8: { // AST REWRITE @@ -4450,7 +4652,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 569:8: -> SEMPRED + // 615:8: -> SEMPRED { adaptor.addChild(root_0, stream_SEMPRED.nextNode()); @@ -4466,15 +4668,15 @@ public class ANTLRParser extends Parser { } break; case 6 : - // ANTLRParser.g:571:6: treeSpec ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) | -> treeSpec ) + // ANTLRParser.g:617:6: treeSpec ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) | -> treeSpec ) { - pushFollow(FOLLOW_treeSpec_in_element2708); - treeSpec107=treeSpec(); + pushFollow(FOLLOW_treeSpec_in_element2804); + treeSpec114=treeSpec(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_treeSpec.add(treeSpec107.getTree()); - // ANTLRParser.g:572:3: ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) | -> treeSpec ) + if ( state.backtracking==0 ) stream_treeSpec.add(treeSpec114.getTree()); + // ANTLRParser.g:618:3: ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) | -> treeSpec ) int alt34=2; int LA34_0 = input.LA(1); @@ -4493,14 +4695,14 @@ public class ANTLRParser extends Parser { } switch (alt34) { case 1 : - // ANTLRParser.g:572:5: ebnfSuffix + // ANTLRParser.g:618:5: ebnfSuffix { - pushFollow(FOLLOW_ebnfSuffix_in_element2714); - ebnfSuffix108=ebnfSuffix(); + pushFollow(FOLLOW_ebnfSuffix_in_element2810); + ebnfSuffix115=ebnfSuffix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix108.getTree()); + if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix115.getTree()); // AST REWRITE @@ -4515,19 +4717,19 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 572:16: -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) + // 618:16: -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) { - // ANTLRParser.g:572:19: ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) + // ANTLRParser.g:618:19: ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_ebnfSuffix.nextNode(), root_1); - // ANTLRParser.g:572:33: ^( BLOCK ^( ALT treeSpec ) ) + // ANTLRParser.g:618:33: ^( BLOCK ^( ALT treeSpec ) ) { GrammarAST root_2 = (GrammarAST)adaptor.nil(); root_2 = (GrammarAST)adaptor.becomeRoot(new BlockAST(BLOCK), root_2); - // ANTLRParser.g:572:51: ^( ALT treeSpec ) + // ANTLRParser.g:618:51: ^( ALT treeSpec ) { GrammarAST root_3 = (GrammarAST)adaptor.nil(); root_3 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ALT, "ALT"), root_3); @@ -4549,7 +4751,7 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:573:8: + // ANTLRParser.g:619:8: { // AST REWRITE @@ -4564,7 +4766,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 573:8: -> treeSpec + // 619:8: -> treeSpec { adaptor.addChild(root_0, stream_treeSpec.nextTree()); @@ -4588,12 +4790,55 @@ public class ANTLRParser extends Parser { retval.tree = (GrammarAST)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } + if ( state.backtracking==0 ) { + paraphrases.pop(); + } } catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (GrammarAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + retval.tree = (GrammarAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + int ttype = input.get(input.range()).getType(); + // look for anything that really belongs at the start of the rule minus the initial ID + if ( ttype==COLON || ttype==RETURNS || ttype==CATCH || ttype==FINALLY || ttype==AT ) { + RecognitionException missingSemi = + new v4ParserException("unterminated rule (missing ';') detected at '"+ + input.LT(1).getText()+" "+input.LT(2).getText()+"'", input); + reportError(missingSemi); + if ( ttype==CATCH || ttype==FINALLY ) { + input.seek(input.range()); // ignore what's before rule trailer stuff + } + if ( ttype==RETURNS || ttype==AT ) { // scan back looking for ID of rule header + int p = input.index(); + Token t = input.get(p); + while ( t.getType()!=RULE_REF && t.getType()!=TOKEN_REF ) { + p--; + t = input.get(p); + } + input.seek(p); + } + throw new ResyncToEndOfRuleBlock(); // make sure it goes back to rule block level to recover + } + reportError(re); + recover(input,re); + /* + input.rewind(m); + final List subset = input.get(input.index(), input.range()); + System.out.println("failed to match as element: '"+subset); + CommonTokenStream ns = new CommonTokenStream( + new TokenSource() { + int i = 0; + public Token nextToken() { + if ( i>=subset.size() ) return Token.EOF_TOKEN; + return (Token)subset.get(i++); + } + public String getSourceName() { return null; } + }); + ANTLRParser errorParser = new ANTLRParser(ns); + errorParser.setTreeAdaptor(this.adaptor); + errorParser.element_errors(re); + retval.tree = (GrammarAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); + */ + } finally { } @@ -4607,38 +4852,38 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "labeledElement" - // ANTLRParser.g:577:1: labeledElement : id ( ASSIGN | PLUS_ASSIGN ) ( atom | block ) ; + // ANTLRParser.g:693:1: labeledElement : id ( ASSIGN | PLUS_ASSIGN ) ( atom | block ) ; public final ANTLRParser.labeledElement_return labeledElement() throws RecognitionException { ANTLRParser.labeledElement_return retval = new ANTLRParser.labeledElement_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token ASSIGN110=null; - Token PLUS_ASSIGN111=null; - ANTLRParser.id_return id109 = null; + Token ASSIGN117=null; + Token PLUS_ASSIGN118=null; + ANTLRParser.id_return id116 = null; - ANTLRParser.atom_return atom112 = null; + ANTLRParser.atom_return atom119 = null; - ANTLRParser.block_return block113 = null; + ANTLRParser.block_return block120 = null; - GrammarAST ASSIGN110_tree=null; - GrammarAST PLUS_ASSIGN111_tree=null; + GrammarAST ASSIGN117_tree=null; + GrammarAST PLUS_ASSIGN118_tree=null; try { - // ANTLRParser.g:577:16: ( id ( ASSIGN | PLUS_ASSIGN ) ( atom | block ) ) - // ANTLRParser.g:577:18: id ( ASSIGN | PLUS_ASSIGN ) ( atom | block ) + // ANTLRParser.g:693:16: ( id ( ASSIGN | PLUS_ASSIGN ) ( atom | block ) ) + // ANTLRParser.g:693:18: id ( ASSIGN | PLUS_ASSIGN ) ( atom | block ) { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_id_in_labeledElement2763); - id109=id(); + pushFollow(FOLLOW_id_in_labeledElement2871); + id116=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, id109.getTree()); - // ANTLRParser.g:577:21: ( ASSIGN | PLUS_ASSIGN ) + if ( state.backtracking==0 ) adaptor.addChild(root_0, id116.getTree()); + // ANTLRParser.g:693:21: ( ASSIGN | PLUS_ASSIGN ) int alt36=2; int LA36_0 = input.LA(1); @@ -4657,23 +4902,23 @@ public class ANTLRParser extends Parser { } switch (alt36) { case 1 : - // ANTLRParser.g:577:22: ASSIGN + // ANTLRParser.g:693:22: ASSIGN { - ASSIGN110=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_labeledElement2766); if (state.failed) return retval; + ASSIGN117=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_labeledElement2874); if (state.failed) return retval; if ( state.backtracking==0 ) { - ASSIGN110_tree = (GrammarAST)adaptor.create(ASSIGN110); - root_0 = (GrammarAST)adaptor.becomeRoot(ASSIGN110_tree, root_0); + ASSIGN117_tree = (GrammarAST)adaptor.create(ASSIGN117); + root_0 = (GrammarAST)adaptor.becomeRoot(ASSIGN117_tree, root_0); } } break; case 2 : - // ANTLRParser.g:577:30: PLUS_ASSIGN + // ANTLRParser.g:693:30: PLUS_ASSIGN { - PLUS_ASSIGN111=(Token)match(input,PLUS_ASSIGN,FOLLOW_PLUS_ASSIGN_in_labeledElement2769); if (state.failed) return retval; + PLUS_ASSIGN118=(Token)match(input,PLUS_ASSIGN,FOLLOW_PLUS_ASSIGN_in_labeledElement2877); if (state.failed) return retval; if ( state.backtracking==0 ) { - PLUS_ASSIGN111_tree = (GrammarAST)adaptor.create(PLUS_ASSIGN111); - root_0 = (GrammarAST)adaptor.becomeRoot(PLUS_ASSIGN111_tree, root_0); + PLUS_ASSIGN118_tree = (GrammarAST)adaptor.create(PLUS_ASSIGN118); + root_0 = (GrammarAST)adaptor.becomeRoot(PLUS_ASSIGN118_tree, root_0); } } @@ -4681,7 +4926,7 @@ public class ANTLRParser extends Parser { } - // ANTLRParser.g:577:44: ( atom | block ) + // ANTLRParser.g:693:44: ( atom | block ) int alt37=2; int LA37_0 = input.LA(1); @@ -4700,26 +4945,26 @@ public class ANTLRParser extends Parser { } switch (alt37) { case 1 : - // ANTLRParser.g:577:45: atom + // ANTLRParser.g:693:45: atom { - pushFollow(FOLLOW_atom_in_labeledElement2774); - atom112=atom(); + pushFollow(FOLLOW_atom_in_labeledElement2882); + atom119=atom(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, atom112.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, atom119.getTree()); } break; case 2 : - // ANTLRParser.g:577:50: block + // ANTLRParser.g:693:50: block { - pushFollow(FOLLOW_block_in_labeledElement2776); - block113=block(); + pushFollow(FOLLOW_block_in_labeledElement2884); + block120=block(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, block113.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, block120.getTree()); } break; @@ -4755,39 +5000,39 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "treeSpec" - // ANTLRParser.g:583:1: treeSpec : TREE_BEGIN element ( element )+ RPAREN -> ^( TREE_BEGIN ( element )+ ) ; + // ANTLRParser.g:699:1: treeSpec : TREE_BEGIN element ( element )+ RPAREN -> ^( TREE_BEGIN ( element )+ ) ; public final ANTLRParser.treeSpec_return treeSpec() throws RecognitionException { ANTLRParser.treeSpec_return retval = new ANTLRParser.treeSpec_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token TREE_BEGIN114=null; - Token RPAREN117=null; - ANTLRParser.element_return element115 = null; + Token TREE_BEGIN121=null; + Token RPAREN124=null; + ANTLRParser.element_return element122 = null; - ANTLRParser.element_return element116 = null; + ANTLRParser.element_return element123 = null; - GrammarAST TREE_BEGIN114_tree=null; - GrammarAST RPAREN117_tree=null; + GrammarAST TREE_BEGIN121_tree=null; + GrammarAST RPAREN124_tree=null; RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); RewriteRuleTokenStream stream_TREE_BEGIN=new RewriteRuleTokenStream(adaptor,"token TREE_BEGIN"); RewriteRuleSubtreeStream stream_element=new RewriteRuleSubtreeStream(adaptor,"rule element"); try { - // ANTLRParser.g:584:5: ( TREE_BEGIN element ( element )+ RPAREN -> ^( TREE_BEGIN ( element )+ ) ) - // ANTLRParser.g:584:7: TREE_BEGIN element ( element )+ RPAREN + // ANTLRParser.g:700:5: ( TREE_BEGIN element ( element )+ RPAREN -> ^( TREE_BEGIN ( element )+ ) ) + // ANTLRParser.g:700:7: TREE_BEGIN element ( element )+ RPAREN { - TREE_BEGIN114=(Token)match(input,TREE_BEGIN,FOLLOW_TREE_BEGIN_in_treeSpec2798); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TREE_BEGIN.add(TREE_BEGIN114); + TREE_BEGIN121=(Token)match(input,TREE_BEGIN,FOLLOW_TREE_BEGIN_in_treeSpec2902); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TREE_BEGIN.add(TREE_BEGIN121); - pushFollow(FOLLOW_element_in_treeSpec2839); - element115=element(); + pushFollow(FOLLOW_element_in_treeSpec2943); + element122=element(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_element.add(element115.getTree()); - // ANTLRParser.g:591:10: ( element )+ + if ( state.backtracking==0 ) stream_element.add(element122.getTree()); + // ANTLRParser.g:707:10: ( element )+ int cnt38=0; loop38: do { @@ -4801,14 +5046,14 @@ public class ANTLRParser extends Parser { switch (alt38) { case 1 : - // ANTLRParser.g:591:10: element + // ANTLRParser.g:707:10: element { - pushFollow(FOLLOW_element_in_treeSpec2870); - element116=element(); + pushFollow(FOLLOW_element_in_treeSpec2974); + element123=element(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_element.add(element116.getTree()); + if ( state.backtracking==0 ) stream_element.add(element123.getTree()); } break; @@ -4823,13 +5068,13 @@ public class ANTLRParser extends Parser { cnt38++; } while (true); - RPAREN117=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_treeSpec2879); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN117); + RPAREN124=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_treeSpec2983); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN124); // AST REWRITE - // elements: TREE_BEGIN, element + // elements: element, TREE_BEGIN // token labels: // rule labels: retval // token list labels: @@ -4840,9 +5085,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 593:7: -> ^( TREE_BEGIN ( element )+ ) + // 709:7: -> ^( TREE_BEGIN ( element )+ ) { - // ANTLRParser.g:593:10: ^( TREE_BEGIN ( element )+ ) + // ANTLRParser.g:709:10: ^( TREE_BEGIN ( element )+ ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_TREE_BEGIN.nextNode(), root_1); @@ -4890,31 +5135,31 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "ebnf" - // ANTLRParser.g:598:1: ebnf : block ( blockSuffixe -> ^( blockSuffixe block ) | -> block ) ; + // ANTLRParser.g:714:1: ebnf : block ( blockSuffixe -> ^( blockSuffixe block ) | -> block ) ; public final ANTLRParser.ebnf_return ebnf() throws RecognitionException { ANTLRParser.ebnf_return retval = new ANTLRParser.ebnf_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - ANTLRParser.block_return block118 = null; + ANTLRParser.block_return block125 = null; - ANTLRParser.blockSuffixe_return blockSuffixe119 = null; + ANTLRParser.blockSuffixe_return blockSuffixe126 = null; RewriteRuleSubtreeStream stream_blockSuffixe=new RewriteRuleSubtreeStream(adaptor,"rule blockSuffixe"); RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block"); try { - // ANTLRParser.g:599:5: ( block ( blockSuffixe -> ^( blockSuffixe block ) | -> block ) ) - // ANTLRParser.g:599:7: block ( blockSuffixe -> ^( blockSuffixe block ) | -> block ) + // ANTLRParser.g:715:5: ( block ( blockSuffixe -> ^( blockSuffixe block ) | -> block ) ) + // ANTLRParser.g:715:7: block ( blockSuffixe -> ^( blockSuffixe block ) | -> block ) { - pushFollow(FOLLOW_block_in_ebnf2913); - block118=block(); + pushFollow(FOLLOW_block_in_ebnf3017); + block125=block(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_block.add(block118.getTree()); - // ANTLRParser.g:603:7: ( blockSuffixe -> ^( blockSuffixe block ) | -> block ) + if ( state.backtracking==0 ) stream_block.add(block125.getTree()); + // ANTLRParser.g:719:7: ( blockSuffixe -> ^( blockSuffixe block ) | -> block ) int alt39=2; int LA39_0 = input.LA(1); @@ -4933,18 +5178,18 @@ public class ANTLRParser extends Parser { } switch (alt39) { case 1 : - // ANTLRParser.g:603:9: blockSuffixe + // ANTLRParser.g:719:9: blockSuffixe { - pushFollow(FOLLOW_blockSuffixe_in_ebnf2948); - blockSuffixe119=blockSuffixe(); + pushFollow(FOLLOW_blockSuffixe_in_ebnf3052); + blockSuffixe126=blockSuffixe(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_blockSuffixe.add(blockSuffixe119.getTree()); + if ( state.backtracking==0 ) stream_blockSuffixe.add(blockSuffixe126.getTree()); // AST REWRITE - // elements: block, blockSuffixe + // elements: blockSuffixe, block // token labels: // rule labels: retval // token list labels: @@ -4955,9 +5200,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 603:22: -> ^( blockSuffixe block ) + // 719:22: -> ^( blockSuffixe block ) { - // ANTLRParser.g:603:25: ^( blockSuffixe block ) + // ANTLRParser.g:719:25: ^( blockSuffixe block ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_blockSuffixe.nextNode(), root_1); @@ -4973,7 +5218,7 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:604:13: + // ANTLRParser.g:720:13: { // AST REWRITE @@ -4988,7 +5233,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 604:13: -> block + // 720:13: -> block { adaptor.addChild(root_0, stream_block.nextTree()); @@ -5029,25 +5274,25 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "blockSuffixe" - // ANTLRParser.g:610:1: blockSuffixe : ( ebnfSuffix | ROOT | IMPLIES | BANG ); + // ANTLRParser.g:726:1: blockSuffixe : ( ebnfSuffix | ROOT | IMPLIES | BANG ); public final ANTLRParser.blockSuffixe_return blockSuffixe() throws RecognitionException { ANTLRParser.blockSuffixe_return retval = new ANTLRParser.blockSuffixe_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token ROOT121=null; - Token IMPLIES122=null; - Token BANG123=null; - ANTLRParser.ebnfSuffix_return ebnfSuffix120 = null; + Token ROOT128=null; + Token IMPLIES129=null; + Token BANG130=null; + ANTLRParser.ebnfSuffix_return ebnfSuffix127 = null; - GrammarAST ROOT121_tree=null; - GrammarAST IMPLIES122_tree=null; - GrammarAST BANG123_tree=null; + GrammarAST ROOT128_tree=null; + GrammarAST IMPLIES129_tree=null; + GrammarAST BANG130_tree=null; try { - // ANTLRParser.g:611:5: ( ebnfSuffix | ROOT | IMPLIES | BANG ) + // ANTLRParser.g:727:5: ( ebnfSuffix | ROOT | IMPLIES | BANG ) int alt40=4; switch ( input.LA(1) ) { case QUESTION: @@ -5082,54 +5327,54 @@ public class ANTLRParser extends Parser { switch (alt40) { case 1 : - // ANTLRParser.g:611:7: ebnfSuffix + // ANTLRParser.g:727:7: ebnfSuffix { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_ebnfSuffix_in_blockSuffixe2999); - ebnfSuffix120=ebnfSuffix(); + pushFollow(FOLLOW_ebnfSuffix_in_blockSuffixe3103); + ebnfSuffix127=ebnfSuffix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ebnfSuffix120.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ebnfSuffix127.getTree()); } break; case 2 : - // ANTLRParser.g:614:7: ROOT + // ANTLRParser.g:730:7: ROOT { root_0 = (GrammarAST)adaptor.nil(); - ROOT121=(Token)match(input,ROOT,FOLLOW_ROOT_in_blockSuffixe3013); if (state.failed) return retval; + ROOT128=(Token)match(input,ROOT,FOLLOW_ROOT_in_blockSuffixe3117); if (state.failed) return retval; if ( state.backtracking==0 ) { - ROOT121_tree = (GrammarAST)adaptor.create(ROOT121); - adaptor.addChild(root_0, ROOT121_tree); + ROOT128_tree = (GrammarAST)adaptor.create(ROOT128); + adaptor.addChild(root_0, ROOT128_tree); } } break; case 3 : - // ANTLRParser.g:615:7: IMPLIES + // ANTLRParser.g:731:7: IMPLIES { root_0 = (GrammarAST)adaptor.nil(); - IMPLIES122=(Token)match(input,IMPLIES,FOLLOW_IMPLIES_in_blockSuffixe3021); if (state.failed) return retval; + IMPLIES129=(Token)match(input,IMPLIES,FOLLOW_IMPLIES_in_blockSuffixe3125); if (state.failed) return retval; if ( state.backtracking==0 ) { - IMPLIES122_tree = (GrammarAST)adaptor.create(IMPLIES122); - adaptor.addChild(root_0, IMPLIES122_tree); + IMPLIES129_tree = (GrammarAST)adaptor.create(IMPLIES129); + adaptor.addChild(root_0, IMPLIES129_tree); } } break; case 4 : - // ANTLRParser.g:616:7: BANG + // ANTLRParser.g:732:7: BANG { root_0 = (GrammarAST)adaptor.nil(); - BANG123=(Token)match(input,BANG,FOLLOW_BANG_in_blockSuffixe3032); if (state.failed) return retval; + BANG130=(Token)match(input,BANG,FOLLOW_BANG_in_blockSuffixe3136); if (state.failed) return retval; if ( state.backtracking==0 ) { - BANG123_tree = (GrammarAST)adaptor.create(BANG123); - adaptor.addChild(root_0, BANG123_tree); + BANG130_tree = (GrammarAST)adaptor.create(BANG130); + adaptor.addChild(root_0, BANG130_tree); } } @@ -5162,20 +5407,20 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "ebnfSuffix" - // ANTLRParser.g:619:1: ebnfSuffix : ( QUESTION -> OPTIONAL[op] | STAR -> CLOSURE[op] | PLUS -> POSITIVE_CLOSURE[op] ); + // ANTLRParser.g:735:1: ebnfSuffix : ( QUESTION -> OPTIONAL[op] | STAR -> CLOSURE[op] | PLUS -> POSITIVE_CLOSURE[op] ); public final ANTLRParser.ebnfSuffix_return ebnfSuffix() throws RecognitionException { ANTLRParser.ebnfSuffix_return retval = new ANTLRParser.ebnfSuffix_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token QUESTION124=null; - Token STAR125=null; - Token PLUS126=null; + Token QUESTION131=null; + Token STAR132=null; + Token PLUS133=null; - GrammarAST QUESTION124_tree=null; - GrammarAST STAR125_tree=null; - GrammarAST PLUS126_tree=null; + GrammarAST QUESTION131_tree=null; + GrammarAST STAR132_tree=null; + GrammarAST PLUS133_tree=null; RewriteRuleTokenStream stream_PLUS=new RewriteRuleTokenStream(adaptor,"token PLUS"); RewriteRuleTokenStream stream_STAR=new RewriteRuleTokenStream(adaptor,"token STAR"); RewriteRuleTokenStream stream_QUESTION=new RewriteRuleTokenStream(adaptor,"token QUESTION"); @@ -5184,7 +5429,7 @@ public class ANTLRParser extends Parser { Token op = input.LT(1); try { - // ANTLRParser.g:623:2: ( QUESTION -> OPTIONAL[op] | STAR -> CLOSURE[op] | PLUS -> POSITIVE_CLOSURE[op] ) + // ANTLRParser.g:739:2: ( QUESTION -> OPTIONAL[op] | STAR -> CLOSURE[op] | PLUS -> POSITIVE_CLOSURE[op] ) int alt41=3; switch ( input.LA(1) ) { case QUESTION: @@ -5212,10 +5457,10 @@ public class ANTLRParser extends Parser { switch (alt41) { case 1 : - // ANTLRParser.g:623:4: QUESTION + // ANTLRParser.g:739:4: QUESTION { - QUESTION124=(Token)match(input,QUESTION,FOLLOW_QUESTION_in_ebnfSuffix3051); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_QUESTION.add(QUESTION124); + QUESTION131=(Token)match(input,QUESTION,FOLLOW_QUESTION_in_ebnfSuffix3155); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_QUESTION.add(QUESTION131); @@ -5231,7 +5476,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 623:13: -> OPTIONAL[op] + // 739:13: -> OPTIONAL[op] { adaptor.addChild(root_0, (GrammarAST)adaptor.create(OPTIONAL, op)); @@ -5241,10 +5486,10 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:624:6: STAR + // ANTLRParser.g:740:6: STAR { - STAR125=(Token)match(input,STAR,FOLLOW_STAR_in_ebnfSuffix3063); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_STAR.add(STAR125); + STAR132=(Token)match(input,STAR,FOLLOW_STAR_in_ebnfSuffix3167); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_STAR.add(STAR132); @@ -5260,7 +5505,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 624:13: -> CLOSURE[op] + // 740:13: -> CLOSURE[op] { adaptor.addChild(root_0, (GrammarAST)adaptor.create(CLOSURE, op)); @@ -5270,10 +5515,10 @@ public class ANTLRParser extends Parser { } break; case 3 : - // ANTLRParser.g:625:7: PLUS + // ANTLRParser.g:741:7: PLUS { - PLUS126=(Token)match(input,PLUS,FOLLOW_PLUS_in_ebnfSuffix3078); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_PLUS.add(PLUS126); + PLUS133=(Token)match(input,PLUS,FOLLOW_PLUS_in_ebnfSuffix3182); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_PLUS.add(PLUS133); @@ -5289,7 +5534,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 625:14: -> POSITIVE_CLOSURE[op] + // 741:14: -> POSITIVE_CLOSURE[op] { adaptor.addChild(root_0, (GrammarAST)adaptor.create(POSITIVE_CLOSURE, op)); @@ -5326,63 +5571,63 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "atom" - // ANTLRParser.g:628:1: atom : ( range ( ROOT | BANG )? | {...}? id DOT ruleref -> ^( DOT id ruleref ) | {...}? id DOT terminal -> ^( DOT id terminal ) | terminal | ruleref | notSet ( ROOT | BANG )? ); + // ANTLRParser.g:744:1: atom : ( range ( ROOT | BANG )? | {...}? id DOT ruleref -> ^( DOT id ruleref ) | {...}? id DOT terminal -> ^( DOT id terminal ) | terminal | ruleref | notSet ( ROOT | BANG )? ); public final ANTLRParser.atom_return atom() throws RecognitionException { ANTLRParser.atom_return retval = new ANTLRParser.atom_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token ROOT128=null; - Token BANG129=null; - Token DOT131=null; - Token DOT134=null; - Token ROOT139=null; - Token BANG140=null; - ANTLRParser.range_return range127 = null; + Token ROOT135=null; + Token BANG136=null; + Token DOT138=null; + Token DOT141=null; + Token ROOT146=null; + Token BANG147=null; + ANTLRParser.range_return range134 = null; - ANTLRParser.id_return id130 = null; + ANTLRParser.id_return id137 = null; - ANTLRParser.ruleref_return ruleref132 = null; + ANTLRParser.ruleref_return ruleref139 = null; - ANTLRParser.id_return id133 = null; + ANTLRParser.id_return id140 = null; - ANTLRParser.terminal_return terminal135 = null; + ANTLRParser.terminal_return terminal142 = null; - ANTLRParser.terminal_return terminal136 = null; + ANTLRParser.terminal_return terminal143 = null; - ANTLRParser.ruleref_return ruleref137 = null; + ANTLRParser.ruleref_return ruleref144 = null; - ANTLRParser.notSet_return notSet138 = null; + ANTLRParser.notSet_return notSet145 = null; - GrammarAST ROOT128_tree=null; - GrammarAST BANG129_tree=null; - GrammarAST DOT131_tree=null; - GrammarAST DOT134_tree=null; - GrammarAST ROOT139_tree=null; - GrammarAST BANG140_tree=null; + GrammarAST ROOT135_tree=null; + GrammarAST BANG136_tree=null; + GrammarAST DOT138_tree=null; + GrammarAST DOT141_tree=null; + GrammarAST ROOT146_tree=null; + GrammarAST BANG147_tree=null; RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT"); RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); RewriteRuleSubtreeStream stream_terminal=new RewriteRuleSubtreeStream(adaptor,"rule terminal"); RewriteRuleSubtreeStream stream_ruleref=new RewriteRuleSubtreeStream(adaptor,"rule ruleref"); try { - // ANTLRParser.g:628:5: ( range ( ROOT | BANG )? | {...}? id DOT ruleref -> ^( DOT id ruleref ) | {...}? id DOT terminal -> ^( DOT id terminal ) | terminal | ruleref | notSet ( ROOT | BANG )? ) + // ANTLRParser.g:744:5: ( range ( ROOT | BANG )? | {...}? id DOT ruleref -> ^( DOT id ruleref ) | {...}? id DOT terminal -> ^( DOT id terminal ) | terminal | ruleref | notSet ( ROOT | BANG )? ) int alt44=6; alt44 = dfa44.predict(input); switch (alt44) { case 1 : - // ANTLRParser.g:628:7: range ( ROOT | BANG )? + // ANTLRParser.g:744:7: range ( ROOT | BANG )? { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_range_in_atom3095); - range127=range(); + pushFollow(FOLLOW_range_in_atom3199); + range134=range(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, range127.getTree()); - // ANTLRParser.g:628:13: ( ROOT | BANG )? + if ( state.backtracking==0 ) adaptor.addChild(root_0, range134.getTree()); + // ANTLRParser.g:744:13: ( ROOT | BANG )? int alt42=3; int LA42_0 = input.LA(1); @@ -5394,23 +5639,23 @@ public class ANTLRParser extends Parser { } switch (alt42) { case 1 : - // ANTLRParser.g:628:14: ROOT + // ANTLRParser.g:744:14: ROOT { - ROOT128=(Token)match(input,ROOT,FOLLOW_ROOT_in_atom3098); if (state.failed) return retval; + ROOT135=(Token)match(input,ROOT,FOLLOW_ROOT_in_atom3202); if (state.failed) return retval; if ( state.backtracking==0 ) { - ROOT128_tree = (GrammarAST)adaptor.create(ROOT128); - root_0 = (GrammarAST)adaptor.becomeRoot(ROOT128_tree, root_0); + ROOT135_tree = (GrammarAST)adaptor.create(ROOT135); + root_0 = (GrammarAST)adaptor.becomeRoot(ROOT135_tree, root_0); } } break; case 2 : - // ANTLRParser.g:628:22: BANG + // ANTLRParser.g:744:22: BANG { - BANG129=(Token)match(input,BANG,FOLLOW_BANG_in_atom3103); if (state.failed) return retval; + BANG136=(Token)match(input,BANG,FOLLOW_BANG_in_atom3207); if (state.failed) return retval; if ( state.backtracking==0 ) { - BANG129_tree = (GrammarAST)adaptor.create(BANG129); - root_0 = (GrammarAST)adaptor.becomeRoot(BANG129_tree, root_0); + BANG136_tree = (GrammarAST)adaptor.create(BANG136); + root_0 = (GrammarAST)adaptor.becomeRoot(BANG136_tree, root_0); } } @@ -5422,7 +5667,7 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:634:6: {...}? id DOT ruleref + // ANTLRParser.g:750:6: {...}? id DOT ruleref { if ( !(( input.LT(1).getCharPositionInLine()+input.LT(1).getText().length()== @@ -5432,25 +5677,25 @@ public class ANTLRParser extends Parser { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "atom", "\n\t \tinput.LT(1).getCharPositionInLine()+input.LT(1).getText().length()==\n\t input.LT(2).getCharPositionInLine() &&\n\t input.LT(2).getCharPositionInLine()+1==input.LT(3).getCharPositionInLine()\n\t "); } - pushFollow(FOLLOW_id_in_atom3150); - id130=id(); + pushFollow(FOLLOW_id_in_atom3254); + id137=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id130.getTree()); - DOT131=(Token)match(input,DOT,FOLLOW_DOT_in_atom3152); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_DOT.add(DOT131); + if ( state.backtracking==0 ) stream_id.add(id137.getTree()); + DOT138=(Token)match(input,DOT,FOLLOW_DOT_in_atom3256); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_DOT.add(DOT138); - pushFollow(FOLLOW_ruleref_in_atom3154); - ruleref132=ruleref(); + pushFollow(FOLLOW_ruleref_in_atom3258); + ruleref139=ruleref(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ruleref.add(ruleref132.getTree()); + if ( state.backtracking==0 ) stream_ruleref.add(ruleref139.getTree()); // AST REWRITE - // elements: id, ruleref, DOT + // elements: DOT, id, ruleref // token labels: // rule labels: retval // token list labels: @@ -5461,9 +5706,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 640:6: -> ^( DOT id ruleref ) + // 756:6: -> ^( DOT id ruleref ) { - // ANTLRParser.g:640:9: ^( DOT id ruleref ) + // ANTLRParser.g:756:9: ^( DOT id ruleref ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_DOT.nextNode(), root_1); @@ -5480,7 +5725,7 @@ public class ANTLRParser extends Parser { } break; case 3 : - // ANTLRParser.g:642:6: {...}? id DOT terminal + // ANTLRParser.g:758:6: {...}? id DOT terminal { if ( !(( input.LT(1).getCharPositionInLine()+input.LT(1).getText().length()== @@ -5490,25 +5735,25 @@ public class ANTLRParser extends Parser { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "atom", "\n\t \tinput.LT(1).getCharPositionInLine()+input.LT(1).getText().length()==\n\t input.LT(2).getCharPositionInLine() &&\n\t input.LT(2).getCharPositionInLine()+1==input.LT(3).getCharPositionInLine()\n\t "); } - pushFollow(FOLLOW_id_in_atom3188); - id133=id(); + pushFollow(FOLLOW_id_in_atom3292); + id140=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id133.getTree()); - DOT134=(Token)match(input,DOT,FOLLOW_DOT_in_atom3190); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_DOT.add(DOT134); + if ( state.backtracking==0 ) stream_id.add(id140.getTree()); + DOT141=(Token)match(input,DOT,FOLLOW_DOT_in_atom3294); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_DOT.add(DOT141); - pushFollow(FOLLOW_terminal_in_atom3192); - terminal135=terminal(); + pushFollow(FOLLOW_terminal_in_atom3296); + terminal142=terminal(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_terminal.add(terminal135.getTree()); + if ( state.backtracking==0 ) stream_terminal.add(terminal142.getTree()); // AST REWRITE - // elements: id, DOT, terminal + // elements: id, terminal, DOT // token labels: // rule labels: retval // token list labels: @@ -5519,9 +5764,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 648:6: -> ^( DOT id terminal ) + // 764:6: -> ^( DOT id terminal ) { - // ANTLRParser.g:648:9: ^( DOT id terminal ) + // ANTLRParser.g:764:9: ^( DOT id terminal ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_DOT.nextNode(), root_1); @@ -5538,45 +5783,45 @@ public class ANTLRParser extends Parser { } break; case 4 : - // ANTLRParser.g:649:9: terminal + // ANTLRParser.g:765:9: terminal { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_terminal_in_atom3217); - terminal136=terminal(); + pushFollow(FOLLOW_terminal_in_atom3321); + terminal143=terminal(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, terminal136.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, terminal143.getTree()); } break; case 5 : - // ANTLRParser.g:650:9: ruleref + // ANTLRParser.g:766:9: ruleref { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_ruleref_in_atom3227); - ruleref137=ruleref(); + pushFollow(FOLLOW_ruleref_in_atom3331); + ruleref144=ruleref(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, ruleref137.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, ruleref144.getTree()); } break; case 6 : - // ANTLRParser.g:651:7: notSet ( ROOT | BANG )? + // ANTLRParser.g:767:7: notSet ( ROOT | BANG )? { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_notSet_in_atom3235); - notSet138=notSet(); + pushFollow(FOLLOW_notSet_in_atom3339); + notSet145=notSet(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, notSet138.getTree()); - // ANTLRParser.g:651:14: ( ROOT | BANG )? + if ( state.backtracking==0 ) adaptor.addChild(root_0, notSet145.getTree()); + // ANTLRParser.g:767:14: ( ROOT | BANG )? int alt43=3; int LA43_0 = input.LA(1); @@ -5588,23 +5833,23 @@ public class ANTLRParser extends Parser { } switch (alt43) { case 1 : - // ANTLRParser.g:651:15: ROOT + // ANTLRParser.g:767:15: ROOT { - ROOT139=(Token)match(input,ROOT,FOLLOW_ROOT_in_atom3238); if (state.failed) return retval; + ROOT146=(Token)match(input,ROOT,FOLLOW_ROOT_in_atom3342); if (state.failed) return retval; if ( state.backtracking==0 ) { - ROOT139_tree = (GrammarAST)adaptor.create(ROOT139); - root_0 = (GrammarAST)adaptor.becomeRoot(ROOT139_tree, root_0); + ROOT146_tree = (GrammarAST)adaptor.create(ROOT146); + root_0 = (GrammarAST)adaptor.becomeRoot(ROOT146_tree, root_0); } } break; case 2 : - // ANTLRParser.g:651:21: BANG + // ANTLRParser.g:767:21: BANG { - BANG140=(Token)match(input,BANG,FOLLOW_BANG_in_atom3241); if (state.failed) return retval; + BANG147=(Token)match(input,BANG,FOLLOW_BANG_in_atom3345); if (state.failed) return retval; if ( state.backtracking==0 ) { - BANG140_tree = (GrammarAST)adaptor.create(BANG140); - root_0 = (GrammarAST)adaptor.becomeRoot(BANG140_tree, root_0); + BANG147_tree = (GrammarAST)adaptor.create(BANG147); + root_0 = (GrammarAST)adaptor.becomeRoot(BANG147_tree, root_0); } } @@ -5626,10 +5871,7 @@ public class ANTLRParser extends Parser { } } catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (GrammarAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - + throw re; } finally { } @@ -5643,39 +5885,39 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "notSet" - // ANTLRParser.g:662:1: notSet : ( NOT notTerminal -> ^( NOT notTerminal ) | NOT block -> ^( NOT block ) ); + // ANTLRParser.g:777:1: notSet : ( NOT notTerminal -> ^( NOT notTerminal ) | NOT block -> ^( NOT block ) ); public final ANTLRParser.notSet_return notSet() throws RecognitionException { ANTLRParser.notSet_return retval = new ANTLRParser.notSet_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token NOT141=null; - Token NOT143=null; - ANTLRParser.notTerminal_return notTerminal142 = null; + Token NOT148=null; + Token NOT150=null; + ANTLRParser.notTerminal_return notTerminal149 = null; - ANTLRParser.block_return block144 = null; + ANTLRParser.block_return block151 = null; - GrammarAST NOT141_tree=null; - GrammarAST NOT143_tree=null; + GrammarAST NOT148_tree=null; + GrammarAST NOT150_tree=null; RewriteRuleTokenStream stream_NOT=new RewriteRuleTokenStream(adaptor,"token NOT"); RewriteRuleSubtreeStream stream_notTerminal=new RewriteRuleSubtreeStream(adaptor,"rule notTerminal"); RewriteRuleSubtreeStream stream_block=new RewriteRuleSubtreeStream(adaptor,"rule block"); try { - // ANTLRParser.g:663:5: ( NOT notTerminal -> ^( NOT notTerminal ) | NOT block -> ^( NOT block ) ) + // ANTLRParser.g:778:5: ( NOT notTerminal -> ^( NOT notTerminal ) | NOT block -> ^( NOT block ) ) int alt45=2; int LA45_0 = input.LA(1); if ( (LA45_0==NOT) ) { int LA45_1 = input.LA(2); - if ( (LA45_1==LPAREN) ) { - alt45=2; - } - else if ( (LA45_1==TOKEN_REF||LA45_1==STRING_LITERAL) ) { + if ( (LA45_1==TOKEN_REF||LA45_1==STRING_LITERAL) ) { alt45=1; } + else if ( (LA45_1==LPAREN) ) { + alt45=2; + } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = @@ -5693,17 +5935,17 @@ public class ANTLRParser extends Parser { } switch (alt45) { case 1 : - // ANTLRParser.g:663:7: NOT notTerminal + // ANTLRParser.g:778:7: NOT notTerminal { - NOT141=(Token)match(input,NOT,FOLLOW_NOT_in_notSet3274); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_NOT.add(NOT141); + NOT148=(Token)match(input,NOT,FOLLOW_NOT_in_notSet3385); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_NOT.add(NOT148); - pushFollow(FOLLOW_notTerminal_in_notSet3276); - notTerminal142=notTerminal(); + pushFollow(FOLLOW_notTerminal_in_notSet3387); + notTerminal149=notTerminal(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_notTerminal.add(notTerminal142.getTree()); + if ( state.backtracking==0 ) stream_notTerminal.add(notTerminal149.getTree()); // AST REWRITE @@ -5718,9 +5960,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 663:23: -> ^( NOT notTerminal ) + // 778:23: -> ^( NOT notTerminal ) { - // ANTLRParser.g:663:26: ^( NOT notTerminal ) + // ANTLRParser.g:778:26: ^( NOT notTerminal ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_NOT.nextNode(), root_1); @@ -5736,21 +5978,21 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:664:7: NOT block + // ANTLRParser.g:779:7: NOT block { - NOT143=(Token)match(input,NOT,FOLLOW_NOT_in_notSet3292); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_NOT.add(NOT143); + NOT150=(Token)match(input,NOT,FOLLOW_NOT_in_notSet3403); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_NOT.add(NOT150); - pushFollow(FOLLOW_block_in_notSet3294); - block144=block(); + pushFollow(FOLLOW_block_in_notSet3405); + block151=block(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_block.add(block144.getTree()); + if ( state.backtracking==0 ) stream_block.add(block151.getTree()); // AST REWRITE - // elements: NOT, block + // elements: block, NOT // token labels: // rule labels: retval // token list labels: @@ -5761,9 +6003,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 664:19: -> ^( NOT block ) + // 779:19: -> ^( NOT block ) { - // ANTLRParser.g:664:22: ^( NOT block ) + // ANTLRParser.g:779:22: ^( NOT block ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_NOT.nextNode(), root_1); @@ -5806,27 +6048,27 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "notTerminal" - // ANTLRParser.g:673:1: notTerminal : ( TOKEN_REF | STRING_LITERAL ); + // ANTLRParser.g:788:1: notTerminal : ( TOKEN_REF | STRING_LITERAL ); public final ANTLRParser.notTerminal_return notTerminal() throws RecognitionException { ANTLRParser.notTerminal_return retval = new ANTLRParser.notTerminal_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token set145=null; + Token set152=null; - GrammarAST set145_tree=null; + GrammarAST set152_tree=null; try { - // ANTLRParser.g:674:5: ( TOKEN_REF | STRING_LITERAL ) + // ANTLRParser.g:789:5: ( TOKEN_REF | STRING_LITERAL ) // ANTLRParser.g: { root_0 = (GrammarAST)adaptor.nil(); - set145=(Token)input.LT(1); + set152=(Token)input.LT(1); if ( input.LA(1)==TOKEN_REF||input.LA(1)==STRING_LITERAL ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (GrammarAST)adaptor.create(set145)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (GrammarAST)adaptor.create(set152)); state.errorRecovery=false;state.failed=false; } else { @@ -5864,25 +6106,25 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "block" - // ANTLRParser.g:685:1: block : LPAREN ( ( optionsSpec )? (ra+= ruleAction )* COLON )? altList RPAREN -> ^( BLOCK ( optionsSpec )? ( $ra)* altList ) ; + // ANTLRParser.g:800:1: block : LPAREN ( ( optionsSpec )? (ra+= ruleAction )* COLON )? altList RPAREN -> ^( BLOCK ( optionsSpec )? ( $ra)* altList ) ; public final ANTLRParser.block_return block() throws RecognitionException { ANTLRParser.block_return retval = new ANTLRParser.block_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token LPAREN146=null; - Token COLON148=null; - Token RPAREN150=null; + Token LPAREN153=null; + Token COLON155=null; + Token RPAREN157=null; List list_ra=null; - ANTLRParser.optionsSpec_return optionsSpec147 = null; + ANTLRParser.optionsSpec_return optionsSpec154 = null; - ANTLRParser.altList_return altList149 = null; + ANTLRParser.altList_return altList156 = null; RuleReturnScope ra = null; - GrammarAST LPAREN146_tree=null; - GrammarAST COLON148_tree=null; - GrammarAST RPAREN150_tree=null; + GrammarAST LPAREN153_tree=null; + GrammarAST COLON155_tree=null; + GrammarAST RPAREN157_tree=null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN"); @@ -5890,13 +6132,13 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_altList=new RewriteRuleSubtreeStream(adaptor,"rule altList"); RewriteRuleSubtreeStream stream_ruleAction=new RewriteRuleSubtreeStream(adaptor,"rule ruleAction"); try { - // ANTLRParser.g:686:5: ( LPAREN ( ( optionsSpec )? (ra+= ruleAction )* COLON )? altList RPAREN -> ^( BLOCK ( optionsSpec )? ( $ra)* altList ) ) - // ANTLRParser.g:686:7: LPAREN ( ( optionsSpec )? (ra+= ruleAction )* COLON )? altList RPAREN + // ANTLRParser.g:801:5: ( LPAREN ( ( optionsSpec )? (ra+= ruleAction )* COLON )? altList RPAREN -> ^( BLOCK ( optionsSpec )? ( $ra)* altList ) ) + // ANTLRParser.g:801:7: LPAREN ( ( optionsSpec )? (ra+= ruleAction )* COLON )? altList RPAREN { - LPAREN146=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_block3368); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN146); + LPAREN153=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_block3479); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN153); - // ANTLRParser.g:689:10: ( ( optionsSpec )? (ra+= ruleAction )* COLON )? + // ANTLRParser.g:804:10: ( ( optionsSpec )? (ra+= ruleAction )* COLON )? int alt48=2; int LA48_0 = input.LA(1); @@ -5905,9 +6147,9 @@ public class ANTLRParser extends Parser { } switch (alt48) { case 1 : - // ANTLRParser.g:689:12: ( optionsSpec )? (ra+= ruleAction )* COLON + // ANTLRParser.g:804:12: ( optionsSpec )? (ra+= ruleAction )* COLON { - // ANTLRParser.g:689:12: ( optionsSpec )? + // ANTLRParser.g:804:12: ( optionsSpec )? int alt46=2; int LA46_0 = input.LA(1); @@ -5916,21 +6158,21 @@ public class ANTLRParser extends Parser { } switch (alt46) { case 1 : - // ANTLRParser.g:689:12: optionsSpec + // ANTLRParser.g:804:12: optionsSpec { - pushFollow(FOLLOW_optionsSpec_in_block3405); - optionsSpec147=optionsSpec(); + pushFollow(FOLLOW_optionsSpec_in_block3516); + optionsSpec154=optionsSpec(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_optionsSpec.add(optionsSpec147.getTree()); + if ( state.backtracking==0 ) stream_optionsSpec.add(optionsSpec154.getTree()); } break; } - // ANTLRParser.g:689:27: (ra+= ruleAction )* + // ANTLRParser.g:804:27: (ra+= ruleAction )* loop47: do { int alt47=2; @@ -5943,9 +6185,9 @@ public class ANTLRParser extends Parser { switch (alt47) { case 1 : - // ANTLRParser.g:689:27: ra+= ruleAction + // ANTLRParser.g:804:27: ra+= ruleAction { - pushFollow(FOLLOW_ruleAction_in_block3410); + pushFollow(FOLLOW_ruleAction_in_block3521); ra=ruleAction(); state._fsp--; @@ -5963,8 +6205,8 @@ public class ANTLRParser extends Parser { } } while (true); - COLON148=(Token)match(input,COLON,FOLLOW_COLON_in_block3413); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COLON.add(COLON148); + COLON155=(Token)match(input,COLON,FOLLOW_COLON_in_block3524); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON155); } @@ -5972,19 +6214,19 @@ public class ANTLRParser extends Parser { } - pushFollow(FOLLOW_altList_in_block3427); - altList149=altList(); + pushFollow(FOLLOW_altList_in_block3538); + altList156=altList(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_altList.add(altList149.getTree()); - RPAREN150=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_block3444); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN150); + if ( state.backtracking==0 ) stream_altList.add(altList156.getTree()); + RPAREN157=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_block3555); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN157); // AST REWRITE - // elements: optionsSpec, altList, ra + // elements: altList, ra, optionsSpec // token labels: // rule labels: retval // token list labels: @@ -5995,20 +6237,20 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_ra=new RewriteRuleSubtreeStream(adaptor,"token ra",list_ra); root_0 = (GrammarAST)adaptor.nil(); - // 692:7: -> ^( BLOCK ( optionsSpec )? ( $ra)* altList ) + // 807:7: -> ^( BLOCK ( optionsSpec )? ( $ra)* altList ) { - // ANTLRParser.g:692:10: ^( BLOCK ( optionsSpec )? ( $ra)* altList ) + // ANTLRParser.g:807:10: ^( BLOCK ( optionsSpec )? ( $ra)* altList ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(new BlockAST(BLOCK), root_1); - // ANTLRParser.g:692:28: ( optionsSpec )? + // ANTLRParser.g:807:28: ( optionsSpec )? if ( stream_optionsSpec.hasNext() ) { adaptor.addChild(root_1, stream_optionsSpec.nextTree()); } stream_optionsSpec.reset(); - // ANTLRParser.g:692:41: ( $ra)* + // ANTLRParser.g:807:41: ( $ra)* while ( stream_ra.hasNext() ) { adaptor.addChild(root_1, stream_ra.nextTree()); @@ -6050,7 +6292,7 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "ruleref" - // ANTLRParser.g:701:1: ruleref : RULE_REF ( ARG_ACTION )? ( (op= ROOT | op= BANG ) -> ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) | -> ^( RULE_REF ( ARG_ACTION )? ) ) ; + // ANTLRParser.g:816:1: ruleref : RULE_REF ( ARG_ACTION )? ( (op= ROOT | op= BANG ) -> ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) | -> ^( RULE_REF ( ARG_ACTION )? ) ) ; public final ANTLRParser.ruleref_return ruleref() throws RecognitionException { ANTLRParser.ruleref_return retval = new ANTLRParser.ruleref_return(); retval.start = input.LT(1); @@ -6058,25 +6300,25 @@ public class ANTLRParser extends Parser { GrammarAST root_0 = null; Token op=null; - Token RULE_REF151=null; - Token ARG_ACTION152=null; + Token RULE_REF158=null; + Token ARG_ACTION159=null; GrammarAST op_tree=null; - GrammarAST RULE_REF151_tree=null; - GrammarAST ARG_ACTION152_tree=null; + GrammarAST RULE_REF158_tree=null; + GrammarAST ARG_ACTION159_tree=null; RewriteRuleTokenStream stream_BANG=new RewriteRuleTokenStream(adaptor,"token BANG"); RewriteRuleTokenStream stream_ROOT=new RewriteRuleTokenStream(adaptor,"token ROOT"); RewriteRuleTokenStream stream_RULE_REF=new RewriteRuleTokenStream(adaptor,"token RULE_REF"); RewriteRuleTokenStream stream_ARG_ACTION=new RewriteRuleTokenStream(adaptor,"token ARG_ACTION"); try { - // ANTLRParser.g:702:5: ( RULE_REF ( ARG_ACTION )? ( (op= ROOT | op= BANG ) -> ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) | -> ^( RULE_REF ( ARG_ACTION )? ) ) ) - // ANTLRParser.g:702:7: RULE_REF ( ARG_ACTION )? ( (op= ROOT | op= BANG ) -> ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) | -> ^( RULE_REF ( ARG_ACTION )? ) ) + // ANTLRParser.g:817:5: ( RULE_REF ( ARG_ACTION )? ( (op= ROOT | op= BANG ) -> ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) | -> ^( RULE_REF ( ARG_ACTION )? ) ) ) + // ANTLRParser.g:817:7: RULE_REF ( ARG_ACTION )? ( (op= ROOT | op= BANG ) -> ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) | -> ^( RULE_REF ( ARG_ACTION )? ) ) { - RULE_REF151=(Token)match(input,RULE_REF,FOLLOW_RULE_REF_in_ruleref3493); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RULE_REF.add(RULE_REF151); + RULE_REF158=(Token)match(input,RULE_REF,FOLLOW_RULE_REF_in_ruleref3604); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RULE_REF.add(RULE_REF158); - // ANTLRParser.g:702:16: ( ARG_ACTION )? + // ANTLRParser.g:817:16: ( ARG_ACTION )? int alt49=2; int LA49_0 = input.LA(1); @@ -6085,10 +6327,10 @@ public class ANTLRParser extends Parser { } switch (alt49) { case 1 : - // ANTLRParser.g:702:16: ARG_ACTION + // ANTLRParser.g:817:16: ARG_ACTION { - ARG_ACTION152=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleref3495); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ARG_ACTION.add(ARG_ACTION152); + ARG_ACTION159=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleref3606); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ARG_ACTION.add(ARG_ACTION159); } @@ -6096,7 +6338,7 @@ public class ANTLRParser extends Parser { } - // ANTLRParser.g:703:3: ( (op= ROOT | op= BANG ) -> ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) | -> ^( RULE_REF ( ARG_ACTION )? ) ) + // ANTLRParser.g:818:3: ( (op= ROOT | op= BANG ) -> ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) | -> ^( RULE_REF ( ARG_ACTION )? ) ) int alt51=2; int LA51_0 = input.LA(1); @@ -6115,9 +6357,9 @@ public class ANTLRParser extends Parser { } switch (alt51) { case 1 : - // ANTLRParser.g:703:5: (op= ROOT | op= BANG ) + // ANTLRParser.g:818:5: (op= ROOT | op= BANG ) { - // ANTLRParser.g:703:5: (op= ROOT | op= BANG ) + // ANTLRParser.g:818:5: (op= ROOT | op= BANG ) int alt50=2; int LA50_0 = input.LA(1); @@ -6136,18 +6378,18 @@ public class ANTLRParser extends Parser { } switch (alt50) { case 1 : - // ANTLRParser.g:703:6: op= ROOT + // ANTLRParser.g:818:6: op= ROOT { - op=(Token)match(input,ROOT,FOLLOW_ROOT_in_ruleref3505); if (state.failed) return retval; + op=(Token)match(input,ROOT,FOLLOW_ROOT_in_ruleref3616); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ROOT.add(op); } break; case 2 : - // ANTLRParser.g:703:14: op= BANG + // ANTLRParser.g:818:14: op= BANG { - op=(Token)match(input,BANG,FOLLOW_BANG_in_ruleref3509); if (state.failed) return retval; + op=(Token)match(input,BANG,FOLLOW_BANG_in_ruleref3620); if (state.failed) return retval; if ( state.backtracking==0 ) stream_BANG.add(op); @@ -6159,7 +6401,7 @@ public class ANTLRParser extends Parser { // AST REWRITE - // elements: op, ARG_ACTION, RULE_REF + // elements: RULE_REF, op, ARG_ACTION // token labels: op // rule labels: retval // token list labels: @@ -6171,19 +6413,19 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 703:23: -> ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) + // 818:23: -> ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) { - // ANTLRParser.g:703:26: ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) + // ANTLRParser.g:818:26: ^( $op ^( RULE_REF ( ARG_ACTION )? ) ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_op.nextNode(), root_1); - // ANTLRParser.g:703:32: ^( RULE_REF ( ARG_ACTION )? ) + // ANTLRParser.g:818:32: ^( RULE_REF ( ARG_ACTION )? ) { GrammarAST root_2 = (GrammarAST)adaptor.nil(); root_2 = (GrammarAST)adaptor.becomeRoot(stream_RULE_REF.nextNode(), root_2); - // ANTLRParser.g:703:43: ( ARG_ACTION )? + // ANTLRParser.g:818:43: ( ARG_ACTION )? if ( stream_ARG_ACTION.hasNext() ) { adaptor.addChild(root_2, stream_ARG_ACTION.nextNode()); @@ -6202,7 +6444,7 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:704:10: + // ANTLRParser.g:819:10: { // AST REWRITE @@ -6217,14 +6459,14 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 704:10: -> ^( RULE_REF ( ARG_ACTION )? ) + // 819:10: -> ^( RULE_REF ( ARG_ACTION )? ) { - // ANTLRParser.g:704:13: ^( RULE_REF ( ARG_ACTION )? ) + // ANTLRParser.g:819:13: ^( RULE_REF ( ARG_ACTION )? ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_RULE_REF.nextNode(), root_1); - // ANTLRParser.g:704:24: ( ARG_ACTION )? + // ANTLRParser.g:819:24: ( ARG_ACTION )? if ( stream_ARG_ACTION.hasNext() ) { adaptor.addChild(root_1, stream_ARG_ACTION.nextNode()); @@ -6254,10 +6496,7 @@ public class ANTLRParser extends Parser { } } catch (RecognitionException re) { - reportError(re); - recover(input,re); - retval.tree = (GrammarAST)adaptor.errorNode(input, retval.start, input.LT(-1), re); - + throw re; } finally { } @@ -6271,44 +6510,44 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "range" - // ANTLRParser.g:717:1: range : rangeElement RANGE rangeElement ; + // ANTLRParser.g:833:1: range : rangeElement RANGE rangeElement ; public final ANTLRParser.range_return range() throws RecognitionException { ANTLRParser.range_return retval = new ANTLRParser.range_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token RANGE154=null; - ANTLRParser.rangeElement_return rangeElement153 = null; + Token RANGE161=null; + ANTLRParser.rangeElement_return rangeElement160 = null; - ANTLRParser.rangeElement_return rangeElement155 = null; + ANTLRParser.rangeElement_return rangeElement162 = null; - GrammarAST RANGE154_tree=null; + GrammarAST RANGE161_tree=null; try { - // ANTLRParser.g:718:5: ( rangeElement RANGE rangeElement ) - // ANTLRParser.g:718:7: rangeElement RANGE rangeElement + // ANTLRParser.g:834:5: ( rangeElement RANGE rangeElement ) + // ANTLRParser.g:834:7: rangeElement RANGE rangeElement { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_rangeElement_in_range3574); - rangeElement153=rangeElement(); + pushFollow(FOLLOW_rangeElement_in_range3694); + rangeElement160=rangeElement(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, rangeElement153.getTree()); - RANGE154=(Token)match(input,RANGE,FOLLOW_RANGE_in_range3576); if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, rangeElement160.getTree()); + RANGE161=(Token)match(input,RANGE,FOLLOW_RANGE_in_range3696); if (state.failed) return retval; if ( state.backtracking==0 ) { - RANGE154_tree = (GrammarAST)adaptor.create(RANGE154); - root_0 = (GrammarAST)adaptor.becomeRoot(RANGE154_tree, root_0); + RANGE161_tree = (GrammarAST)adaptor.create(RANGE161); + root_0 = (GrammarAST)adaptor.becomeRoot(RANGE161_tree, root_0); } - pushFollow(FOLLOW_rangeElement_in_range3579); - rangeElement155=rangeElement(); + pushFollow(FOLLOW_rangeElement_in_range3699); + rangeElement162=rangeElement(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, rangeElement155.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, rangeElement162.getTree()); } @@ -6338,27 +6577,27 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rangeElement" - // ANTLRParser.g:729:1: rangeElement : ( STRING_LITERAL | RULE_REF | TOKEN_REF ); + // ANTLRParser.g:845:1: rangeElement : ( STRING_LITERAL | RULE_REF | TOKEN_REF ); public final ANTLRParser.rangeElement_return rangeElement() throws RecognitionException { ANTLRParser.rangeElement_return retval = new ANTLRParser.rangeElement_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token set156=null; + Token set163=null; - GrammarAST set156_tree=null; + GrammarAST set163_tree=null; try { - // ANTLRParser.g:730:5: ( STRING_LITERAL | RULE_REF | TOKEN_REF ) + // ANTLRParser.g:846:5: ( STRING_LITERAL | RULE_REF | TOKEN_REF ) // ANTLRParser.g: { root_0 = (GrammarAST)adaptor.nil(); - set156=(Token)input.LT(1); + set163=(Token)input.LT(1); if ( (input.LA(1)>=TOKEN_REF && input.LA(1)<=RULE_REF)||input.LA(1)==STRING_LITERAL ) { input.consume(); - if ( state.backtracking==0 ) adaptor.addChild(root_0, (GrammarAST)adaptor.create(set156)); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (GrammarAST)adaptor.create(set163)); state.errorRecovery=false;state.failed=false; } else { @@ -6396,32 +6635,32 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "terminal" - // ANTLRParser.g:735:1: terminal : ( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? -> ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOT ( elementOptions )? -> ^( WILDCARD[$DOT] ( elementOptions )? ) ) ( ROOT -> ^( ROOT $terminal) | BANG -> ^( BANG $terminal) )? ; + // ANTLRParser.g:851:1: terminal : ( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? -> ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOT ( elementOptions )? -> ^( WILDCARD[$DOT] ( elementOptions )? ) ) ( ROOT -> ^( ROOT $terminal) | BANG -> ^( BANG $terminal) )? ; public final ANTLRParser.terminal_return terminal() throws RecognitionException { ANTLRParser.terminal_return retval = new ANTLRParser.terminal_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token TOKEN_REF157=null; - Token ARG_ACTION158=null; - Token STRING_LITERAL160=null; - Token DOT162=null; - Token ROOT164=null; - Token BANG165=null; - ANTLRParser.elementOptions_return elementOptions159 = null; + Token TOKEN_REF164=null; + Token ARG_ACTION165=null; + Token STRING_LITERAL167=null; + Token DOT169=null; + Token ROOT171=null; + Token BANG172=null; + ANTLRParser.elementOptions_return elementOptions166 = null; - ANTLRParser.elementOptions_return elementOptions161 = null; + ANTLRParser.elementOptions_return elementOptions168 = null; - ANTLRParser.elementOptions_return elementOptions163 = null; + ANTLRParser.elementOptions_return elementOptions170 = null; - GrammarAST TOKEN_REF157_tree=null; - GrammarAST ARG_ACTION158_tree=null; - GrammarAST STRING_LITERAL160_tree=null; - GrammarAST DOT162_tree=null; - GrammarAST ROOT164_tree=null; - GrammarAST BANG165_tree=null; + GrammarAST TOKEN_REF164_tree=null; + GrammarAST ARG_ACTION165_tree=null; + GrammarAST STRING_LITERAL167_tree=null; + GrammarAST DOT169_tree=null; + GrammarAST ROOT171_tree=null; + GrammarAST BANG172_tree=null; RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); RewriteRuleTokenStream stream_BANG=new RewriteRuleTokenStream(adaptor,"token BANG"); RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT"); @@ -6430,10 +6669,10 @@ public class ANTLRParser extends Parser { RewriteRuleTokenStream stream_ARG_ACTION=new RewriteRuleTokenStream(adaptor,"token ARG_ACTION"); RewriteRuleSubtreeStream stream_elementOptions=new RewriteRuleSubtreeStream(adaptor,"rule elementOptions"); try { - // ANTLRParser.g:736:5: ( ( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? -> ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOT ( elementOptions )? -> ^( WILDCARD[$DOT] ( elementOptions )? ) ) ( ROOT -> ^( ROOT $terminal) | BANG -> ^( BANG $terminal) )? ) - // ANTLRParser.g:736:9: ( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? -> ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOT ( elementOptions )? -> ^( WILDCARD[$DOT] ( elementOptions )? ) ) ( ROOT -> ^( ROOT $terminal) | BANG -> ^( BANG $terminal) )? + // ANTLRParser.g:852:5: ( ( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? -> ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOT ( elementOptions )? -> ^( WILDCARD[$DOT] ( elementOptions )? ) ) ( ROOT -> ^( ROOT $terminal) | BANG -> ^( BANG $terminal) )? ) + // ANTLRParser.g:852:9: ( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? -> ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOT ( elementOptions )? -> ^( WILDCARD[$DOT] ( elementOptions )? ) ) ( ROOT -> ^( ROOT $terminal) | BANG -> ^( BANG $terminal) )? { - // ANTLRParser.g:736:9: ( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? -> ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOT ( elementOptions )? -> ^( WILDCARD[$DOT] ( elementOptions )? ) ) + // ANTLRParser.g:852:9: ( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? -> ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOT ( elementOptions )? -> ^( WILDCARD[$DOT] ( elementOptions )? ) ) int alt56=3; switch ( input.LA(1) ) { case TOKEN_REF: @@ -6461,12 +6700,12 @@ public class ANTLRParser extends Parser { switch (alt56) { case 1 : - // ANTLRParser.g:737:7: TOKEN_REF ( ARG_ACTION )? ( elementOptions )? + // ANTLRParser.g:853:7: TOKEN_REF ( ARG_ACTION )? ( elementOptions )? { - TOKEN_REF157=(Token)match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_terminal3673); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TOKEN_REF.add(TOKEN_REF157); + TOKEN_REF164=(Token)match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_terminal3793); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TOKEN_REF.add(TOKEN_REF164); - // ANTLRParser.g:737:17: ( ARG_ACTION )? + // ANTLRParser.g:853:17: ( ARG_ACTION )? int alt52=2; int LA52_0 = input.LA(1); @@ -6475,10 +6714,10 @@ public class ANTLRParser extends Parser { } switch (alt52) { case 1 : - // ANTLRParser.g:737:17: ARG_ACTION + // ANTLRParser.g:853:17: ARG_ACTION { - ARG_ACTION158=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_terminal3675); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ARG_ACTION.add(ARG_ACTION158); + ARG_ACTION165=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_terminal3795); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ARG_ACTION.add(ARG_ACTION165); } @@ -6486,7 +6725,7 @@ public class ANTLRParser extends Parser { } - // ANTLRParser.g:737:29: ( elementOptions )? + // ANTLRParser.g:853:29: ( elementOptions )? int alt53=2; int LA53_0 = input.LA(1); @@ -6495,14 +6734,14 @@ public class ANTLRParser extends Parser { } switch (alt53) { case 1 : - // ANTLRParser.g:737:29: elementOptions + // ANTLRParser.g:853:29: elementOptions { - pushFollow(FOLLOW_elementOptions_in_terminal3678); - elementOptions159=elementOptions(); + pushFollow(FOLLOW_elementOptions_in_terminal3798); + elementOptions166=elementOptions(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_elementOptions.add(elementOptions159.getTree()); + if ( state.backtracking==0 ) stream_elementOptions.add(elementOptions166.getTree()); } break; @@ -6512,7 +6751,7 @@ public class ANTLRParser extends Parser { // AST REWRITE - // elements: elementOptions, ARG_ACTION, TOKEN_REF + // elements: TOKEN_REF, ARG_ACTION, elementOptions // token labels: // rule labels: retval // token list labels: @@ -6523,20 +6762,20 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 737:45: -> ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) + // 853:45: -> ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) { - // ANTLRParser.g:737:48: ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) + // ANTLRParser.g:853:48: ^( TOKEN_REF ( ARG_ACTION )? ( elementOptions )? ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(new TerminalAST(stream_TOKEN_REF.nextToken()), root_1); - // ANTLRParser.g:737:73: ( ARG_ACTION )? + // ANTLRParser.g:853:73: ( ARG_ACTION )? if ( stream_ARG_ACTION.hasNext() ) { adaptor.addChild(root_1, stream_ARG_ACTION.nextNode()); } stream_ARG_ACTION.reset(); - // ANTLRParser.g:737:85: ( elementOptions )? + // ANTLRParser.g:853:85: ( elementOptions )? if ( stream_elementOptions.hasNext() ) { adaptor.addChild(root_1, stream_elementOptions.nextTree()); @@ -6552,12 +6791,12 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:738:7: STRING_LITERAL ( elementOptions )? + // ANTLRParser.g:854:7: STRING_LITERAL ( elementOptions )? { - STRING_LITERAL160=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_terminal3702); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL160); + STRING_LITERAL167=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_terminal3822); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL167); - // ANTLRParser.g:738:22: ( elementOptions )? + // ANTLRParser.g:854:22: ( elementOptions )? int alt54=2; int LA54_0 = input.LA(1); @@ -6566,14 +6805,14 @@ public class ANTLRParser extends Parser { } switch (alt54) { case 1 : - // ANTLRParser.g:738:22: elementOptions + // ANTLRParser.g:854:22: elementOptions { - pushFollow(FOLLOW_elementOptions_in_terminal3704); - elementOptions161=elementOptions(); + pushFollow(FOLLOW_elementOptions_in_terminal3824); + elementOptions168=elementOptions(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_elementOptions.add(elementOptions161.getTree()); + if ( state.backtracking==0 ) stream_elementOptions.add(elementOptions168.getTree()); } break; @@ -6583,7 +6822,7 @@ public class ANTLRParser extends Parser { // AST REWRITE - // elements: elementOptions, STRING_LITERAL + // elements: STRING_LITERAL, elementOptions // token labels: // rule labels: retval // token list labels: @@ -6594,14 +6833,14 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 738:41: -> ^( STRING_LITERAL ( elementOptions )? ) + // 854:41: -> ^( STRING_LITERAL ( elementOptions )? ) { - // ANTLRParser.g:738:44: ^( STRING_LITERAL ( elementOptions )? ) + // ANTLRParser.g:854:44: ^( STRING_LITERAL ( elementOptions )? ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(new TerminalAST(stream_STRING_LITERAL.nextToken()), root_1); - // ANTLRParser.g:738:74: ( elementOptions )? + // ANTLRParser.g:854:74: ( elementOptions )? if ( stream_elementOptions.hasNext() ) { adaptor.addChild(root_1, stream_elementOptions.nextTree()); @@ -6617,12 +6856,12 @@ public class ANTLRParser extends Parser { } break; case 3 : - // ANTLRParser.g:744:7: DOT ( elementOptions )? + // ANTLRParser.g:860:7: DOT ( elementOptions )? { - DOT162=(Token)match(input,DOT,FOLLOW_DOT_in_terminal3751); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_DOT.add(DOT162); + DOT169=(Token)match(input,DOT,FOLLOW_DOT_in_terminal3871); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_DOT.add(DOT169); - // ANTLRParser.g:744:11: ( elementOptions )? + // ANTLRParser.g:860:11: ( elementOptions )? int alt55=2; int LA55_0 = input.LA(1); @@ -6631,14 +6870,14 @@ public class ANTLRParser extends Parser { } switch (alt55) { case 1 : - // ANTLRParser.g:744:11: elementOptions + // ANTLRParser.g:860:11: elementOptions { - pushFollow(FOLLOW_elementOptions_in_terminal3753); - elementOptions163=elementOptions(); + pushFollow(FOLLOW_elementOptions_in_terminal3873); + elementOptions170=elementOptions(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_elementOptions.add(elementOptions163.getTree()); + if ( state.backtracking==0 ) stream_elementOptions.add(elementOptions170.getTree()); } break; @@ -6659,14 +6898,14 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 744:34: -> ^( WILDCARD[$DOT] ( elementOptions )? ) + // 860:34: -> ^( WILDCARD[$DOT] ( elementOptions )? ) { - // ANTLRParser.g:744:37: ^( WILDCARD[$DOT] ( elementOptions )? ) + // ANTLRParser.g:860:37: ^( WILDCARD[$DOT] ( elementOptions )? ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); - root_1 = (GrammarAST)adaptor.becomeRoot(new TerminalAST(WILDCARD, DOT162), root_1); + root_1 = (GrammarAST)adaptor.becomeRoot(new TerminalAST(WILDCARD, DOT169), root_1); - // ANTLRParser.g:744:67: ( elementOptions )? + // ANTLRParser.g:860:67: ( elementOptions )? if ( stream_elementOptions.hasNext() ) { adaptor.addChild(root_1, stream_elementOptions.nextTree()); @@ -6684,7 +6923,7 @@ public class ANTLRParser extends Parser { } - // ANTLRParser.g:746:3: ( ROOT -> ^( ROOT $terminal) | BANG -> ^( BANG $terminal) )? + // ANTLRParser.g:862:3: ( ROOT -> ^( ROOT $terminal) | BANG -> ^( BANG $terminal) )? int alt57=3; int LA57_0 = input.LA(1); @@ -6696,15 +6935,15 @@ public class ANTLRParser extends Parser { } switch (alt57) { case 1 : - // ANTLRParser.g:746:5: ROOT + // ANTLRParser.g:862:5: ROOT { - ROOT164=(Token)match(input,ROOT,FOLLOW_ROOT_in_terminal3784); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ROOT.add(ROOT164); + ROOT171=(Token)match(input,ROOT,FOLLOW_ROOT_in_terminal3904); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ROOT.add(ROOT171); // AST REWRITE - // elements: terminal, ROOT + // elements: ROOT, terminal // token labels: // rule labels: retval // token list labels: @@ -6715,9 +6954,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 746:19: -> ^( ROOT $terminal) + // 862:19: -> ^( ROOT $terminal) { - // ANTLRParser.g:746:22: ^( ROOT $terminal) + // ANTLRParser.g:862:22: ^( ROOT $terminal) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_ROOT.nextNode(), root_1); @@ -6733,15 +6972,15 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:747:5: BANG + // ANTLRParser.g:863:5: BANG { - BANG165=(Token)match(input,BANG,FOLLOW_BANG_in_terminal3808); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_BANG.add(BANG165); + BANG172=(Token)match(input,BANG,FOLLOW_BANG_in_terminal3928); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_BANG.add(BANG172); // AST REWRITE - // elements: terminal, BANG + // elements: BANG, terminal // token labels: // rule labels: retval // token list labels: @@ -6752,9 +6991,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 747:19: -> ^( BANG $terminal) + // 863:19: -> ^( BANG $terminal) { - // ANTLRParser.g:747:22: ^( BANG $terminal) + // ANTLRParser.g:863:22: ^( BANG $terminal) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_BANG.nextNode(), root_1); @@ -6801,42 +7040,42 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "elementOptions" - // ANTLRParser.g:757:2: elementOptions : LT elementOption ( COMMA elementOption )* GT -> ^( ELEMENT_OPTIONS ( elementOption )+ ) ; + // ANTLRParser.g:873:2: elementOptions : LT elementOption ( COMMA elementOption )* GT -> ^( ELEMENT_OPTIONS ( elementOption )+ ) ; public final ANTLRParser.elementOptions_return elementOptions() throws RecognitionException { ANTLRParser.elementOptions_return retval = new ANTLRParser.elementOptions_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token LT166=null; - Token COMMA168=null; - Token GT170=null; - ANTLRParser.elementOption_return elementOption167 = null; + Token LT173=null; + Token COMMA175=null; + Token GT177=null; + ANTLRParser.elementOption_return elementOption174 = null; - ANTLRParser.elementOption_return elementOption169 = null; + ANTLRParser.elementOption_return elementOption176 = null; - GrammarAST LT166_tree=null; - GrammarAST COMMA168_tree=null; - GrammarAST GT170_tree=null; + GrammarAST LT173_tree=null; + GrammarAST COMMA175_tree=null; + GrammarAST GT177_tree=null; RewriteRuleTokenStream stream_GT=new RewriteRuleTokenStream(adaptor,"token GT"); RewriteRuleTokenStream stream_LT=new RewriteRuleTokenStream(adaptor,"token LT"); RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); RewriteRuleSubtreeStream stream_elementOption=new RewriteRuleSubtreeStream(adaptor,"rule elementOption"); try { - // ANTLRParser.g:758:5: ( LT elementOption ( COMMA elementOption )* GT -> ^( ELEMENT_OPTIONS ( elementOption )+ ) ) - // ANTLRParser.g:760:7: LT elementOption ( COMMA elementOption )* GT + // ANTLRParser.g:874:5: ( LT elementOption ( COMMA elementOption )* GT -> ^( ELEMENT_OPTIONS ( elementOption )+ ) ) + // ANTLRParser.g:876:7: LT elementOption ( COMMA elementOption )* GT { - LT166=(Token)match(input,LT,FOLLOW_LT_in_elementOptions3872); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_LT.add(LT166); + LT173=(Token)match(input,LT,FOLLOW_LT_in_elementOptions3992); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LT.add(LT173); - pushFollow(FOLLOW_elementOption_in_elementOptions3874); - elementOption167=elementOption(); + pushFollow(FOLLOW_elementOption_in_elementOptions3994); + elementOption174=elementOption(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_elementOption.add(elementOption167.getTree()); - // ANTLRParser.g:760:24: ( COMMA elementOption )* + if ( state.backtracking==0 ) stream_elementOption.add(elementOption174.getTree()); + // ANTLRParser.g:876:24: ( COMMA elementOption )* loop58: do { int alt58=2; @@ -6849,17 +7088,17 @@ public class ANTLRParser extends Parser { switch (alt58) { case 1 : - // ANTLRParser.g:760:25: COMMA elementOption + // ANTLRParser.g:876:25: COMMA elementOption { - COMMA168=(Token)match(input,COMMA,FOLLOW_COMMA_in_elementOptions3877); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COMMA.add(COMMA168); + COMMA175=(Token)match(input,COMMA,FOLLOW_COMMA_in_elementOptions3997); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COMMA.add(COMMA175); - pushFollow(FOLLOW_elementOption_in_elementOptions3879); - elementOption169=elementOption(); + pushFollow(FOLLOW_elementOption_in_elementOptions3999); + elementOption176=elementOption(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_elementOption.add(elementOption169.getTree()); + if ( state.backtracking==0 ) stream_elementOption.add(elementOption176.getTree()); } break; @@ -6869,8 +7108,8 @@ public class ANTLRParser extends Parser { } } while (true); - GT170=(Token)match(input,GT,FOLLOW_GT_in_elementOptions3883); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_GT.add(GT170); + GT177=(Token)match(input,GT,FOLLOW_GT_in_elementOptions4003); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_GT.add(GT177); @@ -6886,9 +7125,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 760:50: -> ^( ELEMENT_OPTIONS ( elementOption )+ ) + // 876:50: -> ^( ELEMENT_OPTIONS ( elementOption )+ ) { - // ANTLRParser.g:760:53: ^( ELEMENT_OPTIONS ( elementOption )+ ) + // ANTLRParser.g:876:53: ^( ELEMENT_OPTIONS ( elementOption )+ ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ELEMENT_OPTIONS, "ELEMENT_OPTIONS"), root_1); @@ -6936,39 +7175,39 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "elementOption" - // ANTLRParser.g:765:1: elementOption : ( qid | id ASSIGN ( qid | STRING_LITERAL ) ); + // ANTLRParser.g:881:1: elementOption : ( qid | id ASSIGN ( qid | STRING_LITERAL ) ); public final ANTLRParser.elementOption_return elementOption() throws RecognitionException { ANTLRParser.elementOption_return retval = new ANTLRParser.elementOption_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token ASSIGN173=null; - Token STRING_LITERAL175=null; - ANTLRParser.qid_return qid171 = null; + Token ASSIGN180=null; + Token STRING_LITERAL182=null; + ANTLRParser.qid_return qid178 = null; - ANTLRParser.id_return id172 = null; + ANTLRParser.id_return id179 = null; - ANTLRParser.qid_return qid174 = null; + ANTLRParser.qid_return qid181 = null; - GrammarAST ASSIGN173_tree=null; - GrammarAST STRING_LITERAL175_tree=null; + GrammarAST ASSIGN180_tree=null; + GrammarAST STRING_LITERAL182_tree=null; try { - // ANTLRParser.g:766:5: ( qid | id ASSIGN ( qid | STRING_LITERAL ) ) + // ANTLRParser.g:882:5: ( qid | id ASSIGN ( qid | STRING_LITERAL ) ) int alt60=2; switch ( input.LA(1) ) { case RULE_REF: { int LA60_1 = input.LA(2); - if ( (LA60_1==ASSIGN) ) { - alt60=2; - } - else if ( (LA60_1==COMMA||LA60_1==GT||LA60_1==DOT) ) { + if ( (LA60_1==COMMA||LA60_1==GT||LA60_1==DOT) ) { alt60=1; } + else if ( (LA60_1==ASSIGN) ) { + alt60=2; + } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = @@ -6982,12 +7221,12 @@ public class ANTLRParser extends Parser { { int LA60_2 = input.LA(2); - if ( (LA60_2==ASSIGN) ) { - alt60=2; - } - else if ( (LA60_2==COMMA||LA60_2==GT||LA60_2==DOT) ) { + if ( (LA60_2==COMMA||LA60_2==GT||LA60_2==DOT) ) { alt60=1; } + else if ( (LA60_2==ASSIGN) ) { + alt60=2; + } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = @@ -7026,36 +7265,36 @@ public class ANTLRParser extends Parser { switch (alt60) { case 1 : - // ANTLRParser.g:767:7: qid + // ANTLRParser.g:883:7: qid { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_qid_in_elementOption3918); - qid171=qid(); + pushFollow(FOLLOW_qid_in_elementOption4038); + qid178=qid(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, qid171.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, qid178.getTree()); } break; case 2 : - // ANTLRParser.g:770:7: id ASSIGN ( qid | STRING_LITERAL ) + // ANTLRParser.g:886:7: id ASSIGN ( qid | STRING_LITERAL ) { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_id_in_elementOption3940); - id172=id(); + pushFollow(FOLLOW_id_in_elementOption4060); + id179=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, id172.getTree()); - ASSIGN173=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_elementOption3942); if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, id179.getTree()); + ASSIGN180=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_elementOption4062); if (state.failed) return retval; if ( state.backtracking==0 ) { - ASSIGN173_tree = (GrammarAST)adaptor.create(ASSIGN173); - root_0 = (GrammarAST)adaptor.becomeRoot(ASSIGN173_tree, root_0); + ASSIGN180_tree = (GrammarAST)adaptor.create(ASSIGN180); + root_0 = (GrammarAST)adaptor.becomeRoot(ASSIGN180_tree, root_0); } - // ANTLRParser.g:770:18: ( qid | STRING_LITERAL ) + // ANTLRParser.g:886:18: ( qid | STRING_LITERAL ) int alt59=2; int LA59_0 = input.LA(1); @@ -7074,24 +7313,24 @@ public class ANTLRParser extends Parser { } switch (alt59) { case 1 : - // ANTLRParser.g:770:19: qid + // ANTLRParser.g:886:19: qid { - pushFollow(FOLLOW_qid_in_elementOption3946); - qid174=qid(); + pushFollow(FOLLOW_qid_in_elementOption4066); + qid181=qid(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, qid174.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, qid181.getTree()); } break; case 2 : - // ANTLRParser.g:770:25: STRING_LITERAL + // ANTLRParser.g:886:25: STRING_LITERAL { - STRING_LITERAL175=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_elementOption3950); if (state.failed) return retval; + STRING_LITERAL182=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_elementOption4070); if (state.failed) return retval; if ( state.backtracking==0 ) { - STRING_LITERAL175_tree = new TerminalAST(STRING_LITERAL175) ; - adaptor.addChild(root_0, STRING_LITERAL175_tree); + STRING_LITERAL182_tree = new TerminalAST(STRING_LITERAL182) ; + adaptor.addChild(root_0, STRING_LITERAL182_tree); } } @@ -7130,25 +7369,25 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewrite" - // ANTLRParser.g:773:1: rewrite : ( predicatedRewrite )* nakedRewrite -> ( predicatedRewrite )* nakedRewrite ; + // ANTLRParser.g:889:1: rewrite : ( predicatedRewrite )* nakedRewrite -> ( predicatedRewrite )* nakedRewrite ; public final ANTLRParser.rewrite_return rewrite() throws RecognitionException { ANTLRParser.rewrite_return retval = new ANTLRParser.rewrite_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - ANTLRParser.predicatedRewrite_return predicatedRewrite176 = null; + ANTLRParser.predicatedRewrite_return predicatedRewrite183 = null; - ANTLRParser.nakedRewrite_return nakedRewrite177 = null; + ANTLRParser.nakedRewrite_return nakedRewrite184 = null; RewriteRuleSubtreeStream stream_predicatedRewrite=new RewriteRuleSubtreeStream(adaptor,"rule predicatedRewrite"); RewriteRuleSubtreeStream stream_nakedRewrite=new RewriteRuleSubtreeStream(adaptor,"rule nakedRewrite"); try { - // ANTLRParser.g:774:2: ( ( predicatedRewrite )* nakedRewrite -> ( predicatedRewrite )* nakedRewrite ) - // ANTLRParser.g:774:4: ( predicatedRewrite )* nakedRewrite + // ANTLRParser.g:890:2: ( ( predicatedRewrite )* nakedRewrite -> ( predicatedRewrite )* nakedRewrite ) + // ANTLRParser.g:890:4: ( predicatedRewrite )* nakedRewrite { - // ANTLRParser.g:774:4: ( predicatedRewrite )* + // ANTLRParser.g:890:4: ( predicatedRewrite )* loop61: do { int alt61=2; @@ -7167,14 +7406,14 @@ public class ANTLRParser extends Parser { switch (alt61) { case 1 : - // ANTLRParser.g:774:4: predicatedRewrite + // ANTLRParser.g:890:4: predicatedRewrite { - pushFollow(FOLLOW_predicatedRewrite_in_rewrite3968); - predicatedRewrite176=predicatedRewrite(); + pushFollow(FOLLOW_predicatedRewrite_in_rewrite4088); + predicatedRewrite183=predicatedRewrite(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_predicatedRewrite.add(predicatedRewrite176.getTree()); + if ( state.backtracking==0 ) stream_predicatedRewrite.add(predicatedRewrite183.getTree()); } break; @@ -7184,16 +7423,16 @@ public class ANTLRParser extends Parser { } } while (true); - pushFollow(FOLLOW_nakedRewrite_in_rewrite3971); - nakedRewrite177=nakedRewrite(); + pushFollow(FOLLOW_nakedRewrite_in_rewrite4091); + nakedRewrite184=nakedRewrite(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_nakedRewrite.add(nakedRewrite177.getTree()); + if ( state.backtracking==0 ) stream_nakedRewrite.add(nakedRewrite184.getTree()); // AST REWRITE - // elements: nakedRewrite, predicatedRewrite + // elements: predicatedRewrite, nakedRewrite // token labels: // rule labels: retval // token list labels: @@ -7204,9 +7443,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 774:36: -> ( predicatedRewrite )* nakedRewrite + // 890:36: -> ( predicatedRewrite )* nakedRewrite { - // ANTLRParser.g:774:39: ( predicatedRewrite )* + // ANTLRParser.g:890:39: ( predicatedRewrite )* while ( stream_predicatedRewrite.hasNext() ) { adaptor.addChild(root_0, stream_predicatedRewrite.nextTree()); @@ -7245,39 +7484,39 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "predicatedRewrite" - // ANTLRParser.g:777:1: predicatedRewrite : RARROW SEMPRED rewriteAlt -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] SEMPRED rewriteAlt ) -> ^( RESULT[$RARROW] SEMPRED rewriteAlt ) ; + // ANTLRParser.g:893:1: predicatedRewrite : RARROW SEMPRED rewriteAlt -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] SEMPRED rewriteAlt ) -> ^( RESULT[$RARROW] SEMPRED rewriteAlt ) ; public final ANTLRParser.predicatedRewrite_return predicatedRewrite() throws RecognitionException { ANTLRParser.predicatedRewrite_return retval = new ANTLRParser.predicatedRewrite_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token RARROW178=null; - Token SEMPRED179=null; - ANTLRParser.rewriteAlt_return rewriteAlt180 = null; + Token RARROW185=null; + Token SEMPRED186=null; + ANTLRParser.rewriteAlt_return rewriteAlt187 = null; - GrammarAST RARROW178_tree=null; - GrammarAST SEMPRED179_tree=null; + GrammarAST RARROW185_tree=null; + GrammarAST SEMPRED186_tree=null; RewriteRuleTokenStream stream_SEMPRED=new RewriteRuleTokenStream(adaptor,"token SEMPRED"); RewriteRuleTokenStream stream_RARROW=new RewriteRuleTokenStream(adaptor,"token RARROW"); RewriteRuleSubtreeStream stream_rewriteAlt=new RewriteRuleSubtreeStream(adaptor,"rule rewriteAlt"); try { - // ANTLRParser.g:778:2: ( RARROW SEMPRED rewriteAlt -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] SEMPRED rewriteAlt ) -> ^( RESULT[$RARROW] SEMPRED rewriteAlt ) ) - // ANTLRParser.g:778:4: RARROW SEMPRED rewriteAlt + // ANTLRParser.g:894:2: ( RARROW SEMPRED rewriteAlt -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] SEMPRED rewriteAlt ) -> ^( RESULT[$RARROW] SEMPRED rewriteAlt ) ) + // ANTLRParser.g:894:4: RARROW SEMPRED rewriteAlt { - RARROW178=(Token)match(input,RARROW,FOLLOW_RARROW_in_predicatedRewrite3989); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RARROW.add(RARROW178); + RARROW185=(Token)match(input,RARROW,FOLLOW_RARROW_in_predicatedRewrite4109); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RARROW.add(RARROW185); - SEMPRED179=(Token)match(input,SEMPRED,FOLLOW_SEMPRED_in_predicatedRewrite3991); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_SEMPRED.add(SEMPRED179); + SEMPRED186=(Token)match(input,SEMPRED,FOLLOW_SEMPRED_in_predicatedRewrite4111); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEMPRED.add(SEMPRED186); - pushFollow(FOLLOW_rewriteAlt_in_predicatedRewrite3993); - rewriteAlt180=rewriteAlt(); + pushFollow(FOLLOW_rewriteAlt_in_predicatedRewrite4113); + rewriteAlt187=rewriteAlt(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteAlt.add(rewriteAlt180.getTree()); + if ( state.backtracking==0 ) stream_rewriteAlt.add(rewriteAlt187.getTree()); // AST REWRITE @@ -7292,12 +7531,12 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 779:3: -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] SEMPRED rewriteAlt ) - if ((rewriteAlt180!=null?rewriteAlt180.isTemplate:false)) { - // ANTLRParser.g:779:32: ^( ST_RESULT[$RARROW] SEMPRED rewriteAlt ) + // 895:3: -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] SEMPRED rewriteAlt ) + if ((rewriteAlt187!=null?rewriteAlt187.isTemplate:false)) { + // ANTLRParser.g:895:32: ^( ST_RESULT[$RARROW] SEMPRED rewriteAlt ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); - root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ST_RESULT, RARROW178), root_1); + root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ST_RESULT, RARROW185), root_1); adaptor.addChild(root_1, stream_SEMPRED.nextNode()); adaptor.addChild(root_1, stream_rewriteAlt.nextTree()); @@ -7306,12 +7545,12 @@ public class ANTLRParser extends Parser { } } - else // 780:3: -> ^( RESULT[$RARROW] SEMPRED rewriteAlt ) + else // 896:3: -> ^( RESULT[$RARROW] SEMPRED rewriteAlt ) { - // ANTLRParser.g:780:6: ^( RESULT[$RARROW] SEMPRED rewriteAlt ) + // ANTLRParser.g:896:6: ^( RESULT[$RARROW] SEMPRED rewriteAlt ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); - root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(RESULT, RARROW178), root_1); + root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(RESULT, RARROW185), root_1); adaptor.addChild(root_1, stream_SEMPRED.nextNode()); adaptor.addChild(root_1, stream_rewriteAlt.nextTree()); @@ -7350,33 +7589,33 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "nakedRewrite" - // ANTLRParser.g:783:1: nakedRewrite : RARROW rewriteAlt -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] rewriteAlt ) -> ^( RESULT[$RARROW] rewriteAlt ) ; + // ANTLRParser.g:899:1: nakedRewrite : RARROW rewriteAlt -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] rewriteAlt ) -> ^( RESULT[$RARROW] rewriteAlt ) ; public final ANTLRParser.nakedRewrite_return nakedRewrite() throws RecognitionException { ANTLRParser.nakedRewrite_return retval = new ANTLRParser.nakedRewrite_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token RARROW181=null; - ANTLRParser.rewriteAlt_return rewriteAlt182 = null; + Token RARROW188=null; + ANTLRParser.rewriteAlt_return rewriteAlt189 = null; - GrammarAST RARROW181_tree=null; + GrammarAST RARROW188_tree=null; RewriteRuleTokenStream stream_RARROW=new RewriteRuleTokenStream(adaptor,"token RARROW"); RewriteRuleSubtreeStream stream_rewriteAlt=new RewriteRuleSubtreeStream(adaptor,"rule rewriteAlt"); try { - // ANTLRParser.g:784:2: ( RARROW rewriteAlt -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] rewriteAlt ) -> ^( RESULT[$RARROW] rewriteAlt ) ) - // ANTLRParser.g:784:4: RARROW rewriteAlt + // ANTLRParser.g:900:2: ( RARROW rewriteAlt -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] rewriteAlt ) -> ^( RESULT[$RARROW] rewriteAlt ) ) + // ANTLRParser.g:900:4: RARROW rewriteAlt { - RARROW181=(Token)match(input,RARROW,FOLLOW_RARROW_in_nakedRewrite4033); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RARROW.add(RARROW181); + RARROW188=(Token)match(input,RARROW,FOLLOW_RARROW_in_nakedRewrite4153); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RARROW.add(RARROW188); - pushFollow(FOLLOW_rewriteAlt_in_nakedRewrite4035); - rewriteAlt182=rewriteAlt(); + pushFollow(FOLLOW_rewriteAlt_in_nakedRewrite4155); + rewriteAlt189=rewriteAlt(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteAlt.add(rewriteAlt182.getTree()); + if ( state.backtracking==0 ) stream_rewriteAlt.add(rewriteAlt189.getTree()); // AST REWRITE @@ -7391,12 +7630,12 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 784:22: -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] rewriteAlt ) - if ((rewriteAlt182!=null?rewriteAlt182.isTemplate:false)) { - // ANTLRParser.g:784:51: ^( ST_RESULT[$RARROW] rewriteAlt ) + // 900:22: -> {$rewriteAlt.isTemplate}? ^( ST_RESULT[$RARROW] rewriteAlt ) + if ((rewriteAlt189!=null?rewriteAlt189.isTemplate:false)) { + // ANTLRParser.g:900:51: ^( ST_RESULT[$RARROW] rewriteAlt ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); - root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ST_RESULT, RARROW181), root_1); + root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ST_RESULT, RARROW188), root_1); adaptor.addChild(root_1, stream_rewriteAlt.nextTree()); @@ -7404,12 +7643,12 @@ public class ANTLRParser extends Parser { } } - else // 785:10: -> ^( RESULT[$RARROW] rewriteAlt ) + else // 901:10: -> ^( RESULT[$RARROW] rewriteAlt ) { - // ANTLRParser.g:785:13: ^( RESULT[$RARROW] rewriteAlt ) + // ANTLRParser.g:901:13: ^( RESULT[$RARROW] rewriteAlt ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); - root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(RESULT, RARROW181), root_1); + root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(RESULT, RARROW188), root_1); adaptor.addChild(root_1, stream_rewriteAlt.nextTree()); @@ -7448,37 +7687,37 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewriteAlt" - // ANTLRParser.g:790:1: rewriteAlt returns [boolean isTemplate] options {backtrack=true; } : ( rewriteTemplate | rewriteTreeAlt | ETC | -> EPSILON ); + // ANTLRParser.g:906:1: rewriteAlt returns [boolean isTemplate] options {backtrack=true; } : ( rewriteTemplate | rewriteTreeAlt | ETC | -> EPSILON ); public final ANTLRParser.rewriteAlt_return rewriteAlt() throws RecognitionException { ANTLRParser.rewriteAlt_return retval = new ANTLRParser.rewriteAlt_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token ETC185=null; - ANTLRParser.rewriteTemplate_return rewriteTemplate183 = null; + Token ETC192=null; + ANTLRParser.rewriteTemplate_return rewriteTemplate190 = null; - ANTLRParser.rewriteTreeAlt_return rewriteTreeAlt184 = null; + ANTLRParser.rewriteTreeAlt_return rewriteTreeAlt191 = null; - GrammarAST ETC185_tree=null; + GrammarAST ETC192_tree=null; try { - // ANTLRParser.g:792:5: ( rewriteTemplate | rewriteTreeAlt | ETC | -> EPSILON ) + // ANTLRParser.g:908:5: ( rewriteTemplate | rewriteTreeAlt | ETC | -> EPSILON ) int alt62=4; alt62 = dfa62.predict(input); switch (alt62) { case 1 : - // ANTLRParser.g:793:7: rewriteTemplate + // ANTLRParser.g:909:7: rewriteTemplate { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_rewriteTemplate_in_rewriteAlt4099); - rewriteTemplate183=rewriteTemplate(); + pushFollow(FOLLOW_rewriteTemplate_in_rewriteAlt4219); + rewriteTemplate190=rewriteTemplate(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteTemplate183.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteTemplate190.getTree()); if ( state.backtracking==0 ) { retval.isTemplate =true; } @@ -7486,34 +7725,34 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:799:7: rewriteTreeAlt + // ANTLRParser.g:915:7: rewriteTreeAlt { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_rewriteTreeAlt_in_rewriteAlt4138); - rewriteTreeAlt184=rewriteTreeAlt(); + pushFollow(FOLLOW_rewriteTreeAlt_in_rewriteAlt4258); + rewriteTreeAlt191=rewriteTreeAlt(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteTreeAlt184.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteTreeAlt191.getTree()); } break; case 3 : - // ANTLRParser.g:801:7: ETC + // ANTLRParser.g:917:7: ETC { root_0 = (GrammarAST)adaptor.nil(); - ETC185=(Token)match(input,ETC,FOLLOW_ETC_in_rewriteAlt4147); if (state.failed) return retval; + ETC192=(Token)match(input,ETC,FOLLOW_ETC_in_rewriteAlt4267); if (state.failed) return retval; if ( state.backtracking==0 ) { - ETC185_tree = (GrammarAST)adaptor.create(ETC185); - adaptor.addChild(root_0, ETC185_tree); + ETC192_tree = (GrammarAST)adaptor.create(ETC192); + adaptor.addChild(root_0, ETC192_tree); } } break; case 4 : - // ANTLRParser.g:803:27: + // ANTLRParser.g:919:27: { // AST REWRITE @@ -7528,7 +7767,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 803:27: -> EPSILON + // 919:27: -> EPSILON { adaptor.addChild(root_0, (GrammarAST)adaptor.create(EPSILON, "EPSILON")); @@ -7565,22 +7804,22 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewriteTreeAlt" - // ANTLRParser.g:806:1: rewriteTreeAlt : ( rewriteTreeElement )+ -> ^( ALT ( rewriteTreeElement )+ ) ; + // ANTLRParser.g:922:1: rewriteTreeAlt : ( rewriteTreeElement )+ -> ^( ALT ( rewriteTreeElement )+ ) ; public final ANTLRParser.rewriteTreeAlt_return rewriteTreeAlt() throws RecognitionException { ANTLRParser.rewriteTreeAlt_return retval = new ANTLRParser.rewriteTreeAlt_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - ANTLRParser.rewriteTreeElement_return rewriteTreeElement186 = null; + ANTLRParser.rewriteTreeElement_return rewriteTreeElement193 = null; RewriteRuleSubtreeStream stream_rewriteTreeElement=new RewriteRuleSubtreeStream(adaptor,"rule rewriteTreeElement"); try { - // ANTLRParser.g:807:5: ( ( rewriteTreeElement )+ -> ^( ALT ( rewriteTreeElement )+ ) ) - // ANTLRParser.g:807:7: ( rewriteTreeElement )+ + // ANTLRParser.g:923:5: ( ( rewriteTreeElement )+ -> ^( ALT ( rewriteTreeElement )+ ) ) + // ANTLRParser.g:923:7: ( rewriteTreeElement )+ { - // ANTLRParser.g:807:7: ( rewriteTreeElement )+ + // ANTLRParser.g:923:7: ( rewriteTreeElement )+ int cnt63=0; loop63: do { @@ -7594,14 +7833,14 @@ public class ANTLRParser extends Parser { switch (alt63) { case 1 : - // ANTLRParser.g:807:7: rewriteTreeElement + // ANTLRParser.g:923:7: rewriteTreeElement { - pushFollow(FOLLOW_rewriteTreeElement_in_rewriteTreeAlt4178); - rewriteTreeElement186=rewriteTreeElement(); + pushFollow(FOLLOW_rewriteTreeElement_in_rewriteTreeAlt4298); + rewriteTreeElement193=rewriteTreeElement(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteTreeElement.add(rewriteTreeElement186.getTree()); + if ( state.backtracking==0 ) stream_rewriteTreeElement.add(rewriteTreeElement193.getTree()); } break; @@ -7630,9 +7869,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 807:27: -> ^( ALT ( rewriteTreeElement )+ ) + // 923:27: -> ^( ALT ( rewriteTreeElement )+ ) { - // ANTLRParser.g:807:30: ^( ALT ( rewriteTreeElement )+ ) + // ANTLRParser.g:923:30: ^( ALT ( rewriteTreeElement )+ ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ALT, "ALT"), root_1); @@ -7680,63 +7919,63 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewriteTreeElement" - // ANTLRParser.g:810:1: rewriteTreeElement : ( rewriteTreeAtom | rewriteTreeAtom ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) ) | rewriteTree ( ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) | -> rewriteTree ) | rewriteTreeEbnf ); + // ANTLRParser.g:926:1: rewriteTreeElement : ( rewriteTreeAtom | rewriteTreeAtom ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) ) | rewriteTree ( ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) | -> rewriteTree ) | rewriteTreeEbnf ); public final ANTLRParser.rewriteTreeElement_return rewriteTreeElement() throws RecognitionException { ANTLRParser.rewriteTreeElement_return retval = new ANTLRParser.rewriteTreeElement_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - ANTLRParser.rewriteTreeAtom_return rewriteTreeAtom187 = null; + ANTLRParser.rewriteTreeAtom_return rewriteTreeAtom194 = null; - ANTLRParser.rewriteTreeAtom_return rewriteTreeAtom188 = null; + ANTLRParser.rewriteTreeAtom_return rewriteTreeAtom195 = null; - ANTLRParser.ebnfSuffix_return ebnfSuffix189 = null; + ANTLRParser.ebnfSuffix_return ebnfSuffix196 = null; - ANTLRParser.rewriteTree_return rewriteTree190 = null; + ANTLRParser.rewriteTree_return rewriteTree197 = null; - ANTLRParser.ebnfSuffix_return ebnfSuffix191 = null; + ANTLRParser.ebnfSuffix_return ebnfSuffix198 = null; - ANTLRParser.rewriteTreeEbnf_return rewriteTreeEbnf192 = null; + ANTLRParser.rewriteTreeEbnf_return rewriteTreeEbnf199 = null; RewriteRuleSubtreeStream stream_rewriteTree=new RewriteRuleSubtreeStream(adaptor,"rule rewriteTree"); RewriteRuleSubtreeStream stream_rewriteTreeAtom=new RewriteRuleSubtreeStream(adaptor,"rule rewriteTreeAtom"); RewriteRuleSubtreeStream stream_ebnfSuffix=new RewriteRuleSubtreeStream(adaptor,"rule ebnfSuffix"); try { - // ANTLRParser.g:811:2: ( rewriteTreeAtom | rewriteTreeAtom ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) ) | rewriteTree ( ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) | -> rewriteTree ) | rewriteTreeEbnf ) + // ANTLRParser.g:927:2: ( rewriteTreeAtom | rewriteTreeAtom ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) ) | rewriteTree ( ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) | -> rewriteTree ) | rewriteTreeEbnf ) int alt65=4; alt65 = dfa65.predict(input); switch (alt65) { case 1 : - // ANTLRParser.g:811:4: rewriteTreeAtom + // ANTLRParser.g:927:4: rewriteTreeAtom { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_rewriteTreeAtom_in_rewriteTreeElement4202); - rewriteTreeAtom187=rewriteTreeAtom(); + pushFollow(FOLLOW_rewriteTreeAtom_in_rewriteTreeElement4322); + rewriteTreeAtom194=rewriteTreeAtom(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteTreeAtom187.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteTreeAtom194.getTree()); } break; case 2 : - // ANTLRParser.g:812:4: rewriteTreeAtom ebnfSuffix + // ANTLRParser.g:928:4: rewriteTreeAtom ebnfSuffix { - pushFollow(FOLLOW_rewriteTreeAtom_in_rewriteTreeElement4207); - rewriteTreeAtom188=rewriteTreeAtom(); + pushFollow(FOLLOW_rewriteTreeAtom_in_rewriteTreeElement4327); + rewriteTreeAtom195=rewriteTreeAtom(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteTreeAtom.add(rewriteTreeAtom188.getTree()); - pushFollow(FOLLOW_ebnfSuffix_in_rewriteTreeElement4209); - ebnfSuffix189=ebnfSuffix(); + if ( state.backtracking==0 ) stream_rewriteTreeAtom.add(rewriteTreeAtom195.getTree()); + pushFollow(FOLLOW_ebnfSuffix_in_rewriteTreeElement4329); + ebnfSuffix196=ebnfSuffix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix189.getTree()); + if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix196.getTree()); // AST REWRITE @@ -7751,19 +7990,19 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 812:31: -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) ) + // 928:31: -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) ) { - // ANTLRParser.g:812:34: ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) ) + // ANTLRParser.g:928:34: ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_ebnfSuffix.nextNode(), root_1); - // ANTLRParser.g:812:48: ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) + // ANTLRParser.g:928:48: ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) { GrammarAST root_2 = (GrammarAST)adaptor.nil(); root_2 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(REWRITE_BLOCK, "REWRITE_BLOCK"), root_2); - // ANTLRParser.g:812:64: ^( ALT rewriteTreeAtom ) + // ANTLRParser.g:928:64: ^( ALT rewriteTreeAtom ) { GrammarAST root_3 = (GrammarAST)adaptor.nil(); root_3 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ALT, "ALT"), root_3); @@ -7785,15 +8024,15 @@ public class ANTLRParser extends Parser { } break; case 3 : - // ANTLRParser.g:813:6: rewriteTree ( ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) | -> rewriteTree ) + // ANTLRParser.g:929:6: rewriteTree ( ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) | -> rewriteTree ) { - pushFollow(FOLLOW_rewriteTree_in_rewriteTreeElement4234); - rewriteTree190=rewriteTree(); + pushFollow(FOLLOW_rewriteTree_in_rewriteTreeElement4354); + rewriteTree197=rewriteTree(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteTree.add(rewriteTree190.getTree()); - // ANTLRParser.g:814:3: ( ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) | -> rewriteTree ) + if ( state.backtracking==0 ) stream_rewriteTree.add(rewriteTree197.getTree()); + // ANTLRParser.g:930:3: ( ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) | -> rewriteTree ) int alt64=2; int LA64_0 = input.LA(1); @@ -7812,14 +8051,14 @@ public class ANTLRParser extends Parser { } switch (alt64) { case 1 : - // ANTLRParser.g:814:5: ebnfSuffix + // ANTLRParser.g:930:5: ebnfSuffix { - pushFollow(FOLLOW_ebnfSuffix_in_rewriteTreeElement4240); - ebnfSuffix191=ebnfSuffix(); + pushFollow(FOLLOW_ebnfSuffix_in_rewriteTreeElement4360); + ebnfSuffix198=ebnfSuffix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix191.getTree()); + if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix198.getTree()); // AST REWRITE @@ -7834,19 +8073,19 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 815:4: -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) + // 931:4: -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) { - // ANTLRParser.g:815:7: ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) + // ANTLRParser.g:931:7: ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_ebnfSuffix.nextNode(), root_1); - // ANTLRParser.g:815:20: ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) + // ANTLRParser.g:931:20: ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) { GrammarAST root_2 = (GrammarAST)adaptor.nil(); root_2 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(REWRITE_BLOCK, "REWRITE_BLOCK"), root_2); - // ANTLRParser.g:815:36: ^( ALT rewriteTree ) + // ANTLRParser.g:931:36: ^( ALT rewriteTree ) { GrammarAST root_3 = (GrammarAST)adaptor.nil(); root_3 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ALT, "ALT"), root_3); @@ -7868,7 +8107,7 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:816:5: + // ANTLRParser.g:932:5: { // AST REWRITE @@ -7883,7 +8122,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 816:5: -> rewriteTree + // 932:5: -> rewriteTree { adaptor.addChild(root_0, stream_rewriteTree.nextTree()); @@ -7899,16 +8138,16 @@ public class ANTLRParser extends Parser { } break; case 4 : - // ANTLRParser.g:818:6: rewriteTreeEbnf + // ANTLRParser.g:934:6: rewriteTreeEbnf { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_rewriteTreeEbnf_in_rewriteTreeElement4279); - rewriteTreeEbnf192=rewriteTreeEbnf(); + pushFollow(FOLLOW_rewriteTreeEbnf_in_rewriteTreeElement4399); + rewriteTreeEbnf199=rewriteTreeEbnf(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteTreeEbnf192.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteTreeEbnf199.getTree()); } break; @@ -7940,32 +8179,32 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewriteTreeAtom" - // ANTLRParser.g:821:1: rewriteTreeAtom : ( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? -> ^( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? ) | RULE_REF | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOLLAR id -> LABEL[$DOLLAR,$id.text] | ACTION ); + // ANTLRParser.g:937:1: rewriteTreeAtom : ( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? -> ^( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? ) | RULE_REF | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOLLAR id -> LABEL[$DOLLAR,$id.text] | ACTION ); public final ANTLRParser.rewriteTreeAtom_return rewriteTreeAtom() throws RecognitionException { ANTLRParser.rewriteTreeAtom_return retval = new ANTLRParser.rewriteTreeAtom_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token TOKEN_REF193=null; - Token ARG_ACTION195=null; - Token RULE_REF196=null; - Token STRING_LITERAL197=null; - Token DOLLAR199=null; - Token ACTION201=null; - ANTLRParser.elementOptions_return elementOptions194 = null; + Token TOKEN_REF200=null; + Token ARG_ACTION202=null; + Token RULE_REF203=null; + Token STRING_LITERAL204=null; + Token DOLLAR206=null; + Token ACTION208=null; + ANTLRParser.elementOptions_return elementOptions201 = null; - ANTLRParser.elementOptions_return elementOptions198 = null; + ANTLRParser.elementOptions_return elementOptions205 = null; - ANTLRParser.id_return id200 = null; + ANTLRParser.id_return id207 = null; - GrammarAST TOKEN_REF193_tree=null; - GrammarAST ARG_ACTION195_tree=null; - GrammarAST RULE_REF196_tree=null; - GrammarAST STRING_LITERAL197_tree=null; - GrammarAST DOLLAR199_tree=null; - GrammarAST ACTION201_tree=null; + GrammarAST TOKEN_REF200_tree=null; + GrammarAST ARG_ACTION202_tree=null; + GrammarAST RULE_REF203_tree=null; + GrammarAST STRING_LITERAL204_tree=null; + GrammarAST DOLLAR206_tree=null; + GrammarAST ACTION208_tree=null; RewriteRuleTokenStream stream_DOLLAR=new RewriteRuleTokenStream(adaptor,"token DOLLAR"); RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); RewriteRuleTokenStream stream_TOKEN_REF=new RewriteRuleTokenStream(adaptor,"token TOKEN_REF"); @@ -7973,7 +8212,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); RewriteRuleSubtreeStream stream_elementOptions=new RewriteRuleSubtreeStream(adaptor,"rule elementOptions"); try { - // ANTLRParser.g:822:5: ( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? -> ^( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? ) | RULE_REF | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOLLAR id -> LABEL[$DOLLAR,$id.text] | ACTION ) + // ANTLRParser.g:938:5: ( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? -> ^( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? ) | RULE_REF | STRING_LITERAL ( elementOptions )? -> ^( STRING_LITERAL ( elementOptions )? ) | DOLLAR id -> LABEL[$DOLLAR,$id.text] | ACTION ) int alt69=5; switch ( input.LA(1) ) { case TOKEN_REF: @@ -8011,12 +8250,12 @@ public class ANTLRParser extends Parser { switch (alt69) { case 1 : - // ANTLRParser.g:822:9: TOKEN_REF ( elementOptions )? ( ARG_ACTION )? + // ANTLRParser.g:938:9: TOKEN_REF ( elementOptions )? ( ARG_ACTION )? { - TOKEN_REF193=(Token)match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_rewriteTreeAtom4295); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TOKEN_REF.add(TOKEN_REF193); + TOKEN_REF200=(Token)match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_rewriteTreeAtom4415); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TOKEN_REF.add(TOKEN_REF200); - // ANTLRParser.g:822:19: ( elementOptions )? + // ANTLRParser.g:938:19: ( elementOptions )? int alt66=2; int LA66_0 = input.LA(1); @@ -8025,21 +8264,21 @@ public class ANTLRParser extends Parser { } switch (alt66) { case 1 : - // ANTLRParser.g:822:19: elementOptions + // ANTLRParser.g:938:19: elementOptions { - pushFollow(FOLLOW_elementOptions_in_rewriteTreeAtom4297); - elementOptions194=elementOptions(); + pushFollow(FOLLOW_elementOptions_in_rewriteTreeAtom4417); + elementOptions201=elementOptions(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_elementOptions.add(elementOptions194.getTree()); + if ( state.backtracking==0 ) stream_elementOptions.add(elementOptions201.getTree()); } break; } - // ANTLRParser.g:822:35: ( ARG_ACTION )? + // ANTLRParser.g:938:35: ( ARG_ACTION )? int alt67=2; int LA67_0 = input.LA(1); @@ -8048,10 +8287,10 @@ public class ANTLRParser extends Parser { } switch (alt67) { case 1 : - // ANTLRParser.g:822:35: ARG_ACTION + // ANTLRParser.g:938:35: ARG_ACTION { - ARG_ACTION195=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_rewriteTreeAtom4300); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ARG_ACTION.add(ARG_ACTION195); + ARG_ACTION202=(Token)match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_rewriteTreeAtom4420); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ARG_ACTION.add(ARG_ACTION202); } @@ -8062,7 +8301,7 @@ public class ANTLRParser extends Parser { // AST REWRITE - // elements: TOKEN_REF, ARG_ACTION, elementOptions + // elements: ARG_ACTION, TOKEN_REF, elementOptions // token labels: // rule labels: retval // token list labels: @@ -8073,20 +8312,20 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 822:47: -> ^( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? ) + // 938:47: -> ^( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? ) { - // ANTLRParser.g:822:50: ^( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? ) + // ANTLRParser.g:938:50: ^( TOKEN_REF ( elementOptions )? ( ARG_ACTION )? ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(new TerminalAST(stream_TOKEN_REF.nextToken()), root_1); - // ANTLRParser.g:822:75: ( elementOptions )? + // ANTLRParser.g:938:75: ( elementOptions )? if ( stream_elementOptions.hasNext() ) { adaptor.addChild(root_1, stream_elementOptions.nextTree()); } stream_elementOptions.reset(); - // ANTLRParser.g:822:91: ( ARG_ACTION )? + // ANTLRParser.g:938:91: ( ARG_ACTION )? if ( stream_ARG_ACTION.hasNext() ) { adaptor.addChild(root_1, stream_ARG_ACTION.nextNode()); @@ -8102,25 +8341,25 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:823:9: RULE_REF + // ANTLRParser.g:939:9: RULE_REF { root_0 = (GrammarAST)adaptor.nil(); - RULE_REF196=(Token)match(input,RULE_REF,FOLLOW_RULE_REF_in_rewriteTreeAtom4327); if (state.failed) return retval; + RULE_REF203=(Token)match(input,RULE_REF,FOLLOW_RULE_REF_in_rewriteTreeAtom4447); if (state.failed) return retval; if ( state.backtracking==0 ) { - RULE_REF196_tree = (GrammarAST)adaptor.create(RULE_REF196); - adaptor.addChild(root_0, RULE_REF196_tree); + RULE_REF203_tree = (GrammarAST)adaptor.create(RULE_REF203); + adaptor.addChild(root_0, RULE_REF203_tree); } } break; case 3 : - // ANTLRParser.g:824:6: STRING_LITERAL ( elementOptions )? + // ANTLRParser.g:940:6: STRING_LITERAL ( elementOptions )? { - STRING_LITERAL197=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_rewriteTreeAtom4334); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL197); + STRING_LITERAL204=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_rewriteTreeAtom4454); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL204); - // ANTLRParser.g:824:21: ( elementOptions )? + // ANTLRParser.g:940:21: ( elementOptions )? int alt68=2; int LA68_0 = input.LA(1); @@ -8129,14 +8368,14 @@ public class ANTLRParser extends Parser { } switch (alt68) { case 1 : - // ANTLRParser.g:824:21: elementOptions + // ANTLRParser.g:940:21: elementOptions { - pushFollow(FOLLOW_elementOptions_in_rewriteTreeAtom4336); - elementOptions198=elementOptions(); + pushFollow(FOLLOW_elementOptions_in_rewriteTreeAtom4456); + elementOptions205=elementOptions(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_elementOptions.add(elementOptions198.getTree()); + if ( state.backtracking==0 ) stream_elementOptions.add(elementOptions205.getTree()); } break; @@ -8157,14 +8396,14 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 824:40: -> ^( STRING_LITERAL ( elementOptions )? ) + // 940:40: -> ^( STRING_LITERAL ( elementOptions )? ) { - // ANTLRParser.g:824:43: ^( STRING_LITERAL ( elementOptions )? ) + // ANTLRParser.g:940:43: ^( STRING_LITERAL ( elementOptions )? ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(new TerminalAST(stream_STRING_LITERAL.nextToken()), root_1); - // ANTLRParser.g:824:73: ( elementOptions )? + // ANTLRParser.g:940:73: ( elementOptions )? if ( stream_elementOptions.hasNext() ) { adaptor.addChild(root_1, stream_elementOptions.nextTree()); @@ -8180,17 +8419,17 @@ public class ANTLRParser extends Parser { } break; case 4 : - // ANTLRParser.g:825:6: DOLLAR id + // ANTLRParser.g:941:6: DOLLAR id { - DOLLAR199=(Token)match(input,DOLLAR,FOLLOW_DOLLAR_in_rewriteTreeAtom4359); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_DOLLAR.add(DOLLAR199); + DOLLAR206=(Token)match(input,DOLLAR,FOLLOW_DOLLAR_in_rewriteTreeAtom4479); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_DOLLAR.add(DOLLAR206); - pushFollow(FOLLOW_id_in_rewriteTreeAtom4361); - id200=id(); + pushFollow(FOLLOW_id_in_rewriteTreeAtom4481); + id207=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id200.getTree()); + if ( state.backtracking==0 ) stream_id.add(id207.getTree()); // AST REWRITE @@ -8205,9 +8444,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 825:16: -> LABEL[$DOLLAR,$id.text] + // 941:16: -> LABEL[$DOLLAR,$id.text] { - adaptor.addChild(root_0, (GrammarAST)adaptor.create(LABEL, DOLLAR199, (id200!=null?input.toString(id200.start,id200.stop):null))); + adaptor.addChild(root_0, (GrammarAST)adaptor.create(LABEL, DOLLAR206, (id207!=null?input.toString(id207.start,id207.stop):null))); } @@ -8215,14 +8454,14 @@ public class ANTLRParser extends Parser { } break; case 5 : - // ANTLRParser.g:826:4: ACTION + // ANTLRParser.g:942:4: ACTION { root_0 = (GrammarAST)adaptor.nil(); - ACTION201=(Token)match(input,ACTION,FOLLOW_ACTION_in_rewriteTreeAtom4372); if (state.failed) return retval; + ACTION208=(Token)match(input,ACTION,FOLLOW_ACTION_in_rewriteTreeAtom4492); if (state.failed) return retval; if ( state.backtracking==0 ) { - ACTION201_tree = new ActionAST(ACTION201) ; - adaptor.addChild(root_0, ACTION201_tree); + ACTION208_tree = new ActionAST(ACTION208) ; + adaptor.addChild(root_0, ACTION208_tree); } } @@ -8255,7 +8494,7 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewriteTreeEbnf" - // ANTLRParser.g:829:1: rewriteTreeEbnf : lp= LPAREN rewriteTreeAlt RPAREN ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK[$lp] rewriteTreeAlt ) ) ; + // ANTLRParser.g:945:1: rewriteTreeEbnf : lp= LPAREN rewriteTreeAlt RPAREN ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK[$lp] rewriteTreeAlt ) ) ; public final ANTLRParser.rewriteTreeEbnf_return rewriteTreeEbnf() throws RecognitionException { ANTLRParser.rewriteTreeEbnf_return retval = new ANTLRParser.rewriteTreeEbnf_return(); retval.start = input.LT(1); @@ -8263,14 +8502,14 @@ public class ANTLRParser extends Parser { GrammarAST root_0 = null; Token lp=null; - Token RPAREN203=null; - ANTLRParser.rewriteTreeAlt_return rewriteTreeAlt202 = null; + Token RPAREN210=null; + ANTLRParser.rewriteTreeAlt_return rewriteTreeAlt209 = null; - ANTLRParser.ebnfSuffix_return ebnfSuffix204 = null; + ANTLRParser.ebnfSuffix_return ebnfSuffix211 = null; GrammarAST lp_tree=null; - GrammarAST RPAREN203_tree=null; + GrammarAST RPAREN210_tree=null; RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN"); RewriteRuleSubtreeStream stream_rewriteTreeAlt=new RewriteRuleSubtreeStream(adaptor,"rule rewriteTreeAlt"); @@ -8279,31 +8518,31 @@ public class ANTLRParser extends Parser { Token firstToken = input.LT(1); try { - // ANTLRParser.g:837:2: (lp= LPAREN rewriteTreeAlt RPAREN ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK[$lp] rewriteTreeAlt ) ) ) - // ANTLRParser.g:837:4: lp= LPAREN rewriteTreeAlt RPAREN ebnfSuffix + // ANTLRParser.g:953:2: (lp= LPAREN rewriteTreeAlt RPAREN ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK[$lp] rewriteTreeAlt ) ) ) + // ANTLRParser.g:953:4: lp= LPAREN rewriteTreeAlt RPAREN ebnfSuffix { - lp=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_rewriteTreeEbnf4398); if (state.failed) return retval; + lp=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_rewriteTreeEbnf4518); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LPAREN.add(lp); - pushFollow(FOLLOW_rewriteTreeAlt_in_rewriteTreeEbnf4400); - rewriteTreeAlt202=rewriteTreeAlt(); + pushFollow(FOLLOW_rewriteTreeAlt_in_rewriteTreeEbnf4520); + rewriteTreeAlt209=rewriteTreeAlt(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteTreeAlt.add(rewriteTreeAlt202.getTree()); - RPAREN203=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteTreeEbnf4402); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN203); + if ( state.backtracking==0 ) stream_rewriteTreeAlt.add(rewriteTreeAlt209.getTree()); + RPAREN210=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteTreeEbnf4522); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN210); - pushFollow(FOLLOW_ebnfSuffix_in_rewriteTreeEbnf4404); - ebnfSuffix204=ebnfSuffix(); + pushFollow(FOLLOW_ebnfSuffix_in_rewriteTreeEbnf4524); + ebnfSuffix211=ebnfSuffix(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix204.getTree()); + if ( state.backtracking==0 ) stream_ebnfSuffix.add(ebnfSuffix211.getTree()); // AST REWRITE - // elements: rewriteTreeAlt, ebnfSuffix + // elements: ebnfSuffix, rewriteTreeAlt // token labels: // rule labels: retval // token list labels: @@ -8314,14 +8553,14 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 837:47: -> ^( ebnfSuffix ^( REWRITE_BLOCK[$lp] rewriteTreeAlt ) ) + // 953:47: -> ^( ebnfSuffix ^( REWRITE_BLOCK[$lp] rewriteTreeAlt ) ) { - // ANTLRParser.g:837:50: ^( ebnfSuffix ^( REWRITE_BLOCK[$lp] rewriteTreeAlt ) ) + // ANTLRParser.g:953:50: ^( ebnfSuffix ^( REWRITE_BLOCK[$lp] rewriteTreeAlt ) ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_ebnfSuffix.nextNode(), root_1); - // ANTLRParser.g:837:63: ^( REWRITE_BLOCK[$lp] rewriteTreeAlt ) + // ANTLRParser.g:953:63: ^( REWRITE_BLOCK[$lp] rewriteTreeAlt ) { GrammarAST root_2 = (GrammarAST)adaptor.nil(); root_2 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(REWRITE_BLOCK, lp), root_2); @@ -8371,40 +8610,40 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewriteTree" - // ANTLRParser.g:840:1: rewriteTree : TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* RPAREN -> ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) ; + // ANTLRParser.g:956:1: rewriteTree : TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* RPAREN -> ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) ; public final ANTLRParser.rewriteTree_return rewriteTree() throws RecognitionException { ANTLRParser.rewriteTree_return retval = new ANTLRParser.rewriteTree_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token TREE_BEGIN205=null; - Token RPAREN208=null; - ANTLRParser.rewriteTreeAtom_return rewriteTreeAtom206 = null; + Token TREE_BEGIN212=null; + Token RPAREN215=null; + ANTLRParser.rewriteTreeAtom_return rewriteTreeAtom213 = null; - ANTLRParser.rewriteTreeElement_return rewriteTreeElement207 = null; + ANTLRParser.rewriteTreeElement_return rewriteTreeElement214 = null; - GrammarAST TREE_BEGIN205_tree=null; - GrammarAST RPAREN208_tree=null; + GrammarAST TREE_BEGIN212_tree=null; + GrammarAST RPAREN215_tree=null; RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); RewriteRuleTokenStream stream_TREE_BEGIN=new RewriteRuleTokenStream(adaptor,"token TREE_BEGIN"); RewriteRuleSubtreeStream stream_rewriteTreeAtom=new RewriteRuleSubtreeStream(adaptor,"rule rewriteTreeAtom"); RewriteRuleSubtreeStream stream_rewriteTreeElement=new RewriteRuleSubtreeStream(adaptor,"rule rewriteTreeElement"); try { - // ANTLRParser.g:841:2: ( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* RPAREN -> ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) ) - // ANTLRParser.g:841:4: TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* RPAREN + // ANTLRParser.g:957:2: ( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* RPAREN -> ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) ) + // ANTLRParser.g:957:4: TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* RPAREN { - TREE_BEGIN205=(Token)match(input,TREE_BEGIN,FOLLOW_TREE_BEGIN_in_rewriteTree4428); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TREE_BEGIN.add(TREE_BEGIN205); + TREE_BEGIN212=(Token)match(input,TREE_BEGIN,FOLLOW_TREE_BEGIN_in_rewriteTree4548); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TREE_BEGIN.add(TREE_BEGIN212); - pushFollow(FOLLOW_rewriteTreeAtom_in_rewriteTree4430); - rewriteTreeAtom206=rewriteTreeAtom(); + pushFollow(FOLLOW_rewriteTreeAtom_in_rewriteTree4550); + rewriteTreeAtom213=rewriteTreeAtom(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteTreeAtom.add(rewriteTreeAtom206.getTree()); - // ANTLRParser.g:841:31: ( rewriteTreeElement )* + if ( state.backtracking==0 ) stream_rewriteTreeAtom.add(rewriteTreeAtom213.getTree()); + // ANTLRParser.g:957:31: ( rewriteTreeElement )* loop70: do { int alt70=2; @@ -8417,14 +8656,14 @@ public class ANTLRParser extends Parser { switch (alt70) { case 1 : - // ANTLRParser.g:841:31: rewriteTreeElement + // ANTLRParser.g:957:31: rewriteTreeElement { - pushFollow(FOLLOW_rewriteTreeElement_in_rewriteTree4432); - rewriteTreeElement207=rewriteTreeElement(); + pushFollow(FOLLOW_rewriteTreeElement_in_rewriteTree4552); + rewriteTreeElement214=rewriteTreeElement(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteTreeElement.add(rewriteTreeElement207.getTree()); + if ( state.backtracking==0 ) stream_rewriteTreeElement.add(rewriteTreeElement214.getTree()); } break; @@ -8434,8 +8673,8 @@ public class ANTLRParser extends Parser { } } while (true); - RPAREN208=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteTree4435); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN208); + RPAREN215=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteTree4555); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN215); @@ -8451,15 +8690,15 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 842:3: -> ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) + // 958:3: -> ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) { - // ANTLRParser.g:842:6: ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) + // ANTLRParser.g:958:6: ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot(stream_TREE_BEGIN.nextNode(), root_1); adaptor.addChild(root_1, stream_rewriteTreeAtom.nextTree()); - // ANTLRParser.g:842:35: ( rewriteTreeElement )* + // ANTLRParser.g:958:35: ( rewriteTreeElement )* while ( stream_rewriteTreeElement.hasNext() ) { adaptor.addChild(root_1, stream_rewriteTreeElement.nextTree()); @@ -8500,7 +8739,7 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewriteTemplate" - // ANTLRParser.g:845:1: rewriteTemplate : ( TEMPLATE LPAREN rewriteTemplateArgs RPAREN (str= DOUBLE_QUOTE_STRING_LITERAL | str= DOUBLE_ANGLE_STRING_LITERAL ) -> ^( TEMPLATE[$TEMPLATE,\"TEMPLATE\"] ( rewriteTemplateArgs )? $str) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION ); + // ANTLRParser.g:961:1: rewriteTemplate : ( TEMPLATE LPAREN rewriteTemplateArgs RPAREN (str= DOUBLE_QUOTE_STRING_LITERAL | str= DOUBLE_ANGLE_STRING_LITERAL ) -> ^( TEMPLATE[$TEMPLATE,\"TEMPLATE\"] ( rewriteTemplateArgs )? $str) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION ); public final ANTLRParser.rewriteTemplate_return rewriteTemplate() throws RecognitionException { ANTLRParser.rewriteTemplate_return retval = new ANTLRParser.rewriteTemplate_return(); retval.start = input.LT(1); @@ -8508,22 +8747,22 @@ public class ANTLRParser extends Parser { GrammarAST root_0 = null; Token str=null; - Token TEMPLATE209=null; - Token LPAREN210=null; - Token RPAREN212=null; - Token ACTION215=null; - ANTLRParser.rewriteTemplateArgs_return rewriteTemplateArgs211 = null; + Token TEMPLATE216=null; + Token LPAREN217=null; + Token RPAREN219=null; + Token ACTION222=null; + ANTLRParser.rewriteTemplateArgs_return rewriteTemplateArgs218 = null; - ANTLRParser.rewriteTemplateRef_return rewriteTemplateRef213 = null; + ANTLRParser.rewriteTemplateRef_return rewriteTemplateRef220 = null; - ANTLRParser.rewriteIndirectTemplateHead_return rewriteIndirectTemplateHead214 = null; + ANTLRParser.rewriteIndirectTemplateHead_return rewriteIndirectTemplateHead221 = null; GrammarAST str_tree=null; - GrammarAST TEMPLATE209_tree=null; - GrammarAST LPAREN210_tree=null; - GrammarAST RPAREN212_tree=null; - GrammarAST ACTION215_tree=null; + GrammarAST TEMPLATE216_tree=null; + GrammarAST LPAREN217_tree=null; + GrammarAST RPAREN219_tree=null; + GrammarAST ACTION222_tree=null; RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); RewriteRuleTokenStream stream_DOUBLE_QUOTE_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token DOUBLE_QUOTE_STRING_LITERAL"); RewriteRuleTokenStream stream_TEMPLATE=new RewriteRuleTokenStream(adaptor,"token TEMPLATE"); @@ -8531,29 +8770,29 @@ public class ANTLRParser extends Parser { RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN"); RewriteRuleSubtreeStream stream_rewriteTemplateArgs=new RewriteRuleSubtreeStream(adaptor,"rule rewriteTemplateArgs"); try { - // ANTLRParser.g:856:2: ( TEMPLATE LPAREN rewriteTemplateArgs RPAREN (str= DOUBLE_QUOTE_STRING_LITERAL | str= DOUBLE_ANGLE_STRING_LITERAL ) -> ^( TEMPLATE[$TEMPLATE,\"TEMPLATE\"] ( rewriteTemplateArgs )? $str) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION ) + // ANTLRParser.g:972:2: ( TEMPLATE LPAREN rewriteTemplateArgs RPAREN (str= DOUBLE_QUOTE_STRING_LITERAL | str= DOUBLE_ANGLE_STRING_LITERAL ) -> ^( TEMPLATE[$TEMPLATE,\"TEMPLATE\"] ( rewriteTemplateArgs )? $str) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION ) int alt72=4; alt72 = dfa72.predict(input); switch (alt72) { case 1 : - // ANTLRParser.g:857:3: TEMPLATE LPAREN rewriteTemplateArgs RPAREN (str= DOUBLE_QUOTE_STRING_LITERAL | str= DOUBLE_ANGLE_STRING_LITERAL ) + // ANTLRParser.g:973:3: TEMPLATE LPAREN rewriteTemplateArgs RPAREN (str= DOUBLE_QUOTE_STRING_LITERAL | str= DOUBLE_ANGLE_STRING_LITERAL ) { - TEMPLATE209=(Token)match(input,TEMPLATE,FOLLOW_TEMPLATE_in_rewriteTemplate4467); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TEMPLATE.add(TEMPLATE209); + TEMPLATE216=(Token)match(input,TEMPLATE,FOLLOW_TEMPLATE_in_rewriteTemplate4587); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TEMPLATE.add(TEMPLATE216); - LPAREN210=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_rewriteTemplate4469); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN210); + LPAREN217=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_rewriteTemplate4589); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN217); - pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteTemplate4471); - rewriteTemplateArgs211=rewriteTemplateArgs(); + pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteTemplate4591); + rewriteTemplateArgs218=rewriteTemplateArgs(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteTemplateArgs.add(rewriteTemplateArgs211.getTree()); - RPAREN212=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteTemplate4473); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN212); + if ( state.backtracking==0 ) stream_rewriteTemplateArgs.add(rewriteTemplateArgs218.getTree()); + RPAREN219=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteTemplate4593); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN219); - // ANTLRParser.g:858:3: (str= DOUBLE_QUOTE_STRING_LITERAL | str= DOUBLE_ANGLE_STRING_LITERAL ) + // ANTLRParser.g:974:3: (str= DOUBLE_QUOTE_STRING_LITERAL | str= DOUBLE_ANGLE_STRING_LITERAL ) int alt71=2; int LA71_0 = input.LA(1); @@ -8572,18 +8811,18 @@ public class ANTLRParser extends Parser { } switch (alt71) { case 1 : - // ANTLRParser.g:858:5: str= DOUBLE_QUOTE_STRING_LITERAL + // ANTLRParser.g:974:5: str= DOUBLE_QUOTE_STRING_LITERAL { - str=(Token)match(input,DOUBLE_QUOTE_STRING_LITERAL,FOLLOW_DOUBLE_QUOTE_STRING_LITERAL_in_rewriteTemplate4481); if (state.failed) return retval; + str=(Token)match(input,DOUBLE_QUOTE_STRING_LITERAL,FOLLOW_DOUBLE_QUOTE_STRING_LITERAL_in_rewriteTemplate4601); if (state.failed) return retval; if ( state.backtracking==0 ) stream_DOUBLE_QUOTE_STRING_LITERAL.add(str); } break; case 2 : - // ANTLRParser.g:858:39: str= DOUBLE_ANGLE_STRING_LITERAL + // ANTLRParser.g:974:39: str= DOUBLE_ANGLE_STRING_LITERAL { - str=(Token)match(input,DOUBLE_ANGLE_STRING_LITERAL,FOLLOW_DOUBLE_ANGLE_STRING_LITERAL_in_rewriteTemplate4487); if (state.failed) return retval; + str=(Token)match(input,DOUBLE_ANGLE_STRING_LITERAL,FOLLOW_DOUBLE_ANGLE_STRING_LITERAL_in_rewriteTemplate4607); if (state.failed) return retval; if ( state.backtracking==0 ) stream_DOUBLE_ANGLE_STRING_LITERAL.add(str); @@ -8595,7 +8834,7 @@ public class ANTLRParser extends Parser { // AST REWRITE - // elements: rewriteTemplateArgs, TEMPLATE, str + // elements: rewriteTemplateArgs, str, TEMPLATE // token labels: str // rule labels: retval // token list labels: @@ -8607,14 +8846,14 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 859:3: -> ^( TEMPLATE[$TEMPLATE,\"TEMPLATE\"] ( rewriteTemplateArgs )? $str) + // 975:3: -> ^( TEMPLATE[$TEMPLATE,\"TEMPLATE\"] ( rewriteTemplateArgs )? $str) { - // ANTLRParser.g:859:6: ^( TEMPLATE[$TEMPLATE,\"TEMPLATE\"] ( rewriteTemplateArgs )? $str) + // ANTLRParser.g:975:6: ^( TEMPLATE[$TEMPLATE,\"TEMPLATE\"] ( rewriteTemplateArgs )? $str) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); - root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(TEMPLATE, TEMPLATE209, "TEMPLATE"), root_1); + root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(TEMPLATE, TEMPLATE216, "TEMPLATE"), root_1); - // ANTLRParser.g:859:39: ( rewriteTemplateArgs )? + // ANTLRParser.g:975:39: ( rewriteTemplateArgs )? if ( stream_rewriteTemplateArgs.hasNext() ) { adaptor.addChild(root_1, stream_rewriteTemplateArgs.nextTree()); @@ -8631,42 +8870,42 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:862:3: rewriteTemplateRef + // ANTLRParser.g:978:3: rewriteTemplateRef { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_rewriteTemplateRef_in_rewriteTemplate4513); - rewriteTemplateRef213=rewriteTemplateRef(); + pushFollow(FOLLOW_rewriteTemplateRef_in_rewriteTemplate4633); + rewriteTemplateRef220=rewriteTemplateRef(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteTemplateRef213.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteTemplateRef220.getTree()); } break; case 3 : - // ANTLRParser.g:865:3: rewriteIndirectTemplateHead + // ANTLRParser.g:981:3: rewriteIndirectTemplateHead { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_rewriteIndirectTemplateHead_in_rewriteTemplate4522); - rewriteIndirectTemplateHead214=rewriteIndirectTemplateHead(); + pushFollow(FOLLOW_rewriteIndirectTemplateHead_in_rewriteTemplate4642); + rewriteIndirectTemplateHead221=rewriteIndirectTemplateHead(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteIndirectTemplateHead214.getTree()); + if ( state.backtracking==0 ) adaptor.addChild(root_0, rewriteIndirectTemplateHead221.getTree()); } break; case 4 : - // ANTLRParser.g:868:3: ACTION + // ANTLRParser.g:984:3: ACTION { root_0 = (GrammarAST)adaptor.nil(); - ACTION215=(Token)match(input,ACTION,FOLLOW_ACTION_in_rewriteTemplate4531); if (state.failed) return retval; + ACTION222=(Token)match(input,ACTION,FOLLOW_ACTION_in_rewriteTemplate4651); if (state.failed) return retval; if ( state.backtracking==0 ) { - ACTION215_tree = new ActionAST(ACTION215) ; - adaptor.addChild(root_0, ACTION215_tree); + ACTION222_tree = new ActionAST(ACTION222) ; + adaptor.addChild(root_0, ACTION222_tree); } } @@ -8699,47 +8938,47 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewriteTemplateRef" - // ANTLRParser.g:871:1: rewriteTemplateRef : id LPAREN rewriteTemplateArgs RPAREN -> ^( TEMPLATE[$LPAREN,\"TEMPLATE\"] id ( rewriteTemplateArgs )? ) ; + // ANTLRParser.g:987:1: rewriteTemplateRef : id LPAREN rewriteTemplateArgs RPAREN -> ^( TEMPLATE[$LPAREN,\"TEMPLATE\"] id ( rewriteTemplateArgs )? ) ; public final ANTLRParser.rewriteTemplateRef_return rewriteTemplateRef() throws RecognitionException { ANTLRParser.rewriteTemplateRef_return retval = new ANTLRParser.rewriteTemplateRef_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token LPAREN217=null; - Token RPAREN219=null; - ANTLRParser.id_return id216 = null; + Token LPAREN224=null; + Token RPAREN226=null; + ANTLRParser.id_return id223 = null; - ANTLRParser.rewriteTemplateArgs_return rewriteTemplateArgs218 = null; + ANTLRParser.rewriteTemplateArgs_return rewriteTemplateArgs225 = null; - GrammarAST LPAREN217_tree=null; - GrammarAST RPAREN219_tree=null; + GrammarAST LPAREN224_tree=null; + GrammarAST RPAREN226_tree=null; RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN"); RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); RewriteRuleSubtreeStream stream_rewriteTemplateArgs=new RewriteRuleSubtreeStream(adaptor,"rule rewriteTemplateArgs"); try { - // ANTLRParser.g:873:2: ( id LPAREN rewriteTemplateArgs RPAREN -> ^( TEMPLATE[$LPAREN,\"TEMPLATE\"] id ( rewriteTemplateArgs )? ) ) - // ANTLRParser.g:873:4: id LPAREN rewriteTemplateArgs RPAREN + // ANTLRParser.g:989:2: ( id LPAREN rewriteTemplateArgs RPAREN -> ^( TEMPLATE[$LPAREN,\"TEMPLATE\"] id ( rewriteTemplateArgs )? ) ) + // ANTLRParser.g:989:4: id LPAREN rewriteTemplateArgs RPAREN { - pushFollow(FOLLOW_id_in_rewriteTemplateRef4547); - id216=id(); + pushFollow(FOLLOW_id_in_rewriteTemplateRef4667); + id223=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id216.getTree()); - LPAREN217=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_rewriteTemplateRef4549); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN217); + if ( state.backtracking==0 ) stream_id.add(id223.getTree()); + LPAREN224=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_rewriteTemplateRef4669); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN224); - pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteTemplateRef4551); - rewriteTemplateArgs218=rewriteTemplateArgs(); + pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteTemplateRef4671); + rewriteTemplateArgs225=rewriteTemplateArgs(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteTemplateArgs.add(rewriteTemplateArgs218.getTree()); - RPAREN219=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteTemplateRef4553); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN219); + if ( state.backtracking==0 ) stream_rewriteTemplateArgs.add(rewriteTemplateArgs225.getTree()); + RPAREN226=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteTemplateRef4673); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN226); @@ -8755,15 +8994,15 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 874:3: -> ^( TEMPLATE[$LPAREN,\"TEMPLATE\"] id ( rewriteTemplateArgs )? ) + // 990:3: -> ^( TEMPLATE[$LPAREN,\"TEMPLATE\"] id ( rewriteTemplateArgs )? ) { - // ANTLRParser.g:874:6: ^( TEMPLATE[$LPAREN,\"TEMPLATE\"] id ( rewriteTemplateArgs )? ) + // ANTLRParser.g:990:6: ^( TEMPLATE[$LPAREN,\"TEMPLATE\"] id ( rewriteTemplateArgs )? ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); - root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(TEMPLATE, LPAREN217, "TEMPLATE"), root_1); + root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(TEMPLATE, LPAREN224, "TEMPLATE"), root_1); adaptor.addChild(root_1, stream_id.nextTree()); - // ANTLRParser.g:874:40: ( rewriteTemplateArgs )? + // ANTLRParser.g:990:40: ( rewriteTemplateArgs )? if ( stream_rewriteTemplateArgs.hasNext() ) { adaptor.addChild(root_1, stream_rewriteTemplateArgs.nextTree()); @@ -8804,7 +9043,7 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewriteIndirectTemplateHead" - // ANTLRParser.g:877:1: rewriteIndirectTemplateHead : lp= LPAREN ACTION RPAREN LPAREN rewriteTemplateArgs RPAREN -> ^( TEMPLATE[$lp,\"TEMPLATE\"] ACTION ( rewriteTemplateArgs )? ) ; + // ANTLRParser.g:993:1: rewriteIndirectTemplateHead : lp= LPAREN ACTION RPAREN LPAREN rewriteTemplateArgs RPAREN -> ^( TEMPLATE[$lp,\"TEMPLATE\"] ACTION ( rewriteTemplateArgs )? ) ; public final ANTLRParser.rewriteIndirectTemplateHead_return rewriteIndirectTemplateHead() throws RecognitionException { ANTLRParser.rewriteIndirectTemplateHead_return retval = new ANTLRParser.rewriteIndirectTemplateHead_return(); retval.start = input.LT(1); @@ -8812,51 +9051,51 @@ public class ANTLRParser extends Parser { GrammarAST root_0 = null; Token lp=null; - Token ACTION220=null; - Token RPAREN221=null; - Token LPAREN222=null; - Token RPAREN224=null; - ANTLRParser.rewriteTemplateArgs_return rewriteTemplateArgs223 = null; + Token ACTION227=null; + Token RPAREN228=null; + Token LPAREN229=null; + Token RPAREN231=null; + ANTLRParser.rewriteTemplateArgs_return rewriteTemplateArgs230 = null; GrammarAST lp_tree=null; - GrammarAST ACTION220_tree=null; - GrammarAST RPAREN221_tree=null; - GrammarAST LPAREN222_tree=null; - GrammarAST RPAREN224_tree=null; + GrammarAST ACTION227_tree=null; + GrammarAST RPAREN228_tree=null; + GrammarAST LPAREN229_tree=null; + GrammarAST RPAREN231_tree=null; RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); RewriteRuleTokenStream stream_ACTION=new RewriteRuleTokenStream(adaptor,"token ACTION"); RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN"); RewriteRuleSubtreeStream stream_rewriteTemplateArgs=new RewriteRuleSubtreeStream(adaptor,"rule rewriteTemplateArgs"); try { - // ANTLRParser.g:879:2: (lp= LPAREN ACTION RPAREN LPAREN rewriteTemplateArgs RPAREN -> ^( TEMPLATE[$lp,\"TEMPLATE\"] ACTION ( rewriteTemplateArgs )? ) ) - // ANTLRParser.g:879:4: lp= LPAREN ACTION RPAREN LPAREN rewriteTemplateArgs RPAREN + // ANTLRParser.g:995:2: (lp= LPAREN ACTION RPAREN LPAREN rewriteTemplateArgs RPAREN -> ^( TEMPLATE[$lp,\"TEMPLATE\"] ACTION ( rewriteTemplateArgs )? ) ) + // ANTLRParser.g:995:4: lp= LPAREN ACTION RPAREN LPAREN rewriteTemplateArgs RPAREN { - lp=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_rewriteIndirectTemplateHead4582); if (state.failed) return retval; + lp=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_rewriteIndirectTemplateHead4702); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LPAREN.add(lp); - ACTION220=(Token)match(input,ACTION,FOLLOW_ACTION_in_rewriteIndirectTemplateHead4584); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ACTION.add(ACTION220); + ACTION227=(Token)match(input,ACTION,FOLLOW_ACTION_in_rewriteIndirectTemplateHead4704); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ACTION.add(ACTION227); - RPAREN221=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteIndirectTemplateHead4586); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN221); + RPAREN228=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteIndirectTemplateHead4706); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN228); - LPAREN222=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_rewriteIndirectTemplateHead4588); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN222); + LPAREN229=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_rewriteIndirectTemplateHead4708); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN229); - pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteIndirectTemplateHead4590); - rewriteTemplateArgs223=rewriteTemplateArgs(); + pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteIndirectTemplateHead4710); + rewriteTemplateArgs230=rewriteTemplateArgs(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteTemplateArgs.add(rewriteTemplateArgs223.getTree()); - RPAREN224=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteIndirectTemplateHead4592); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN224); + if ( state.backtracking==0 ) stream_rewriteTemplateArgs.add(rewriteTemplateArgs230.getTree()); + RPAREN231=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_rewriteIndirectTemplateHead4712); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN231); // AST REWRITE - // elements: ACTION, rewriteTemplateArgs + // elements: rewriteTemplateArgs, ACTION // token labels: // rule labels: retval // token list labels: @@ -8867,15 +9106,15 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 880:3: -> ^( TEMPLATE[$lp,\"TEMPLATE\"] ACTION ( rewriteTemplateArgs )? ) + // 996:3: -> ^( TEMPLATE[$lp,\"TEMPLATE\"] ACTION ( rewriteTemplateArgs )? ) { - // ANTLRParser.g:880:6: ^( TEMPLATE[$lp,\"TEMPLATE\"] ACTION ( rewriteTemplateArgs )? ) + // ANTLRParser.g:996:6: ^( TEMPLATE[$lp,\"TEMPLATE\"] ACTION ( rewriteTemplateArgs )? ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(TEMPLATE, lp, "TEMPLATE"), root_1); adaptor.addChild(root_1, new ActionAST(stream_ACTION.nextToken())); - // ANTLRParser.g:880:51: ( rewriteTemplateArgs )? + // ANTLRParser.g:996:51: ( rewriteTemplateArgs )? if ( stream_rewriteTemplateArgs.hasNext() ) { adaptor.addChild(root_1, stream_rewriteTemplateArgs.nextTree()); @@ -8916,24 +9155,24 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewriteTemplateArgs" - // ANTLRParser.g:883:1: rewriteTemplateArgs : ( rewriteTemplateArg ( COMMA rewriteTemplateArg )* -> ^( ARGLIST ( rewriteTemplateArg )+ ) | ); + // ANTLRParser.g:999:1: rewriteTemplateArgs : ( rewriteTemplateArg ( COMMA rewriteTemplateArg )* -> ^( ARGLIST ( rewriteTemplateArg )+ ) | ); public final ANTLRParser.rewriteTemplateArgs_return rewriteTemplateArgs() throws RecognitionException { ANTLRParser.rewriteTemplateArgs_return retval = new ANTLRParser.rewriteTemplateArgs_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token COMMA226=null; - ANTLRParser.rewriteTemplateArg_return rewriteTemplateArg225 = null; + Token COMMA233=null; + ANTLRParser.rewriteTemplateArg_return rewriteTemplateArg232 = null; - ANTLRParser.rewriteTemplateArg_return rewriteTemplateArg227 = null; + ANTLRParser.rewriteTemplateArg_return rewriteTemplateArg234 = null; - GrammarAST COMMA226_tree=null; + GrammarAST COMMA233_tree=null; RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); RewriteRuleSubtreeStream stream_rewriteTemplateArg=new RewriteRuleSubtreeStream(adaptor,"rule rewriteTemplateArg"); try { - // ANTLRParser.g:884:2: ( rewriteTemplateArg ( COMMA rewriteTemplateArg )* -> ^( ARGLIST ( rewriteTemplateArg )+ ) | ) + // ANTLRParser.g:1000:2: ( rewriteTemplateArg ( COMMA rewriteTemplateArg )* -> ^( ARGLIST ( rewriteTemplateArg )+ ) | ) int alt74=2; int LA74_0 = input.LA(1); @@ -8952,15 +9191,15 @@ public class ANTLRParser extends Parser { } switch (alt74) { case 1 : - // ANTLRParser.g:884:4: rewriteTemplateArg ( COMMA rewriteTemplateArg )* + // ANTLRParser.g:1000:4: rewriteTemplateArg ( COMMA rewriteTemplateArg )* { - pushFollow(FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs4620); - rewriteTemplateArg225=rewriteTemplateArg(); + pushFollow(FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs4740); + rewriteTemplateArg232=rewriteTemplateArg(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteTemplateArg.add(rewriteTemplateArg225.getTree()); - // ANTLRParser.g:884:23: ( COMMA rewriteTemplateArg )* + if ( state.backtracking==0 ) stream_rewriteTemplateArg.add(rewriteTemplateArg232.getTree()); + // ANTLRParser.g:1000:23: ( COMMA rewriteTemplateArg )* loop73: do { int alt73=2; @@ -8973,17 +9212,17 @@ public class ANTLRParser extends Parser { switch (alt73) { case 1 : - // ANTLRParser.g:884:24: COMMA rewriteTemplateArg + // ANTLRParser.g:1000:24: COMMA rewriteTemplateArg { - COMMA226=(Token)match(input,COMMA,FOLLOW_COMMA_in_rewriteTemplateArgs4623); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_COMMA.add(COMMA226); + COMMA233=(Token)match(input,COMMA,FOLLOW_COMMA_in_rewriteTemplateArgs4743); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COMMA.add(COMMA233); - pushFollow(FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs4625); - rewriteTemplateArg227=rewriteTemplateArg(); + pushFollow(FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs4745); + rewriteTemplateArg234=rewriteTemplateArg(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_rewriteTemplateArg.add(rewriteTemplateArg227.getTree()); + if ( state.backtracking==0 ) stream_rewriteTemplateArg.add(rewriteTemplateArg234.getTree()); } break; @@ -9007,9 +9246,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 885:3: -> ^( ARGLIST ( rewriteTemplateArg )+ ) + // 1001:3: -> ^( ARGLIST ( rewriteTemplateArg )+ ) { - // ANTLRParser.g:885:6: ^( ARGLIST ( rewriteTemplateArg )+ ) + // ANTLRParser.g:1001:6: ^( ARGLIST ( rewriteTemplateArg )+ ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ARGLIST, "ARGLIST"), root_1); @@ -9032,7 +9271,7 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:887:2: + // ANTLRParser.g:1003:2: { root_0 = (GrammarAST)adaptor.nil(); @@ -9066,43 +9305,43 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "rewriteTemplateArg" - // ANTLRParser.g:889:1: rewriteTemplateArg : id ASSIGN ACTION -> ^( ARG[$ASSIGN] id ACTION ) ; + // ANTLRParser.g:1005:1: rewriteTemplateArg : id ASSIGN ACTION -> ^( ARG[$ASSIGN] id ACTION ) ; public final ANTLRParser.rewriteTemplateArg_return rewriteTemplateArg() throws RecognitionException { ANTLRParser.rewriteTemplateArg_return retval = new ANTLRParser.rewriteTemplateArg_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token ASSIGN229=null; - Token ACTION230=null; - ANTLRParser.id_return id228 = null; + Token ASSIGN236=null; + Token ACTION237=null; + ANTLRParser.id_return id235 = null; - GrammarAST ASSIGN229_tree=null; - GrammarAST ACTION230_tree=null; + GrammarAST ASSIGN236_tree=null; + GrammarAST ACTION237_tree=null; RewriteRuleTokenStream stream_ACTION=new RewriteRuleTokenStream(adaptor,"token ACTION"); RewriteRuleTokenStream stream_ASSIGN=new RewriteRuleTokenStream(adaptor,"token ASSIGN"); RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); try { - // ANTLRParser.g:890:2: ( id ASSIGN ACTION -> ^( ARG[$ASSIGN] id ACTION ) ) - // ANTLRParser.g:890:6: id ASSIGN ACTION + // ANTLRParser.g:1006:2: ( id ASSIGN ACTION -> ^( ARG[$ASSIGN] id ACTION ) ) + // ANTLRParser.g:1006:6: id ASSIGN ACTION { - pushFollow(FOLLOW_id_in_rewriteTemplateArg4654); - id228=id(); + pushFollow(FOLLOW_id_in_rewriteTemplateArg4774); + id235=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id228.getTree()); - ASSIGN229=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_rewriteTemplateArg4656); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN229); + if ( state.backtracking==0 ) stream_id.add(id235.getTree()); + ASSIGN236=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_rewriteTemplateArg4776); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ASSIGN.add(ASSIGN236); - ACTION230=(Token)match(input,ACTION,FOLLOW_ACTION_in_rewriteTemplateArg4658); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_ACTION.add(ACTION230); + ACTION237=(Token)match(input,ACTION,FOLLOW_ACTION_in_rewriteTemplateArg4778); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ACTION.add(ACTION237); // AST REWRITE - // elements: ACTION, id + // elements: id, ACTION // token labels: // rule labels: retval // token list labels: @@ -9113,12 +9352,12 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 890:23: -> ^( ARG[$ASSIGN] id ACTION ) + // 1006:23: -> ^( ARG[$ASSIGN] id ACTION ) { - // ANTLRParser.g:890:26: ^( ARG[$ASSIGN] id ACTION ) + // ANTLRParser.g:1006:26: ^( ARG[$ASSIGN] id ACTION ) { GrammarAST root_1 = (GrammarAST)adaptor.nil(); - root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ARG, ASSIGN229), root_1); + root_1 = (GrammarAST)adaptor.becomeRoot((GrammarAST)adaptor.create(ARG, ASSIGN236), root_1); adaptor.addChild(root_1, stream_id.nextTree()); adaptor.addChild(root_1, new ActionAST(stream_ACTION.nextToken())); @@ -9157,26 +9396,27 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "id" - // ANTLRParser.g:897:1: id : ( RULE_REF -> ID[$RULE_REF] | TOKEN_REF -> ID[$TOKEN_REF] | TEMPLATE -> ID[$TEMPLATE] ); + // ANTLRParser.g:1013:1: id : ( RULE_REF -> ID[$RULE_REF] | TOKEN_REF -> ID[$TOKEN_REF] | TEMPLATE -> ID[$TEMPLATE] ); public final ANTLRParser.id_return id() throws RecognitionException { ANTLRParser.id_return retval = new ANTLRParser.id_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token RULE_REF231=null; - Token TOKEN_REF232=null; - Token TEMPLATE233=null; + Token RULE_REF238=null; + Token TOKEN_REF239=null; + Token TEMPLATE240=null; - GrammarAST RULE_REF231_tree=null; - GrammarAST TOKEN_REF232_tree=null; - GrammarAST TEMPLATE233_tree=null; + GrammarAST RULE_REF238_tree=null; + GrammarAST TOKEN_REF239_tree=null; + GrammarAST TEMPLATE240_tree=null; RewriteRuleTokenStream stream_TEMPLATE=new RewriteRuleTokenStream(adaptor,"token TEMPLATE"); RewriteRuleTokenStream stream_RULE_REF=new RewriteRuleTokenStream(adaptor,"token RULE_REF"); RewriteRuleTokenStream stream_TOKEN_REF=new RewriteRuleTokenStream(adaptor,"token TOKEN_REF"); + paraphrases.push("looking for an identifier"); try { - // ANTLRParser.g:898:5: ( RULE_REF -> ID[$RULE_REF] | TOKEN_REF -> ID[$TOKEN_REF] | TEMPLATE -> ID[$TEMPLATE] ) + // ANTLRParser.g:1016:5: ( RULE_REF -> ID[$RULE_REF] | TOKEN_REF -> ID[$TOKEN_REF] | TEMPLATE -> ID[$TEMPLATE] ) int alt75=3; switch ( input.LA(1) ) { case RULE_REF: @@ -9204,10 +9444,10 @@ public class ANTLRParser extends Parser { switch (alt75) { case 1 : - // ANTLRParser.g:898:7: RULE_REF + // ANTLRParser.g:1016:7: RULE_REF { - RULE_REF231=(Token)match(input,RULE_REF,FOLLOW_RULE_REF_in_id4690); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_RULE_REF.add(RULE_REF231); + RULE_REF238=(Token)match(input,RULE_REF,FOLLOW_RULE_REF_in_id4820); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RULE_REF.add(RULE_REF238); @@ -9223,9 +9463,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 898:17: -> ID[$RULE_REF] + // 1016:17: -> ID[$RULE_REF] { - adaptor.addChild(root_0, (GrammarAST)adaptor.create(ID, RULE_REF231)); + adaptor.addChild(root_0, (GrammarAST)adaptor.create(ID, RULE_REF238)); } @@ -9233,10 +9473,10 @@ public class ANTLRParser extends Parser { } break; case 2 : - // ANTLRParser.g:899:7: TOKEN_REF + // ANTLRParser.g:1017:7: TOKEN_REF { - TOKEN_REF232=(Token)match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_id4703); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TOKEN_REF.add(TOKEN_REF232); + TOKEN_REF239=(Token)match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_id4833); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TOKEN_REF.add(TOKEN_REF239); @@ -9252,9 +9492,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 899:17: -> ID[$TOKEN_REF] + // 1017:17: -> ID[$TOKEN_REF] { - adaptor.addChild(root_0, (GrammarAST)adaptor.create(ID, TOKEN_REF232)); + adaptor.addChild(root_0, (GrammarAST)adaptor.create(ID, TOKEN_REF239)); } @@ -9262,10 +9502,10 @@ public class ANTLRParser extends Parser { } break; case 3 : - // ANTLRParser.g:900:7: TEMPLATE + // ANTLRParser.g:1018:7: TEMPLATE { - TEMPLATE233=(Token)match(input,TEMPLATE,FOLLOW_TEMPLATE_in_id4715); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_TEMPLATE.add(TEMPLATE233); + TEMPLATE240=(Token)match(input,TEMPLATE,FOLLOW_TEMPLATE_in_id4845); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TEMPLATE.add(TEMPLATE240); @@ -9281,9 +9521,9 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 900:17: -> ID[$TEMPLATE] + // 1018:17: -> ID[$TEMPLATE] { - adaptor.addChild(root_0, (GrammarAST)adaptor.create(ID, TEMPLATE233)); + adaptor.addChild(root_0, (GrammarAST)adaptor.create(ID, TEMPLATE240)); } @@ -9299,6 +9539,9 @@ public class ANTLRParser extends Parser { retval.tree = (GrammarAST)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } + if ( state.backtracking==0 ) { + paraphrases.pop(); + } } catch (RecognitionException re) { reportError(re); @@ -9318,33 +9561,34 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "qid" - // ANTLRParser.g:903:1: qid : id ( DOT id )* -> ID[$qid.start, $text] ; + // ANTLRParser.g:1021:1: qid : id ( DOT id )* -> ID[$qid.start, $text] ; public final ANTLRParser.qid_return qid() throws RecognitionException { ANTLRParser.qid_return retval = new ANTLRParser.qid_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token DOT235=null; - ANTLRParser.id_return id234 = null; + Token DOT242=null; + ANTLRParser.id_return id241 = null; - ANTLRParser.id_return id236 = null; + ANTLRParser.id_return id243 = null; - GrammarAST DOT235_tree=null; + GrammarAST DOT242_tree=null; RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT"); RewriteRuleSubtreeStream stream_id=new RewriteRuleSubtreeStream(adaptor,"rule id"); + paraphrases.push("looking for a qualified identifier"); try { - // ANTLRParser.g:903:5: ( id ( DOT id )* -> ID[$qid.start, $text] ) - // ANTLRParser.g:903:7: id ( DOT id )* + // ANTLRParser.g:1024:2: ( id ( DOT id )* -> ID[$qid.start, $text] ) + // ANTLRParser.g:1024:4: id ( DOT id )* { - pushFollow(FOLLOW_id_in_qid4738); - id234=id(); + pushFollow(FOLLOW_id_in_qid4879); + id241=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id234.getTree()); - // ANTLRParser.g:903:10: ( DOT id )* + if ( state.backtracking==0 ) stream_id.add(id241.getTree()); + // ANTLRParser.g:1024:7: ( DOT id )* loop76: do { int alt76=2; @@ -9357,17 +9601,17 @@ public class ANTLRParser extends Parser { switch (alt76) { case 1 : - // ANTLRParser.g:903:11: DOT id + // ANTLRParser.g:1024:8: DOT id { - DOT235=(Token)match(input,DOT,FOLLOW_DOT_in_qid4741); if (state.failed) return retval; - if ( state.backtracking==0 ) stream_DOT.add(DOT235); + DOT242=(Token)match(input,DOT,FOLLOW_DOT_in_qid4882); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_DOT.add(DOT242); - pushFollow(FOLLOW_id_in_qid4743); - id236=id(); + pushFollow(FOLLOW_id_in_qid4884); + id243=id(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) stream_id.add(id236.getTree()); + if ( state.backtracking==0 ) stream_id.add(id243.getTree()); } break; @@ -9391,7 +9635,7 @@ public class ANTLRParser extends Parser { RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (GrammarAST)adaptor.nil(); - // 903:20: -> ID[$qid.start, $text] + // 1024:17: -> ID[$qid.start, $text] { adaptor.addChild(root_0, (GrammarAST)adaptor.create(ID, ((Token)retval.start), input.toString(retval.start,input.LT(-1)))); @@ -9407,6 +9651,9 @@ public class ANTLRParser extends Parser { retval.tree = (GrammarAST)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } + if ( state.backtracking==0 ) { + paraphrases.pop(); + } } catch (RecognitionException re) { reportError(re); @@ -9426,35 +9673,35 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "alternativeEntry" - // ANTLRParser.g:905:1: alternativeEntry : alternative EOF ; + // ANTLRParser.g:1027:1: alternativeEntry : alternative EOF ; public final ANTLRParser.alternativeEntry_return alternativeEntry() throws RecognitionException { ANTLRParser.alternativeEntry_return retval = new ANTLRParser.alternativeEntry_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token EOF238=null; - ANTLRParser.alternative_return alternative237 = null; + Token EOF245=null; + ANTLRParser.alternative_return alternative244 = null; - GrammarAST EOF238_tree=null; + GrammarAST EOF245_tree=null; try { - // ANTLRParser.g:905:18: ( alternative EOF ) - // ANTLRParser.g:905:20: alternative EOF + // ANTLRParser.g:1027:18: ( alternative EOF ) + // ANTLRParser.g:1027:20: alternative EOF { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_alternative_in_alternativeEntry4759); - alternative237=alternative(); + pushFollow(FOLLOW_alternative_in_alternativeEntry4901); + alternative244=alternative(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, alternative237.getTree()); - EOF238=(Token)match(input,EOF,FOLLOW_EOF_in_alternativeEntry4761); if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, alternative244.getTree()); + EOF245=(Token)match(input,EOF,FOLLOW_EOF_in_alternativeEntry4903); if (state.failed) return retval; if ( state.backtracking==0 ) { - EOF238_tree = (GrammarAST)adaptor.create(EOF238); - adaptor.addChild(root_0, EOF238_tree); + EOF245_tree = (GrammarAST)adaptor.create(EOF245); + adaptor.addChild(root_0, EOF245_tree); } } @@ -9485,35 +9732,35 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "elementEntry" - // ANTLRParser.g:906:1: elementEntry : element EOF ; + // ANTLRParser.g:1028:1: elementEntry : element EOF ; public final ANTLRParser.elementEntry_return elementEntry() throws RecognitionException { ANTLRParser.elementEntry_return retval = new ANTLRParser.elementEntry_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token EOF240=null; - ANTLRParser.element_return element239 = null; + Token EOF247=null; + ANTLRParser.element_return element246 = null; - GrammarAST EOF240_tree=null; + GrammarAST EOF247_tree=null; try { - // ANTLRParser.g:906:14: ( element EOF ) - // ANTLRParser.g:906:16: element EOF + // ANTLRParser.g:1028:14: ( element EOF ) + // ANTLRParser.g:1028:16: element EOF { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_element_in_elementEntry4770); - element239=element(); + pushFollow(FOLLOW_element_in_elementEntry4912); + element246=element(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, element239.getTree()); - EOF240=(Token)match(input,EOF,FOLLOW_EOF_in_elementEntry4772); if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, element246.getTree()); + EOF247=(Token)match(input,EOF,FOLLOW_EOF_in_elementEntry4914); if (state.failed) return retval; if ( state.backtracking==0 ) { - EOF240_tree = (GrammarAST)adaptor.create(EOF240); - adaptor.addChild(root_0, EOF240_tree); + EOF247_tree = (GrammarAST)adaptor.create(EOF247); + adaptor.addChild(root_0, EOF247_tree); } } @@ -9544,35 +9791,35 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "ruleEntry" - // ANTLRParser.g:907:1: ruleEntry : rule EOF ; + // ANTLRParser.g:1029:1: ruleEntry : rule EOF ; public final ANTLRParser.ruleEntry_return ruleEntry() throws RecognitionException { ANTLRParser.ruleEntry_return retval = new ANTLRParser.ruleEntry_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token EOF242=null; - ANTLRParser.rule_return rule241 = null; + Token EOF249=null; + ANTLRParser.rule_return rule248 = null; - GrammarAST EOF242_tree=null; + GrammarAST EOF249_tree=null; try { - // ANTLRParser.g:907:11: ( rule EOF ) - // ANTLRParser.g:907:13: rule EOF + // ANTLRParser.g:1029:11: ( rule EOF ) + // ANTLRParser.g:1029:13: rule EOF { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_rule_in_ruleEntry4780); - rule241=rule(); + pushFollow(FOLLOW_rule_in_ruleEntry4922); + rule248=rule(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, rule241.getTree()); - EOF242=(Token)match(input,EOF,FOLLOW_EOF_in_ruleEntry4782); if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, rule248.getTree()); + EOF249=(Token)match(input,EOF,FOLLOW_EOF_in_ruleEntry4924); if (state.failed) return retval; if ( state.backtracking==0 ) { - EOF242_tree = (GrammarAST)adaptor.create(EOF242); - adaptor.addChild(root_0, EOF242_tree); + EOF249_tree = (GrammarAST)adaptor.create(EOF249); + adaptor.addChild(root_0, EOF249_tree); } } @@ -9603,35 +9850,35 @@ public class ANTLRParser extends Parser { }; // $ANTLR start "blockEntry" - // ANTLRParser.g:908:1: blockEntry : block EOF ; + // ANTLRParser.g:1030:1: blockEntry : block EOF ; public final ANTLRParser.blockEntry_return blockEntry() throws RecognitionException { ANTLRParser.blockEntry_return retval = new ANTLRParser.blockEntry_return(); retval.start = input.LT(1); GrammarAST root_0 = null; - Token EOF244=null; - ANTLRParser.block_return block243 = null; + Token EOF251=null; + ANTLRParser.block_return block250 = null; - GrammarAST EOF244_tree=null; + GrammarAST EOF251_tree=null; try { - // ANTLRParser.g:908:12: ( block EOF ) - // ANTLRParser.g:908:14: block EOF + // ANTLRParser.g:1030:12: ( block EOF ) + // ANTLRParser.g:1030:14: block EOF { root_0 = (GrammarAST)adaptor.nil(); - pushFollow(FOLLOW_block_in_blockEntry4790); - block243=block(); + pushFollow(FOLLOW_block_in_blockEntry4932); + block250=block(); state._fsp--; if (state.failed) return retval; - if ( state.backtracking==0 ) adaptor.addChild(root_0, block243.getTree()); - EOF244=(Token)match(input,EOF,FOLLOW_EOF_in_blockEntry4792); if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, block250.getTree()); + EOF251=(Token)match(input,EOF,FOLLOW_EOF_in_blockEntry4934); if (state.failed) return retval; if ( state.backtracking==0 ) { - EOF244_tree = (GrammarAST)adaptor.create(EOF244); - adaptor.addChild(root_0, EOF244_tree); + EOF251_tree = (GrammarAST)adaptor.create(EOF251); + adaptor.addChild(root_0, EOF251_tree); } } @@ -9658,10 +9905,10 @@ public class ANTLRParser extends Parser { // $ANTLR start synpred1_ANTLRParser public final void synpred1_ANTLRParser_fragment() throws RecognitionException { - // ANTLRParser.g:793:7: ( rewriteTemplate ) - // ANTLRParser.g:793:7: rewriteTemplate + // ANTLRParser.g:909:7: ( rewriteTemplate ) + // ANTLRParser.g:909:7: rewriteTemplate { - pushFollow(FOLLOW_rewriteTemplate_in_synpred1_ANTLRParser4099); + pushFollow(FOLLOW_rewriteTemplate_in_synpred1_ANTLRParser4219); rewriteTemplate(); state._fsp--; @@ -9673,10 +9920,10 @@ public class ANTLRParser extends Parser { // $ANTLR start synpred2_ANTLRParser public final void synpred2_ANTLRParser_fragment() throws RecognitionException { - // ANTLRParser.g:799:7: ( rewriteTreeAlt ) - // ANTLRParser.g:799:7: rewriteTreeAlt + // ANTLRParser.g:915:7: ( rewriteTreeAlt ) + // ANTLRParser.g:915:7: rewriteTreeAlt { - pushFollow(FOLLOW_rewriteTreeAlt_in_synpred2_ANTLRParser4138); + pushFollow(FOLLOW_rewriteTreeAlt_in_synpred2_ANTLRParser4258); rewriteTreeAlt(); state._fsp--; @@ -9783,44 +10030,44 @@ public class ANTLRParser extends Parser { this.transition = DFA35_transition; } public String getDescription() { - return "556:1: element : ( labeledElement ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) | -> labeledElement ) | atom ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) | -> atom ) | ebnf | ACTION | SEMPRED ( IMPLIES -> GATED_SEMPRED[$IMPLIES] | -> SEMPRED ) | treeSpec ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) | -> treeSpec ) );"; + return "597:1: element : ( labeledElement ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT labeledElement ) ) ) | -> labeledElement ) | atom ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT atom ) ) ) | -> atom ) | ebnf | ACTION | SEMPRED ( IMPLIES -> GATED_SEMPRED[$IMPLIES] | -> SEMPRED ) | treeSpec ( ebnfSuffix -> ^( ebnfSuffix ^( BLOCK ^( ALT treeSpec ) ) ) | -> treeSpec ) );"; } } static final String DFA44_eotS = "\26\uffff"; static final String DFA44_eofS = - "\1\uffff\1\10\2\5\3\uffff\1\10\2\uffff\1\5\13\uffff"; + "\1\uffff\1\11\2\5\3\uffff\1\11\2\uffff\1\5\13\uffff"; static final String DFA44_minS = "\1\43\3\4\1\66\2\uffff\1\4\2\uffff\1\4\1\66\10\0\2\uffff"; static final String DFA44_maxS = "\4\103\1\66\2\uffff\1\103\2\uffff\2\103\10\0\2\uffff"; static final String DFA44_acceptS = - "\5\uffff\1\4\1\6\1\uffff\1\5\1\1\12\uffff\1\3\1\2"; + "\5\uffff\1\4\1\6\1\uffff\1\1\1\5\12\uffff\1\2\1\3"; static final String DFA44_specialS = - "\14\uffff\1\4\1\5\1\1\1\7\1\6\1\3\1\0\1\2\2\uffff}>"; + "\14\uffff\1\3\1\1\1\2\1\4\1\7\1\6\1\5\1\0\2\uffff}>"; static final String[] DFA44_transitionS = { "\1\4\22\uffff\1\5\5\uffff\1\6\1\uffff\1\2\1\1\3\uffff\1\3", - "\1\10\11\uffff\1\10\1\uffff\1\10\22\uffff\1\10\3\uffff\3\10"+ - "\4\uffff\4\10\1\uffff\2\10\1\uffff\1\7\1\11\1\uffff\2\10\1\uffff"+ - "\1\10\1\uffff\2\10\3\uffff\1\10", + "\1\11\11\uffff\1\11\1\uffff\1\11\22\uffff\1\11\3\uffff\3\11"+ + "\4\uffff\4\11\1\uffff\2\11\1\uffff\1\7\1\10\1\uffff\2\11\1\uffff"+ + "\1\11\1\uffff\2\11\3\uffff\1\11", "\1\5\11\uffff\1\5\1\uffff\1\5\22\uffff\1\5\3\uffff\3\5\1\uffff"+ - "\1\5\2\uffff\4\5\1\uffff\2\5\1\uffff\1\12\1\11\1\uffff\2\5\1"+ + "\1\5\2\uffff\4\5\1\uffff\2\5\1\uffff\1\12\1\10\1\uffff\2\5\1"+ "\uffff\1\5\1\uffff\2\5\3\uffff\1\5", "\1\5\13\uffff\1\5\22\uffff\1\5\3\uffff\3\5\1\uffff\1\5\2\uffff"+ - "\4\5\1\uffff\2\5\1\uffff\1\5\1\11\1\uffff\2\5\1\uffff\1\5\1"+ + "\4\5\1\uffff\2\5\1\uffff\1\5\1\10\1\uffff\2\5\1\uffff\1\5\1"+ "\uffff\2\5\3\uffff\1\5", "\1\13", "", "", - "\1\10\13\uffff\1\10\22\uffff\1\10\3\uffff\3\10\1\uffff\1\10"+ - "\2\uffff\4\10\1\uffff\2\10\1\uffff\1\16\2\uffff\2\10\1\uffff"+ - "\1\10\1\uffff\1\14\1\17\3\uffff\1\15", + "\1\11\13\uffff\1\11\22\uffff\1\11\3\uffff\3\11\1\uffff\1\11"+ + "\2\uffff\4\11\1\uffff\2\11\1\uffff\1\17\2\uffff\2\11\1\uffff"+ + "\1\11\1\uffff\1\15\1\14\3\uffff\1\16", "", "", "\1\5\13\uffff\1\5\22\uffff\1\5\3\uffff\3\5\1\uffff\1\5\2\uffff"+ - "\4\5\1\uffff\2\5\1\uffff\1\22\2\uffff\2\5\1\uffff\1\5\1\uffff"+ - "\1\20\1\23\3\uffff\1\21", - "\1\24\7\uffff\1\24\1\25\3\uffff\1\24", + "\4\5\1\uffff\2\5\1\uffff\1\23\2\uffff\2\5\1\uffff\1\5\1\uffff"+ + "\1\21\1\20\3\uffff\1\22", + "\1\25\7\uffff\1\25\1\24\3\uffff\1\25", "\1\uffff", "\1\uffff", "\1\uffff", @@ -9863,51 +10110,13 @@ public class ANTLRParser extends Parser { this.transition = DFA44_transition; } public String getDescription() { - return "628:1: atom : ( range ( ROOT | BANG )? | {...}? id DOT ruleref -> ^( DOT id ruleref ) | {...}? id DOT terminal -> ^( DOT id terminal ) | terminal | ruleref | notSet ( ROOT | BANG )? );"; + return "744:1: atom : ( range ( ROOT | BANG )? | {...}? id DOT ruleref -> ^( DOT id ruleref ) | {...}? id DOT terminal -> ^( DOT id terminal ) | terminal | ruleref | notSet ( ROOT | BANG )? );"; } public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { TokenStream input = (TokenStream)_input; int _s = s; switch ( s ) { case 0 : - int LA44_18 = input.LA(1); - - - int index44_18 = input.index(); - input.rewind(); - s = -1; - if ( (( - input.LT(1).getCharPositionInLine()+input.LT(1).getText().length()== - input.LT(2).getCharPositionInLine() && - input.LT(2).getCharPositionInLine()+1==input.LT(3).getCharPositionInLine() - )) ) {s = 20;} - - else if ( (true) ) {s = 5;} - - - input.seek(index44_18); - if ( s>=0 ) return s; - break; - case 1 : - int LA44_14 = input.LA(1); - - - int index44_14 = input.index(); - input.rewind(); - s = -1; - if ( (( - input.LT(1).getCharPositionInLine()+input.LT(1).getText().length()== - input.LT(2).getCharPositionInLine() && - input.LT(2).getCharPositionInLine()+1==input.LT(3).getCharPositionInLine() - )) ) {s = 20;} - - else if ( (true) ) {s = 8;} - - - input.seek(index44_14); - if ( s>=0 ) return s; - break; - case 2 : int LA44_19 = input.LA(1); @@ -9926,26 +10135,45 @@ public class ANTLRParser extends Parser { input.seek(index44_19); if ( s>=0 ) return s; break; - case 3 : - int LA44_17 = input.LA(1); + case 1 : + int LA44_13 = input.LA(1); - int index44_17 = input.index(); + int index44_13 = input.index(); input.rewind(); s = -1; if ( (( input.LT(1).getCharPositionInLine()+input.LT(1).getText().length()== input.LT(2).getCharPositionInLine() && input.LT(2).getCharPositionInLine()+1==input.LT(3).getCharPositionInLine() - )) ) {s = 20;} + )) ) {s = 21;} - else if ( (true) ) {s = 5;} + else if ( (true) ) {s = 9;} - input.seek(index44_17); + input.seek(index44_13); if ( s>=0 ) return s; break; - case 4 : + case 2 : + int LA44_14 = input.LA(1); + + + int index44_14 = input.index(); + input.rewind(); + s = -1; + if ( (( + input.LT(1).getCharPositionInLine()+input.LT(1).getText().length()== + input.LT(2).getCharPositionInLine() && + input.LT(2).getCharPositionInLine()+1==input.LT(3).getCharPositionInLine() + )) ) {s = 21;} + + else if ( (true) ) {s = 9;} + + + input.seek(index44_14); + if ( s>=0 ) return s; + break; + case 3 : int LA44_12 = input.LA(1); @@ -9958,32 +10186,70 @@ public class ANTLRParser extends Parser { input.LT(2).getCharPositionInLine()+1==input.LT(3).getCharPositionInLine() )) ) {s = 20;} - else if ( (true) ) {s = 8;} + else if ( (true) ) {s = 9;} input.seek(index44_12); if ( s>=0 ) return s; break; - case 5 : - int LA44_13 = input.LA(1); + case 4 : + int LA44_15 = input.LA(1); - int index44_13 = input.index(); + int index44_15 = input.index(); input.rewind(); s = -1; if ( (( input.LT(1).getCharPositionInLine()+input.LT(1).getText().length()== input.LT(2).getCharPositionInLine() && input.LT(2).getCharPositionInLine()+1==input.LT(3).getCharPositionInLine() - )) ) {s = 20;} + )) ) {s = 21;} - else if ( (true) ) {s = 8;} + else if ( (true) ) {s = 9;} - input.seek(index44_13); + input.seek(index44_15); + if ( s>=0 ) return s; + break; + case 5 : + int LA44_18 = input.LA(1); + + + int index44_18 = input.index(); + input.rewind(); + s = -1; + if ( (( + input.LT(1).getCharPositionInLine()+input.LT(1).getText().length()== + input.LT(2).getCharPositionInLine() && + input.LT(2).getCharPositionInLine()+1==input.LT(3).getCharPositionInLine() + )) ) {s = 21;} + + else if ( (true) ) {s = 5;} + + + input.seek(index44_18); if ( s>=0 ) return s; break; case 6 : + int LA44_17 = input.LA(1); + + + int index44_17 = input.index(); + input.rewind(); + s = -1; + if ( (( + input.LT(1).getCharPositionInLine()+input.LT(1).getText().length()== + input.LT(2).getCharPositionInLine() && + input.LT(2).getCharPositionInLine()+1==input.LT(3).getCharPositionInLine() + )) ) {s = 21;} + + else if ( (true) ) {s = 5;} + + + input.seek(index44_17); + if ( s>=0 ) return s; + break; + case 7 : int LA44_16 = input.LA(1); @@ -10002,25 +10268,6 @@ public class ANTLRParser extends Parser { input.seek(index44_16); if ( s>=0 ) return s; break; - case 7 : - int LA44_15 = input.LA(1); - - - int index44_15 = input.index(); - input.rewind(); - s = -1; - if ( (( - input.LT(1).getCharPositionInLine()+input.LT(1).getText().length()== - input.LT(2).getCharPositionInLine() && - input.LT(2).getCharPositionInLine()+1==input.LT(3).getCharPositionInLine() - )) ) {s = 21;} - - else if ( (true) ) {s = 8;} - - - input.seek(index44_15); - if ( s>=0 ) return s; - break; } if (state.backtracking>0) {state.failed=true; return -1;} NoViableAltException nvae = @@ -10097,7 +10344,7 @@ public class ANTLRParser extends Parser { this.transition = DFA62_transition; } public String getDescription() { - return "790:1: rewriteAlt returns [boolean isTemplate] options {backtrack=true; } : ( rewriteTemplate | rewriteTreeAlt | ETC | -> EPSILON );"; + return "906:1: rewriteAlt returns [boolean isTemplate] options {backtrack=true; } : ( rewriteTemplate | rewriteTreeAlt | ETC | -> EPSILON );"; } public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { TokenStream input = (TokenStream)_input; @@ -10129,47 +10376,47 @@ public class ANTLRParser extends Parser { static final String DFA65_eotS = "\124\uffff"; static final String DFA65_eofS = - "\1\uffff\3\12\1\uffff\1\12\3\uffff\1\12\3\uffff\3\12\11\uffff\1"+ - "\12\3\uffff\1\12\66\uffff"; + "\1\uffff\3\13\1\uffff\1\13\3\uffff\1\13\3\uffff\3\13\11\uffff\1"+ + "\13\3\uffff\1\13\66\uffff"; static final String DFA65_minS = "\1\20\1\16\2\20\1\43\1\20\2\uffff\1\43\1\20\2\uffff\1\43\3\20\6"+ "\46\3\43\1\16\3\43\1\20\24\46\6\43\24\46\2\43\6\46"; static final String DFA65_maxS = "\4\103\1\77\1\103\2\uffff\1\77\1\103\2\uffff\1\77\3\103\6\66\1\103"+ - "\2\77\2\103\2\77\1\103\3\66\1\54\11\66\1\54\6\66\1\77\1\103\2\77"+ - "\1\103\1\77\6\66\1\54\11\66\1\54\3\66\2\77\6\66"; + "\2\77\2\103\2\77\1\103\3\66\1\54\11\66\1\54\6\66\2\77\1\103\2\77"+ + "\1\103\11\66\1\54\11\66\1\54\2\77\6\66"; static final String DFA65_acceptS = - "\6\uffff\1\3\1\4\2\uffff\1\1\1\2\110\uffff"; + "\6\uffff\1\3\1\4\2\uffff\1\2\1\1\110\uffff"; static final String DFA65_specialS = "\124\uffff}>"; static final String[] DFA65_transitionS = { "\1\5\27\uffff\1\7\14\uffff\1\4\4\uffff\1\6\3\uffff\1\1\1\2\3"+ "\uffff\1\3", - "\1\11\1\uffff\1\12\26\uffff\3\12\1\uffff\1\10\2\uffff\1\13"+ - "\1\uffff\2\13\1\uffff\1\12\1\uffff\1\12\3\uffff\2\12\3\uffff"+ - "\2\12\3\uffff\1\12", - "\1\12\26\uffff\3\12\4\uffff\1\13\1\uffff\2\13\1\uffff\1\12"+ - "\1\uffff\1\12\3\uffff\2\12\3\uffff\2\12\3\uffff\1\12", - "\1\12\26\uffff\3\12\1\uffff\1\14\2\uffff\1\13\1\uffff\2\13"+ - "\1\uffff\1\12\1\uffff\1\12\3\uffff\2\12\3\uffff\2\12\3\uffff"+ - "\1\12", + "\1\11\1\uffff\1\13\26\uffff\3\13\1\uffff\1\10\2\uffff\1\12"+ + "\1\uffff\2\12\1\uffff\1\13\1\uffff\1\13\3\uffff\2\13\3\uffff"+ + "\2\13\3\uffff\1\13", + "\1\13\26\uffff\3\13\4\uffff\1\12\1\uffff\2\12\1\uffff\1\13"+ + "\1\uffff\1\13\3\uffff\2\13\3\uffff\2\13\3\uffff\1\13", + "\1\13\26\uffff\3\13\1\uffff\1\14\2\uffff\1\12\1\uffff\2\12"+ + "\1\uffff\1\13\1\uffff\1\13\3\uffff\2\13\3\uffff\2\13\3\uffff"+ + "\1\13", "\1\17\32\uffff\1\16\1\15", - "\1\12\26\uffff\3\12\4\uffff\1\13\1\uffff\2\13\1\uffff\1\12"+ - "\1\uffff\1\12\3\uffff\2\12\3\uffff\2\12\3\uffff\1\12", + "\1\13\26\uffff\3\13\4\uffff\1\12\1\uffff\2\12\1\uffff\1\13"+ + "\1\uffff\1\13\3\uffff\2\13\3\uffff\2\13\3\uffff\1\13", "", "", "\1\22\32\uffff\1\21\1\20", - "\1\12\26\uffff\3\12\4\uffff\1\13\1\uffff\2\13\1\uffff\1\12"+ - "\1\uffff\1\12\3\uffff\2\12\3\uffff\2\12\3\uffff\1\12", + "\1\13\26\uffff\3\13\4\uffff\1\12\1\uffff\2\12\1\uffff\1\13"+ + "\1\uffff\1\13\3\uffff\2\13\3\uffff\2\13\3\uffff\1\13", "", "", "\1\25\32\uffff\1\24\1\23", - "\1\12\26\uffff\3\12\4\uffff\1\13\1\uffff\2\13\1\uffff\1\12"+ - "\1\uffff\1\12\3\uffff\2\12\3\uffff\2\12\3\uffff\1\12", - "\1\12\26\uffff\3\12\4\uffff\1\13\1\uffff\2\13\1\uffff\1\12"+ - "\1\uffff\1\12\3\uffff\2\12\3\uffff\2\12\3\uffff\1\12", - "\1\12\26\uffff\3\12\4\uffff\1\13\1\uffff\2\13\1\uffff\1\12"+ - "\1\uffff\1\12\3\uffff\2\12\3\uffff\2\12\3\uffff\1\12", + "\1\13\26\uffff\3\13\4\uffff\1\12\1\uffff\2\12\1\uffff\1\13"+ + "\1\uffff\1\13\3\uffff\2\13\3\uffff\2\13\3\uffff\1\13", + "\1\13\26\uffff\3\13\4\uffff\1\12\1\uffff\2\12\1\uffff\1\13"+ + "\1\uffff\1\13\3\uffff\2\13\3\uffff\2\13\3\uffff\1\13", + "\1\13\26\uffff\3\13\4\uffff\1\12\1\uffff\2\12\1\uffff\1\13"+ + "\1\uffff\1\13\3\uffff\2\13\3\uffff\2\13\3\uffff\1\13", "\1\30\5\uffff\1\31\1\26\10\uffff\1\27", "\1\30\5\uffff\1\31\1\26\10\uffff\1\27", "\1\30\5\uffff\1\31\1\26\10\uffff\1\27", @@ -10179,14 +10426,14 @@ public class ANTLRParser extends Parser { "\1\40\32\uffff\1\37\1\36\3\uffff\1\41", "\1\44\32\uffff\1\43\1\42", "\1\47\32\uffff\1\46\1\45", - "\1\11\1\uffff\1\12\26\uffff\3\12\4\uffff\1\13\1\uffff\2\13"+ - "\1\uffff\1\12\1\uffff\1\12\3\uffff\2\12\3\uffff\2\12\3\uffff"+ - "\1\12", + "\1\11\1\uffff\1\13\26\uffff\3\13\4\uffff\1\12\1\uffff\2\12"+ + "\1\uffff\1\13\1\uffff\1\13\3\uffff\2\13\3\uffff\2\13\3\uffff"+ + "\1\13", "\1\52\32\uffff\1\51\1\50\3\uffff\1\53", "\1\56\32\uffff\1\55\1\54", "\1\61\32\uffff\1\60\1\57", - "\1\12\26\uffff\3\12\4\uffff\1\13\1\uffff\2\13\1\uffff\1\12"+ - "\1\uffff\1\12\3\uffff\2\12\3\uffff\2\12\3\uffff\1\12", + "\1\13\26\uffff\3\13\4\uffff\1\12\1\uffff\2\12\1\uffff\1\13"+ + "\1\uffff\1\13\3\uffff\2\13\3\uffff\2\13\3\uffff\1\13", "\1\30\5\uffff\1\31\11\uffff\1\62", "\1\30\5\uffff\1\31\11\uffff\1\62", "\1\30\5\uffff\1\31\11\uffff\1\62", @@ -10194,9 +10441,9 @@ public class ANTLRParser extends Parser { "\1\30\5\uffff\1\31\11\uffff\1\27", "\1\30\5\uffff\1\31\11\uffff\1\27", "\1\30\5\uffff\1\31\11\uffff\1\27", - "\1\30\5\uffff\1\31\1\63\10\uffff\1\64", - "\1\30\5\uffff\1\31\1\63\10\uffff\1\64", - "\1\30\5\uffff\1\31\1\63\10\uffff\1\64", + "\1\30\5\uffff\1\31\1\64\10\uffff\1\63", + "\1\30\5\uffff\1\31\1\64\10\uffff\1\63", + "\1\30\5\uffff\1\31\1\64\10\uffff\1\63", "\1\34\5\uffff\1\35\11\uffff\1\65", "\1\34\5\uffff\1\35\11\uffff\1\65", "\1\34\5\uffff\1\35\11\uffff\1\65", @@ -10204,35 +10451,35 @@ public class ANTLRParser extends Parser { "\1\34\5\uffff\1\35\11\uffff\1\33", "\1\34\5\uffff\1\35\11\uffff\1\33", "\1\34\5\uffff\1\35\11\uffff\1\33", - "\1\34\5\uffff\1\35\1\66\10\uffff\1\67", - "\1\34\5\uffff\1\35\1\66\10\uffff\1\67", - "\1\34\5\uffff\1\35\1\66\10\uffff\1\67", + "\1\34\5\uffff\1\35\1\67\10\uffff\1\66", + "\1\34\5\uffff\1\35\1\67\10\uffff\1\66", + "\1\34\5\uffff\1\35\1\67\10\uffff\1\66", "\1\72\32\uffff\1\71\1\70", - "\1\75\32\uffff\1\74\1\73\3\uffff\1\76", - "\1\101\32\uffff\1\100\1\77", + "\1\75\32\uffff\1\74\1\73", + "\1\100\32\uffff\1\77\1\76\3\uffff\1\101", "\1\104\32\uffff\1\103\1\102", - "\1\107\32\uffff\1\106\1\105\3\uffff\1\110", - "\1\113\32\uffff\1\112\1\111", + "\1\107\32\uffff\1\106\1\105", + "\1\112\32\uffff\1\111\1\110\3\uffff\1\113", "\1\30\5\uffff\1\31\11\uffff\1\62", "\1\30\5\uffff\1\31\11\uffff\1\62", "\1\30\5\uffff\1\31\11\uffff\1\62", + "\1\30\5\uffff\1\31\11\uffff\1\63", + "\1\30\5\uffff\1\31\11\uffff\1\63", + "\1\30\5\uffff\1\31\11\uffff\1\63", "\1\30\5\uffff\1\31\11\uffff\1\114", "\1\30\5\uffff\1\31\11\uffff\1\114", "\1\30\5\uffff\1\31\11\uffff\1\114", "\1\30\5\uffff\1\31", - "\1\30\5\uffff\1\31\11\uffff\1\64", - "\1\30\5\uffff\1\31\11\uffff\1\64", - "\1\30\5\uffff\1\31\11\uffff\1\64", "\1\34\5\uffff\1\35\11\uffff\1\65", "\1\34\5\uffff\1\35\11\uffff\1\65", "\1\34\5\uffff\1\35\11\uffff\1\65", + "\1\34\5\uffff\1\35\11\uffff\1\66", + "\1\34\5\uffff\1\35\11\uffff\1\66", + "\1\34\5\uffff\1\35\11\uffff\1\66", "\1\34\5\uffff\1\35\11\uffff\1\115", "\1\34\5\uffff\1\35\11\uffff\1\115", "\1\34\5\uffff\1\35\11\uffff\1\115", "\1\34\5\uffff\1\35", - "\1\34\5\uffff\1\35\11\uffff\1\67", - "\1\34\5\uffff\1\35\11\uffff\1\67", - "\1\34\5\uffff\1\35\11\uffff\1\67", "\1\120\32\uffff\1\117\1\116", "\1\123\32\uffff\1\122\1\121", "\1\30\5\uffff\1\31\11\uffff\1\114", @@ -10273,7 +10520,7 @@ public class ANTLRParser extends Parser { this.transition = DFA65_transition; } public String getDescription() { - return "810:1: rewriteTreeElement : ( rewriteTreeAtom | rewriteTreeAtom ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) ) | rewriteTree ( ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) | -> rewriteTree ) | rewriteTreeEbnf );"; + return "926:1: rewriteTreeElement : ( rewriteTreeAtom | rewriteTreeAtom ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTreeAtom ) ) ) | rewriteTree ( ebnfSuffix -> ^( ebnfSuffix ^( REWRITE_BLOCK ^( ALT rewriteTree ) ) ) | -> rewriteTree ) | rewriteTreeEbnf );"; } } static final String DFA72_eotS = @@ -10342,271 +10589,278 @@ public class ANTLRParser extends Parser { this.transition = DFA72_transition; } public String getDescription() { - return "845:1: rewriteTemplate : ( TEMPLATE LPAREN rewriteTemplateArgs RPAREN (str= DOUBLE_QUOTE_STRING_LITERAL | str= DOUBLE_ANGLE_STRING_LITERAL ) -> ^( TEMPLATE[$TEMPLATE,\"TEMPLATE\"] ( rewriteTemplateArgs )? $str) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION );"; + return "961:1: rewriteTemplate : ( TEMPLATE LPAREN rewriteTemplateArgs RPAREN (str= DOUBLE_QUOTE_STRING_LITERAL | str= DOUBLE_ANGLE_STRING_LITERAL ) -> ^( TEMPLATE[$TEMPLATE,\"TEMPLATE\"] ( rewriteTemplateArgs )? $str) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION );"; } } - public static final BitSet FOLLOW_DOC_COMMENT_in_grammarSpec459 = new BitSet(new long[]{0x000000000F000000L}); - public static final BitSet FOLLOW_grammarType_in_grammarSpec496 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_id_in_grammarSpec498 = new BitSet(new long[]{0x0000008000000000L}); - public static final BitSet FOLLOW_SEMI_in_grammarSpec500 = new BitSet(new long[]{0xC800000870F80040L}); - public static final BitSet FOLLOW_prequelConstruct_in_grammarSpec544 = new BitSet(new long[]{0xC800000870F80040L}); - public static final BitSet FOLLOW_rules_in_grammarSpec572 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_grammarSpec615 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LEXER_in_grammarType809 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_GRAMMAR_in_grammarType813 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_PARSER_in_grammarType846 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_GRAMMAR_in_grammarType850 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TREE_in_grammarType877 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_GRAMMAR_in_grammarType881 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_GRAMMAR_in_grammarType908 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_optionsSpec_in_prequelConstruct972 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_delegateGrammars_in_prequelConstruct998 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tokensSpec_in_prequelConstruct1048 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_attrScope_in_prequelConstruct1084 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_action_in_prequelConstruct1127 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_OPTIONS_in_optionsSpec1144 = new BitSet(new long[]{0xE000000800000000L}); - public static final BitSet FOLLOW_option_in_optionsSpec1147 = new BitSet(new long[]{0x0000008000000000L}); - public static final BitSet FOLLOW_SEMI_in_optionsSpec1149 = new BitSet(new long[]{0xE000000800000000L}); - public static final BitSet FOLLOW_RBRACE_in_optionsSpec1153 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_id_in_option1190 = new BitSet(new long[]{0x0000200000000000L}); - public static final BitSet FOLLOW_ASSIGN_in_option1192 = new BitSet(new long[]{0xC001000800000000L,0x0000000000000009L}); - public static final BitSet FOLLOW_optionValue_in_option1195 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_qid_in_optionValue1245 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STRING_LITERAL_in_optionValue1269 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_INT_in_optionValue1295 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STAR_in_optionValue1324 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_IMPORT_in_delegateGrammars1340 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_delegateGrammar_in_delegateGrammars1342 = new BitSet(new long[]{0x000000C000000000L}); - public static final BitSet FOLLOW_COMMA_in_delegateGrammars1345 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_DOC_COMMENT_in_grammarSpec456 = new BitSet(new long[]{0x000000000F000000L}); + public static final BitSet FOLLOW_grammarType_in_grammarSpec493 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_id_in_grammarSpec495 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_SEMI_in_grammarSpec497 = new BitSet(new long[]{0xC800000870F80040L}); + public static final BitSet FOLLOW_sync_in_grammarSpec541 = new BitSet(new long[]{0xC800000870F80040L}); + public static final BitSet FOLLOW_prequelConstruct_in_grammarSpec545 = new BitSet(new long[]{0xC800000870F80040L}); + public static final BitSet FOLLOW_sync_in_grammarSpec547 = new BitSet(new long[]{0xC800000870F80040L}); + public static final BitSet FOLLOW_rules_in_grammarSpec577 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_grammarSpec620 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LEXER_in_grammarType814 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_GRAMMAR_in_grammarType818 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_PARSER_in_grammarType851 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_GRAMMAR_in_grammarType855 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TREE_in_grammarType882 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_GRAMMAR_in_grammarType886 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_GRAMMAR_in_grammarType913 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_optionsSpec_in_prequelConstruct977 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_delegateGrammars_in_prequelConstruct1003 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tokensSpec_in_prequelConstruct1053 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_attrScope_in_prequelConstruct1089 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_action_in_prequelConstruct1132 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_OPTIONS_in_optionsSpec1149 = new BitSet(new long[]{0xE000000800000000L}); + public static final BitSet FOLLOW_option_in_optionsSpec1152 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_SEMI_in_optionsSpec1154 = new BitSet(new long[]{0xE000000800000000L}); + public static final BitSet FOLLOW_RBRACE_in_optionsSpec1158 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_id_in_option1195 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_ASSIGN_in_option1197 = new BitSet(new long[]{0xC001000800000000L,0x0000000000000009L}); + public static final BitSet FOLLOW_optionValue_in_option1200 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_qid_in_optionValue1250 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_optionValue1274 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INT_in_optionValue1300 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STAR_in_optionValue1329 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IMPORT_in_delegateGrammars1345 = new BitSet(new long[]{0xC000000800000000L}); public static final BitSet FOLLOW_delegateGrammar_in_delegateGrammars1347 = new BitSet(new long[]{0x000000C000000000L}); - public static final BitSet FOLLOW_SEMI_in_delegateGrammars1351 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_id_in_delegateGrammar1378 = new BitSet(new long[]{0x0000200000000000L}); - public static final BitSet FOLLOW_ASSIGN_in_delegateGrammar1380 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_id_in_delegateGrammar1383 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_id_in_delegateGrammar1393 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TOKENS_in_tokensSpec1409 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_tokenSpec_in_tokensSpec1411 = new BitSet(new long[]{0xE000000800000000L}); - public static final BitSet FOLLOW_RBRACE_in_tokensSpec1414 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_id_in_tokenSpec1434 = new BitSet(new long[]{0x0000208000000000L}); - public static final BitSet FOLLOW_ASSIGN_in_tokenSpec1440 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_STRING_LITERAL_in_tokenSpec1442 = new BitSet(new long[]{0x0000008000000000L}); - public static final BitSet FOLLOW_SEMI_in_tokenSpec1477 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_RULE_REF_in_tokenSpec1482 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_SCOPE_in_attrScope1497 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_id_in_attrScope1499 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_attrScope1501 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AT_in_action1530 = new BitSet(new long[]{0xC000000803000000L}); - public static final BitSet FOLLOW_actionScopeName_in_action1533 = new BitSet(new long[]{0x0000002000000000L}); - public static final BitSet FOLLOW_COLONCOLON_in_action1535 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_id_in_action1539 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_action1541 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_id_in_actionScopeName1572 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LEXER_in_actionScopeName1577 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_PARSER_in_actionScopeName1592 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rule_in_rules1611 = new BitSet(new long[]{0xC000000870800042L}); - public static final BitSet FOLLOW_DOC_COMMENT_in_rule1690 = new BitSet(new long[]{0xC000000870800000L}); - public static final BitSet FOLLOW_ruleModifiers_in_rule1734 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_id_in_rule1757 = new BitSet(new long[]{0x0800001180284000L}); - public static final BitSet FOLLOW_ARG_ACTION_in_rule1790 = new BitSet(new long[]{0x0800001180280000L}); - public static final BitSet FOLLOW_ruleReturns_in_rule1800 = new BitSet(new long[]{0x0800001100280000L}); - public static final BitSet FOLLOW_rulePrequel_in_rule1838 = new BitSet(new long[]{0x0800001100280000L}); - public static final BitSet FOLLOW_COLON_in_rule1854 = new BitSet(new long[]{0xD648010800010010L,0x0000000000000008L}); - public static final BitSet FOLLOW_altListAsBlock_in_rule1883 = new BitSet(new long[]{0x0000008000000000L}); - public static final BitSet FOLLOW_SEMI_in_rule1898 = new BitSet(new long[]{0x0000000600000000L}); - public static final BitSet FOLLOW_exceptionGroup_in_rule1907 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_exceptionHandler_in_exceptionGroup1999 = new BitSet(new long[]{0x0000000600000002L}); - public static final BitSet FOLLOW_finallyClause_in_exceptionGroup2002 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CATCH_in_exceptionHandler2019 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_ARG_ACTION_in_exceptionHandler2021 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_exceptionHandler2023 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_FINALLY_in_finallyClause2049 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_finallyClause2051 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_throwsSpec_in_rulePrequel2081 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleScopeSpec_in_rulePrequel2089 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_optionsSpec_in_rulePrequel2097 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleAction_in_rulePrequel2105 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_RETURNS_in_ruleReturns2125 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_ARG_ACTION_in_ruleReturns2128 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_THROWS_in_throwsSpec2153 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_qid_in_throwsSpec2155 = new BitSet(new long[]{0x0000004000000002L}); - public static final BitSet FOLLOW_COMMA_in_throwsSpec2158 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_qid_in_throwsSpec2160 = new BitSet(new long[]{0x0000004000000002L}); - public static final BitSet FOLLOW_SCOPE_in_ruleScopeSpec2191 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_ruleScopeSpec2193 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_SCOPE_in_ruleScopeSpec2206 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_id_in_ruleScopeSpec2208 = new BitSet(new long[]{0x000000C000000000L}); - public static final BitSet FOLLOW_COMMA_in_ruleScopeSpec2211 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_id_in_ruleScopeSpec2213 = new BitSet(new long[]{0x000000C000000000L}); - public static final BitSet FOLLOW_SEMI_in_ruleScopeSpec2217 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_AT_in_ruleAction2247 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_id_in_ruleAction2249 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_ruleAction2251 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleModifier_in_ruleModifiers2292 = new BitSet(new long[]{0x0000000070800002L}); + public static final BitSet FOLLOW_COMMA_in_delegateGrammars1350 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_delegateGrammar_in_delegateGrammars1352 = new BitSet(new long[]{0x000000C000000000L}); + public static final BitSet FOLLOW_SEMI_in_delegateGrammars1356 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_id_in_delegateGrammar1383 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_ASSIGN_in_delegateGrammar1385 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_id_in_delegateGrammar1388 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_id_in_delegateGrammar1398 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TOKENS_in_tokensSpec1414 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_tokenSpec_in_tokensSpec1416 = new BitSet(new long[]{0xE000000800000000L}); + public static final BitSet FOLLOW_RBRACE_in_tokensSpec1419 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_id_in_tokenSpec1439 = new BitSet(new long[]{0x0000208000000000L}); + public static final BitSet FOLLOW_ASSIGN_in_tokenSpec1445 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_tokenSpec1447 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_SEMI_in_tokenSpec1482 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_REF_in_tokenSpec1487 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SCOPE_in_attrScope1502 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_id_in_attrScope1504 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_attrScope1506 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AT_in_action1535 = new BitSet(new long[]{0xC000000803000000L}); + public static final BitSet FOLLOW_actionScopeName_in_action1538 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_COLONCOLON_in_action1540 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_id_in_action1544 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_action1546 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_id_in_actionScopeName1577 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LEXER_in_actionScopeName1582 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_PARSER_in_actionScopeName1597 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_sync_in_rules1616 = new BitSet(new long[]{0xC000000870800042L}); + public static final BitSet FOLLOW_rule_in_rules1619 = new BitSet(new long[]{0xC000000870800040L}); + public static final BitSet FOLLOW_sync_in_rules1621 = new BitSet(new long[]{0xC000000870800042L}); + public static final BitSet FOLLOW_DOC_COMMENT_in_rule1722 = new BitSet(new long[]{0xC000000870800000L}); + public static final BitSet FOLLOW_ruleModifiers_in_rule1766 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_id_in_rule1789 = new BitSet(new long[]{0x0800000180284000L}); + public static final BitSet FOLLOW_ARG_ACTION_in_rule1822 = new BitSet(new long[]{0x0800000180284000L}); + public static final BitSet FOLLOW_ruleReturns_in_rule1832 = new BitSet(new long[]{0x0800000180284000L}); + public static final BitSet FOLLOW_rulePrequels_in_rule1870 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_COLON_in_rule1885 = new BitSet(new long[]{0xD648010800010010L,0x0000000000000008L}); + public static final BitSet FOLLOW_ruleBlock_in_rule1914 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_SEMI_in_rule1929 = new BitSet(new long[]{0x0000000600000000L}); + public static final BitSet FOLLOW_exceptionGroup_in_rule1938 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_exceptionHandler_in_exceptionGroup2030 = new BitSet(new long[]{0x0000000600000002L}); + public static final BitSet FOLLOW_finallyClause_in_exceptionGroup2033 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CATCH_in_exceptionHandler2050 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_ARG_ACTION_in_exceptionHandler2052 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_exceptionHandler2054 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FINALLY_in_finallyClause2080 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_finallyClause2082 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_sync_in_rulePrequels2116 = new BitSet(new long[]{0x0800000100280002L}); + public static final BitSet FOLLOW_rulePrequel_in_rulePrequels2119 = new BitSet(new long[]{0x0800000100280000L}); + public static final BitSet FOLLOW_sync_in_rulePrequels2121 = new BitSet(new long[]{0x0800000100280002L}); + public static final BitSet FOLLOW_throwsSpec_in_rulePrequel2147 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleScopeSpec_in_rulePrequel2155 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_optionsSpec_in_rulePrequel2163 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleAction_in_rulePrequel2171 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RETURNS_in_ruleReturns2191 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_ARG_ACTION_in_ruleReturns2194 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_THROWS_in_throwsSpec2219 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_qid_in_throwsSpec2221 = new BitSet(new long[]{0x0000004000000002L}); + public static final BitSet FOLLOW_COMMA_in_throwsSpec2224 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_qid_in_throwsSpec2226 = new BitSet(new long[]{0x0000004000000002L}); + public static final BitSet FOLLOW_SCOPE_in_ruleScopeSpec2257 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_ruleScopeSpec2259 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SCOPE_in_ruleScopeSpec2272 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_id_in_ruleScopeSpec2274 = new BitSet(new long[]{0x000000C000000000L}); + public static final BitSet FOLLOW_COMMA_in_ruleScopeSpec2277 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_id_in_ruleScopeSpec2279 = new BitSet(new long[]{0x000000C000000000L}); + public static final BitSet FOLLOW_SEMI_in_ruleScopeSpec2283 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AT_in_ruleAction2313 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_id_in_ruleAction2315 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_ruleAction2317 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleModifier_in_ruleModifiers2358 = new BitSet(new long[]{0x0000000070800002L}); public static final BitSet FOLLOW_set_in_ruleModifier0 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_alternative_in_altList2368 = new BitSet(new long[]{0x0008000000000002L}); - public static final BitSet FOLLOW_OR_in_altList2371 = new BitSet(new long[]{0xD648010800010010L,0x0000000000000008L}); - public static final BitSet FOLLOW_alternative_in_altList2373 = new BitSet(new long[]{0x0008000000000002L}); - public static final BitSet FOLLOW_altList_in_altListAsBlock2403 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_elements_in_alternative2433 = new BitSet(new long[]{0x0200000000000002L}); - public static final BitSet FOLLOW_rewrite_in_alternative2442 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewrite_in_alternative2480 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_element_in_elements2533 = new BitSet(new long[]{0xD440010800010012L,0x0000000000000008L}); - public static final BitSet FOLLOW_labeledElement_in_element2560 = new BitSet(new long[]{0x0003400000000002L}); - public static final BitSet FOLLOW_ebnfSuffix_in_element2566 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_atom_in_element2608 = new BitSet(new long[]{0x0003400000000002L}); - public static final BitSet FOLLOW_ebnfSuffix_in_element2614 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ebnf_in_element2657 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ACTION_in_element2664 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_SEMPRED_in_element2674 = new BitSet(new long[]{0x0000040000000002L}); - public static final BitSet FOLLOW_IMPLIES_in_element2680 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_treeSpec_in_element2708 = new BitSet(new long[]{0x0003400000000002L}); - public static final BitSet FOLLOW_ebnfSuffix_in_element2714 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_id_in_labeledElement2763 = new BitSet(new long[]{0x0004200000000000L}); - public static final BitSet FOLLOW_ASSIGN_in_labeledElement2766 = new BitSet(new long[]{0xD040010800000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_PLUS_ASSIGN_in_labeledElement2769 = new BitSet(new long[]{0xD040010800000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_atom_in_labeledElement2774 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_block_in_labeledElement2776 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TREE_BEGIN_in_treeSpec2798 = new BitSet(new long[]{0xD440010800010010L,0x0000000000000008L}); - public static final BitSet FOLLOW_element_in_treeSpec2839 = new BitSet(new long[]{0xD440010800010010L,0x0000000000000008L}); - public static final BitSet FOLLOW_element_in_treeSpec2870 = new BitSet(new long[]{0xD440030800010010L,0x0000000000000008L}); - public static final BitSet FOLLOW_RPAREN_in_treeSpec2879 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_block_in_ebnf2913 = new BitSet(new long[]{0x0013C40000000002L}); - public static final BitSet FOLLOW_blockSuffixe_in_ebnf2948 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ebnfSuffix_in_blockSuffixe2999 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ROOT_in_blockSuffixe3013 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_IMPLIES_in_blockSuffixe3021 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BANG_in_blockSuffixe3032 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_QUESTION_in_ebnfSuffix3051 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STAR_in_ebnfSuffix3063 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_PLUS_in_ebnfSuffix3078 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_range_in_atom3095 = new BitSet(new long[]{0x0010800000000002L}); - public static final BitSet FOLLOW_ROOT_in_atom3098 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BANG_in_atom3103 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_id_in_atom3150 = new BitSet(new long[]{0x0040000000000000L}); - public static final BitSet FOLLOW_DOT_in_atom3152 = new BitSet(new long[]{0x8000000000000000L}); - public static final BitSet FOLLOW_ruleref_in_atom3154 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_id_in_atom3188 = new BitSet(new long[]{0x0040000000000000L}); - public static final BitSet FOLLOW_DOT_in_atom3190 = new BitSet(new long[]{0x4040000000000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_terminal_in_atom3192 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_terminal_in_atom3217 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleref_in_atom3227 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_notSet_in_atom3235 = new BitSet(new long[]{0x0010800000000002L}); - public static final BitSet FOLLOW_ROOT_in_atom3238 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BANG_in_atom3241 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_NOT_in_notSet3274 = new BitSet(new long[]{0x4000000000000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_notTerminal_in_notSet3276 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_NOT_in_notSet3292 = new BitSet(new long[]{0x0000010000000000L}); - public static final BitSet FOLLOW_block_in_notSet3294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_alternative_in_altList2434 = new BitSet(new long[]{0x0008000000000002L}); + public static final BitSet FOLLOW_OR_in_altList2437 = new BitSet(new long[]{0xD648010800010010L,0x0000000000000008L}); + public static final BitSet FOLLOW_alternative_in_altList2439 = new BitSet(new long[]{0x0008000000000002L}); + public static final BitSet FOLLOW_altList_in_ruleBlock2469 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_elements_in_alternative2519 = new BitSet(new long[]{0x0200000000000002L}); + public static final BitSet FOLLOW_rewrite_in_alternative2528 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewrite_in_alternative2566 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_element_in_elements2619 = new BitSet(new long[]{0xD440010800010012L,0x0000000000000008L}); + public static final BitSet FOLLOW_labeledElement_in_element2656 = new BitSet(new long[]{0x0003400000000002L}); + public static final BitSet FOLLOW_ebnfSuffix_in_element2662 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_atom_in_element2704 = new BitSet(new long[]{0x0003400000000002L}); + public static final BitSet FOLLOW_ebnfSuffix_in_element2710 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ebnf_in_element2753 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ACTION_in_element2760 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SEMPRED_in_element2770 = new BitSet(new long[]{0x0000040000000002L}); + public static final BitSet FOLLOW_IMPLIES_in_element2776 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_treeSpec_in_element2804 = new BitSet(new long[]{0x0003400000000002L}); + public static final BitSet FOLLOW_ebnfSuffix_in_element2810 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_id_in_labeledElement2871 = new BitSet(new long[]{0x0004200000000000L}); + public static final BitSet FOLLOW_ASSIGN_in_labeledElement2874 = new BitSet(new long[]{0xD040010800000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_PLUS_ASSIGN_in_labeledElement2877 = new BitSet(new long[]{0xD040010800000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_atom_in_labeledElement2882 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_block_in_labeledElement2884 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TREE_BEGIN_in_treeSpec2902 = new BitSet(new long[]{0xD440010800010010L,0x0000000000000008L}); + public static final BitSet FOLLOW_element_in_treeSpec2943 = new BitSet(new long[]{0xD440010800010010L,0x0000000000000008L}); + public static final BitSet FOLLOW_element_in_treeSpec2974 = new BitSet(new long[]{0xD440030800010010L,0x0000000000000008L}); + public static final BitSet FOLLOW_RPAREN_in_treeSpec2983 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_block_in_ebnf3017 = new BitSet(new long[]{0x0013C40000000002L}); + public static final BitSet FOLLOW_blockSuffixe_in_ebnf3052 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ebnfSuffix_in_blockSuffixe3103 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ROOT_in_blockSuffixe3117 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IMPLIES_in_blockSuffixe3125 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BANG_in_blockSuffixe3136 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_QUESTION_in_ebnfSuffix3155 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STAR_in_ebnfSuffix3167 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_PLUS_in_ebnfSuffix3182 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_range_in_atom3199 = new BitSet(new long[]{0x0010800000000002L}); + public static final BitSet FOLLOW_ROOT_in_atom3202 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BANG_in_atom3207 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_id_in_atom3254 = new BitSet(new long[]{0x0040000000000000L}); + public static final BitSet FOLLOW_DOT_in_atom3256 = new BitSet(new long[]{0x8000000000000000L}); + public static final BitSet FOLLOW_ruleref_in_atom3258 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_id_in_atom3292 = new BitSet(new long[]{0x0040000000000000L}); + public static final BitSet FOLLOW_DOT_in_atom3294 = new BitSet(new long[]{0x4040000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_terminal_in_atom3296 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_terminal_in_atom3321 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleref_in_atom3331 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_notSet_in_atom3339 = new BitSet(new long[]{0x0010800000000002L}); + public static final BitSet FOLLOW_ROOT_in_atom3342 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BANG_in_atom3345 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOT_in_notSet3385 = new BitSet(new long[]{0x4000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_notTerminal_in_notSet3387 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOT_in_notSet3403 = new BitSet(new long[]{0x0000010000000000L}); + public static final BitSet FOLLOW_block_in_notSet3405 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_set_in_notTerminal0 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LPAREN_in_block3368 = new BitSet(new long[]{0xDE48011900290010L,0x0000000000000008L}); - public static final BitSet FOLLOW_optionsSpec_in_block3405 = new BitSet(new long[]{0x0800001100280000L}); - public static final BitSet FOLLOW_ruleAction_in_block3410 = new BitSet(new long[]{0x0800001100280000L}); - public static final BitSet FOLLOW_COLON_in_block3413 = new BitSet(new long[]{0xD648010800010010L,0x0000000000000008L}); - public static final BitSet FOLLOW_altList_in_block3427 = new BitSet(new long[]{0x0000020000000000L}); - public static final BitSet FOLLOW_RPAREN_in_block3444 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_RULE_REF_in_ruleref3493 = new BitSet(new long[]{0x0010800000004002L}); - public static final BitSet FOLLOW_ARG_ACTION_in_ruleref3495 = new BitSet(new long[]{0x0010800000000002L}); - public static final BitSet FOLLOW_ROOT_in_ruleref3505 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BANG_in_ruleref3509 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rangeElement_in_range3574 = new BitSet(new long[]{0x0080000000000000L}); - public static final BitSet FOLLOW_RANGE_in_range3576 = new BitSet(new long[]{0xC000000000000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_rangeElement_in_range3579 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_block3479 = new BitSet(new long[]{0xDE48011900290010L,0x0000000000000008L}); + public static final BitSet FOLLOW_optionsSpec_in_block3516 = new BitSet(new long[]{0x0800001100280000L}); + public static final BitSet FOLLOW_ruleAction_in_block3521 = new BitSet(new long[]{0x0800001100280000L}); + public static final BitSet FOLLOW_COLON_in_block3524 = new BitSet(new long[]{0xD648010800010010L,0x0000000000000008L}); + public static final BitSet FOLLOW_altList_in_block3538 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_RPAREN_in_block3555 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_REF_in_ruleref3604 = new BitSet(new long[]{0x0010800000004002L}); + public static final BitSet FOLLOW_ARG_ACTION_in_ruleref3606 = new BitSet(new long[]{0x0010800000000002L}); + public static final BitSet FOLLOW_ROOT_in_ruleref3616 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BANG_in_ruleref3620 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rangeElement_in_range3694 = new BitSet(new long[]{0x0080000000000000L}); + public static final BitSet FOLLOW_RANGE_in_range3696 = new BitSet(new long[]{0xC000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_rangeElement_in_range3699 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_set_in_rangeElement0 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TOKEN_REF_in_terminal3673 = new BitSet(new long[]{0x0010880000004002L}); - public static final BitSet FOLLOW_ARG_ACTION_in_terminal3675 = new BitSet(new long[]{0x0010880000000002L}); - public static final BitSet FOLLOW_elementOptions_in_terminal3678 = new BitSet(new long[]{0x0010800000000002L}); - public static final BitSet FOLLOW_STRING_LITERAL_in_terminal3702 = new BitSet(new long[]{0x0010880000000002L}); - public static final BitSet FOLLOW_elementOptions_in_terminal3704 = new BitSet(new long[]{0x0010800000000002L}); - public static final BitSet FOLLOW_DOT_in_terminal3751 = new BitSet(new long[]{0x0010880000000002L}); - public static final BitSet FOLLOW_elementOptions_in_terminal3753 = new BitSet(new long[]{0x0010800000000002L}); - public static final BitSet FOLLOW_ROOT_in_terminal3784 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BANG_in_terminal3808 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LT_in_elementOptions3872 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_elementOption_in_elementOptions3874 = new BitSet(new long[]{0x0000104000000000L}); - public static final BitSet FOLLOW_COMMA_in_elementOptions3877 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_elementOption_in_elementOptions3879 = new BitSet(new long[]{0x0000104000000000L}); - public static final BitSet FOLLOW_GT_in_elementOptions3883 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_qid_in_elementOption3918 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_id_in_elementOption3940 = new BitSet(new long[]{0x0000200000000000L}); - public static final BitSet FOLLOW_ASSIGN_in_elementOption3942 = new BitSet(new long[]{0xC000000800000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_qid_in_elementOption3946 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STRING_LITERAL_in_elementOption3950 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_predicatedRewrite_in_rewrite3968 = new BitSet(new long[]{0x0200000000000000L}); - public static final BitSet FOLLOW_nakedRewrite_in_rewrite3971 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_RARROW_in_predicatedRewrite3989 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_SEMPRED_in_predicatedRewrite3991 = new BitSet(new long[]{0xC520010800010000L,0x0000000000000008L}); - public static final BitSet FOLLOW_rewriteAlt_in_predicatedRewrite3993 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_RARROW_in_nakedRewrite4033 = new BitSet(new long[]{0xC520010800010000L,0x0000000000000008L}); - public static final BitSet FOLLOW_rewriteAlt_in_nakedRewrite4035 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTemplate_in_rewriteAlt4099 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTreeAlt_in_rewriteAlt4138 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ETC_in_rewriteAlt4147 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTreeElement_in_rewriteTreeAlt4178 = new BitSet(new long[]{0xC420010000010002L,0x0000000000000008L}); - public static final BitSet FOLLOW_rewriteTreeAtom_in_rewriteTreeElement4202 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTreeAtom_in_rewriteTreeElement4207 = new BitSet(new long[]{0x0003400000000000L}); - public static final BitSet FOLLOW_ebnfSuffix_in_rewriteTreeElement4209 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTree_in_rewriteTreeElement4234 = new BitSet(new long[]{0x0003400000000002L}); - public static final BitSet FOLLOW_ebnfSuffix_in_rewriteTreeElement4240 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTreeEbnf_in_rewriteTreeElement4279 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TOKEN_REF_in_rewriteTreeAtom4295 = new BitSet(new long[]{0x0000080000004002L}); - public static final BitSet FOLLOW_elementOptions_in_rewriteTreeAtom4297 = new BitSet(new long[]{0x0000000000004002L}); - public static final BitSet FOLLOW_ARG_ACTION_in_rewriteTreeAtom4300 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_RULE_REF_in_rewriteTreeAtom4327 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STRING_LITERAL_in_rewriteTreeAtom4334 = new BitSet(new long[]{0x0000080000000002L}); - public static final BitSet FOLLOW_elementOptions_in_rewriteTreeAtom4336 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DOLLAR_in_rewriteTreeAtom4359 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_id_in_rewriteTreeAtom4361 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ACTION_in_rewriteTreeAtom4372 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LPAREN_in_rewriteTreeEbnf4398 = new BitSet(new long[]{0xC420010000010000L,0x0000000000000008L}); - public static final BitSet FOLLOW_rewriteTreeAlt_in_rewriteTreeEbnf4400 = new BitSet(new long[]{0x0000020000000000L}); - public static final BitSet FOLLOW_RPAREN_in_rewriteTreeEbnf4402 = new BitSet(new long[]{0x0003400000000000L}); - public static final BitSet FOLLOW_ebnfSuffix_in_rewriteTreeEbnf4404 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TREE_BEGIN_in_rewriteTree4428 = new BitSet(new long[]{0xC020000000010000L,0x0000000000000008L}); - public static final BitSet FOLLOW_rewriteTreeAtom_in_rewriteTree4430 = new BitSet(new long[]{0xC420030000010000L,0x0000000000000008L}); - public static final BitSet FOLLOW_rewriteTreeElement_in_rewriteTree4432 = new BitSet(new long[]{0xC420030000010000L,0x0000000000000008L}); - public static final BitSet FOLLOW_RPAREN_in_rewriteTree4435 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TEMPLATE_in_rewriteTemplate4467 = new BitSet(new long[]{0x0000010000000000L}); - public static final BitSet FOLLOW_LPAREN_in_rewriteTemplate4469 = new BitSet(new long[]{0xC000020800000000L}); - public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteTemplate4471 = new BitSet(new long[]{0x0000020000000000L}); - public static final BitSet FOLLOW_RPAREN_in_rewriteTemplate4473 = new BitSet(new long[]{0x0000000000000C00L}); - public static final BitSet FOLLOW_DOUBLE_QUOTE_STRING_LITERAL_in_rewriteTemplate4481 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DOUBLE_ANGLE_STRING_LITERAL_in_rewriteTemplate4487 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTemplateRef_in_rewriteTemplate4513 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteIndirectTemplateHead_in_rewriteTemplate4522 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ACTION_in_rewriteTemplate4531 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_id_in_rewriteTemplateRef4547 = new BitSet(new long[]{0x0000010000000000L}); - public static final BitSet FOLLOW_LPAREN_in_rewriteTemplateRef4549 = new BitSet(new long[]{0xC000020800000000L}); - public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteTemplateRef4551 = new BitSet(new long[]{0x0000020000000000L}); - public static final BitSet FOLLOW_RPAREN_in_rewriteTemplateRef4553 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LPAREN_in_rewriteIndirectTemplateHead4582 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_rewriteIndirectTemplateHead4584 = new BitSet(new long[]{0x0000020000000000L}); - public static final BitSet FOLLOW_RPAREN_in_rewriteIndirectTemplateHead4586 = new BitSet(new long[]{0x0000010000000000L}); - public static final BitSet FOLLOW_LPAREN_in_rewriteIndirectTemplateHead4588 = new BitSet(new long[]{0xC000020800000000L}); - public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteIndirectTemplateHead4590 = new BitSet(new long[]{0x0000020000000000L}); - public static final BitSet FOLLOW_RPAREN_in_rewriteIndirectTemplateHead4592 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs4620 = new BitSet(new long[]{0x0000004000000002L}); - public static final BitSet FOLLOW_COMMA_in_rewriteTemplateArgs4623 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs4625 = new BitSet(new long[]{0x0000004000000002L}); - public static final BitSet FOLLOW_id_in_rewriteTemplateArg4654 = new BitSet(new long[]{0x0000200000000000L}); - public static final BitSet FOLLOW_ASSIGN_in_rewriteTemplateArg4656 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_rewriteTemplateArg4658 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_RULE_REF_in_id4690 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TOKEN_REF_in_id4703 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TEMPLATE_in_id4715 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_id_in_qid4738 = new BitSet(new long[]{0x0040000000000002L}); - public static final BitSet FOLLOW_DOT_in_qid4741 = new BitSet(new long[]{0xC000000800000000L}); - public static final BitSet FOLLOW_id_in_qid4743 = new BitSet(new long[]{0x0040000000000002L}); - public static final BitSet FOLLOW_alternative_in_alternativeEntry4759 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_alternativeEntry4761 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_element_in_elementEntry4770 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_elementEntry4772 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rule_in_ruleEntry4780 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_ruleEntry4782 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_block_in_blockEntry4790 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_blockEntry4792 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTemplate_in_synpred1_ANTLRParser4099 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTreeAlt_in_synpred2_ANTLRParser4138 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TOKEN_REF_in_terminal3793 = new BitSet(new long[]{0x0010880000004002L}); + public static final BitSet FOLLOW_ARG_ACTION_in_terminal3795 = new BitSet(new long[]{0x0010880000000002L}); + public static final BitSet FOLLOW_elementOptions_in_terminal3798 = new BitSet(new long[]{0x0010800000000002L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_terminal3822 = new BitSet(new long[]{0x0010880000000002L}); + public static final BitSet FOLLOW_elementOptions_in_terminal3824 = new BitSet(new long[]{0x0010800000000002L}); + public static final BitSet FOLLOW_DOT_in_terminal3871 = new BitSet(new long[]{0x0010880000000002L}); + public static final BitSet FOLLOW_elementOptions_in_terminal3873 = new BitSet(new long[]{0x0010800000000002L}); + public static final BitSet FOLLOW_ROOT_in_terminal3904 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BANG_in_terminal3928 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LT_in_elementOptions3992 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_elementOption_in_elementOptions3994 = new BitSet(new long[]{0x0000104000000000L}); + public static final BitSet FOLLOW_COMMA_in_elementOptions3997 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_elementOption_in_elementOptions3999 = new BitSet(new long[]{0x0000104000000000L}); + public static final BitSet FOLLOW_GT_in_elementOptions4003 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_qid_in_elementOption4038 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_id_in_elementOption4060 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_ASSIGN_in_elementOption4062 = new BitSet(new long[]{0xC000000800000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_qid_in_elementOption4066 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_elementOption4070 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_predicatedRewrite_in_rewrite4088 = new BitSet(new long[]{0x0200000000000000L}); + public static final BitSet FOLLOW_nakedRewrite_in_rewrite4091 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RARROW_in_predicatedRewrite4109 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_SEMPRED_in_predicatedRewrite4111 = new BitSet(new long[]{0xC520010800010000L,0x0000000000000008L}); + public static final BitSet FOLLOW_rewriteAlt_in_predicatedRewrite4113 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RARROW_in_nakedRewrite4153 = new BitSet(new long[]{0xC520010800010000L,0x0000000000000008L}); + public static final BitSet FOLLOW_rewriteAlt_in_nakedRewrite4155 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTemplate_in_rewriteAlt4219 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTreeAlt_in_rewriteAlt4258 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ETC_in_rewriteAlt4267 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTreeElement_in_rewriteTreeAlt4298 = new BitSet(new long[]{0xC420010000010002L,0x0000000000000008L}); + public static final BitSet FOLLOW_rewriteTreeAtom_in_rewriteTreeElement4322 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTreeAtom_in_rewriteTreeElement4327 = new BitSet(new long[]{0x0003400000000000L}); + public static final BitSet FOLLOW_ebnfSuffix_in_rewriteTreeElement4329 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTree_in_rewriteTreeElement4354 = new BitSet(new long[]{0x0003400000000002L}); + public static final BitSet FOLLOW_ebnfSuffix_in_rewriteTreeElement4360 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTreeEbnf_in_rewriteTreeElement4399 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TOKEN_REF_in_rewriteTreeAtom4415 = new BitSet(new long[]{0x0000080000004002L}); + public static final BitSet FOLLOW_elementOptions_in_rewriteTreeAtom4417 = new BitSet(new long[]{0x0000000000004002L}); + public static final BitSet FOLLOW_ARG_ACTION_in_rewriteTreeAtom4420 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_REF_in_rewriteTreeAtom4447 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_rewriteTreeAtom4454 = new BitSet(new long[]{0x0000080000000002L}); + public static final BitSet FOLLOW_elementOptions_in_rewriteTreeAtom4456 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DOLLAR_in_rewriteTreeAtom4479 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_id_in_rewriteTreeAtom4481 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ACTION_in_rewriteTreeAtom4492 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_rewriteTreeEbnf4518 = new BitSet(new long[]{0xC420010000010000L,0x0000000000000008L}); + public static final BitSet FOLLOW_rewriteTreeAlt_in_rewriteTreeEbnf4520 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_RPAREN_in_rewriteTreeEbnf4522 = new BitSet(new long[]{0x0003400000000000L}); + public static final BitSet FOLLOW_ebnfSuffix_in_rewriteTreeEbnf4524 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TREE_BEGIN_in_rewriteTree4548 = new BitSet(new long[]{0xC020000000010000L,0x0000000000000008L}); + public static final BitSet FOLLOW_rewriteTreeAtom_in_rewriteTree4550 = new BitSet(new long[]{0xC420030000010000L,0x0000000000000008L}); + public static final BitSet FOLLOW_rewriteTreeElement_in_rewriteTree4552 = new BitSet(new long[]{0xC420030000010000L,0x0000000000000008L}); + public static final BitSet FOLLOW_RPAREN_in_rewriteTree4555 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TEMPLATE_in_rewriteTemplate4587 = new BitSet(new long[]{0x0000010000000000L}); + public static final BitSet FOLLOW_LPAREN_in_rewriteTemplate4589 = new BitSet(new long[]{0xC000020800000000L}); + public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteTemplate4591 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_RPAREN_in_rewriteTemplate4593 = new BitSet(new long[]{0x0000000000000C00L}); + public static final BitSet FOLLOW_DOUBLE_QUOTE_STRING_LITERAL_in_rewriteTemplate4601 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DOUBLE_ANGLE_STRING_LITERAL_in_rewriteTemplate4607 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTemplateRef_in_rewriteTemplate4633 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteIndirectTemplateHead_in_rewriteTemplate4642 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ACTION_in_rewriteTemplate4651 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_id_in_rewriteTemplateRef4667 = new BitSet(new long[]{0x0000010000000000L}); + public static final BitSet FOLLOW_LPAREN_in_rewriteTemplateRef4669 = new BitSet(new long[]{0xC000020800000000L}); + public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteTemplateRef4671 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_RPAREN_in_rewriteTemplateRef4673 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_rewriteIndirectTemplateHead4702 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_rewriteIndirectTemplateHead4704 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_RPAREN_in_rewriteIndirectTemplateHead4706 = new BitSet(new long[]{0x0000010000000000L}); + public static final BitSet FOLLOW_LPAREN_in_rewriteIndirectTemplateHead4708 = new BitSet(new long[]{0xC000020800000000L}); + public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteIndirectTemplateHead4710 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_RPAREN_in_rewriteIndirectTemplateHead4712 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs4740 = new BitSet(new long[]{0x0000004000000002L}); + public static final BitSet FOLLOW_COMMA_in_rewriteTemplateArgs4743 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs4745 = new BitSet(new long[]{0x0000004000000002L}); + public static final BitSet FOLLOW_id_in_rewriteTemplateArg4774 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_ASSIGN_in_rewriteTemplateArg4776 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_rewriteTemplateArg4778 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_REF_in_id4820 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TOKEN_REF_in_id4833 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TEMPLATE_in_id4845 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_id_in_qid4879 = new BitSet(new long[]{0x0040000000000002L}); + public static final BitSet FOLLOW_DOT_in_qid4882 = new BitSet(new long[]{0xC000000800000000L}); + public static final BitSet FOLLOW_id_in_qid4884 = new BitSet(new long[]{0x0040000000000002L}); + public static final BitSet FOLLOW_alternative_in_alternativeEntry4901 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_alternativeEntry4903 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_element_in_elementEntry4912 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_elementEntry4914 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rule_in_ruleEntry4922 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_ruleEntry4924 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_block_in_blockEntry4932 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_blockEntry4934 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTemplate_in_synpred1_ANTLRParser4219 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTreeAlt_in_synpred2_ANTLRParser4258 = new BitSet(new long[]{0x0000000000000002L}); } \ No newline at end of file diff --git a/tool/src/org/antlr/v4/parse/ANTLRParser.tokens b/tool/src/org/antlr/v4/parse/ANTLRParser.tokens index 2a824f7d6..9317f8659 100644 --- a/tool/src/org/antlr/v4/parse/ANTLRParser.tokens +++ b/tool/src/org/antlr/v4/parse/ANTLRParser.tokens @@ -1,22 +1,22 @@ LT=43 -COMBINED=91 +COMBINED=90 STAR=48 -BACKTRACK_SEMPRED=96 +BACKTRACK_SEMPRED=95 DOUBLE_ANGLE_STRING_LITERAL=11 FORCED_ACTION=5 -ARGLIST=89 +ARGLIST=88 ALTLIST=85 NOT=60 SEMPRED=4 ACTION=16 TOKEN_REF=62 RULEMODIFIERS=74 -ST_RESULT=100 +ST_RESULT=99 RPAREN=41 -RET=90 +RET=89 IMPORT=22 STRING_LITERAL=67 -ARG=88 +ARG=87 ARG_ACTION=14 DOUBLE_QUOTE_STRING_LITERAL=10 COMMENT=9 @@ -24,7 +24,7 @@ GRAMMAR=27 ACTION_CHAR_LITERAL=13 WSCHARS=65 RULEACTIONS=75 -INITACTION=92 +INITACTION=91 ALT_REWRITE=101 IMPLIES=42 RBRACE=61 @@ -36,7 +36,7 @@ THROWS=32 INT=64 CHAR_RANGE=82 EPSILON=83 -LIST=98 +LIST=97 COLONCOLON=37 WSNLCHARS=18 WS=70 @@ -48,10 +48,10 @@ CLOSURE=79 PARSER=25 DOLLAR=53 PROTECTED=28 -ELEMENT_OPTIONS=99 +ELEMENT_OPTIONS=98 NESTED_ACTION=15 FRAGMENT=23 -ID=87 +ID=86 TREE_BEGIN=58 LPAREN=40 AT=59 @@ -61,7 +61,7 @@ TREE=26 SCOPE=21 ETC=56 COMMA=38 -WILDCARD=97 +WILDCARD=96 DOC_COMMENT=6 PLUS=49 REWRITE_BLOCK=77 @@ -73,8 +73,8 @@ UNICODE_ESC=69 HEX_DIGIT=68 RANGE=55 TOKENS=20 -GATED_SEMPRED=94 -RESULT=86 +RESULT=100 +GATED_SEMPRED=93 BANG=47 ACTION_STRING_LITERAL=12 ROOT=52 @@ -86,9 +86,9 @@ SYNPRED=81 COLON=36 QUESTION=46 FINALLY=34 -LABEL=93 +LABEL=92 TEMPLATE=35 -SYN_SEMPRED=95 +SYN_SEMPRED=94 ERRCHAR=71 BLOCK=76 PLUS_ASSIGN=50 diff --git a/tool/src/org/antlr/v4/parse/ASTVerifier.g b/tool/src/org/antlr/v4/parse/ASTVerifier.g index 45b2640d7..291ef22ad 100644 --- a/tool/src/org/antlr/v4/parse/ASTVerifier.g +++ b/tool/src/org/antlr/v4/parse/ASTVerifier.g @@ -72,13 +72,13 @@ public String getErrorMessage(RecognitionException e, { List stack = getRuleInvocationStack(e, this.getClass().getName()); String msg = null; - String inputContext = - ((CommonTree)input.LT(-3)).token+" "+ - ((CommonTree)input.LT(-2)).token+" "+ - ((CommonTree)input.LT(-1)).token+" >>>"+ - ((CommonTree)input.LT(1)).token+"<<< "+ - ((CommonTree)input.LT(2)).token+" "+ - ((CommonTree)input.LT(3)).token; + String inputContext = + input.LT(-3) == null ? "" : ((Tree)input.LT(-3)).getText()+" "+ + input.LT(-2) == null ? "" : ((Tree)input.LT(-2)).getText()+" "+ + input.LT(-1) == null ? "" : ((Tree)input.LT(-1)).getText()+" >>>"+ + input.LT(1) == null ? "" : ((Tree)input.LT(1)).getText()+"<<< "+ + input.LT(2) == null ? "" : ((Tree)input.LT(2)).getText()+" "+ + input.LT(3) == null ? "" : ((Tree)input.LT(3)).getText(); if ( e instanceof NoViableAltException ) { NoViableAltException nvae = (NoViableAltException)e; msg = " no viable alt; token="+e.token+ @@ -104,6 +104,23 @@ public void traceIn(String ruleName, int ruleIndex) { System.out.print(" backtracking="+state.backtracking); } System.out.println(); +} + protected void mismatch(IntStream input, int ttype, BitSet follow) + throws RecognitionException { + throw new MismatchedTokenException(ttype, input); + } + public void recoverFromMismatchedToken(IntStream input, + RecognitionException e, BitSet follow) + throws RecognitionException + + { + throw e; + } +} + +// Alter code generation so catch-clauses get replace with // this action. +@rulecatch { catch (RecognitionException e) { +throw e; } } diff --git a/tool/src/org/antlr/v4/parse/ASTVerifier.java b/tool/src/org/antlr/v4/parse/ASTVerifier.java index d712db827..aa466548e 100644 --- a/tool/src/org/antlr/v4/parse/ASTVerifier.java +++ b/tool/src/org/antlr/v4/parse/ASTVerifier.java @@ -1,4 +1,4 @@ -// $ANTLR ${project.version} ${buildNumber} ASTVerifier.g 2010-02-16 17:54:26 +// $ANTLR ${project.version} ${buildNumber} ASTVerifier.g 2010-02-19 17:45:08 /* [The "BSD license"] @@ -28,10 +28,10 @@ package org.antlr.v4.parse; import org.antlr.runtime.*; +import org.antlr.runtime.tree.Tree; import org.antlr.runtime.tree.TreeNodeStream; import org.antlr.runtime.tree.TreeParser; import org.antlr.runtime.tree.TreeRuleReturnScope; -import org.antlr.v4.runtime.tree.CommonTree; import org.antlr.v4.tool.GrammarAST; import java.util.List; @@ -41,15 +41,15 @@ import java.util.List; */ public class ASTVerifier extends TreeParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "SEMPRED", "FORCED_ACTION", "DOC_COMMENT", "SRC", "NLCHARS", "COMMENT", "DOUBLE_QUOTE_STRING_LITERAL", "DOUBLE_ANGLE_STRING_LITERAL", "ACTION_STRING_LITERAL", "ACTION_CHAR_LITERAL", "ARG_ACTION", "NESTED_ACTION", "ACTION", "ACTION_ESC", "WSNLCHARS", "OPTIONS", "TOKENS", "SCOPE", "IMPORT", "FRAGMENT", "LEXER", "PARSER", "TREE", "GRAMMAR", "PROTECTED", "PUBLIC", "PRIVATE", "RETURNS", "THROWS", "CATCH", "FINALLY", "TEMPLATE", "COLON", "COLONCOLON", "COMMA", "SEMI", "LPAREN", "RPAREN", "IMPLIES", "LT", "GT", "ASSIGN", "QUESTION", "BANG", "STAR", "PLUS", "PLUS_ASSIGN", "OR", "ROOT", "DOLLAR", "DOT", "RANGE", "ETC", "RARROW", "TREE_BEGIN", "AT", "NOT", "RBRACE", "TOKEN_REF", "RULE_REF", "INT", "WSCHARS", "ESC_SEQ", "STRING_LITERAL", "HEX_DIGIT", "UNICODE_ESC", "WS", "ERRCHAR", "RULE", "RULES", "RULEMODIFIERS", "RULEACTIONS", "BLOCK", "REWRITE_BLOCK", "OPTIONAL", "CLOSURE", "POSITIVE_CLOSURE", "SYNPRED", "CHAR_RANGE", "EPSILON", "ALT", "ALTLIST", "RESULT", "ID", "ARG", "ARGLIST", "RET", "COMBINED", "INITACTION", "LABEL", "GATED_SEMPRED", "SYN_SEMPRED", "BACKTRACK_SEMPRED", "WILDCARD", "LIST", "ELEMENT_OPTIONS", "ST_RESULT", "ALT_REWRITE" + "", "", "", "", "SEMPRED", "FORCED_ACTION", "DOC_COMMENT", "SRC", "NLCHARS", "COMMENT", "DOUBLE_QUOTE_STRING_LITERAL", "DOUBLE_ANGLE_STRING_LITERAL", "ACTION_STRING_LITERAL", "ACTION_CHAR_LITERAL", "ARG_ACTION", "NESTED_ACTION", "ACTION", "ACTION_ESC", "WSNLCHARS", "OPTIONS", "TOKENS", "SCOPE", "IMPORT", "FRAGMENT", "LEXER", "PARSER", "TREE", "GRAMMAR", "PROTECTED", "PUBLIC", "PRIVATE", "RETURNS", "THROWS", "CATCH", "FINALLY", "TEMPLATE", "COLON", "COLONCOLON", "COMMA", "SEMI", "LPAREN", "RPAREN", "IMPLIES", "LT", "GT", "ASSIGN", "QUESTION", "BANG", "STAR", "PLUS", "PLUS_ASSIGN", "OR", "ROOT", "DOLLAR", "DOT", "RANGE", "ETC", "RARROW", "TREE_BEGIN", "AT", "NOT", "RBRACE", "TOKEN_REF", "RULE_REF", "INT", "WSCHARS", "ESC_SEQ", "STRING_LITERAL", "HEX_DIGIT", "UNICODE_ESC", "WS", "ERRCHAR", "RULE", "RULES", "RULEMODIFIERS", "RULEACTIONS", "BLOCK", "REWRITE_BLOCK", "OPTIONAL", "CLOSURE", "POSITIVE_CLOSURE", "SYNPRED", "CHAR_RANGE", "EPSILON", "ALT", "ALTLIST", "ID", "ARG", "ARGLIST", "RET", "COMBINED", "INITACTION", "LABEL", "GATED_SEMPRED", "SYN_SEMPRED", "BACKTRACK_SEMPRED", "WILDCARD", "LIST", "ELEMENT_OPTIONS", "ST_RESULT", "RESULT", "ALT_REWRITE" }; - public static final int COMBINED=91; + public static final int COMBINED=90; public static final int LT=43; public static final int STAR=48; - public static final int BACKTRACK_SEMPRED=96; + public static final int BACKTRACK_SEMPRED=95; public static final int DOUBLE_ANGLE_STRING_LITERAL=11; public static final int FORCED_ACTION=5; - public static final int ARGLIST=89; + public static final int ARGLIST=88; public static final int ALTLIST=85; public static final int NOT=60; public static final int EOF=-1; @@ -57,12 +57,12 @@ public class ASTVerifier extends TreeParser { public static final int ACTION=16; public static final int TOKEN_REF=62; public static final int RULEMODIFIERS=74; - public static final int ST_RESULT=100; + public static final int ST_RESULT=99; public static final int RPAREN=41; - public static final int RET=90; + public static final int RET=89; public static final int IMPORT=22; public static final int STRING_LITERAL=67; - public static final int ARG=88; + public static final int ARG=87; public static final int ARG_ACTION=14; public static final int DOUBLE_QUOTE_STRING_LITERAL=10; public static final int COMMENT=9; @@ -70,7 +70,7 @@ public class ASTVerifier extends TreeParser { public static final int GRAMMAR=27; public static final int RULEACTIONS=75; public static final int WSCHARS=65; - public static final int INITACTION=92; + public static final int INITACTION=91; public static final int ALT_REWRITE=101; public static final int IMPLIES=42; public static final int RULE=72; @@ -82,7 +82,7 @@ public class ASTVerifier extends TreeParser { public static final int CHAR_RANGE=82; public static final int INT=64; public static final int EPSILON=83; - public static final int LIST=98; + public static final int LIST=97; public static final int COLONCOLON=37; public static final int WSNLCHARS=18; public static final int WS=70; @@ -94,10 +94,10 @@ public class ASTVerifier extends TreeParser { public static final int PARSER=25; public static final int DOLLAR=53; public static final int PROTECTED=28; - public static final int ELEMENT_OPTIONS=99; + public static final int ELEMENT_OPTIONS=98; public static final int NESTED_ACTION=15; public static final int FRAGMENT=23; - public static final int ID=87; + public static final int ID=86; public static final int TREE_BEGIN=58; public static final int LPAREN=40; public static final int AT=59; @@ -107,7 +107,7 @@ public class ASTVerifier extends TreeParser { public static final int SCOPE=21; public static final int ETC=56; public static final int COMMA=38; - public static final int WILDCARD=97; + public static final int WILDCARD=96; public static final int DOC_COMMENT=6; public static final int PLUS=49; public static final int REWRITE_BLOCK=77; @@ -119,8 +119,8 @@ public class ASTVerifier extends TreeParser { public static final int HEX_DIGIT=68; public static final int RANGE=55; public static final int TOKENS=20; - public static final int GATED_SEMPRED=94; - public static final int RESULT=86; + public static final int RESULT=100; + public static final int GATED_SEMPRED=93; public static final int BANG=47; public static final int ACTION_STRING_LITERAL=12; public static final int ROOT=52; @@ -133,8 +133,8 @@ public class ASTVerifier extends TreeParser { public static final int QUESTION=46; public static final int FINALLY=34; public static final int TEMPLATE=35; - public static final int LABEL=93; - public static final int SYN_SEMPRED=95; + public static final int LABEL=92; + public static final int SYN_SEMPRED=94; public static final int ERRCHAR=71; public static final int BLOCK=76; public static final int ASSIGN=45; @@ -165,13 +165,13 @@ public class ASTVerifier extends TreeParser { { List stack = getRuleInvocationStack(e, this.getClass().getName()); String msg = null; - String inputContext = - ((CommonTree)input.LT(-3)).token+" "+ - ((CommonTree)input.LT(-2)).token+" "+ - ((CommonTree)input.LT(-1)).token+" >>>"+ - ((CommonTree)input.LT(1)).token+"<<< "+ - ((CommonTree)input.LT(2)).token+" "+ - ((CommonTree)input.LT(3)).token; + String inputContext = + input.LT(-3) == null ? "" : ((Tree)input.LT(-3)).getText()+" "+ + input.LT(-2) == null ? "" : ((Tree)input.LT(-2)).getText()+" "+ + input.LT(-1) == null ? "" : ((Tree)input.LT(-1)).getText()+" >>>"+ + input.LT(1) == null ? "" : ((Tree)input.LT(1)).getText()+"<<< "+ + input.LT(2) == null ? "" : ((Tree)input.LT(2)).getText()+" "+ + input.LT(3) == null ? "" : ((Tree)input.LT(3)).getText(); if ( e instanceof NoViableAltException ) { NoViableAltException nvae = (NoViableAltException)e; msg = " no viable alt; token="+e.token+ @@ -198,21 +198,32 @@ public class ASTVerifier extends TreeParser { } System.out.println(); } + protected void mismatch(IntStream input, int ttype, BitSet follow) + throws RecognitionException { + throw new MismatchedTokenException(ttype, input); + } + public void recoverFromMismatchedToken(IntStream input, + RecognitionException e, BitSet follow) + throws RecognitionException + + { + throw e; + } // $ANTLR start "grammarSpec" - // ASTVerifier.g:110:1: grammarSpec : ^( GRAMMAR ID ( DOC_COMMENT )? ( prequelConstruct )* rules ) ; + // ASTVerifier.g:127:1: grammarSpec : ^( GRAMMAR ID ( DOC_COMMENT )? ( prequelConstruct )* rules ) ; public final void grammarSpec() throws RecognitionException { try { - // ASTVerifier.g:111:5: ( ^( GRAMMAR ID ( DOC_COMMENT )? ( prequelConstruct )* rules ) ) - // ASTVerifier.g:111:9: ^( GRAMMAR ID ( DOC_COMMENT )? ( prequelConstruct )* rules ) + // ASTVerifier.g:128:5: ( ^( GRAMMAR ID ( DOC_COMMENT )? ( prequelConstruct )* rules ) ) + // ASTVerifier.g:128:9: ^( GRAMMAR ID ( DOC_COMMENT )? ( prequelConstruct )* rules ) { - match(input,GRAMMAR,FOLLOW_GRAMMAR_in_grammarSpec74); + match(input,GRAMMAR,FOLLOW_GRAMMAR_in_grammarSpec81); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_grammarSpec76); - // ASTVerifier.g:111:22: ( DOC_COMMENT )? + match(input,ID,FOLLOW_ID_in_grammarSpec83); + // ASTVerifier.g:128:22: ( DOC_COMMENT )? int alt1=2; int LA1_0 = input.LA(1); @@ -221,16 +232,16 @@ public class ASTVerifier extends TreeParser { } switch (alt1) { case 1 : - // ASTVerifier.g:111:22: DOC_COMMENT + // ASTVerifier.g:128:22: DOC_COMMENT { - match(input,DOC_COMMENT,FOLLOW_DOC_COMMENT_in_grammarSpec78); + match(input,DOC_COMMENT,FOLLOW_DOC_COMMENT_in_grammarSpec85); } break; } - // ASTVerifier.g:111:35: ( prequelConstruct )* + // ASTVerifier.g:128:35: ( prequelConstruct )* loop2: do { int alt2=2; @@ -243,9 +254,9 @@ public class ASTVerifier extends TreeParser { switch (alt2) { case 1 : - // ASTVerifier.g:111:35: prequelConstruct + // ASTVerifier.g:128:35: prequelConstruct { - pushFollow(FOLLOW_prequelConstruct_in_grammarSpec81); + pushFollow(FOLLOW_prequelConstruct_in_grammarSpec88); prequelConstruct(); state._fsp--; @@ -259,7 +270,7 @@ public class ASTVerifier extends TreeParser { } } while (true); - pushFollow(FOLLOW_rules_in_grammarSpec84); + pushFollow(FOLLOW_rules_in_grammarSpec91); rules(); state._fsp--; @@ -270,9 +281,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -282,10 +292,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "prequelConstruct" - // ASTVerifier.g:120:1: prequelConstruct : ( optionsSpec | delegateGrammars | tokensSpec | attrScope | action ); + // ASTVerifier.g:137:1: prequelConstruct : ( optionsSpec | delegateGrammars | tokensSpec | attrScope | action ); public final void prequelConstruct() throws RecognitionException { try { - // ASTVerifier.g:121:2: ( optionsSpec | delegateGrammars | tokensSpec | attrScope | action ) + // ASTVerifier.g:138:2: ( optionsSpec | delegateGrammars | tokensSpec | attrScope | action ) int alt3=5; switch ( input.LA(1) ) { case OPTIONS: @@ -322,9 +332,9 @@ public class ASTVerifier extends TreeParser { switch (alt3) { case 1 : - // ASTVerifier.g:121:6: optionsSpec + // ASTVerifier.g:138:6: optionsSpec { - pushFollow(FOLLOW_optionsSpec_in_prequelConstruct102); + pushFollow(FOLLOW_optionsSpec_in_prequelConstruct109); optionsSpec(); state._fsp--; @@ -333,9 +343,9 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:122:9: delegateGrammars + // ASTVerifier.g:139:9: delegateGrammars { - pushFollow(FOLLOW_delegateGrammars_in_prequelConstruct112); + pushFollow(FOLLOW_delegateGrammars_in_prequelConstruct119); delegateGrammars(); state._fsp--; @@ -344,9 +354,9 @@ public class ASTVerifier extends TreeParser { } break; case 3 : - // ASTVerifier.g:123:9: tokensSpec + // ASTVerifier.g:140:9: tokensSpec { - pushFollow(FOLLOW_tokensSpec_in_prequelConstruct122); + pushFollow(FOLLOW_tokensSpec_in_prequelConstruct129); tokensSpec(); state._fsp--; @@ -355,9 +365,9 @@ public class ASTVerifier extends TreeParser { } break; case 4 : - // ASTVerifier.g:124:9: attrScope + // ASTVerifier.g:141:9: attrScope { - pushFollow(FOLLOW_attrScope_in_prequelConstruct132); + pushFollow(FOLLOW_attrScope_in_prequelConstruct139); attrScope(); state._fsp--; @@ -366,9 +376,9 @@ public class ASTVerifier extends TreeParser { } break; case 5 : - // ASTVerifier.g:125:9: action + // ASTVerifier.g:142:9: action { - pushFollow(FOLLOW_action_in_prequelConstruct142); + pushFollow(FOLLOW_action_in_prequelConstruct149); action(); state._fsp--; @@ -379,9 +389,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -391,17 +400,17 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "optionsSpec" - // ASTVerifier.g:128:1: optionsSpec : ^( OPTIONS ( option )* ) ; + // ASTVerifier.g:145:1: optionsSpec : ^( OPTIONS ( option )* ) ; public final void optionsSpec() throws RecognitionException { try { - // ASTVerifier.g:129:2: ( ^( OPTIONS ( option )* ) ) - // ASTVerifier.g:129:4: ^( OPTIONS ( option )* ) + // ASTVerifier.g:146:2: ( ^( OPTIONS ( option )* ) ) + // ASTVerifier.g:146:4: ^( OPTIONS ( option )* ) { - match(input,OPTIONS,FOLLOW_OPTIONS_in_optionsSpec157); + match(input,OPTIONS,FOLLOW_OPTIONS_in_optionsSpec164); if ( input.LA(1)==Token.DOWN ) { match(input, Token.DOWN, null); - // ASTVerifier.g:129:14: ( option )* + // ASTVerifier.g:146:14: ( option )* loop4: do { int alt4=2; @@ -414,9 +423,9 @@ public class ASTVerifier extends TreeParser { switch (alt4) { case 1 : - // ASTVerifier.g:129:14: option + // ASTVerifier.g:146:14: option { - pushFollow(FOLLOW_option_in_optionsSpec159); + pushFollow(FOLLOW_option_in_optionsSpec166); option(); state._fsp--; @@ -437,9 +446,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -449,17 +457,17 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "option" - // ASTVerifier.g:132:1: option : ^( ASSIGN ID optionValue ) ; + // ASTVerifier.g:149:1: option : ^( ASSIGN ID optionValue ) ; public final void option() throws RecognitionException { try { - // ASTVerifier.g:133:5: ( ^( ASSIGN ID optionValue ) ) - // ASTVerifier.g:133:9: ^( ASSIGN ID optionValue ) + // ASTVerifier.g:150:5: ( ^( ASSIGN ID optionValue ) ) + // ASTVerifier.g:150:9: ^( ASSIGN ID optionValue ) { - match(input,ASSIGN,FOLLOW_ASSIGN_in_option181); + match(input,ASSIGN,FOLLOW_ASSIGN_in_option188); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_option183); - pushFollow(FOLLOW_optionValue_in_option185); + match(input,ID,FOLLOW_ID_in_option190); + pushFollow(FOLLOW_optionValue_in_option192); optionValue(); state._fsp--; @@ -470,9 +478,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -485,14 +492,14 @@ public class ASTVerifier extends TreeParser { }; // $ANTLR start "optionValue" - // ASTVerifier.g:136:1: optionValue returns [String v] : ( ID | STRING_LITERAL | INT | STAR ); + // ASTVerifier.g:153:1: optionValue returns [String v] : ( ID | STRING_LITERAL | INT | STAR ); public final ASTVerifier.optionValue_return optionValue() throws RecognitionException { ASTVerifier.optionValue_return retval = new ASTVerifier.optionValue_return(); retval.start = input.LT(1); retval.v = ((GrammarAST)retval.start).token.getText(); try { - // ASTVerifier.g:138:5: ( ID | STRING_LITERAL | INT | STAR ) + // ASTVerifier.g:155:5: ( ID | STRING_LITERAL | INT | STAR ) // ASTVerifier.g: { if ( input.LA(1)==STAR||input.LA(1)==INT||input.LA(1)==STRING_LITERAL||input.LA(1)==ID ) { @@ -508,9 +515,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -520,16 +526,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "delegateGrammars" - // ASTVerifier.g:144:1: delegateGrammars : ^( IMPORT ( delegateGrammar )+ ) ; + // ASTVerifier.g:161:1: delegateGrammars : ^( IMPORT ( delegateGrammar )+ ) ; public final void delegateGrammars() throws RecognitionException { try { - // ASTVerifier.g:145:2: ( ^( IMPORT ( delegateGrammar )+ ) ) - // ASTVerifier.g:145:6: ^( IMPORT ( delegateGrammar )+ ) + // ASTVerifier.g:162:2: ( ^( IMPORT ( delegateGrammar )+ ) ) + // ASTVerifier.g:162:6: ^( IMPORT ( delegateGrammar )+ ) { - match(input,IMPORT,FOLLOW_IMPORT_in_delegateGrammars270); + match(input,IMPORT,FOLLOW_IMPORT_in_delegateGrammars277); match(input, Token.DOWN, null); - // ASTVerifier.g:145:15: ( delegateGrammar )+ + // ASTVerifier.g:162:15: ( delegateGrammar )+ int cnt5=0; loop5: do { @@ -543,9 +549,9 @@ public class ASTVerifier extends TreeParser { switch (alt5) { case 1 : - // ASTVerifier.g:145:15: delegateGrammar + // ASTVerifier.g:162:15: delegateGrammar { - pushFollow(FOLLOW_delegateGrammar_in_delegateGrammars272); + pushFollow(FOLLOW_delegateGrammar_in_delegateGrammars279); delegateGrammar(); state._fsp--; @@ -569,9 +575,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -581,10 +586,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "delegateGrammar" - // ASTVerifier.g:148:1: delegateGrammar : ( ^( ASSIGN ID ID ) | ID ); + // ASTVerifier.g:165:1: delegateGrammar : ( ^( ASSIGN ID ID ) | ID ); public final void delegateGrammar() throws RecognitionException { try { - // ASTVerifier.g:149:5: ( ^( ASSIGN ID ID ) | ID ) + // ASTVerifier.g:166:5: ( ^( ASSIGN ID ID ) | ID ) int alt6=2; int LA6_0 = input.LA(1); @@ -602,31 +607,30 @@ public class ASTVerifier extends TreeParser { } switch (alt6) { case 1 : - // ASTVerifier.g:149:9: ^( ASSIGN ID ID ) + // ASTVerifier.g:166:9: ^( ASSIGN ID ID ) { - match(input,ASSIGN,FOLLOW_ASSIGN_in_delegateGrammar291); + match(input,ASSIGN,FOLLOW_ASSIGN_in_delegateGrammar298); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_delegateGrammar293); - match(input,ID,FOLLOW_ID_in_delegateGrammar295); + match(input,ID,FOLLOW_ID_in_delegateGrammar300); + match(input,ID,FOLLOW_ID_in_delegateGrammar302); match(input, Token.UP, null); } break; case 2 : - // ASTVerifier.g:150:9: ID + // ASTVerifier.g:167:9: ID { - match(input,ID,FOLLOW_ID_in_delegateGrammar306); + match(input,ID,FOLLOW_ID_in_delegateGrammar313); } break; } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -636,16 +640,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "tokensSpec" - // ASTVerifier.g:153:1: tokensSpec : ^( TOKENS ( tokenSpec )+ ) ; + // ASTVerifier.g:170:1: tokensSpec : ^( TOKENS ( tokenSpec )+ ) ; public final void tokensSpec() throws RecognitionException { try { - // ASTVerifier.g:154:2: ( ^( TOKENS ( tokenSpec )+ ) ) - // ASTVerifier.g:154:6: ^( TOKENS ( tokenSpec )+ ) + // ASTVerifier.g:171:2: ( ^( TOKENS ( tokenSpec )+ ) ) + // ASTVerifier.g:171:6: ^( TOKENS ( tokenSpec )+ ) { - match(input,TOKENS,FOLLOW_TOKENS_in_tokensSpec323); + match(input,TOKENS,FOLLOW_TOKENS_in_tokensSpec330); match(input, Token.DOWN, null); - // ASTVerifier.g:154:15: ( tokenSpec )+ + // ASTVerifier.g:171:15: ( tokenSpec )+ int cnt7=0; loop7: do { @@ -659,9 +663,9 @@ public class ASTVerifier extends TreeParser { switch (alt7) { case 1 : - // ASTVerifier.g:154:15: tokenSpec + // ASTVerifier.g:171:15: tokenSpec { - pushFollow(FOLLOW_tokenSpec_in_tokensSpec325); + pushFollow(FOLLOW_tokenSpec_in_tokensSpec332); tokenSpec(); state._fsp--; @@ -685,9 +689,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -697,10 +700,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "tokenSpec" - // ASTVerifier.g:157:1: tokenSpec : ( ^( ASSIGN ID STRING_LITERAL ) | ID ); + // ASTVerifier.g:174:1: tokenSpec : ( ^( ASSIGN ID STRING_LITERAL ) | ID ); public final void tokenSpec() throws RecognitionException { try { - // ASTVerifier.g:158:2: ( ^( ASSIGN ID STRING_LITERAL ) | ID ) + // ASTVerifier.g:175:2: ( ^( ASSIGN ID STRING_LITERAL ) | ID ) int alt8=2; int LA8_0 = input.LA(1); @@ -718,31 +721,30 @@ public class ASTVerifier extends TreeParser { } switch (alt8) { case 1 : - // ASTVerifier.g:158:4: ^( ASSIGN ID STRING_LITERAL ) + // ASTVerifier.g:175:4: ^( ASSIGN ID STRING_LITERAL ) { - match(input,ASSIGN,FOLLOW_ASSIGN_in_tokenSpec339); + match(input,ASSIGN,FOLLOW_ASSIGN_in_tokenSpec346); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_tokenSpec341); - match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_tokenSpec343); + match(input,ID,FOLLOW_ID_in_tokenSpec348); + match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_tokenSpec350); match(input, Token.UP, null); } break; case 2 : - // ASTVerifier.g:159:4: ID + // ASTVerifier.g:176:4: ID { - match(input,ID,FOLLOW_ID_in_tokenSpec349); + match(input,ID,FOLLOW_ID_in_tokenSpec356); } break; } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -752,26 +754,25 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "attrScope" - // ASTVerifier.g:162:1: attrScope : ^( SCOPE ID ACTION ) ; + // ASTVerifier.g:179:1: attrScope : ^( SCOPE ID ACTION ) ; public final void attrScope() throws RecognitionException { try { - // ASTVerifier.g:163:2: ( ^( SCOPE ID ACTION ) ) - // ASTVerifier.g:163:4: ^( SCOPE ID ACTION ) + // ASTVerifier.g:180:2: ( ^( SCOPE ID ACTION ) ) + // ASTVerifier.g:180:4: ^( SCOPE ID ACTION ) { - match(input,SCOPE,FOLLOW_SCOPE_in_attrScope361); + match(input,SCOPE,FOLLOW_SCOPE_in_attrScope368); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_attrScope363); - match(input,ACTION,FOLLOW_ACTION_in_attrScope365); + match(input,ID,FOLLOW_ID_in_attrScope370); + match(input,ACTION,FOLLOW_ACTION_in_attrScope372); match(input, Token.UP, null); } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -781,16 +782,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "action" - // ASTVerifier.g:166:1: action : ^( AT ( ID )? ID ACTION ) ; + // ASTVerifier.g:183:1: action : ^( AT ( ID )? ID ACTION ) ; public final void action() throws RecognitionException { try { - // ASTVerifier.g:167:2: ( ^( AT ( ID )? ID ACTION ) ) - // ASTVerifier.g:167:4: ^( AT ( ID )? ID ACTION ) + // ASTVerifier.g:184:2: ( ^( AT ( ID )? ID ACTION ) ) + // ASTVerifier.g:184:4: ^( AT ( ID )? ID ACTION ) { - match(input,AT,FOLLOW_AT_in_action378); + match(input,AT,FOLLOW_AT_in_action385); match(input, Token.DOWN, null); - // ASTVerifier.g:167:9: ( ID )? + // ASTVerifier.g:184:9: ( ID )? int alt9=2; int LA9_0 = input.LA(1); @@ -803,26 +804,25 @@ public class ASTVerifier extends TreeParser { } switch (alt9) { case 1 : - // ASTVerifier.g:167:9: ID + // ASTVerifier.g:184:9: ID { - match(input,ID,FOLLOW_ID_in_action380); + match(input,ID,FOLLOW_ID_in_action387); } break; } - match(input,ID,FOLLOW_ID_in_action383); - match(input,ACTION,FOLLOW_ACTION_in_action385); + match(input,ID,FOLLOW_ID_in_action390); + match(input,ACTION,FOLLOW_ACTION_in_action392); match(input, Token.UP, null); } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -832,17 +832,17 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rules" - // ASTVerifier.g:170:1: rules : ^( RULES ( rule )* ) ; + // ASTVerifier.g:187:1: rules : ^( RULES ( rule )* ) ; public final void rules() throws RecognitionException { try { - // ASTVerifier.g:171:5: ( ^( RULES ( rule )* ) ) - // ASTVerifier.g:171:7: ^( RULES ( rule )* ) + // ASTVerifier.g:188:5: ( ^( RULES ( rule )* ) ) + // ASTVerifier.g:188:7: ^( RULES ( rule )* ) { - match(input,RULES,FOLLOW_RULES_in_rules401); + match(input,RULES,FOLLOW_RULES_in_rules408); if ( input.LA(1)==Token.DOWN ) { match(input, Token.DOWN, null); - // ASTVerifier.g:171:15: ( rule )* + // ASTVerifier.g:188:15: ( rule )* loop10: do { int alt10=2; @@ -855,9 +855,9 @@ public class ASTVerifier extends TreeParser { switch (alt10) { case 1 : - // ASTVerifier.g:171:15: rule + // ASTVerifier.g:188:15: rule { - pushFollow(FOLLOW_rule_in_rules403); + pushFollow(FOLLOW_rule_in_rules410); rule(); state._fsp--; @@ -878,9 +878,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -890,17 +889,17 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rule" - // ASTVerifier.g:174:1: rule : ^( RULE ID ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* altListAsBlock exceptionGroup ) ; + // ASTVerifier.g:191:1: rule : ^( RULE ID ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* altListAsBlock exceptionGroup ) ; public final void rule() throws RecognitionException { try { - // ASTVerifier.g:174:5: ( ^( RULE ID ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* altListAsBlock exceptionGroup ) ) - // ASTVerifier.g:174:9: ^( RULE ID ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* altListAsBlock exceptionGroup ) + // ASTVerifier.g:191:5: ( ^( RULE ID ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* altListAsBlock exceptionGroup ) ) + // ASTVerifier.g:191:9: ^( RULE ID ( DOC_COMMENT )? ( ruleModifiers )? ( ARG_ACTION )? ( ruleReturns )? ( rulePrequel )* altListAsBlock exceptionGroup ) { - match(input,RULE,FOLLOW_RULE_in_rule421); + match(input,RULE,FOLLOW_RULE_in_rule428); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_rule423); - // ASTVerifier.g:174:20: ( DOC_COMMENT )? + match(input,ID,FOLLOW_ID_in_rule430); + // ASTVerifier.g:191:20: ( DOC_COMMENT )? int alt11=2; int LA11_0 = input.LA(1); @@ -909,16 +908,16 @@ public class ASTVerifier extends TreeParser { } switch (alt11) { case 1 : - // ASTVerifier.g:174:20: DOC_COMMENT + // ASTVerifier.g:191:20: DOC_COMMENT { - match(input,DOC_COMMENT,FOLLOW_DOC_COMMENT_in_rule425); + match(input,DOC_COMMENT,FOLLOW_DOC_COMMENT_in_rule432); } break; } - // ASTVerifier.g:174:33: ( ruleModifiers )? + // ASTVerifier.g:191:33: ( ruleModifiers )? int alt12=2; int LA12_0 = input.LA(1); @@ -927,9 +926,9 @@ public class ASTVerifier extends TreeParser { } switch (alt12) { case 1 : - // ASTVerifier.g:174:33: ruleModifiers + // ASTVerifier.g:191:33: ruleModifiers { - pushFollow(FOLLOW_ruleModifiers_in_rule428); + pushFollow(FOLLOW_ruleModifiers_in_rule435); ruleModifiers(); state._fsp--; @@ -940,7 +939,7 @@ public class ASTVerifier extends TreeParser { } - // ASTVerifier.g:174:48: ( ARG_ACTION )? + // ASTVerifier.g:191:48: ( ARG_ACTION )? int alt13=2; int LA13_0 = input.LA(1); @@ -949,16 +948,16 @@ public class ASTVerifier extends TreeParser { } switch (alt13) { case 1 : - // ASTVerifier.g:174:48: ARG_ACTION + // ASTVerifier.g:191:48: ARG_ACTION { - match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_rule431); + match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_rule438); } break; } - // ASTVerifier.g:175:11: ( ruleReturns )? + // ASTVerifier.g:192:11: ( ruleReturns )? int alt14=2; int LA14_0 = input.LA(1); @@ -967,9 +966,9 @@ public class ASTVerifier extends TreeParser { } switch (alt14) { case 1 : - // ASTVerifier.g:175:11: ruleReturns + // ASTVerifier.g:192:11: ruleReturns { - pushFollow(FOLLOW_ruleReturns_in_rule444); + pushFollow(FOLLOW_ruleReturns_in_rule451); ruleReturns(); state._fsp--; @@ -980,7 +979,7 @@ public class ASTVerifier extends TreeParser { } - // ASTVerifier.g:175:24: ( rulePrequel )* + // ASTVerifier.g:192:24: ( rulePrequel )* loop15: do { int alt15=2; @@ -993,9 +992,9 @@ public class ASTVerifier extends TreeParser { switch (alt15) { case 1 : - // ASTVerifier.g:175:24: rulePrequel + // ASTVerifier.g:192:24: rulePrequel { - pushFollow(FOLLOW_rulePrequel_in_rule447); + pushFollow(FOLLOW_rulePrequel_in_rule454); rulePrequel(); state._fsp--; @@ -1009,12 +1008,12 @@ public class ASTVerifier extends TreeParser { } } while (true); - pushFollow(FOLLOW_altListAsBlock_in_rule450); + pushFollow(FOLLOW_altListAsBlock_in_rule457); altListAsBlock(); state._fsp--; - pushFollow(FOLLOW_exceptionGroup_in_rule452); + pushFollow(FOLLOW_exceptionGroup_in_rule459); exceptionGroup(); state._fsp--; @@ -1025,9 +1024,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1037,13 +1035,13 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "exceptionGroup" - // ASTVerifier.g:179:1: exceptionGroup : ( exceptionHandler )* ( finallyClause )? ; + // ASTVerifier.g:196:1: exceptionGroup : ( exceptionHandler )* ( finallyClause )? ; public final void exceptionGroup() throws RecognitionException { try { - // ASTVerifier.g:180:5: ( ( exceptionHandler )* ( finallyClause )? ) - // ASTVerifier.g:180:7: ( exceptionHandler )* ( finallyClause )? + // ASTVerifier.g:197:5: ( ( exceptionHandler )* ( finallyClause )? ) + // ASTVerifier.g:197:7: ( exceptionHandler )* ( finallyClause )? { - // ASTVerifier.g:180:7: ( exceptionHandler )* + // ASTVerifier.g:197:7: ( exceptionHandler )* loop16: do { int alt16=2; @@ -1056,9 +1054,9 @@ public class ASTVerifier extends TreeParser { switch (alt16) { case 1 : - // ASTVerifier.g:180:7: exceptionHandler + // ASTVerifier.g:197:7: exceptionHandler { - pushFollow(FOLLOW_exceptionHandler_in_exceptionGroup479); + pushFollow(FOLLOW_exceptionHandler_in_exceptionGroup486); exceptionHandler(); state._fsp--; @@ -1072,7 +1070,7 @@ public class ASTVerifier extends TreeParser { } } while (true); - // ASTVerifier.g:180:25: ( finallyClause )? + // ASTVerifier.g:197:25: ( finallyClause )? int alt17=2; int LA17_0 = input.LA(1); @@ -1081,9 +1079,9 @@ public class ASTVerifier extends TreeParser { } switch (alt17) { case 1 : - // ASTVerifier.g:180:25: finallyClause + // ASTVerifier.g:197:25: finallyClause { - pushFollow(FOLLOW_finallyClause_in_exceptionGroup482); + pushFollow(FOLLOW_finallyClause_in_exceptionGroup489); finallyClause(); state._fsp--; @@ -1098,9 +1096,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1110,26 +1107,25 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "exceptionHandler" - // ASTVerifier.g:183:1: exceptionHandler : ^( CATCH ARG_ACTION ACTION ) ; + // ASTVerifier.g:200:1: exceptionHandler : ^( CATCH ARG_ACTION ACTION ) ; public final void exceptionHandler() throws RecognitionException { try { - // ASTVerifier.g:184:2: ( ^( CATCH ARG_ACTION ACTION ) ) - // ASTVerifier.g:184:4: ^( CATCH ARG_ACTION ACTION ) + // ASTVerifier.g:201:2: ( ^( CATCH ARG_ACTION ACTION ) ) + // ASTVerifier.g:201:4: ^( CATCH ARG_ACTION ACTION ) { - match(input,CATCH,FOLLOW_CATCH_in_exceptionHandler498); + match(input,CATCH,FOLLOW_CATCH_in_exceptionHandler505); match(input, Token.DOWN, null); - match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_exceptionHandler500); - match(input,ACTION,FOLLOW_ACTION_in_exceptionHandler502); + match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_exceptionHandler507); + match(input,ACTION,FOLLOW_ACTION_in_exceptionHandler509); match(input, Token.UP, null); } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1139,25 +1135,24 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "finallyClause" - // ASTVerifier.g:187:1: finallyClause : ^( FINALLY ACTION ) ; + // ASTVerifier.g:204:1: finallyClause : ^( FINALLY ACTION ) ; public final void finallyClause() throws RecognitionException { try { - // ASTVerifier.g:188:2: ( ^( FINALLY ACTION ) ) - // ASTVerifier.g:188:4: ^( FINALLY ACTION ) + // ASTVerifier.g:205:2: ( ^( FINALLY ACTION ) ) + // ASTVerifier.g:205:4: ^( FINALLY ACTION ) { - match(input,FINALLY,FOLLOW_FINALLY_in_finallyClause515); + match(input,FINALLY,FOLLOW_FINALLY_in_finallyClause522); match(input, Token.DOWN, null); - match(input,ACTION,FOLLOW_ACTION_in_finallyClause517); + match(input,ACTION,FOLLOW_ACTION_in_finallyClause524); match(input, Token.UP, null); } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1167,10 +1162,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rulePrequel" - // ASTVerifier.g:191:1: rulePrequel : ( throwsSpec | ruleScopeSpec | optionsSpec | ruleAction ); + // ASTVerifier.g:208:1: rulePrequel : ( throwsSpec | ruleScopeSpec | optionsSpec | ruleAction ); public final void rulePrequel() throws RecognitionException { try { - // ASTVerifier.g:192:5: ( throwsSpec | ruleScopeSpec | optionsSpec | ruleAction ) + // ASTVerifier.g:209:5: ( throwsSpec | ruleScopeSpec | optionsSpec | ruleAction ) int alt18=4; switch ( input.LA(1) ) { case THROWS: @@ -1202,9 +1197,9 @@ public class ASTVerifier extends TreeParser { switch (alt18) { case 1 : - // ASTVerifier.g:192:9: throwsSpec + // ASTVerifier.g:209:9: throwsSpec { - pushFollow(FOLLOW_throwsSpec_in_rulePrequel534); + pushFollow(FOLLOW_throwsSpec_in_rulePrequel541); throwsSpec(); state._fsp--; @@ -1213,9 +1208,9 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:193:9: ruleScopeSpec + // ASTVerifier.g:210:9: ruleScopeSpec { - pushFollow(FOLLOW_ruleScopeSpec_in_rulePrequel544); + pushFollow(FOLLOW_ruleScopeSpec_in_rulePrequel551); ruleScopeSpec(); state._fsp--; @@ -1224,9 +1219,9 @@ public class ASTVerifier extends TreeParser { } break; case 3 : - // ASTVerifier.g:194:9: optionsSpec + // ASTVerifier.g:211:9: optionsSpec { - pushFollow(FOLLOW_optionsSpec_in_rulePrequel554); + pushFollow(FOLLOW_optionsSpec_in_rulePrequel561); optionsSpec(); state._fsp--; @@ -1235,9 +1230,9 @@ public class ASTVerifier extends TreeParser { } break; case 4 : - // ASTVerifier.g:195:9: ruleAction + // ASTVerifier.g:212:9: ruleAction { - pushFollow(FOLLOW_ruleAction_in_rulePrequel564); + pushFollow(FOLLOW_ruleAction_in_rulePrequel571); ruleAction(); state._fsp--; @@ -1248,9 +1243,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1260,25 +1254,24 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "ruleReturns" - // ASTVerifier.g:198:1: ruleReturns : ^( RETURNS ARG_ACTION ) ; + // ASTVerifier.g:215:1: ruleReturns : ^( RETURNS ARG_ACTION ) ; public final void ruleReturns() throws RecognitionException { try { - // ASTVerifier.g:199:2: ( ^( RETURNS ARG_ACTION ) ) - // ASTVerifier.g:199:4: ^( RETURNS ARG_ACTION ) + // ASTVerifier.g:216:2: ( ^( RETURNS ARG_ACTION ) ) + // ASTVerifier.g:216:4: ^( RETURNS ARG_ACTION ) { - match(input,RETURNS,FOLLOW_RETURNS_in_ruleReturns579); + match(input,RETURNS,FOLLOW_RETURNS_in_ruleReturns586); match(input, Token.DOWN, null); - match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleReturns581); + match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleReturns588); match(input, Token.UP, null); } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1288,16 +1281,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "throwsSpec" - // ASTVerifier.g:201:1: throwsSpec : ^( THROWS ( ID )+ ) ; + // ASTVerifier.g:218:1: throwsSpec : ^( THROWS ( ID )+ ) ; public final void throwsSpec() throws RecognitionException { try { - // ASTVerifier.g:202:5: ( ^( THROWS ( ID )+ ) ) - // ASTVerifier.g:202:7: ^( THROWS ( ID )+ ) + // ASTVerifier.g:219:5: ( ^( THROWS ( ID )+ ) ) + // ASTVerifier.g:219:7: ^( THROWS ( ID )+ ) { - match(input,THROWS,FOLLOW_THROWS_in_throwsSpec596); + match(input,THROWS,FOLLOW_THROWS_in_throwsSpec603); match(input, Token.DOWN, null); - // ASTVerifier.g:202:16: ( ID )+ + // ASTVerifier.g:219:16: ( ID )+ int cnt19=0; loop19: do { @@ -1311,9 +1304,9 @@ public class ASTVerifier extends TreeParser { switch (alt19) { case 1 : - // ASTVerifier.g:202:16: ID + // ASTVerifier.g:219:16: ID { - match(input,ID,FOLLOW_ID_in_throwsSpec598); + match(input,ID,FOLLOW_ID_in_throwsSpec605); } break; @@ -1333,9 +1326,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1345,10 +1337,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "ruleScopeSpec" - // ASTVerifier.g:205:1: ruleScopeSpec : ( ^( SCOPE ACTION ) | ^( SCOPE ( ID )+ ) ); + // ASTVerifier.g:222:1: ruleScopeSpec : ( ^( SCOPE ACTION ) | ^( SCOPE ( ID )+ ) ); public final void ruleScopeSpec() throws RecognitionException { try { - // ASTVerifier.g:206:2: ( ^( SCOPE ACTION ) | ^( SCOPE ( ID )+ ) ) + // ASTVerifier.g:223:2: ( ^( SCOPE ACTION ) | ^( SCOPE ( ID )+ ) ) int alt21=2; int LA21_0 = input.LA(1); @@ -1386,24 +1378,24 @@ public class ASTVerifier extends TreeParser { } switch (alt21) { case 1 : - // ASTVerifier.g:206:4: ^( SCOPE ACTION ) + // ASTVerifier.g:223:4: ^( SCOPE ACTION ) { - match(input,SCOPE,FOLLOW_SCOPE_in_ruleScopeSpec615); + match(input,SCOPE,FOLLOW_SCOPE_in_ruleScopeSpec622); match(input, Token.DOWN, null); - match(input,ACTION,FOLLOW_ACTION_in_ruleScopeSpec617); + match(input,ACTION,FOLLOW_ACTION_in_ruleScopeSpec624); match(input, Token.UP, null); } break; case 2 : - // ASTVerifier.g:207:4: ^( SCOPE ( ID )+ ) + // ASTVerifier.g:224:4: ^( SCOPE ( ID )+ ) { - match(input,SCOPE,FOLLOW_SCOPE_in_ruleScopeSpec624); + match(input,SCOPE,FOLLOW_SCOPE_in_ruleScopeSpec631); match(input, Token.DOWN, null); - // ASTVerifier.g:207:12: ( ID )+ + // ASTVerifier.g:224:12: ( ID )+ int cnt20=0; loop20: do { @@ -1417,9 +1409,9 @@ public class ASTVerifier extends TreeParser { switch (alt20) { case 1 : - // ASTVerifier.g:207:12: ID + // ASTVerifier.g:224:12: ID { - match(input,ID,FOLLOW_ID_in_ruleScopeSpec626); + match(input,ID,FOLLOW_ID_in_ruleScopeSpec633); } break; @@ -1441,9 +1433,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1453,26 +1444,25 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "ruleAction" - // ASTVerifier.g:210:1: ruleAction : ^( AT ID ACTION ) ; + // ASTVerifier.g:227:1: ruleAction : ^( AT ID ACTION ) ; public final void ruleAction() throws RecognitionException { try { - // ASTVerifier.g:211:2: ( ^( AT ID ACTION ) ) - // ASTVerifier.g:211:4: ^( AT ID ACTION ) + // ASTVerifier.g:228:2: ( ^( AT ID ACTION ) ) + // ASTVerifier.g:228:4: ^( AT ID ACTION ) { - match(input,AT,FOLLOW_AT_in_ruleAction640); + match(input,AT,FOLLOW_AT_in_ruleAction647); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_ruleAction642); - match(input,ACTION,FOLLOW_ACTION_in_ruleAction644); + match(input,ID,FOLLOW_ID_in_ruleAction649); + match(input,ACTION,FOLLOW_ACTION_in_ruleAction651); match(input, Token.UP, null); } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1482,16 +1472,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "ruleModifiers" - // ASTVerifier.g:214:1: ruleModifiers : ^( RULEMODIFIERS ( ruleModifier )+ ) ; + // ASTVerifier.g:231:1: ruleModifiers : ^( RULEMODIFIERS ( ruleModifier )+ ) ; public final void ruleModifiers() throws RecognitionException { try { - // ASTVerifier.g:215:5: ( ^( RULEMODIFIERS ( ruleModifier )+ ) ) - // ASTVerifier.g:215:7: ^( RULEMODIFIERS ( ruleModifier )+ ) + // ASTVerifier.g:232:5: ( ^( RULEMODIFIERS ( ruleModifier )+ ) ) + // ASTVerifier.g:232:7: ^( RULEMODIFIERS ( ruleModifier )+ ) { - match(input,RULEMODIFIERS,FOLLOW_RULEMODIFIERS_in_ruleModifiers660); + match(input,RULEMODIFIERS,FOLLOW_RULEMODIFIERS_in_ruleModifiers667); match(input, Token.DOWN, null); - // ASTVerifier.g:215:23: ( ruleModifier )+ + // ASTVerifier.g:232:23: ( ruleModifier )+ int cnt22=0; loop22: do { @@ -1505,9 +1495,9 @@ public class ASTVerifier extends TreeParser { switch (alt22) { case 1 : - // ASTVerifier.g:215:23: ruleModifier + // ASTVerifier.g:232:23: ruleModifier { - pushFollow(FOLLOW_ruleModifier_in_ruleModifiers662); + pushFollow(FOLLOW_ruleModifier_in_ruleModifiers669); ruleModifier(); state._fsp--; @@ -1531,9 +1521,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1543,10 +1532,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "ruleModifier" - // ASTVerifier.g:218:1: ruleModifier : ( PUBLIC | PRIVATE | PROTECTED | FRAGMENT ); + // ASTVerifier.g:235:1: ruleModifier : ( PUBLIC | PRIVATE | PROTECTED | FRAGMENT ); public final void ruleModifier() throws RecognitionException { try { - // ASTVerifier.g:219:5: ( PUBLIC | PRIVATE | PROTECTED | FRAGMENT ) + // ASTVerifier.g:236:5: ( PUBLIC | PRIVATE | PROTECTED | FRAGMENT ) // ASTVerifier.g: { if ( input.LA(1)==FRAGMENT||(input.LA(1)>=PROTECTED && input.LA(1)<=PRIVATE) ) { @@ -1562,9 +1551,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1574,13 +1562,13 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "altList" - // ASTVerifier.g:225:1: altList : ( alternative )+ ; + // ASTVerifier.g:242:1: altList : ( alternative )+ ; public final void altList() throws RecognitionException { try { - // ASTVerifier.g:226:5: ( ( alternative )+ ) - // ASTVerifier.g:226:7: ( alternative )+ + // ASTVerifier.g:243:5: ( ( alternative )+ ) + // ASTVerifier.g:243:7: ( alternative )+ { - // ASTVerifier.g:226:7: ( alternative )+ + // ASTVerifier.g:243:7: ( alternative )+ int cnt23=0; loop23: do { @@ -1594,9 +1582,9 @@ public class ASTVerifier extends TreeParser { switch (alt23) { case 1 : - // ASTVerifier.g:226:7: alternative + // ASTVerifier.g:243:7: alternative { - pushFollow(FOLLOW_alternative_in_altList722); + pushFollow(FOLLOW_alternative_in_altList729); alternative(); state._fsp--; @@ -1618,9 +1606,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1630,16 +1617,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "altListAsBlock" - // ASTVerifier.g:229:1: altListAsBlock : ^( BLOCK altList ) ; + // ASTVerifier.g:246:1: altListAsBlock : ^( BLOCK altList ) ; public final void altListAsBlock() throws RecognitionException { try { - // ASTVerifier.g:230:5: ( ^( BLOCK altList ) ) - // ASTVerifier.g:230:7: ^( BLOCK altList ) + // ASTVerifier.g:247:5: ( ^( BLOCK altList ) ) + // ASTVerifier.g:247:7: ^( BLOCK altList ) { - match(input,BLOCK,FOLLOW_BLOCK_in_altListAsBlock741); + match(input,BLOCK,FOLLOW_BLOCK_in_altListAsBlock748); match(input, Token.DOWN, null); - pushFollow(FOLLOW_altList_in_altListAsBlock743); + pushFollow(FOLLOW_altList_in_altListAsBlock750); altList(); state._fsp--; @@ -1650,9 +1637,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1662,10 +1648,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "alternative" - // ASTVerifier.g:233:1: alternative : ( ^( ALT_REWRITE alternative rewrite ) | ^( ALT EPSILON ) | elements ); + // ASTVerifier.g:250:1: alternative : ( ^( ALT_REWRITE alternative rewrite ) | ^( ALT EPSILON ) | elements ); public final void alternative() throws RecognitionException { try { - // ASTVerifier.g:234:5: ( ^( ALT_REWRITE alternative rewrite ) | ^( ALT EPSILON ) | elements ) + // ASTVerifier.g:251:5: ( ^( ALT_REWRITE alternative rewrite ) | ^( ALT EPSILON ) | elements ) int alt24=3; int LA24_0 = input.LA(1); @@ -1706,17 +1692,17 @@ public class ASTVerifier extends TreeParser { } switch (alt24) { case 1 : - // ASTVerifier.g:234:7: ^( ALT_REWRITE alternative rewrite ) + // ASTVerifier.g:251:7: ^( ALT_REWRITE alternative rewrite ) { - match(input,ALT_REWRITE,FOLLOW_ALT_REWRITE_in_alternative762); + match(input,ALT_REWRITE,FOLLOW_ALT_REWRITE_in_alternative769); match(input, Token.DOWN, null); - pushFollow(FOLLOW_alternative_in_alternative764); + pushFollow(FOLLOW_alternative_in_alternative771); alternative(); state._fsp--; - pushFollow(FOLLOW_rewrite_in_alternative766); + pushFollow(FOLLOW_rewrite_in_alternative773); rewrite(); state._fsp--; @@ -1727,21 +1713,21 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:235:7: ^( ALT EPSILON ) + // ASTVerifier.g:252:7: ^( ALT EPSILON ) { - match(input,ALT,FOLLOW_ALT_in_alternative776); + match(input,ALT,FOLLOW_ALT_in_alternative783); match(input, Token.DOWN, null); - match(input,EPSILON,FOLLOW_EPSILON_in_alternative778); + match(input,EPSILON,FOLLOW_EPSILON_in_alternative785); match(input, Token.UP, null); } break; case 3 : - // ASTVerifier.g:236:9: elements + // ASTVerifier.g:253:9: elements { - pushFollow(FOLLOW_elements_in_alternative789); + pushFollow(FOLLOW_elements_in_alternative796); elements(); state._fsp--; @@ -1752,9 +1738,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1764,16 +1749,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "elements" - // ASTVerifier.g:239:1: elements : ^( ALT ( element )+ ) ; + // ASTVerifier.g:256:1: elements : ^( ALT ( element )+ ) ; public final void elements() throws RecognitionException { try { - // ASTVerifier.g:240:5: ( ^( ALT ( element )+ ) ) - // ASTVerifier.g:240:7: ^( ALT ( element )+ ) + // ASTVerifier.g:257:5: ( ^( ALT ( element )+ ) ) + // ASTVerifier.g:257:7: ^( ALT ( element )+ ) { - match(input,ALT,FOLLOW_ALT_in_elements807); + match(input,ALT,FOLLOW_ALT_in_elements814); match(input, Token.DOWN, null); - // ASTVerifier.g:240:13: ( element )+ + // ASTVerifier.g:257:13: ( element )+ int cnt25=0; loop25: do { @@ -1787,9 +1772,9 @@ public class ASTVerifier extends TreeParser { switch (alt25) { case 1 : - // ASTVerifier.g:240:13: element + // ASTVerifier.g:257:13: element { - pushFollow(FOLLOW_element_in_elements809); + pushFollow(FOLLOW_element_in_elements816); element(); state._fsp--; @@ -1813,9 +1798,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1825,17 +1809,17 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "element" - // ASTVerifier.g:243:1: element : ( labeledElement | atom | ebnf | ACTION | SEMPRED | GATED_SEMPRED | treeSpec ); + // ASTVerifier.g:260:1: element : ( labeledElement | atom | ebnf | ACTION | SEMPRED | GATED_SEMPRED | treeSpec ); public final void element() throws RecognitionException { try { - // ASTVerifier.g:244:2: ( labeledElement | atom | ebnf | ACTION | SEMPRED | GATED_SEMPRED | treeSpec ) + // ASTVerifier.g:261:2: ( labeledElement | atom | ebnf | ACTION | SEMPRED | GATED_SEMPRED | treeSpec ) int alt26=7; alt26 = dfa26.predict(input); switch (alt26) { case 1 : - // ASTVerifier.g:244:4: labeledElement + // ASTVerifier.g:261:4: labeledElement { - pushFollow(FOLLOW_labeledElement_in_element825); + pushFollow(FOLLOW_labeledElement_in_element832); labeledElement(); state._fsp--; @@ -1844,9 +1828,9 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:245:4: atom + // ASTVerifier.g:262:4: atom { - pushFollow(FOLLOW_atom_in_element830); + pushFollow(FOLLOW_atom_in_element837); atom(); state._fsp--; @@ -1855,9 +1839,9 @@ public class ASTVerifier extends TreeParser { } break; case 3 : - // ASTVerifier.g:246:4: ebnf + // ASTVerifier.g:263:4: ebnf { - pushFollow(FOLLOW_ebnf_in_element835); + pushFollow(FOLLOW_ebnf_in_element842); ebnf(); state._fsp--; @@ -1866,30 +1850,30 @@ public class ASTVerifier extends TreeParser { } break; case 4 : - // ASTVerifier.g:247:6: ACTION + // ASTVerifier.g:264:6: ACTION { - match(input,ACTION,FOLLOW_ACTION_in_element842); + match(input,ACTION,FOLLOW_ACTION_in_element849); } break; case 5 : - // ASTVerifier.g:248:6: SEMPRED + // ASTVerifier.g:265:6: SEMPRED { - match(input,SEMPRED,FOLLOW_SEMPRED_in_element849); + match(input,SEMPRED,FOLLOW_SEMPRED_in_element856); } break; case 6 : - // ASTVerifier.g:249:4: GATED_SEMPRED + // ASTVerifier.g:266:4: GATED_SEMPRED { - match(input,GATED_SEMPRED,FOLLOW_GATED_SEMPRED_in_element854); + match(input,GATED_SEMPRED,FOLLOW_GATED_SEMPRED_in_element861); } break; case 7 : - // ASTVerifier.g:250:4: treeSpec + // ASTVerifier.g:267:4: treeSpec { - pushFollow(FOLLOW_treeSpec_in_element859); + pushFollow(FOLLOW_treeSpec_in_element866); treeSpec(); state._fsp--; @@ -1900,9 +1884,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -1912,21 +1895,21 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "labeledElement" - // ASTVerifier.g:253:1: labeledElement : ( ^( ASSIGN ID atom ) | ^( ASSIGN ID block ) | ^( PLUS_ASSIGN ID atom ) | ^( PLUS_ASSIGN ID block ) ); + // ASTVerifier.g:270:1: labeledElement : ( ^( ASSIGN ID atom ) | ^( ASSIGN ID block ) | ^( PLUS_ASSIGN ID atom ) | ^( PLUS_ASSIGN ID block ) ); public final void labeledElement() throws RecognitionException { try { - // ASTVerifier.g:254:2: ( ^( ASSIGN ID atom ) | ^( ASSIGN ID block ) | ^( PLUS_ASSIGN ID atom ) | ^( PLUS_ASSIGN ID block ) ) + // ASTVerifier.g:271:2: ( ^( ASSIGN ID atom ) | ^( ASSIGN ID block ) | ^( PLUS_ASSIGN ID atom ) | ^( PLUS_ASSIGN ID block ) ) int alt27=4; alt27 = dfa27.predict(input); switch (alt27) { case 1 : - // ASTVerifier.g:254:4: ^( ASSIGN ID atom ) + // ASTVerifier.g:271:4: ^( ASSIGN ID atom ) { - match(input,ASSIGN,FOLLOW_ASSIGN_in_labeledElement872); + match(input,ASSIGN,FOLLOW_ASSIGN_in_labeledElement879); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_labeledElement874); - pushFollow(FOLLOW_atom_in_labeledElement876); + match(input,ID,FOLLOW_ID_in_labeledElement881); + pushFollow(FOLLOW_atom_in_labeledElement883); atom(); state._fsp--; @@ -1937,13 +1920,13 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:255:4: ^( ASSIGN ID block ) + // ASTVerifier.g:272:4: ^( ASSIGN ID block ) { - match(input,ASSIGN,FOLLOW_ASSIGN_in_labeledElement883); + match(input,ASSIGN,FOLLOW_ASSIGN_in_labeledElement890); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_labeledElement885); - pushFollow(FOLLOW_block_in_labeledElement887); + match(input,ID,FOLLOW_ID_in_labeledElement892); + pushFollow(FOLLOW_block_in_labeledElement894); block(); state._fsp--; @@ -1954,13 +1937,13 @@ public class ASTVerifier extends TreeParser { } break; case 3 : - // ASTVerifier.g:256:4: ^( PLUS_ASSIGN ID atom ) + // ASTVerifier.g:273:4: ^( PLUS_ASSIGN ID atom ) { - match(input,PLUS_ASSIGN,FOLLOW_PLUS_ASSIGN_in_labeledElement894); + match(input,PLUS_ASSIGN,FOLLOW_PLUS_ASSIGN_in_labeledElement901); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_labeledElement896); - pushFollow(FOLLOW_atom_in_labeledElement898); + match(input,ID,FOLLOW_ID_in_labeledElement903); + pushFollow(FOLLOW_atom_in_labeledElement905); atom(); state._fsp--; @@ -1971,13 +1954,13 @@ public class ASTVerifier extends TreeParser { } break; case 4 : - // ASTVerifier.g:257:4: ^( PLUS_ASSIGN ID block ) + // ASTVerifier.g:274:4: ^( PLUS_ASSIGN ID block ) { - match(input,PLUS_ASSIGN,FOLLOW_PLUS_ASSIGN_in_labeledElement905); + match(input,PLUS_ASSIGN,FOLLOW_PLUS_ASSIGN_in_labeledElement912); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_labeledElement907); - pushFollow(FOLLOW_block_in_labeledElement909); + match(input,ID,FOLLOW_ID_in_labeledElement914); + pushFollow(FOLLOW_block_in_labeledElement916); block(); state._fsp--; @@ -1990,9 +1973,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2002,16 +1984,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "treeSpec" - // ASTVerifier.g:260:1: treeSpec : ^( TREE_BEGIN ( element )+ ) ; + // ASTVerifier.g:277:1: treeSpec : ^( TREE_BEGIN ( element )+ ) ; public final void treeSpec() throws RecognitionException { try { - // ASTVerifier.g:261:5: ( ^( TREE_BEGIN ( element )+ ) ) - // ASTVerifier.g:261:7: ^( TREE_BEGIN ( element )+ ) + // ASTVerifier.g:278:5: ( ^( TREE_BEGIN ( element )+ ) ) + // ASTVerifier.g:278:7: ^( TREE_BEGIN ( element )+ ) { - match(input,TREE_BEGIN,FOLLOW_TREE_BEGIN_in_treeSpec925); + match(input,TREE_BEGIN,FOLLOW_TREE_BEGIN_in_treeSpec932); match(input, Token.DOWN, null); - // ASTVerifier.g:261:20: ( element )+ + // ASTVerifier.g:278:20: ( element )+ int cnt28=0; loop28: do { @@ -2025,9 +2007,9 @@ public class ASTVerifier extends TreeParser { switch (alt28) { case 1 : - // ASTVerifier.g:261:20: element + // ASTVerifier.g:278:20: element { - pushFollow(FOLLOW_element_in_treeSpec927); + pushFollow(FOLLOW_element_in_treeSpec934); element(); state._fsp--; @@ -2051,9 +2033,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2063,10 +2044,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "ebnf" - // ASTVerifier.g:264:1: ebnf : ( ^( blockSuffix block ) | block ); + // ASTVerifier.g:281:1: ebnf : ( ^( blockSuffix block ) | block ); public final void ebnf() throws RecognitionException { try { - // ASTVerifier.g:264:5: ( ^( blockSuffix block ) | block ) + // ASTVerifier.g:281:5: ( ^( blockSuffix block ) | block ) int alt29=2; int LA29_0 = input.LA(1); @@ -2084,16 +2065,16 @@ public class ASTVerifier extends TreeParser { } switch (alt29) { case 1 : - // ASTVerifier.g:264:7: ^( blockSuffix block ) + // ASTVerifier.g:281:7: ^( blockSuffix block ) { - pushFollow(FOLLOW_blockSuffix_in_ebnf942); + pushFollow(FOLLOW_blockSuffix_in_ebnf949); blockSuffix(); state._fsp--; match(input, Token.DOWN, null); - pushFollow(FOLLOW_block_in_ebnf944); + pushFollow(FOLLOW_block_in_ebnf951); block(); state._fsp--; @@ -2104,9 +2085,9 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:265:5: block + // ASTVerifier.g:282:5: block { - pushFollow(FOLLOW_block_in_ebnf951); + pushFollow(FOLLOW_block_in_ebnf958); block(); state._fsp--; @@ -2117,9 +2098,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2129,10 +2109,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "blockSuffix" - // ASTVerifier.g:268:1: blockSuffix : ( ebnfSuffix | ROOT | IMPLIES | BANG ); + // ASTVerifier.g:285:1: blockSuffix : ( ebnfSuffix | ROOT | IMPLIES | BANG ); public final void blockSuffix() throws RecognitionException { try { - // ASTVerifier.g:269:5: ( ebnfSuffix | ROOT | IMPLIES | BANG ) + // ASTVerifier.g:286:5: ( ebnfSuffix | ROOT | IMPLIES | BANG ) int alt30=4; switch ( input.LA(1) ) { case OPTIONAL: @@ -2166,9 +2146,9 @@ public class ASTVerifier extends TreeParser { switch (alt30) { case 1 : - // ASTVerifier.g:269:7: ebnfSuffix + // ASTVerifier.g:286:7: ebnfSuffix { - pushFollow(FOLLOW_ebnfSuffix_in_blockSuffix968); + pushFollow(FOLLOW_ebnfSuffix_in_blockSuffix975); ebnfSuffix(); state._fsp--; @@ -2177,32 +2157,31 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:270:7: ROOT + // ASTVerifier.g:287:7: ROOT { - match(input,ROOT,FOLLOW_ROOT_in_blockSuffix976); + match(input,ROOT,FOLLOW_ROOT_in_blockSuffix983); } break; case 3 : - // ASTVerifier.g:271:7: IMPLIES + // ASTVerifier.g:288:7: IMPLIES { - match(input,IMPLIES,FOLLOW_IMPLIES_in_blockSuffix984); + match(input,IMPLIES,FOLLOW_IMPLIES_in_blockSuffix991); } break; case 4 : - // ASTVerifier.g:272:7: BANG + // ASTVerifier.g:289:7: BANG { - match(input,BANG,FOLLOW_BANG_in_blockSuffix992); + match(input,BANG,FOLLOW_BANG_in_blockSuffix999); } break; } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2212,10 +2191,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "ebnfSuffix" - // ASTVerifier.g:275:1: ebnfSuffix : ( OPTIONAL | CLOSURE | POSITIVE_CLOSURE ); + // ASTVerifier.g:292:1: ebnfSuffix : ( OPTIONAL | CLOSURE | POSITIVE_CLOSURE ); public final void ebnfSuffix() throws RecognitionException { try { - // ASTVerifier.g:276:2: ( OPTIONAL | CLOSURE | POSITIVE_CLOSURE ) + // ASTVerifier.g:293:2: ( OPTIONAL | CLOSURE | POSITIVE_CLOSURE ) // ASTVerifier.g: { if ( (input.LA(1)>=OPTIONAL && input.LA(1)<=POSITIVE_CLOSURE) ) { @@ -2231,9 +2210,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2243,20 +2221,20 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "atom" - // ASTVerifier.g:281:1: atom : ( ^( ROOT range ) | ^( BANG range ) | ^( ROOT notSet ) | ^( BANG notSet ) | range | ^( DOT ID terminal ) | ^( DOT ID ruleref ) | terminal | ruleref ); + // ASTVerifier.g:298:1: atom : ( ^( ROOT range ) | ^( BANG range ) | ^( ROOT notSet ) | ^( BANG notSet ) | range | ^( DOT ID terminal ) | ^( DOT ID ruleref ) | terminal | ruleref ); public final void atom() throws RecognitionException { try { - // ASTVerifier.g:281:5: ( ^( ROOT range ) | ^( BANG range ) | ^( ROOT notSet ) | ^( BANG notSet ) | range | ^( DOT ID terminal ) | ^( DOT ID ruleref ) | terminal | ruleref ) + // ASTVerifier.g:298:5: ( ^( ROOT range ) | ^( BANG range ) | ^( ROOT notSet ) | ^( BANG notSet ) | range | ^( DOT ID terminal ) | ^( DOT ID ruleref ) | terminal | ruleref ) int alt31=9; alt31 = dfa31.predict(input); switch (alt31) { case 1 : - // ASTVerifier.g:281:7: ^( ROOT range ) + // ASTVerifier.g:298:7: ^( ROOT range ) { - match(input,ROOT,FOLLOW_ROOT_in_atom1032); + match(input,ROOT,FOLLOW_ROOT_in_atom1039); match(input, Token.DOWN, null); - pushFollow(FOLLOW_range_in_atom1034); + pushFollow(FOLLOW_range_in_atom1041); range(); state._fsp--; @@ -2267,12 +2245,12 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:282:4: ^( BANG range ) + // ASTVerifier.g:299:4: ^( BANG range ) { - match(input,BANG,FOLLOW_BANG_in_atom1041); + match(input,BANG,FOLLOW_BANG_in_atom1048); match(input, Token.DOWN, null); - pushFollow(FOLLOW_range_in_atom1043); + pushFollow(FOLLOW_range_in_atom1050); range(); state._fsp--; @@ -2283,12 +2261,12 @@ public class ASTVerifier extends TreeParser { } break; case 3 : - // ASTVerifier.g:283:4: ^( ROOT notSet ) + // ASTVerifier.g:300:4: ^( ROOT notSet ) { - match(input,ROOT,FOLLOW_ROOT_in_atom1050); + match(input,ROOT,FOLLOW_ROOT_in_atom1057); match(input, Token.DOWN, null); - pushFollow(FOLLOW_notSet_in_atom1052); + pushFollow(FOLLOW_notSet_in_atom1059); notSet(); state._fsp--; @@ -2299,12 +2277,12 @@ public class ASTVerifier extends TreeParser { } break; case 4 : - // ASTVerifier.g:284:4: ^( BANG notSet ) + // ASTVerifier.g:301:4: ^( BANG notSet ) { - match(input,BANG,FOLLOW_BANG_in_atom1059); + match(input,BANG,FOLLOW_BANG_in_atom1066); match(input, Token.DOWN, null); - pushFollow(FOLLOW_notSet_in_atom1061); + pushFollow(FOLLOW_notSet_in_atom1068); notSet(); state._fsp--; @@ -2315,9 +2293,9 @@ public class ASTVerifier extends TreeParser { } break; case 5 : - // ASTVerifier.g:285:4: range + // ASTVerifier.g:302:4: range { - pushFollow(FOLLOW_range_in_atom1067); + pushFollow(FOLLOW_range_in_atom1074); range(); state._fsp--; @@ -2326,13 +2304,13 @@ public class ASTVerifier extends TreeParser { } break; case 6 : - // ASTVerifier.g:286:4: ^( DOT ID terminal ) + // ASTVerifier.g:303:4: ^( DOT ID terminal ) { - match(input,DOT,FOLLOW_DOT_in_atom1073); + match(input,DOT,FOLLOW_DOT_in_atom1080); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_atom1075); - pushFollow(FOLLOW_terminal_in_atom1077); + match(input,ID,FOLLOW_ID_in_atom1082); + pushFollow(FOLLOW_terminal_in_atom1084); terminal(); state._fsp--; @@ -2343,13 +2321,13 @@ public class ASTVerifier extends TreeParser { } break; case 7 : - // ASTVerifier.g:287:4: ^( DOT ID ruleref ) + // ASTVerifier.g:304:4: ^( DOT ID ruleref ) { - match(input,DOT,FOLLOW_DOT_in_atom1084); + match(input,DOT,FOLLOW_DOT_in_atom1091); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_atom1086); - pushFollow(FOLLOW_ruleref_in_atom1088); + match(input,ID,FOLLOW_ID_in_atom1093); + pushFollow(FOLLOW_ruleref_in_atom1095); ruleref(); state._fsp--; @@ -2360,9 +2338,9 @@ public class ASTVerifier extends TreeParser { } break; case 8 : - // ASTVerifier.g:288:9: terminal + // ASTVerifier.g:305:9: terminal { - pushFollow(FOLLOW_terminal_in_atom1099); + pushFollow(FOLLOW_terminal_in_atom1106); terminal(); state._fsp--; @@ -2371,9 +2349,9 @@ public class ASTVerifier extends TreeParser { } break; case 9 : - // ASTVerifier.g:289:9: ruleref + // ASTVerifier.g:306:9: ruleref { - pushFollow(FOLLOW_ruleref_in_atom1109); + pushFollow(FOLLOW_ruleref_in_atom1116); ruleref(); state._fsp--; @@ -2384,9 +2362,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2396,10 +2373,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "notSet" - // ASTVerifier.g:292:1: notSet : ( ^( NOT notTerminal ) | ^( NOT block ) ); + // ASTVerifier.g:309:1: notSet : ( ^( NOT notTerminal ) | ^( NOT block ) ); public final void notSet() throws RecognitionException { try { - // ASTVerifier.g:293:5: ( ^( NOT notTerminal ) | ^( NOT block ) ) + // ASTVerifier.g:310:5: ( ^( NOT notTerminal ) | ^( NOT block ) ) int alt32=2; int LA32_0 = input.LA(1); @@ -2437,12 +2414,12 @@ public class ASTVerifier extends TreeParser { } switch (alt32) { case 1 : - // ASTVerifier.g:293:7: ^( NOT notTerminal ) + // ASTVerifier.g:310:7: ^( NOT notTerminal ) { - match(input,NOT,FOLLOW_NOT_in_notSet1127); + match(input,NOT,FOLLOW_NOT_in_notSet1134); match(input, Token.DOWN, null); - pushFollow(FOLLOW_notTerminal_in_notSet1129); + pushFollow(FOLLOW_notTerminal_in_notSet1136); notTerminal(); state._fsp--; @@ -2453,12 +2430,12 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:294:7: ^( NOT block ) + // ASTVerifier.g:311:7: ^( NOT block ) { - match(input,NOT,FOLLOW_NOT_in_notSet1139); + match(input,NOT,FOLLOW_NOT_in_notSet1146); match(input, Token.DOWN, null); - pushFollow(FOLLOW_block_in_notSet1141); + pushFollow(FOLLOW_block_in_notSet1148); block(); state._fsp--; @@ -2471,9 +2448,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2483,10 +2459,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "notTerminal" - // ASTVerifier.g:297:1: notTerminal : ( TOKEN_REF | STRING_LITERAL ); + // ASTVerifier.g:314:1: notTerminal : ( TOKEN_REF | STRING_LITERAL ); public final void notTerminal() throws RecognitionException { try { - // ASTVerifier.g:298:5: ( TOKEN_REF | STRING_LITERAL ) + // ASTVerifier.g:315:5: ( TOKEN_REF | STRING_LITERAL ) // ASTVerifier.g: { if ( input.LA(1)==TOKEN_REF||input.LA(1)==STRING_LITERAL ) { @@ -2502,9 +2478,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2514,16 +2489,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "block" - // ASTVerifier.g:302:1: block : ^( BLOCK ( optionsSpec )? ( ruleAction )* ( ACTION )? altList ) ; + // ASTVerifier.g:319:1: block : ^( BLOCK ( optionsSpec )? ( ruleAction )* ( ACTION )? altList ) ; public final void block() throws RecognitionException { try { - // ASTVerifier.g:303:5: ( ^( BLOCK ( optionsSpec )? ( ruleAction )* ( ACTION )? altList ) ) - // ASTVerifier.g:303:7: ^( BLOCK ( optionsSpec )? ( ruleAction )* ( ACTION )? altList ) + // ASTVerifier.g:320:5: ( ^( BLOCK ( optionsSpec )? ( ruleAction )* ( ACTION )? altList ) ) + // ASTVerifier.g:320:7: ^( BLOCK ( optionsSpec )? ( ruleAction )* ( ACTION )? altList ) { - match(input,BLOCK,FOLLOW_BLOCK_in_block1185); + match(input,BLOCK,FOLLOW_BLOCK_in_block1192); match(input, Token.DOWN, null); - // ASTVerifier.g:303:15: ( optionsSpec )? + // ASTVerifier.g:320:15: ( optionsSpec )? int alt33=2; int LA33_0 = input.LA(1); @@ -2532,9 +2507,9 @@ public class ASTVerifier extends TreeParser { } switch (alt33) { case 1 : - // ASTVerifier.g:303:15: optionsSpec + // ASTVerifier.g:320:15: optionsSpec { - pushFollow(FOLLOW_optionsSpec_in_block1187); + pushFollow(FOLLOW_optionsSpec_in_block1194); optionsSpec(); state._fsp--; @@ -2545,7 +2520,7 @@ public class ASTVerifier extends TreeParser { } - // ASTVerifier.g:303:28: ( ruleAction )* + // ASTVerifier.g:320:28: ( ruleAction )* loop34: do { int alt34=2; @@ -2558,9 +2533,9 @@ public class ASTVerifier extends TreeParser { switch (alt34) { case 1 : - // ASTVerifier.g:303:28: ruleAction + // ASTVerifier.g:320:28: ruleAction { - pushFollow(FOLLOW_ruleAction_in_block1190); + pushFollow(FOLLOW_ruleAction_in_block1197); ruleAction(); state._fsp--; @@ -2574,7 +2549,7 @@ public class ASTVerifier extends TreeParser { } } while (true); - // ASTVerifier.g:303:40: ( ACTION )? + // ASTVerifier.g:320:40: ( ACTION )? int alt35=2; int LA35_0 = input.LA(1); @@ -2583,16 +2558,16 @@ public class ASTVerifier extends TreeParser { } switch (alt35) { case 1 : - // ASTVerifier.g:303:40: ACTION + // ASTVerifier.g:320:40: ACTION { - match(input,ACTION,FOLLOW_ACTION_in_block1193); + match(input,ACTION,FOLLOW_ACTION_in_block1200); } break; } - pushFollow(FOLLOW_altList_in_block1196); + pushFollow(FOLLOW_altList_in_block1203); altList(); state._fsp--; @@ -2603,9 +2578,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2615,10 +2589,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "ruleref" - // ASTVerifier.g:306:1: ruleref : ( ^( ROOT ^( RULE_REF ( ARG_ACTION )? ) ) | ^( BANG ^( RULE_REF ( ARG_ACTION )? ) ) | ^( RULE_REF ( ARG_ACTION )? ) ); + // ASTVerifier.g:323:1: ruleref : ( ^( ROOT ^( RULE_REF ( ARG_ACTION )? ) ) | ^( BANG ^( RULE_REF ( ARG_ACTION )? ) ) | ^( RULE_REF ( ARG_ACTION )? ) ); public final void ruleref() throws RecognitionException { try { - // ASTVerifier.g:307:5: ( ^( ROOT ^( RULE_REF ( ARG_ACTION )? ) ) | ^( BANG ^( RULE_REF ( ARG_ACTION )? ) ) | ^( RULE_REF ( ARG_ACTION )? ) ) + // ASTVerifier.g:324:5: ( ^( ROOT ^( RULE_REF ( ARG_ACTION )? ) ) | ^( BANG ^( RULE_REF ( ARG_ACTION )? ) ) | ^( RULE_REF ( ARG_ACTION )? ) ) int alt39=3; switch ( input.LA(1) ) { case ROOT: @@ -2645,16 +2619,16 @@ public class ASTVerifier extends TreeParser { switch (alt39) { case 1 : - // ASTVerifier.g:307:7: ^( ROOT ^( RULE_REF ( ARG_ACTION )? ) ) + // ASTVerifier.g:324:7: ^( ROOT ^( RULE_REF ( ARG_ACTION )? ) ) { - match(input,ROOT,FOLLOW_ROOT_in_ruleref1215); + match(input,ROOT,FOLLOW_ROOT_in_ruleref1222); match(input, Token.DOWN, null); - match(input,RULE_REF,FOLLOW_RULE_REF_in_ruleref1218); + match(input,RULE_REF,FOLLOW_RULE_REF_in_ruleref1225); if ( input.LA(1)==Token.DOWN ) { match(input, Token.DOWN, null); - // ASTVerifier.g:307:25: ( ARG_ACTION )? + // ASTVerifier.g:324:25: ( ARG_ACTION )? int alt36=2; int LA36_0 = input.LA(1); @@ -2663,9 +2637,9 @@ public class ASTVerifier extends TreeParser { } switch (alt36) { case 1 : - // ASTVerifier.g:307:25: ARG_ACTION + // ASTVerifier.g:324:25: ARG_ACTION { - match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleref1220); + match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleref1227); } break; @@ -2681,16 +2655,16 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:308:7: ^( BANG ^( RULE_REF ( ARG_ACTION )? ) ) + // ASTVerifier.g:325:7: ^( BANG ^( RULE_REF ( ARG_ACTION )? ) ) { - match(input,BANG,FOLLOW_BANG_in_ruleref1232); + match(input,BANG,FOLLOW_BANG_in_ruleref1239); match(input, Token.DOWN, null); - match(input,RULE_REF,FOLLOW_RULE_REF_in_ruleref1235); + match(input,RULE_REF,FOLLOW_RULE_REF_in_ruleref1242); if ( input.LA(1)==Token.DOWN ) { match(input, Token.DOWN, null); - // ASTVerifier.g:308:25: ( ARG_ACTION )? + // ASTVerifier.g:325:25: ( ARG_ACTION )? int alt37=2; int LA37_0 = input.LA(1); @@ -2699,9 +2673,9 @@ public class ASTVerifier extends TreeParser { } switch (alt37) { case 1 : - // ASTVerifier.g:308:25: ARG_ACTION + // ASTVerifier.g:325:25: ARG_ACTION { - match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleref1237); + match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleref1244); } break; @@ -2717,13 +2691,13 @@ public class ASTVerifier extends TreeParser { } break; case 3 : - // ASTVerifier.g:309:7: ^( RULE_REF ( ARG_ACTION )? ) + // ASTVerifier.g:326:7: ^( RULE_REF ( ARG_ACTION )? ) { - match(input,RULE_REF,FOLLOW_RULE_REF_in_ruleref1249); + match(input,RULE_REF,FOLLOW_RULE_REF_in_ruleref1256); if ( input.LA(1)==Token.DOWN ) { match(input, Token.DOWN, null); - // ASTVerifier.g:309:18: ( ARG_ACTION )? + // ASTVerifier.g:326:18: ( ARG_ACTION )? int alt38=2; int LA38_0 = input.LA(1); @@ -2732,9 +2706,9 @@ public class ASTVerifier extends TreeParser { } switch (alt38) { case 1 : - // ASTVerifier.g:309:18: ARG_ACTION + // ASTVerifier.g:326:18: ARG_ACTION { - match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleref1251); + match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_ruleref1258); } break; @@ -2750,9 +2724,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2762,21 +2735,21 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "range" - // ASTVerifier.g:312:1: range : ^( RANGE rangeElement rangeElement ) ; + // ASTVerifier.g:329:1: range : ^( RANGE rangeElement rangeElement ) ; public final void range() throws RecognitionException { try { - // ASTVerifier.g:313:5: ( ^( RANGE rangeElement rangeElement ) ) - // ASTVerifier.g:313:7: ^( RANGE rangeElement rangeElement ) + // ASTVerifier.g:330:5: ( ^( RANGE rangeElement rangeElement ) ) + // ASTVerifier.g:330:7: ^( RANGE rangeElement rangeElement ) { - match(input,RANGE,FOLLOW_RANGE_in_range1271); + match(input,RANGE,FOLLOW_RANGE_in_range1278); match(input, Token.DOWN, null); - pushFollow(FOLLOW_rangeElement_in_range1273); + pushFollow(FOLLOW_rangeElement_in_range1280); rangeElement(); state._fsp--; - pushFollow(FOLLOW_rangeElement_in_range1275); + pushFollow(FOLLOW_rangeElement_in_range1282); rangeElement(); state._fsp--; @@ -2787,9 +2760,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2799,10 +2771,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rangeElement" - // ASTVerifier.g:316:1: rangeElement : ( STRING_LITERAL | RULE_REF | TOKEN_REF ); + // ASTVerifier.g:333:1: rangeElement : ( STRING_LITERAL | RULE_REF | TOKEN_REF ); public final void rangeElement() throws RecognitionException { try { - // ASTVerifier.g:317:5: ( STRING_LITERAL | RULE_REF | TOKEN_REF ) + // ASTVerifier.g:334:5: ( STRING_LITERAL | RULE_REF | TOKEN_REF ) // ASTVerifier.g: { if ( (input.LA(1)>=TOKEN_REF && input.LA(1)<=RULE_REF)||input.LA(1)==STRING_LITERAL ) { @@ -2818,9 +2790,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2830,20 +2801,20 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "terminal" - // ASTVerifier.g:322:1: terminal : ( ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | ^( TOKEN_REF ARG_ACTION elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | TOKEN_REF | ^( WILDCARD elementOptions ) | WILDCARD | ^( ROOT terminal ) | ^( BANG terminal ) ); + // ASTVerifier.g:339:1: terminal : ( ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | ^( TOKEN_REF ARG_ACTION elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | TOKEN_REF | ^( WILDCARD elementOptions ) | WILDCARD | ^( ROOT terminal ) | ^( BANG terminal ) ); public final void terminal() throws RecognitionException { try { - // ASTVerifier.g:323:5: ( ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | ^( TOKEN_REF ARG_ACTION elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | TOKEN_REF | ^( WILDCARD elementOptions ) | WILDCARD | ^( ROOT terminal ) | ^( BANG terminal ) ) + // ASTVerifier.g:340:5: ( ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | ^( TOKEN_REF ARG_ACTION elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | TOKEN_REF | ^( WILDCARD elementOptions ) | WILDCARD | ^( ROOT terminal ) | ^( BANG terminal ) ) int alt40=10; alt40 = dfa40.predict(input); switch (alt40) { case 1 : - // ASTVerifier.g:323:8: ^( STRING_LITERAL elementOptions ) + // ASTVerifier.g:340:8: ^( STRING_LITERAL elementOptions ) { - match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_terminal1328); + match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_terminal1335); match(input, Token.DOWN, null); - pushFollow(FOLLOW_elementOptions_in_terminal1330); + pushFollow(FOLLOW_elementOptions_in_terminal1337); elementOptions(); state._fsp--; @@ -2854,20 +2825,20 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:324:7: STRING_LITERAL + // ASTVerifier.g:341:7: STRING_LITERAL { - match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_terminal1339); + match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_terminal1346); } break; case 3 : - // ASTVerifier.g:325:7: ^( TOKEN_REF ARG_ACTION elementOptions ) + // ASTVerifier.g:342:7: ^( TOKEN_REF ARG_ACTION elementOptions ) { - match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_terminal1348); + match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_terminal1355); match(input, Token.DOWN, null); - match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_terminal1350); - pushFollow(FOLLOW_elementOptions_in_terminal1352); + match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_terminal1357); + pushFollow(FOLLOW_elementOptions_in_terminal1359); elementOptions(); state._fsp--; @@ -2878,24 +2849,24 @@ public class ASTVerifier extends TreeParser { } break; case 4 : - // ASTVerifier.g:326:7: ^( TOKEN_REF ARG_ACTION ) + // ASTVerifier.g:343:7: ^( TOKEN_REF ARG_ACTION ) { - match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_terminal1362); + match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_terminal1369); match(input, Token.DOWN, null); - match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_terminal1364); + match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_terminal1371); match(input, Token.UP, null); } break; case 5 : - // ASTVerifier.g:327:7: ^( TOKEN_REF elementOptions ) + // ASTVerifier.g:344:7: ^( TOKEN_REF elementOptions ) { - match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_terminal1374); + match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_terminal1381); match(input, Token.DOWN, null); - pushFollow(FOLLOW_elementOptions_in_terminal1376); + pushFollow(FOLLOW_elementOptions_in_terminal1383); elementOptions(); state._fsp--; @@ -2906,19 +2877,19 @@ public class ASTVerifier extends TreeParser { } break; case 6 : - // ASTVerifier.g:328:7: TOKEN_REF + // ASTVerifier.g:345:7: TOKEN_REF { - match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_terminal1385); + match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_terminal1392); } break; case 7 : - // ASTVerifier.g:329:7: ^( WILDCARD elementOptions ) + // ASTVerifier.g:346:7: ^( WILDCARD elementOptions ) { - match(input,WILDCARD,FOLLOW_WILDCARD_in_terminal1394); + match(input,WILDCARD,FOLLOW_WILDCARD_in_terminal1401); match(input, Token.DOWN, null); - pushFollow(FOLLOW_elementOptions_in_terminal1396); + pushFollow(FOLLOW_elementOptions_in_terminal1403); elementOptions(); state._fsp--; @@ -2929,19 +2900,19 @@ public class ASTVerifier extends TreeParser { } break; case 8 : - // ASTVerifier.g:330:7: WILDCARD + // ASTVerifier.g:347:7: WILDCARD { - match(input,WILDCARD,FOLLOW_WILDCARD_in_terminal1405); + match(input,WILDCARD,FOLLOW_WILDCARD_in_terminal1412); } break; case 9 : - // ASTVerifier.g:331:7: ^( ROOT terminal ) + // ASTVerifier.g:348:7: ^( ROOT terminal ) { - match(input,ROOT,FOLLOW_ROOT_in_terminal1414); + match(input,ROOT,FOLLOW_ROOT_in_terminal1421); match(input, Token.DOWN, null); - pushFollow(FOLLOW_terminal_in_terminal1416); + pushFollow(FOLLOW_terminal_in_terminal1423); terminal(); state._fsp--; @@ -2952,12 +2923,12 @@ public class ASTVerifier extends TreeParser { } break; case 10 : - // ASTVerifier.g:332:7: ^( BANG terminal ) + // ASTVerifier.g:349:7: ^( BANG terminal ) { - match(input,BANG,FOLLOW_BANG_in_terminal1426); + match(input,BANG,FOLLOW_BANG_in_terminal1433); match(input, Token.DOWN, null); - pushFollow(FOLLOW_terminal_in_terminal1428); + pushFollow(FOLLOW_terminal_in_terminal1435); terminal(); state._fsp--; @@ -2970,9 +2941,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -2982,16 +2952,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "elementOptions" - // ASTVerifier.g:335:1: elementOptions : ^( ELEMENT_OPTIONS ( elementOption )+ ) ; + // ASTVerifier.g:352:1: elementOptions : ^( ELEMENT_OPTIONS ( elementOption )+ ) ; public final void elementOptions() throws RecognitionException { try { - // ASTVerifier.g:336:5: ( ^( ELEMENT_OPTIONS ( elementOption )+ ) ) - // ASTVerifier.g:336:7: ^( ELEMENT_OPTIONS ( elementOption )+ ) + // ASTVerifier.g:353:5: ( ^( ELEMENT_OPTIONS ( elementOption )+ ) ) + // ASTVerifier.g:353:7: ^( ELEMENT_OPTIONS ( elementOption )+ ) { - match(input,ELEMENT_OPTIONS,FOLLOW_ELEMENT_OPTIONS_in_elementOptions1447); + match(input,ELEMENT_OPTIONS,FOLLOW_ELEMENT_OPTIONS_in_elementOptions1454); match(input, Token.DOWN, null); - // ASTVerifier.g:336:25: ( elementOption )+ + // ASTVerifier.g:353:25: ( elementOption )+ int cnt41=0; loop41: do { @@ -3005,9 +2975,9 @@ public class ASTVerifier extends TreeParser { switch (alt41) { case 1 : - // ASTVerifier.g:336:25: elementOption + // ASTVerifier.g:353:25: elementOption { - pushFollow(FOLLOW_elementOption_in_elementOptions1449); + pushFollow(FOLLOW_elementOption_in_elementOptions1456); elementOption(); state._fsp--; @@ -3031,9 +3001,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3043,10 +3012,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "elementOption" - // ASTVerifier.g:339:1: elementOption : ( ID | ^( ASSIGN ID ID ) | ^( ASSIGN ID STRING_LITERAL ) ); + // ASTVerifier.g:356:1: elementOption : ( ID | ^( ASSIGN ID ID ) | ^( ASSIGN ID STRING_LITERAL ) ); public final void elementOption() throws RecognitionException { try { - // ASTVerifier.g:340:5: ( ID | ^( ASSIGN ID ID ) | ^( ASSIGN ID STRING_LITERAL ) ) + // ASTVerifier.g:357:5: ( ID | ^( ASSIGN ID ID ) | ^( ASSIGN ID STRING_LITERAL ) ) int alt42=3; int LA42_0 = input.LA(1); @@ -3097,33 +3066,33 @@ public class ASTVerifier extends TreeParser { } switch (alt42) { case 1 : - // ASTVerifier.g:340:7: ID + // ASTVerifier.g:357:7: ID { - match(input,ID,FOLLOW_ID_in_elementOption1468); + match(input,ID,FOLLOW_ID_in_elementOption1475); } break; case 2 : - // ASTVerifier.g:341:9: ^( ASSIGN ID ID ) + // ASTVerifier.g:358:9: ^( ASSIGN ID ID ) { - match(input,ASSIGN,FOLLOW_ASSIGN_in_elementOption1479); + match(input,ASSIGN,FOLLOW_ASSIGN_in_elementOption1486); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_elementOption1481); - match(input,ID,FOLLOW_ID_in_elementOption1483); + match(input,ID,FOLLOW_ID_in_elementOption1488); + match(input,ID,FOLLOW_ID_in_elementOption1490); match(input, Token.UP, null); } break; case 3 : - // ASTVerifier.g:342:9: ^( ASSIGN ID STRING_LITERAL ) + // ASTVerifier.g:359:9: ^( ASSIGN ID STRING_LITERAL ) { - match(input,ASSIGN,FOLLOW_ASSIGN_in_elementOption1495); + match(input,ASSIGN,FOLLOW_ASSIGN_in_elementOption1502); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_elementOption1497); - match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_elementOption1499); + match(input,ID,FOLLOW_ID_in_elementOption1504); + match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_elementOption1506); match(input, Token.UP, null); @@ -3132,9 +3101,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3144,13 +3112,13 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewrite" - // ASTVerifier.g:345:1: rewrite : ( predicatedRewrite )* nakedRewrite ; + // ASTVerifier.g:362:1: rewrite : ( predicatedRewrite )* nakedRewrite ; public final void rewrite() throws RecognitionException { try { - // ASTVerifier.g:346:2: ( ( predicatedRewrite )* nakedRewrite ) - // ASTVerifier.g:346:4: ( predicatedRewrite )* nakedRewrite + // ASTVerifier.g:363:2: ( ( predicatedRewrite )* nakedRewrite ) + // ASTVerifier.g:363:4: ( predicatedRewrite )* nakedRewrite { - // ASTVerifier.g:346:4: ( predicatedRewrite )* + // ASTVerifier.g:363:4: ( predicatedRewrite )* loop43: do { int alt43=2; @@ -3190,9 +3158,9 @@ public class ASTVerifier extends TreeParser { switch (alt43) { case 1 : - // ASTVerifier.g:346:4: predicatedRewrite + // ASTVerifier.g:363:4: predicatedRewrite { - pushFollow(FOLLOW_predicatedRewrite_in_rewrite1514); + pushFollow(FOLLOW_predicatedRewrite_in_rewrite1521); predicatedRewrite(); state._fsp--; @@ -3206,7 +3174,7 @@ public class ASTVerifier extends TreeParser { } } while (true); - pushFollow(FOLLOW_nakedRewrite_in_rewrite1517); + pushFollow(FOLLOW_nakedRewrite_in_rewrite1524); nakedRewrite(); state._fsp--; @@ -3215,9 +3183,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3227,10 +3194,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "predicatedRewrite" - // ASTVerifier.g:349:1: predicatedRewrite : ( ^( ST_RESULT SEMPRED rewriteAlt ) | ^( RESULT SEMPRED rewriteAlt ) ); + // ASTVerifier.g:366:1: predicatedRewrite : ( ^( ST_RESULT SEMPRED rewriteAlt ) | ^( RESULT SEMPRED rewriteAlt ) ); public final void predicatedRewrite() throws RecognitionException { try { - // ASTVerifier.g:350:2: ( ^( ST_RESULT SEMPRED rewriteAlt ) | ^( RESULT SEMPRED rewriteAlt ) ) + // ASTVerifier.g:367:2: ( ^( ST_RESULT SEMPRED rewriteAlt ) | ^( RESULT SEMPRED rewriteAlt ) ) int alt44=2; int LA44_0 = input.LA(1); @@ -3248,13 +3215,13 @@ public class ASTVerifier extends TreeParser { } switch (alt44) { case 1 : - // ASTVerifier.g:350:4: ^( ST_RESULT SEMPRED rewriteAlt ) + // ASTVerifier.g:367:4: ^( ST_RESULT SEMPRED rewriteAlt ) { - match(input,ST_RESULT,FOLLOW_ST_RESULT_in_predicatedRewrite1529); + match(input,ST_RESULT,FOLLOW_ST_RESULT_in_predicatedRewrite1536); match(input, Token.DOWN, null); - match(input,SEMPRED,FOLLOW_SEMPRED_in_predicatedRewrite1531); - pushFollow(FOLLOW_rewriteAlt_in_predicatedRewrite1533); + match(input,SEMPRED,FOLLOW_SEMPRED_in_predicatedRewrite1538); + pushFollow(FOLLOW_rewriteAlt_in_predicatedRewrite1540); rewriteAlt(); state._fsp--; @@ -3265,13 +3232,13 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:351:4: ^( RESULT SEMPRED rewriteAlt ) + // ASTVerifier.g:368:4: ^( RESULT SEMPRED rewriteAlt ) { - match(input,RESULT,FOLLOW_RESULT_in_predicatedRewrite1540); + match(input,RESULT,FOLLOW_RESULT_in_predicatedRewrite1547); match(input, Token.DOWN, null); - match(input,SEMPRED,FOLLOW_SEMPRED_in_predicatedRewrite1542); - pushFollow(FOLLOW_rewriteAlt_in_predicatedRewrite1544); + match(input,SEMPRED,FOLLOW_SEMPRED_in_predicatedRewrite1549); + pushFollow(FOLLOW_rewriteAlt_in_predicatedRewrite1551); rewriteAlt(); state._fsp--; @@ -3284,9 +3251,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3296,10 +3262,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "nakedRewrite" - // ASTVerifier.g:354:1: nakedRewrite : ( ^( ST_RESULT rewriteAlt ) | ^( RESULT rewriteAlt ) ); + // ASTVerifier.g:371:1: nakedRewrite : ( ^( ST_RESULT rewriteAlt ) | ^( RESULT rewriteAlt ) ); public final void nakedRewrite() throws RecognitionException { try { - // ASTVerifier.g:355:2: ( ^( ST_RESULT rewriteAlt ) | ^( RESULT rewriteAlt ) ) + // ASTVerifier.g:372:2: ( ^( ST_RESULT rewriteAlt ) | ^( RESULT rewriteAlt ) ) int alt45=2; int LA45_0 = input.LA(1); @@ -3317,12 +3283,12 @@ public class ASTVerifier extends TreeParser { } switch (alt45) { case 1 : - // ASTVerifier.g:355:4: ^( ST_RESULT rewriteAlt ) + // ASTVerifier.g:372:4: ^( ST_RESULT rewriteAlt ) { - match(input,ST_RESULT,FOLLOW_ST_RESULT_in_nakedRewrite1558); + match(input,ST_RESULT,FOLLOW_ST_RESULT_in_nakedRewrite1565); match(input, Token.DOWN, null); - pushFollow(FOLLOW_rewriteAlt_in_nakedRewrite1560); + pushFollow(FOLLOW_rewriteAlt_in_nakedRewrite1567); rewriteAlt(); state._fsp--; @@ -3333,12 +3299,12 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:356:4: ^( RESULT rewriteAlt ) + // ASTVerifier.g:373:4: ^( RESULT rewriteAlt ) { - match(input,RESULT,FOLLOW_RESULT_in_nakedRewrite1567); + match(input,RESULT,FOLLOW_RESULT_in_nakedRewrite1574); match(input, Token.DOWN, null); - pushFollow(FOLLOW_rewriteAlt_in_nakedRewrite1569); + pushFollow(FOLLOW_rewriteAlt_in_nakedRewrite1576); rewriteAlt(); state._fsp--; @@ -3351,9 +3317,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3363,10 +3328,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewriteAlt" - // ASTVerifier.g:359:1: rewriteAlt : ( rewriteTemplate | rewriteTreeAlt | ETC | EPSILON ); + // ASTVerifier.g:376:1: rewriteAlt : ( rewriteTemplate | rewriteTreeAlt | ETC | EPSILON ); public final void rewriteAlt() throws RecognitionException { try { - // ASTVerifier.g:360:5: ( rewriteTemplate | rewriteTreeAlt | ETC | EPSILON ) + // ASTVerifier.g:377:5: ( rewriteTemplate | rewriteTreeAlt | ETC | EPSILON ) int alt46=4; switch ( input.LA(1) ) { case ACTION: @@ -3399,9 +3364,9 @@ public class ASTVerifier extends TreeParser { switch (alt46) { case 1 : - // ASTVerifier.g:360:7: rewriteTemplate + // ASTVerifier.g:377:7: rewriteTemplate { - pushFollow(FOLLOW_rewriteTemplate_in_rewriteAlt1585); + pushFollow(FOLLOW_rewriteTemplate_in_rewriteAlt1592); rewriteTemplate(); state._fsp--; @@ -3410,9 +3375,9 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:361:7: rewriteTreeAlt + // ASTVerifier.g:378:7: rewriteTreeAlt { - pushFollow(FOLLOW_rewriteTreeAlt_in_rewriteAlt1593); + pushFollow(FOLLOW_rewriteTreeAlt_in_rewriteAlt1600); rewriteTreeAlt(); state._fsp--; @@ -3421,25 +3386,24 @@ public class ASTVerifier extends TreeParser { } break; case 3 : - // ASTVerifier.g:362:7: ETC + // ASTVerifier.g:379:7: ETC { - match(input,ETC,FOLLOW_ETC_in_rewriteAlt1601); + match(input,ETC,FOLLOW_ETC_in_rewriteAlt1608); } break; case 4 : - // ASTVerifier.g:363:7: EPSILON + // ASTVerifier.g:380:7: EPSILON { - match(input,EPSILON,FOLLOW_EPSILON_in_rewriteAlt1609); + match(input,EPSILON,FOLLOW_EPSILON_in_rewriteAlt1616); } break; } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3449,16 +3413,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewriteTreeAlt" - // ASTVerifier.g:366:1: rewriteTreeAlt : ^( ALT ( rewriteTreeElement )+ ) ; + // ASTVerifier.g:383:1: rewriteTreeAlt : ^( ALT ( rewriteTreeElement )+ ) ; public final void rewriteTreeAlt() throws RecognitionException { try { - // ASTVerifier.g:367:5: ( ^( ALT ( rewriteTreeElement )+ ) ) - // ASTVerifier.g:367:7: ^( ALT ( rewriteTreeElement )+ ) + // ASTVerifier.g:384:5: ( ^( ALT ( rewriteTreeElement )+ ) ) + // ASTVerifier.g:384:7: ^( ALT ( rewriteTreeElement )+ ) { - match(input,ALT,FOLLOW_ALT_in_rewriteTreeAlt1628); + match(input,ALT,FOLLOW_ALT_in_rewriteTreeAlt1635); match(input, Token.DOWN, null); - // ASTVerifier.g:367:13: ( rewriteTreeElement )+ + // ASTVerifier.g:384:13: ( rewriteTreeElement )+ int cnt47=0; loop47: do { @@ -3472,9 +3436,9 @@ public class ASTVerifier extends TreeParser { switch (alt47) { case 1 : - // ASTVerifier.g:367:13: rewriteTreeElement + // ASTVerifier.g:384:13: rewriteTreeElement { - pushFollow(FOLLOW_rewriteTreeElement_in_rewriteTreeAlt1630); + pushFollow(FOLLOW_rewriteTreeElement_in_rewriteTreeAlt1637); rewriteTreeElement(); state._fsp--; @@ -3498,9 +3462,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3510,10 +3473,10 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewriteTreeElement" - // ASTVerifier.g:370:1: rewriteTreeElement : ( rewriteTreeAtom | rewriteTree | rewriteTreeEbnf ); + // ASTVerifier.g:387:1: rewriteTreeElement : ( rewriteTreeAtom | rewriteTree | rewriteTreeEbnf ); public final void rewriteTreeElement() throws RecognitionException { try { - // ASTVerifier.g:371:2: ( rewriteTreeAtom | rewriteTree | rewriteTreeEbnf ) + // ASTVerifier.g:388:2: ( rewriteTreeAtom | rewriteTree | rewriteTreeEbnf ) int alt48=3; switch ( input.LA(1) ) { case ACTION: @@ -3546,9 +3509,9 @@ public class ASTVerifier extends TreeParser { switch (alt48) { case 1 : - // ASTVerifier.g:371:4: rewriteTreeAtom + // ASTVerifier.g:388:4: rewriteTreeAtom { - pushFollow(FOLLOW_rewriteTreeAtom_in_rewriteTreeElement1646); + pushFollow(FOLLOW_rewriteTreeAtom_in_rewriteTreeElement1653); rewriteTreeAtom(); state._fsp--; @@ -3557,9 +3520,9 @@ public class ASTVerifier extends TreeParser { } break; case 2 : - // ASTVerifier.g:372:4: rewriteTree + // ASTVerifier.g:389:4: rewriteTree { - pushFollow(FOLLOW_rewriteTree_in_rewriteTreeElement1651); + pushFollow(FOLLOW_rewriteTree_in_rewriteTreeElement1658); rewriteTree(); state._fsp--; @@ -3568,9 +3531,9 @@ public class ASTVerifier extends TreeParser { } break; case 3 : - // ASTVerifier.g:373:6: rewriteTreeEbnf + // ASTVerifier.g:390:6: rewriteTreeEbnf { - pushFollow(FOLLOW_rewriteTreeEbnf_in_rewriteTreeElement1658); + pushFollow(FOLLOW_rewriteTreeEbnf_in_rewriteTreeElement1665); rewriteTreeEbnf(); state._fsp--; @@ -3581,9 +3544,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3593,37 +3555,37 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewriteTreeAtom" - // ASTVerifier.g:376:1: rewriteTreeAtom : ( ^( TOKEN_REF elementOptions ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | TOKEN_REF | RULE_REF | ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | LABEL | ACTION ); + // ASTVerifier.g:393:1: rewriteTreeAtom : ( ^( TOKEN_REF elementOptions ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | TOKEN_REF | RULE_REF | ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | LABEL | ACTION ); public final void rewriteTreeAtom() throws RecognitionException { try { - // ASTVerifier.g:377:5: ( ^( TOKEN_REF elementOptions ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | TOKEN_REF | RULE_REF | ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | LABEL | ACTION ) + // ASTVerifier.g:394:5: ( ^( TOKEN_REF elementOptions ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | TOKEN_REF | RULE_REF | ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | LABEL | ACTION ) int alt49=9; alt49 = dfa49.predict(input); switch (alt49) { case 1 : - // ASTVerifier.g:377:9: ^( TOKEN_REF elementOptions ARG_ACTION ) + // ASTVerifier.g:394:9: ^( TOKEN_REF elementOptions ARG_ACTION ) { - match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_rewriteTreeAtom1675); + match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_rewriteTreeAtom1682); match(input, Token.DOWN, null); - pushFollow(FOLLOW_elementOptions_in_rewriteTreeAtom1677); + pushFollow(FOLLOW_elementOptions_in_rewriteTreeAtom1684); elementOptions(); state._fsp--; - match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_rewriteTreeAtom1679); + match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_rewriteTreeAtom1686); match(input, Token.UP, null); } break; case 2 : - // ASTVerifier.g:378:9: ^( TOKEN_REF elementOptions ) + // ASTVerifier.g:395:9: ^( TOKEN_REF elementOptions ) { - match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_rewriteTreeAtom1691); + match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_rewriteTreeAtom1698); match(input, Token.DOWN, null); - pushFollow(FOLLOW_elementOptions_in_rewriteTreeAtom1693); + pushFollow(FOLLOW_elementOptions_in_rewriteTreeAtom1700); elementOptions(); state._fsp--; @@ -3634,38 +3596,38 @@ public class ASTVerifier extends TreeParser { } break; case 3 : - // ASTVerifier.g:379:9: ^( TOKEN_REF ARG_ACTION ) + // ASTVerifier.g:396:9: ^( TOKEN_REF ARG_ACTION ) { - match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_rewriteTreeAtom1705); + match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_rewriteTreeAtom1712); match(input, Token.DOWN, null); - match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_rewriteTreeAtom1707); + match(input,ARG_ACTION,FOLLOW_ARG_ACTION_in_rewriteTreeAtom1714); match(input, Token.UP, null); } break; case 4 : - // ASTVerifier.g:380:6: TOKEN_REF + // ASTVerifier.g:397:6: TOKEN_REF { - match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_rewriteTreeAtom1715); + match(input,TOKEN_REF,FOLLOW_TOKEN_REF_in_rewriteTreeAtom1722); } break; case 5 : - // ASTVerifier.g:381:9: RULE_REF + // ASTVerifier.g:398:9: RULE_REF { - match(input,RULE_REF,FOLLOW_RULE_REF_in_rewriteTreeAtom1725); + match(input,RULE_REF,FOLLOW_RULE_REF_in_rewriteTreeAtom1732); } break; case 6 : - // ASTVerifier.g:382:6: ^( STRING_LITERAL elementOptions ) + // ASTVerifier.g:399:6: ^( STRING_LITERAL elementOptions ) { - match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_rewriteTreeAtom1733); + match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_rewriteTreeAtom1740); match(input, Token.DOWN, null); - pushFollow(FOLLOW_elementOptions_in_rewriteTreeAtom1735); + pushFollow(FOLLOW_elementOptions_in_rewriteTreeAtom1742); elementOptions(); state._fsp--; @@ -3676,32 +3638,31 @@ public class ASTVerifier extends TreeParser { } break; case 7 : - // ASTVerifier.g:383:6: STRING_LITERAL + // ASTVerifier.g:400:6: STRING_LITERAL { - match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_rewriteTreeAtom1743); + match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_rewriteTreeAtom1750); } break; case 8 : - // ASTVerifier.g:384:6: LABEL + // ASTVerifier.g:401:6: LABEL { - match(input,LABEL,FOLLOW_LABEL_in_rewriteTreeAtom1751); + match(input,LABEL,FOLLOW_LABEL_in_rewriteTreeAtom1758); } break; case 9 : - // ASTVerifier.g:385:4: ACTION + // ASTVerifier.g:402:4: ACTION { - match(input,ACTION,FOLLOW_ACTION_in_rewriteTreeAtom1756); + match(input,ACTION,FOLLOW_ACTION_in_rewriteTreeAtom1763); } break; } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3711,23 +3672,23 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewriteTreeEbnf" - // ASTVerifier.g:388:1: rewriteTreeEbnf : ^( ebnfSuffix ^( REWRITE_BLOCK rewriteTreeAlt ) ) ; + // ASTVerifier.g:405:1: rewriteTreeEbnf : ^( ebnfSuffix ^( REWRITE_BLOCK rewriteTreeAlt ) ) ; public final void rewriteTreeEbnf() throws RecognitionException { try { - // ASTVerifier.g:389:2: ( ^( ebnfSuffix ^( REWRITE_BLOCK rewriteTreeAlt ) ) ) - // ASTVerifier.g:389:4: ^( ebnfSuffix ^( REWRITE_BLOCK rewriteTreeAlt ) ) + // ASTVerifier.g:406:2: ( ^( ebnfSuffix ^( REWRITE_BLOCK rewriteTreeAlt ) ) ) + // ASTVerifier.g:406:4: ^( ebnfSuffix ^( REWRITE_BLOCK rewriteTreeAlt ) ) { - pushFollow(FOLLOW_ebnfSuffix_in_rewriteTreeEbnf1768); + pushFollow(FOLLOW_ebnfSuffix_in_rewriteTreeEbnf1775); ebnfSuffix(); state._fsp--; match(input, Token.DOWN, null); - match(input,REWRITE_BLOCK,FOLLOW_REWRITE_BLOCK_in_rewriteTreeEbnf1771); + match(input,REWRITE_BLOCK,FOLLOW_REWRITE_BLOCK_in_rewriteTreeEbnf1778); match(input, Token.DOWN, null); - pushFollow(FOLLOW_rewriteTreeAlt_in_rewriteTreeEbnf1773); + pushFollow(FOLLOW_rewriteTreeAlt_in_rewriteTreeEbnf1780); rewriteTreeAlt(); state._fsp--; @@ -3740,9 +3701,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3752,21 +3712,21 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewriteTree" - // ASTVerifier.g:391:1: rewriteTree : ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) ; + // ASTVerifier.g:408:1: rewriteTree : ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) ; public final void rewriteTree() throws RecognitionException { try { - // ASTVerifier.g:392:2: ( ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) ) - // ASTVerifier.g:392:4: ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) + // ASTVerifier.g:409:2: ( ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) ) + // ASTVerifier.g:409:4: ^( TREE_BEGIN rewriteTreeAtom ( rewriteTreeElement )* ) { - match(input,TREE_BEGIN,FOLLOW_TREE_BEGIN_in_rewriteTree1786); + match(input,TREE_BEGIN,FOLLOW_TREE_BEGIN_in_rewriteTree1793); match(input, Token.DOWN, null); - pushFollow(FOLLOW_rewriteTreeAtom_in_rewriteTree1788); + pushFollow(FOLLOW_rewriteTreeAtom_in_rewriteTree1795); rewriteTreeAtom(); state._fsp--; - // ASTVerifier.g:392:33: ( rewriteTreeElement )* + // ASTVerifier.g:409:33: ( rewriteTreeElement )* loop50: do { int alt50=2; @@ -3779,9 +3739,9 @@ public class ASTVerifier extends TreeParser { switch (alt50) { case 1 : - // ASTVerifier.g:392:33: rewriteTreeElement + // ASTVerifier.g:409:33: rewriteTreeElement { - pushFollow(FOLLOW_rewriteTreeElement_in_rewriteTree1790); + pushFollow(FOLLOW_rewriteTreeElement_in_rewriteTree1797); rewriteTreeElement(); state._fsp--; @@ -3801,9 +3761,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3813,20 +3772,20 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewriteTemplate" - // ASTVerifier.g:395:1: rewriteTemplate : ( ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_QUOTE_STRING_LITERAL ) | ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_ANGLE_STRING_LITERAL ) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION ); + // ASTVerifier.g:412:1: rewriteTemplate : ( ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_QUOTE_STRING_LITERAL ) | ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_ANGLE_STRING_LITERAL ) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION ); public final void rewriteTemplate() throws RecognitionException { try { - // ASTVerifier.g:396:2: ( ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_QUOTE_STRING_LITERAL ) | ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_ANGLE_STRING_LITERAL ) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION ) + // ASTVerifier.g:413:2: ( ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_QUOTE_STRING_LITERAL ) | ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_ANGLE_STRING_LITERAL ) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION ) int alt53=5; alt53 = dfa53.predict(input); switch (alt53) { case 1 : - // ASTVerifier.g:396:4: ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_QUOTE_STRING_LITERAL ) + // ASTVerifier.g:413:4: ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_QUOTE_STRING_LITERAL ) { - match(input,TEMPLATE,FOLLOW_TEMPLATE_in_rewriteTemplate1805); + match(input,TEMPLATE,FOLLOW_TEMPLATE_in_rewriteTemplate1812); match(input, Token.DOWN, null); - // ASTVerifier.g:396:15: ( rewriteTemplateArgs )? + // ASTVerifier.g:413:15: ( rewriteTemplateArgs )? int alt51=2; int LA51_0 = input.LA(1); @@ -3835,9 +3794,9 @@ public class ASTVerifier extends TreeParser { } switch (alt51) { case 1 : - // ASTVerifier.g:396:15: rewriteTemplateArgs + // ASTVerifier.g:413:15: rewriteTemplateArgs { - pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteTemplate1807); + pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteTemplate1814); rewriteTemplateArgs(); state._fsp--; @@ -3848,19 +3807,19 @@ public class ASTVerifier extends TreeParser { } - match(input,DOUBLE_QUOTE_STRING_LITERAL,FOLLOW_DOUBLE_QUOTE_STRING_LITERAL_in_rewriteTemplate1810); + match(input,DOUBLE_QUOTE_STRING_LITERAL,FOLLOW_DOUBLE_QUOTE_STRING_LITERAL_in_rewriteTemplate1817); match(input, Token.UP, null); } break; case 2 : - // ASTVerifier.g:397:4: ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_ANGLE_STRING_LITERAL ) + // ASTVerifier.g:414:4: ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_ANGLE_STRING_LITERAL ) { - match(input,TEMPLATE,FOLLOW_TEMPLATE_in_rewriteTemplate1817); + match(input,TEMPLATE,FOLLOW_TEMPLATE_in_rewriteTemplate1824); match(input, Token.DOWN, null); - // ASTVerifier.g:397:15: ( rewriteTemplateArgs )? + // ASTVerifier.g:414:15: ( rewriteTemplateArgs )? int alt52=2; int LA52_0 = input.LA(1); @@ -3869,9 +3828,9 @@ public class ASTVerifier extends TreeParser { } switch (alt52) { case 1 : - // ASTVerifier.g:397:15: rewriteTemplateArgs + // ASTVerifier.g:414:15: rewriteTemplateArgs { - pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteTemplate1819); + pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteTemplate1826); rewriteTemplateArgs(); state._fsp--; @@ -3882,16 +3841,16 @@ public class ASTVerifier extends TreeParser { } - match(input,DOUBLE_ANGLE_STRING_LITERAL,FOLLOW_DOUBLE_ANGLE_STRING_LITERAL_in_rewriteTemplate1822); + match(input,DOUBLE_ANGLE_STRING_LITERAL,FOLLOW_DOUBLE_ANGLE_STRING_LITERAL_in_rewriteTemplate1829); match(input, Token.UP, null); } break; case 3 : - // ASTVerifier.g:398:4: rewriteTemplateRef + // ASTVerifier.g:415:4: rewriteTemplateRef { - pushFollow(FOLLOW_rewriteTemplateRef_in_rewriteTemplate1828); + pushFollow(FOLLOW_rewriteTemplateRef_in_rewriteTemplate1835); rewriteTemplateRef(); state._fsp--; @@ -3900,9 +3859,9 @@ public class ASTVerifier extends TreeParser { } break; case 4 : - // ASTVerifier.g:399:4: rewriteIndirectTemplateHead + // ASTVerifier.g:416:4: rewriteIndirectTemplateHead { - pushFollow(FOLLOW_rewriteIndirectTemplateHead_in_rewriteTemplate1833); + pushFollow(FOLLOW_rewriteIndirectTemplateHead_in_rewriteTemplate1840); rewriteIndirectTemplateHead(); state._fsp--; @@ -3911,18 +3870,17 @@ public class ASTVerifier extends TreeParser { } break; case 5 : - // ASTVerifier.g:400:4: ACTION + // ASTVerifier.g:417:4: ACTION { - match(input,ACTION,FOLLOW_ACTION_in_rewriteTemplate1838); + match(input,ACTION,FOLLOW_ACTION_in_rewriteTemplate1845); } break; } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3932,17 +3890,17 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewriteTemplateRef" - // ASTVerifier.g:403:1: rewriteTemplateRef : ^( TEMPLATE ID ( rewriteTemplateArgs )? ) ; + // ASTVerifier.g:420:1: rewriteTemplateRef : ^( TEMPLATE ID ( rewriteTemplateArgs )? ) ; public final void rewriteTemplateRef() throws RecognitionException { try { - // ASTVerifier.g:404:2: ( ^( TEMPLATE ID ( rewriteTemplateArgs )? ) ) - // ASTVerifier.g:404:4: ^( TEMPLATE ID ( rewriteTemplateArgs )? ) + // ASTVerifier.g:421:2: ( ^( TEMPLATE ID ( rewriteTemplateArgs )? ) ) + // ASTVerifier.g:421:4: ^( TEMPLATE ID ( rewriteTemplateArgs )? ) { - match(input,TEMPLATE,FOLLOW_TEMPLATE_in_rewriteTemplateRef1850); + match(input,TEMPLATE,FOLLOW_TEMPLATE_in_rewriteTemplateRef1857); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_rewriteTemplateRef1852); - // ASTVerifier.g:404:18: ( rewriteTemplateArgs )? + match(input,ID,FOLLOW_ID_in_rewriteTemplateRef1859); + // ASTVerifier.g:421:18: ( rewriteTemplateArgs )? int alt54=2; int LA54_0 = input.LA(1); @@ -3951,9 +3909,9 @@ public class ASTVerifier extends TreeParser { } switch (alt54) { case 1 : - // ASTVerifier.g:404:18: rewriteTemplateArgs + // ASTVerifier.g:421:18: rewriteTemplateArgs { - pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteTemplateRef1854); + pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteTemplateRef1861); rewriteTemplateArgs(); state._fsp--; @@ -3970,9 +3928,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -3982,17 +3939,17 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewriteIndirectTemplateHead" - // ASTVerifier.g:407:1: rewriteIndirectTemplateHead : ^( TEMPLATE ACTION ( rewriteTemplateArgs )? ) ; + // ASTVerifier.g:424:1: rewriteIndirectTemplateHead : ^( TEMPLATE ACTION ( rewriteTemplateArgs )? ) ; public final void rewriteIndirectTemplateHead() throws RecognitionException { try { - // ASTVerifier.g:408:2: ( ^( TEMPLATE ACTION ( rewriteTemplateArgs )? ) ) - // ASTVerifier.g:408:4: ^( TEMPLATE ACTION ( rewriteTemplateArgs )? ) + // ASTVerifier.g:425:2: ( ^( TEMPLATE ACTION ( rewriteTemplateArgs )? ) ) + // ASTVerifier.g:425:4: ^( TEMPLATE ACTION ( rewriteTemplateArgs )? ) { - match(input,TEMPLATE,FOLLOW_TEMPLATE_in_rewriteIndirectTemplateHead1868); + match(input,TEMPLATE,FOLLOW_TEMPLATE_in_rewriteIndirectTemplateHead1875); match(input, Token.DOWN, null); - match(input,ACTION,FOLLOW_ACTION_in_rewriteIndirectTemplateHead1870); - // ASTVerifier.g:408:22: ( rewriteTemplateArgs )? + match(input,ACTION,FOLLOW_ACTION_in_rewriteIndirectTemplateHead1877); + // ASTVerifier.g:425:22: ( rewriteTemplateArgs )? int alt55=2; int LA55_0 = input.LA(1); @@ -4001,9 +3958,9 @@ public class ASTVerifier extends TreeParser { } switch (alt55) { case 1 : - // ASTVerifier.g:408:22: rewriteTemplateArgs + // ASTVerifier.g:425:22: rewriteTemplateArgs { - pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteIndirectTemplateHead1872); + pushFollow(FOLLOW_rewriteTemplateArgs_in_rewriteIndirectTemplateHead1879); rewriteTemplateArgs(); state._fsp--; @@ -4020,9 +3977,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -4032,16 +3988,16 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewriteTemplateArgs" - // ASTVerifier.g:411:1: rewriteTemplateArgs : ^( ARGLIST ( rewriteTemplateArg )+ ) ; + // ASTVerifier.g:428:1: rewriteTemplateArgs : ^( ARGLIST ( rewriteTemplateArg )+ ) ; public final void rewriteTemplateArgs() throws RecognitionException { try { - // ASTVerifier.g:412:2: ( ^( ARGLIST ( rewriteTemplateArg )+ ) ) - // ASTVerifier.g:412:4: ^( ARGLIST ( rewriteTemplateArg )+ ) + // ASTVerifier.g:429:2: ( ^( ARGLIST ( rewriteTemplateArg )+ ) ) + // ASTVerifier.g:429:4: ^( ARGLIST ( rewriteTemplateArg )+ ) { - match(input,ARGLIST,FOLLOW_ARGLIST_in_rewriteTemplateArgs1886); + match(input,ARGLIST,FOLLOW_ARGLIST_in_rewriteTemplateArgs1893); match(input, Token.DOWN, null); - // ASTVerifier.g:412:14: ( rewriteTemplateArg )+ + // ASTVerifier.g:429:14: ( rewriteTemplateArg )+ int cnt56=0; loop56: do { @@ -4055,9 +4011,9 @@ public class ASTVerifier extends TreeParser { switch (alt56) { case 1 : - // ASTVerifier.g:412:14: rewriteTemplateArg + // ASTVerifier.g:429:14: rewriteTemplateArg { - pushFollow(FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs1888); + pushFollow(FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs1895); rewriteTemplateArg(); state._fsp--; @@ -4081,9 +4037,8 @@ public class ASTVerifier extends TreeParser { } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -4093,26 +4048,25 @@ public class ASTVerifier extends TreeParser { // $ANTLR start "rewriteTemplateArg" - // ASTVerifier.g:415:1: rewriteTemplateArg : ^( ARG ID ACTION ) ; + // ASTVerifier.g:432:1: rewriteTemplateArg : ^( ARG ID ACTION ) ; public final void rewriteTemplateArg() throws RecognitionException { try { - // ASTVerifier.g:416:2: ( ^( ARG ID ACTION ) ) - // ASTVerifier.g:416:6: ^( ARG ID ACTION ) + // ASTVerifier.g:433:2: ( ^( ARG ID ACTION ) ) + // ASTVerifier.g:433:6: ^( ARG ID ACTION ) { - match(input,ARG,FOLLOW_ARG_in_rewriteTemplateArg1904); + match(input,ARG,FOLLOW_ARG_in_rewriteTemplateArg1911); match(input, Token.DOWN, null); - match(input,ID,FOLLOW_ID_in_rewriteTemplateArg1906); - match(input,ACTION,FOLLOW_ACTION_in_rewriteTemplateArg1908); + match(input,ID,FOLLOW_ID_in_rewriteTemplateArg1913); + match(input,ACTION,FOLLOW_ACTION_in_rewriteTemplateArg1915); match(input, Token.UP, null); } } - catch (RecognitionException re) { - reportError(re); - recover(input,re); + catch (RecognitionException e) { + throw e; } finally { } @@ -4136,7 +4090,7 @@ public class ASTVerifier extends TreeParser { static final String DFA26_minS = "\1\4\1\uffff\2\2\6\uffff\2\57"; static final String DFA26_maxS = - "\1\141\1\uffff\2\2\6\uffff\2\141"; + "\1\140\1\uffff\2\2\6\uffff\2\140"; static final String DFA26_acceptS = "\1\uffff\1\1\2\uffff\1\2\1\3\1\4\1\5\1\6\1\7\2\uffff"; static final String DFA26_specialS = @@ -4144,7 +4098,7 @@ public class ASTVerifier extends TreeParser { static final String[] DFA26_transitionS = { "\1\7\13\uffff\1\6\31\uffff\1\5\2\uffff\1\1\1\uffff\1\3\2\uffff"+ "\1\1\1\uffff\1\2\1\uffff\2\4\2\uffff\1\11\3\uffff\2\4\3\uffff"+ - "\1\4\10\uffff\1\5\1\uffff\3\5\15\uffff\1\10\2\uffff\1\4", + "\1\4\10\uffff\1\5\1\uffff\3\5\14\uffff\1\10\2\uffff\1\4", "", "\1\12", "\1\13", @@ -4155,9 +4109,9 @@ public class ASTVerifier extends TreeParser { "", "", "\1\4\4\uffff\1\4\2\uffff\1\4\4\uffff\1\4\1\uffff\2\4\3\uffff"+ - "\1\4\10\uffff\1\5\24\uffff\1\4", + "\1\4\10\uffff\1\5\23\uffff\1\4", "\1\4\4\uffff\1\4\2\uffff\1\4\4\uffff\1\4\1\uffff\2\4\3\uffff"+ - "\1\4\10\uffff\1\5\24\uffff\1\4" + "\1\4\10\uffff\1\5\23\uffff\1\4" }; static final short[] DFA26_eot = DFA.unpackEncodedString(DFA26_eotS); @@ -4190,7 +4144,7 @@ public class ASTVerifier extends TreeParser { this.transition = DFA26_transition; } public String getDescription() { - return "243:1: element : ( labeledElement | atom | ebnf | ACTION | SEMPRED | GATED_SEMPRED | treeSpec );"; + return "260:1: element : ( labeledElement | atom | ebnf | ACTION | SEMPRED | GATED_SEMPRED | treeSpec );"; } } static final String DFA27_eotS = @@ -4198,9 +4152,9 @@ public class ASTVerifier extends TreeParser { static final String DFA27_eofS = "\13\uffff"; static final String DFA27_minS = - "\1\55\2\2\2\127\2\57\4\uffff"; + "\1\55\2\2\2\126\2\57\4\uffff"; static final String DFA27_maxS = - "\1\62\2\2\2\127\2\141\4\uffff"; + "\1\62\2\2\2\126\2\140\4\uffff"; static final String DFA27_acceptS = "\7\uffff\1\2\1\1\1\3\1\4"; static final String DFA27_specialS = @@ -4212,9 +4166,9 @@ public class ASTVerifier extends TreeParser { "\1\5", "\1\6", "\1\10\4\uffff\1\10\1\uffff\2\10\6\uffff\2\10\3\uffff\1\10\10"+ - "\uffff\1\7\24\uffff\1\10", + "\uffff\1\7\23\uffff\1\10", "\1\11\4\uffff\1\11\1\uffff\2\11\6\uffff\2\11\3\uffff\1\11\10"+ - "\uffff\1\12\24\uffff\1\11", + "\uffff\1\12\23\uffff\1\11", "", "", "", @@ -4251,7 +4205,7 @@ public class ASTVerifier extends TreeParser { this.transition = DFA27_transition; } public String getDescription() { - return "253:1: labeledElement : ( ^( ASSIGN ID atom ) | ^( ASSIGN ID block ) | ^( PLUS_ASSIGN ID atom ) | ^( PLUS_ASSIGN ID block ) );"; + return "270:1: labeledElement : ( ^( ASSIGN ID atom ) | ^( ASSIGN ID block ) | ^( PLUS_ASSIGN ID atom ) | ^( PLUS_ASSIGN ID block ) );"; } } static final String DFA31_eotS = @@ -4259,11 +4213,11 @@ public class ASTVerifier extends TreeParser { static final String DFA31_eofS = "\25\uffff"; static final String DFA31_minS = - "\1\57\2\2\1\uffff\1\2\2\uffff\2\57\1\127\4\uffff\1\57\2\2\2\uffff"+ + "\1\57\2\2\1\uffff\1\2\2\uffff\2\57\1\126\4\uffff\1\57\2\2\2\uffff"+ "\2\57"; static final String DFA31_maxS = - "\1\141\2\2\1\uffff\1\2\2\uffff\2\141\1\127\4\uffff\1\141\2\2\2\uffff"+ - "\2\141"; + "\1\140\2\2\1\uffff\1\2\2\uffff\2\140\1\126\4\uffff\1\140\2\2\2\uffff"+ + "\2\140"; static final String DFA31_acceptS = "\3\uffff\1\5\1\uffff\1\10\1\11\3\uffff\1\1\1\3\1\4\1\2\3\uffff\1"+ "\7\1\6\2\uffff"; @@ -4271,7 +4225,7 @@ public class ASTVerifier extends TreeParser { "\25\uffff}>"; static final String[] DFA31_transitionS = { "\1\2\4\uffff\1\1\1\uffff\1\4\1\3\6\uffff\1\5\1\6\3\uffff\1\5"+ - "\35\uffff\1\5", + "\34\uffff\1\5", "\1\7", "\1\10", "", @@ -4279,23 +4233,23 @@ public class ASTVerifier extends TreeParser { "", "", "\1\5\4\uffff\1\5\2\uffff\1\12\4\uffff\1\13\1\uffff\1\5\1\6"+ - "\3\uffff\1\5\35\uffff\1\5", + "\3\uffff\1\5\34\uffff\1\5", "\1\5\4\uffff\1\5\2\uffff\1\15\4\uffff\1\14\1\uffff\1\5\1\6"+ - "\3\uffff\1\5\35\uffff\1\5", + "\3\uffff\1\5\34\uffff\1\5", "\1\16", "", "", "", "", - "\1\20\4\uffff\1\17\11\uffff\1\22\1\21\3\uffff\1\22\35\uffff"+ + "\1\20\4\uffff\1\17\11\uffff\1\22\1\21\3\uffff\1\22\34\uffff"+ "\1\22", "\1\23", "\1\24", "", "", - "\1\22\4\uffff\1\22\11\uffff\1\22\1\21\3\uffff\1\22\35\uffff"+ + "\1\22\4\uffff\1\22\11\uffff\1\22\1\21\3\uffff\1\22\34\uffff"+ "\1\22", - "\1\22\4\uffff\1\22\11\uffff\1\22\1\21\3\uffff\1\22\35\uffff"+ + "\1\22\4\uffff\1\22\11\uffff\1\22\1\21\3\uffff\1\22\34\uffff"+ "\1\22" }; @@ -4329,7 +4283,7 @@ public class ASTVerifier extends TreeParser { this.transition = DFA31_transition; } public String getDescription() { - return "281:1: atom : ( ^( ROOT range ) | ^( BANG range ) | ^( ROOT notSet ) | ^( BANG notSet ) | range | ^( DOT ID terminal ) | ^( DOT ID ruleref ) | terminal | ruleref );"; + return "298:1: atom : ( ^( ROOT range ) | ^( BANG range ) | ^( ROOT notSet ) | ^( BANG notSet ) | range | ^( DOT ID terminal ) | ^( DOT ID ruleref ) | terminal | ruleref );"; } } static final String DFA40_eotS = @@ -4339,35 +4293,35 @@ public class ASTVerifier extends TreeParser { static final String DFA40_minS = "\1\57\3\2\4\uffff\1\16\3\uffff\1\3\3\uffff"; static final String DFA40_maxS = - "\4\141\4\uffff\1\143\3\uffff\1\143\3\uffff"; + "\4\140\4\uffff\1\142\3\uffff\1\142\3\uffff"; static final String DFA40_acceptS = "\4\uffff\1\11\1\12\1\1\1\2\1\uffff\1\6\1\7\1\10\1\uffff\1\5\1\4"+ "\1\3"; static final String DFA40_specialS = "\20\uffff}>"; static final String[] DFA40_transitionS = { - "\1\5\4\uffff\1\4\11\uffff\1\2\4\uffff\1\1\35\uffff\1\3", + "\1\5\4\uffff\1\4\11\uffff\1\2\4\uffff\1\1\34\uffff\1\3", "\1\6\2\7\13\uffff\1\7\31\uffff\1\7\2\uffff\1\7\1\uffff\1\7"+ "\2\uffff\1\7\1\uffff\1\7\1\uffff\2\7\2\uffff\1\7\3\uffff\2\7"+ - "\3\uffff\1\7\10\uffff\1\7\1\uffff\3\7\15\uffff\1\7\2\uffff\1"+ + "\3\uffff\1\7\10\uffff\1\7\1\uffff\3\7\14\uffff\1\7\2\uffff\1"+ "\7", "\1\10\2\11\13\uffff\1\11\31\uffff\1\11\2\uffff\1\11\1\uffff"+ "\1\11\2\uffff\1\11\1\uffff\1\11\1\uffff\2\11\2\uffff\1\11\3"+ - "\uffff\2\11\3\uffff\1\11\10\uffff\1\11\1\uffff\3\11\15\uffff"+ + "\uffff\2\11\3\uffff\1\11\10\uffff\1\11\1\uffff\3\11\14\uffff"+ "\1\11\2\uffff\1\11", "\1\12\2\13\13\uffff\1\13\31\uffff\1\13\2\uffff\1\13\1\uffff"+ "\1\13\2\uffff\1\13\1\uffff\1\13\1\uffff\2\13\2\uffff\1\13\3"+ - "\uffff\2\13\3\uffff\1\13\10\uffff\1\13\1\uffff\3\13\15\uffff"+ + "\uffff\2\13\3\uffff\1\13\10\uffff\1\13\1\uffff\3\13\14\uffff"+ "\1\13\2\uffff\1\13", "", "", "", "", - "\1\14\124\uffff\1\15", + "\1\14\123\uffff\1\15", "", "", "", - "\1\16\137\uffff\1\17", + "\1\16\136\uffff\1\17", "", "", "" @@ -4403,7 +4357,7 @@ public class ASTVerifier extends TreeParser { this.transition = DFA40_transition; } public String getDescription() { - return "322:1: terminal : ( ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | ^( TOKEN_REF ARG_ACTION elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | TOKEN_REF | ^( WILDCARD elementOptions ) | WILDCARD | ^( ROOT terminal ) | ^( BANG terminal ) );"; + return "339:1: terminal : ( ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | ^( TOKEN_REF ARG_ACTION elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | TOKEN_REF | ^( WILDCARD elementOptions ) | WILDCARD | ^( ROOT terminal ) | ^( BANG terminal ) );"; } } static final String DFA49_eotS = @@ -4412,42 +4366,42 @@ public class ASTVerifier extends TreeParser { "\30\uffff"; static final String DFA49_minS = "\1\20\1\2\1\uffff\1\2\2\uffff\1\16\4\uffff\1\2\1\55\1\3\1\2\1\3"+ - "\1\127\2\uffff\1\103\4\3"; + "\1\126\2\uffff\1\103\4\3"; static final String DFA49_maxS = - "\2\135\1\uffff\1\135\2\uffff\1\143\4\uffff\1\2\2\127\1\2\1\16\1"+ - "\127\2\uffff\1\127\2\3\2\127"; + "\2\134\1\uffff\1\134\2\uffff\1\142\4\uffff\1\2\2\126\1\2\1\16\1"+ + "\126\2\uffff\1\126\2\3\2\126"; static final String DFA49_acceptS = "\2\uffff\1\5\1\uffff\1\10\1\11\1\uffff\1\4\1\6\1\7\1\3\6\uffff\1"+ "\2\1\1\5\uffff"; static final String DFA49_specialS = "\30\uffff}>"; static final String[] DFA49_transitionS = { - "\1\5\55\uffff\1\1\1\2\3\uffff\1\3\31\uffff\1\4", + "\1\5\55\uffff\1\1\1\2\3\uffff\1\3\30\uffff\1\4", "\1\6\1\7\14\uffff\1\7\51\uffff\1\7\3\uffff\2\7\3\uffff\1\7"+ - "\12\uffff\3\7\14\uffff\1\7", + "\12\uffff\3\7\13\uffff\1\7", "", "\1\10\1\11\14\uffff\1\11\51\uffff\1\11\3\uffff\2\11\3\uffff"+ - "\1\11\12\uffff\3\11\14\uffff\1\11", + "\1\11\12\uffff\3\11\13\uffff\1\11", "", "", - "\1\12\124\uffff\1\13", + "\1\12\123\uffff\1\13", "", "", "", "", "\1\14", - "\1\16\51\uffff\1\15", - "\1\17\51\uffff\1\16\51\uffff\1\15", + "\1\16\50\uffff\1\15", + "\1\17\51\uffff\1\16\50\uffff\1\15", "\1\20", "\1\21\12\uffff\1\22", "\1\23", "", "", - "\1\25\23\uffff\1\24", + "\1\25\22\uffff\1\24", "\1\26", "\1\27", - "\1\17\51\uffff\1\16\51\uffff\1\15", - "\1\17\51\uffff\1\16\51\uffff\1\15" + "\1\17\51\uffff\1\16\50\uffff\1\15", + "\1\17\51\uffff\1\16\50\uffff\1\15" }; static final short[] DFA49_eot = DFA.unpackEncodedString(DFA49_eotS); @@ -4480,7 +4434,7 @@ public class ASTVerifier extends TreeParser { this.transition = DFA49_transition; } public String getDescription() { - return "376:1: rewriteTreeAtom : ( ^( TOKEN_REF elementOptions ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | TOKEN_REF | RULE_REF | ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | LABEL | ACTION );"; + return "393:1: rewriteTreeAtom : ( ^( TOKEN_REF elementOptions ARG_ACTION ) | ^( TOKEN_REF elementOptions ) | ^( TOKEN_REF ARG_ACTION ) | TOKEN_REF | RULE_REF | ^( STRING_LITERAL elementOptions ) | STRING_LITERAL | LABEL | ACTION );"; } } static final String DFA53_eotS = @@ -4488,11 +4442,11 @@ public class ASTVerifier extends TreeParser { static final String DFA53_eofS = "\20\uffff"; static final String DFA53_minS = - "\1\20\1\2\1\uffff\1\12\2\uffff\1\2\2\uffff\1\130\1\2\1\127\1\20"+ + "\1\20\1\2\1\uffff\1\12\2\uffff\1\2\2\uffff\1\127\1\2\1\126\1\20"+ "\2\3\1\12"; static final String DFA53_maxS = - "\1\43\1\2\1\uffff\1\131\2\uffff\1\2\2\uffff\1\130\1\2\1\127\1\20"+ - "\1\3\1\130\1\13"; + "\1\43\1\2\1\uffff\1\130\2\uffff\1\2\2\uffff\1\127\1\2\1\126\1\20"+ + "\1\3\1\127\1\13"; static final String DFA53_acceptS = "\2\uffff\1\5\1\uffff\1\3\1\4\1\uffff\1\1\1\2\7\uffff"; static final String DFA53_specialS = @@ -4501,7 +4455,7 @@ public class ASTVerifier extends TreeParser { "\1\2\22\uffff\1\1", "\1\3", "", - "\1\7\1\10\4\uffff\1\5\106\uffff\1\4\1\uffff\1\6", + "\1\7\1\10\4\uffff\1\5\105\uffff\1\4\1\uffff\1\6", "", "", "\1\11", @@ -4512,7 +4466,7 @@ public class ASTVerifier extends TreeParser { "\1\14", "\1\15", "\1\16", - "\1\17\124\uffff\1\12", + "\1\17\123\uffff\1\12", "\1\7\1\10" }; @@ -4546,248 +4500,248 @@ public class ASTVerifier extends TreeParser { this.transition = DFA53_transition; } public String getDescription() { - return "395:1: rewriteTemplate : ( ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_QUOTE_STRING_LITERAL ) | ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_ANGLE_STRING_LITERAL ) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION );"; + return "412:1: rewriteTemplate : ( ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_QUOTE_STRING_LITERAL ) | ^( TEMPLATE ( rewriteTemplateArgs )? DOUBLE_ANGLE_STRING_LITERAL ) | rewriteTemplateRef | rewriteIndirectTemplateHead | ACTION );"; } } - public static final BitSet FOLLOW_GRAMMAR_in_grammarSpec74 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_grammarSpec76 = new BitSet(new long[]{0x0800000000780040L,0x0000000000000200L}); - public static final BitSet FOLLOW_DOC_COMMENT_in_grammarSpec78 = new BitSet(new long[]{0x0800000000780040L,0x0000000000000200L}); - public static final BitSet FOLLOW_prequelConstruct_in_grammarSpec81 = new BitSet(new long[]{0x0800000000780040L,0x0000000000000200L}); - public static final BitSet FOLLOW_rules_in_grammarSpec84 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_optionsSpec_in_prequelConstruct102 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_delegateGrammars_in_prequelConstruct112 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_tokensSpec_in_prequelConstruct122 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_attrScope_in_prequelConstruct132 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_action_in_prequelConstruct142 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_OPTIONS_in_optionsSpec157 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_option_in_optionsSpec159 = new BitSet(new long[]{0x0000200000000008L}); - public static final BitSet FOLLOW_ASSIGN_in_option181 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_option183 = new BitSet(new long[]{0x0001000000000000L,0x0000000000800009L}); - public static final BitSet FOLLOW_optionValue_in_option185 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_GRAMMAR_in_grammarSpec81 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_grammarSpec83 = new BitSet(new long[]{0x0800000000780040L,0x0000000000000200L}); + public static final BitSet FOLLOW_DOC_COMMENT_in_grammarSpec85 = new BitSet(new long[]{0x0800000000780040L,0x0000000000000200L}); + public static final BitSet FOLLOW_prequelConstruct_in_grammarSpec88 = new BitSet(new long[]{0x0800000000780040L,0x0000000000000200L}); + public static final BitSet FOLLOW_rules_in_grammarSpec91 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_optionsSpec_in_prequelConstruct109 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_delegateGrammars_in_prequelConstruct119 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_tokensSpec_in_prequelConstruct129 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_attrScope_in_prequelConstruct139 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_action_in_prequelConstruct149 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_OPTIONS_in_optionsSpec164 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_option_in_optionsSpec166 = new BitSet(new long[]{0x0000200000000008L}); + public static final BitSet FOLLOW_ASSIGN_in_option188 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_option190 = new BitSet(new long[]{0x0001000000000000L,0x0000000000400009L}); + public static final BitSet FOLLOW_optionValue_in_option192 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_set_in_optionValue0 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_IMPORT_in_delegateGrammars270 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_delegateGrammar_in_delegateGrammars272 = new BitSet(new long[]{0x0000200000000008L,0x0000000000800000L}); - public static final BitSet FOLLOW_ASSIGN_in_delegateGrammar291 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_delegateGrammar293 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L}); - public static final BitSet FOLLOW_ID_in_delegateGrammar295 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_ID_in_delegateGrammar306 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TOKENS_in_tokensSpec323 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_tokenSpec_in_tokensSpec325 = new BitSet(new long[]{0x0000200000000008L,0x0000000000800000L}); - public static final BitSet FOLLOW_ASSIGN_in_tokenSpec339 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_tokenSpec341 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_STRING_LITERAL_in_tokenSpec343 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_ID_in_tokenSpec349 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_SCOPE_in_attrScope361 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_attrScope363 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_attrScope365 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_AT_in_action378 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_action380 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L}); - public static final BitSet FOLLOW_ID_in_action383 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_action385 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_RULES_in_rules401 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_rule_in_rules403 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000100L}); - public static final BitSet FOLLOW_RULE_in_rule421 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_rule423 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); - public static final BitSet FOLLOW_DOC_COMMENT_in_rule425 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); - public static final BitSet FOLLOW_ruleModifiers_in_rule428 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); - public static final BitSet FOLLOW_ARG_ACTION_in_rule431 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); - public static final BitSet FOLLOW_ruleReturns_in_rule444 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); - public static final BitSet FOLLOW_rulePrequel_in_rule447 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); - public static final BitSet FOLLOW_altListAsBlock_in_rule450 = new BitSet(new long[]{0x0000000600000008L}); - public static final BitSet FOLLOW_exceptionGroup_in_rule452 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_exceptionHandler_in_exceptionGroup479 = new BitSet(new long[]{0x0000000600000002L}); - public static final BitSet FOLLOW_finallyClause_in_exceptionGroup482 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_CATCH_in_exceptionHandler498 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARG_ACTION_in_exceptionHandler500 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_exceptionHandler502 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_FINALLY_in_finallyClause515 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ACTION_in_finallyClause517 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_throwsSpec_in_rulePrequel534 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleScopeSpec_in_rulePrequel544 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_optionsSpec_in_rulePrequel554 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleAction_in_rulePrequel564 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_RETURNS_in_ruleReturns579 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARG_ACTION_in_ruleReturns581 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_THROWS_in_throwsSpec596 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_throwsSpec598 = new BitSet(new long[]{0x0000000000000008L,0x0000000000800000L}); - public static final BitSet FOLLOW_SCOPE_in_ruleScopeSpec615 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ACTION_in_ruleScopeSpec617 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_SCOPE_in_ruleScopeSpec624 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_ruleScopeSpec626 = new BitSet(new long[]{0x0000000000000008L,0x0000000000800000L}); - public static final BitSet FOLLOW_AT_in_ruleAction640 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_ruleAction642 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_ruleAction644 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_RULEMODIFIERS_in_ruleModifiers660 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ruleModifier_in_ruleModifiers662 = new BitSet(new long[]{0x0000000070800008L}); + public static final BitSet FOLLOW_IMPORT_in_delegateGrammars277 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_delegateGrammar_in_delegateGrammars279 = new BitSet(new long[]{0x0000200000000008L,0x0000000000400000L}); + public static final BitSet FOLLOW_ASSIGN_in_delegateGrammar298 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_delegateGrammar300 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L}); + public static final BitSet FOLLOW_ID_in_delegateGrammar302 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ID_in_delegateGrammar313 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TOKENS_in_tokensSpec330 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_tokenSpec_in_tokensSpec332 = new BitSet(new long[]{0x0000200000000008L,0x0000000000400000L}); + public static final BitSet FOLLOW_ASSIGN_in_tokenSpec346 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_tokenSpec348 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_tokenSpec350 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ID_in_tokenSpec356 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SCOPE_in_attrScope368 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_attrScope370 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_attrScope372 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_AT_in_action385 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_action387 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L}); + public static final BitSet FOLLOW_ID_in_action390 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_action392 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_RULES_in_rules408 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_rule_in_rules410 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000100L}); + public static final BitSet FOLLOW_RULE_in_rule428 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_rule430 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); + public static final BitSet FOLLOW_DOC_COMMENT_in_rule432 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); + public static final BitSet FOLLOW_ruleModifiers_in_rule435 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); + public static final BitSet FOLLOW_ARG_ACTION_in_rule438 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); + public static final BitSet FOLLOW_ruleReturns_in_rule451 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); + public static final BitSet FOLLOW_rulePrequel_in_rule454 = new BitSet(new long[]{0x0800000180284040L,0x0000000000001400L}); + public static final BitSet FOLLOW_altListAsBlock_in_rule457 = new BitSet(new long[]{0x0000000600000008L}); + public static final BitSet FOLLOW_exceptionGroup_in_rule459 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_exceptionHandler_in_exceptionGroup486 = new BitSet(new long[]{0x0000000600000002L}); + public static final BitSet FOLLOW_finallyClause_in_exceptionGroup489 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CATCH_in_exceptionHandler505 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARG_ACTION_in_exceptionHandler507 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_exceptionHandler509 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_FINALLY_in_finallyClause522 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ACTION_in_finallyClause524 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_throwsSpec_in_rulePrequel541 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleScopeSpec_in_rulePrequel551 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_optionsSpec_in_rulePrequel561 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleAction_in_rulePrequel571 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RETURNS_in_ruleReturns586 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARG_ACTION_in_ruleReturns588 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_THROWS_in_throwsSpec603 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_throwsSpec605 = new BitSet(new long[]{0x0000000000000008L,0x0000000000400000L}); + public static final BitSet FOLLOW_SCOPE_in_ruleScopeSpec622 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ACTION_in_ruleScopeSpec624 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_SCOPE_in_ruleScopeSpec631 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_ruleScopeSpec633 = new BitSet(new long[]{0x0000000000000008L,0x0000000000400000L}); + public static final BitSet FOLLOW_AT_in_ruleAction647 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_ruleAction649 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_ruleAction651 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_RULEMODIFIERS_in_ruleModifiers667 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ruleModifier_in_ruleModifiers669 = new BitSet(new long[]{0x0000000070800008L}); public static final BitSet FOLLOW_set_in_ruleModifier0 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_alternative_in_altList722 = new BitSet(new long[]{0x0000000000000002L,0x0000002000100000L}); - public static final BitSet FOLLOW_BLOCK_in_altListAsBlock741 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_altList_in_altListAsBlock743 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_ALT_REWRITE_in_alternative762 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_alternative_in_alternative764 = new BitSet(new long[]{0x0000000000000000L,0x0000001000400000L}); - public static final BitSet FOLLOW_rewrite_in_alternative766 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_ALT_in_alternative776 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_EPSILON_in_alternative778 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_elements_in_alternative789 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ALT_in_elements807 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_element_in_elements809 = new BitSet(new long[]{0xC4D4A40000010018L,0x000000024001D008L}); - public static final BitSet FOLLOW_labeledElement_in_element825 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_atom_in_element830 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ebnf_in_element835 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ACTION_in_element842 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_SEMPRED_in_element849 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_GATED_SEMPRED_in_element854 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_treeSpec_in_element859 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ASSIGN_in_labeledElement872 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_labeledElement874 = new BitSet(new long[]{0xC0D0800000000000L,0x0000000200000008L}); - public static final BitSet FOLLOW_atom_in_labeledElement876 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_ASSIGN_in_labeledElement883 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_labeledElement885 = new BitSet(new long[]{0x0010840000000000L,0x000000000001D000L}); - public static final BitSet FOLLOW_block_in_labeledElement887 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_PLUS_ASSIGN_in_labeledElement894 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_labeledElement896 = new BitSet(new long[]{0xC0D0800000000000L,0x0000000200000008L}); - public static final BitSet FOLLOW_atom_in_labeledElement898 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_PLUS_ASSIGN_in_labeledElement905 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_labeledElement907 = new BitSet(new long[]{0x0010840000000000L,0x000000000001D000L}); - public static final BitSet FOLLOW_block_in_labeledElement909 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_TREE_BEGIN_in_treeSpec925 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_element_in_treeSpec927 = new BitSet(new long[]{0xC4D4A40000010018L,0x000000024001D008L}); - public static final BitSet FOLLOW_blockSuffix_in_ebnf942 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_block_in_ebnf944 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_block_in_ebnf951 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ebnfSuffix_in_blockSuffix968 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ROOT_in_blockSuffix976 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_IMPLIES_in_blockSuffix984 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BANG_in_blockSuffix992 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_alternative_in_altList729 = new BitSet(new long[]{0x0000000000000002L,0x0000002000100000L}); + public static final BitSet FOLLOW_BLOCK_in_altListAsBlock748 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_altList_in_altListAsBlock750 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ALT_REWRITE_in_alternative769 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_alternative_in_alternative771 = new BitSet(new long[]{0x0000000000000000L,0x0000001800000000L}); + public static final BitSet FOLLOW_rewrite_in_alternative773 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ALT_in_alternative783 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_EPSILON_in_alternative785 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_elements_in_alternative796 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ALT_in_elements814 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_element_in_elements816 = new BitSet(new long[]{0xC4D4A40000010018L,0x000000012001D008L}); + public static final BitSet FOLLOW_labeledElement_in_element832 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_atom_in_element837 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ebnf_in_element842 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ACTION_in_element849 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SEMPRED_in_element856 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_GATED_SEMPRED_in_element861 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_treeSpec_in_element866 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ASSIGN_in_labeledElement879 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_labeledElement881 = new BitSet(new long[]{0xC0D0800000000000L,0x0000000100000008L}); + public static final BitSet FOLLOW_atom_in_labeledElement883 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ASSIGN_in_labeledElement890 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_labeledElement892 = new BitSet(new long[]{0x0010840000000000L,0x000000000001D000L}); + public static final BitSet FOLLOW_block_in_labeledElement894 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_PLUS_ASSIGN_in_labeledElement901 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_labeledElement903 = new BitSet(new long[]{0xC0D0800000000000L,0x0000000100000008L}); + public static final BitSet FOLLOW_atom_in_labeledElement905 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_PLUS_ASSIGN_in_labeledElement912 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_labeledElement914 = new BitSet(new long[]{0x0010840000000000L,0x000000000001D000L}); + public static final BitSet FOLLOW_block_in_labeledElement916 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TREE_BEGIN_in_treeSpec932 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_element_in_treeSpec934 = new BitSet(new long[]{0xC4D4A40000010018L,0x000000012001D008L}); + public static final BitSet FOLLOW_blockSuffix_in_ebnf949 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_block_in_ebnf951 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_block_in_ebnf958 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ebnfSuffix_in_blockSuffix975 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ROOT_in_blockSuffix983 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IMPLIES_in_blockSuffix991 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BANG_in_blockSuffix999 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_set_in_ebnfSuffix0 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ROOT_in_atom1032 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_range_in_atom1034 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_BANG_in_atom1041 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_range_in_atom1043 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_ROOT_in_atom1050 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_notSet_in_atom1052 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_BANG_in_atom1059 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_notSet_in_atom1061 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_range_in_atom1067 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_DOT_in_atom1073 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_atom1075 = new BitSet(new long[]{0x4010800000000000L,0x0000000200000008L}); - public static final BitSet FOLLOW_terminal_in_atom1077 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_DOT_in_atom1084 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_atom1086 = new BitSet(new long[]{0xC0D0800000000000L,0x0000000200000008L}); - public static final BitSet FOLLOW_ruleref_in_atom1088 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_terminal_in_atom1099 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleref_in_atom1109 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_NOT_in_notSet1127 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_notTerminal_in_notSet1129 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_NOT_in_notSet1139 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_block_in_notSet1141 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ROOT_in_atom1039 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_range_in_atom1041 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_BANG_in_atom1048 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_range_in_atom1050 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ROOT_in_atom1057 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_notSet_in_atom1059 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_BANG_in_atom1066 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_notSet_in_atom1068 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_range_in_atom1074 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DOT_in_atom1080 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_atom1082 = new BitSet(new long[]{0x4010800000000000L,0x0000000100000008L}); + public static final BitSet FOLLOW_terminal_in_atom1084 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_DOT_in_atom1091 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_atom1093 = new BitSet(new long[]{0xC0D0800000000000L,0x0000000100000008L}); + public static final BitSet FOLLOW_ruleref_in_atom1095 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_terminal_in_atom1106 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleref_in_atom1116 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOT_in_notSet1134 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_notTerminal_in_notSet1136 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_NOT_in_notSet1146 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_block_in_notSet1148 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_set_in_notTerminal0 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_BLOCK_in_block1185 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_optionsSpec_in_block1187 = new BitSet(new long[]{0x0800000100290000L,0x0000002000100000L}); - public static final BitSet FOLLOW_ruleAction_in_block1190 = new BitSet(new long[]{0x0800000100290000L,0x0000002000100000L}); - public static final BitSet FOLLOW_ACTION_in_block1193 = new BitSet(new long[]{0x0800000100290000L,0x0000002000100000L}); - public static final BitSet FOLLOW_altList_in_block1196 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_ROOT_in_ruleref1215 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_RULE_REF_in_ruleref1218 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARG_ACTION_in_ruleref1220 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_BANG_in_ruleref1232 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_RULE_REF_in_ruleref1235 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARG_ACTION_in_ruleref1237 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_RULE_REF_in_ruleref1249 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARG_ACTION_in_ruleref1251 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_RANGE_in_range1271 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_rangeElement_in_range1273 = new BitSet(new long[]{0xC000000000000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_rangeElement_in_range1275 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_BLOCK_in_block1192 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_optionsSpec_in_block1194 = new BitSet(new long[]{0x0800000100290000L,0x0000002000100000L}); + public static final BitSet FOLLOW_ruleAction_in_block1197 = new BitSet(new long[]{0x0800000100290000L,0x0000002000100000L}); + public static final BitSet FOLLOW_ACTION_in_block1200 = new BitSet(new long[]{0x0800000100290000L,0x0000002000100000L}); + public static final BitSet FOLLOW_altList_in_block1203 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ROOT_in_ruleref1222 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_RULE_REF_in_ruleref1225 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARG_ACTION_in_ruleref1227 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_BANG_in_ruleref1239 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_RULE_REF_in_ruleref1242 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARG_ACTION_in_ruleref1244 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_RULE_REF_in_ruleref1256 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARG_ACTION_in_ruleref1258 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_RANGE_in_range1278 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_rangeElement_in_range1280 = new BitSet(new long[]{0xC000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_rangeElement_in_range1282 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_set_in_rangeElement0 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STRING_LITERAL_in_terminal1328 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_elementOptions_in_terminal1330 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_STRING_LITERAL_in_terminal1339 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TOKEN_REF_in_terminal1348 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARG_ACTION_in_terminal1350 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L}); - public static final BitSet FOLLOW_elementOptions_in_terminal1352 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_TOKEN_REF_in_terminal1362 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARG_ACTION_in_terminal1364 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_TOKEN_REF_in_terminal1374 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_elementOptions_in_terminal1376 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_TOKEN_REF_in_terminal1385 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_WILDCARD_in_terminal1394 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_elementOptions_in_terminal1396 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_WILDCARD_in_terminal1405 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ROOT_in_terminal1414 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_terminal_in_terminal1416 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_BANG_in_terminal1426 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_terminal_in_terminal1428 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_ELEMENT_OPTIONS_in_elementOptions1447 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_elementOption_in_elementOptions1449 = new BitSet(new long[]{0x0000200000000008L,0x0000000000800000L}); - public static final BitSet FOLLOW_ID_in_elementOption1468 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ASSIGN_in_elementOption1479 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_elementOption1481 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L}); - public static final BitSet FOLLOW_ID_in_elementOption1483 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_ASSIGN_in_elementOption1495 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_elementOption1497 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); - public static final BitSet FOLLOW_STRING_LITERAL_in_elementOption1499 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_predicatedRewrite_in_rewrite1514 = new BitSet(new long[]{0x0000000000000000L,0x0000001000400000L}); - public static final BitSet FOLLOW_nakedRewrite_in_rewrite1517 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ST_RESULT_in_predicatedRewrite1529 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_SEMPRED_in_predicatedRewrite1531 = new BitSet(new long[]{0x0100000800010000L,0x0000000000180000L}); - public static final BitSet FOLLOW_rewriteAlt_in_predicatedRewrite1533 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_RESULT_in_predicatedRewrite1540 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_SEMPRED_in_predicatedRewrite1542 = new BitSet(new long[]{0x0100000800010000L,0x0000000000180000L}); - public static final BitSet FOLLOW_rewriteAlt_in_predicatedRewrite1544 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_ST_RESULT_in_nakedRewrite1558 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_rewriteAlt_in_nakedRewrite1560 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_RESULT_in_nakedRewrite1567 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_rewriteAlt_in_nakedRewrite1569 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_rewriteTemplate_in_rewriteAlt1585 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTreeAlt_in_rewriteAlt1593 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ETC_in_rewriteAlt1601 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_EPSILON_in_rewriteAlt1609 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ALT_in_rewriteTreeAlt1628 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_rewriteTreeElement_in_rewriteTreeAlt1630 = new BitSet(new long[]{0xC400000000010008L,0x000000002001C008L}); - public static final BitSet FOLLOW_rewriteTreeAtom_in_rewriteTreeElement1646 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTree_in_rewriteTreeElement1651 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteTreeEbnf_in_rewriteTreeElement1658 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TOKEN_REF_in_rewriteTreeAtom1675 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_elementOptions_in_rewriteTreeAtom1677 = new BitSet(new long[]{0x0000000000004000L}); - public static final BitSet FOLLOW_ARG_ACTION_in_rewriteTreeAtom1679 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_TOKEN_REF_in_rewriteTreeAtom1691 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_elementOptions_in_rewriteTreeAtom1693 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_TOKEN_REF_in_rewriteTreeAtom1705 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ARG_ACTION_in_rewriteTreeAtom1707 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_TOKEN_REF_in_rewriteTreeAtom1715 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_RULE_REF_in_rewriteTreeAtom1725 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_STRING_LITERAL_in_rewriteTreeAtom1733 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_elementOptions_in_rewriteTreeAtom1735 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_STRING_LITERAL_in_rewriteTreeAtom1743 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_LABEL_in_rewriteTreeAtom1751 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ACTION_in_rewriteTreeAtom1756 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ebnfSuffix_in_rewriteTreeEbnf1768 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_REWRITE_BLOCK_in_rewriteTreeEbnf1771 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_rewriteTreeAlt_in_rewriteTreeEbnf1773 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_TREE_BEGIN_in_rewriteTree1786 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_rewriteTreeAtom_in_rewriteTree1788 = new BitSet(new long[]{0xC400000000010008L,0x000000002001C008L}); - public static final BitSet FOLLOW_rewriteTreeElement_in_rewriteTree1790 = new BitSet(new long[]{0xC400000000010008L,0x000000002001C008L}); - public static final BitSet FOLLOW_TEMPLATE_in_rewriteTemplate1805 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteTemplate1807 = new BitSet(new long[]{0x0000000000000400L}); - public static final BitSet FOLLOW_DOUBLE_QUOTE_STRING_LITERAL_in_rewriteTemplate1810 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_TEMPLATE_in_rewriteTemplate1817 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteTemplate1819 = new BitSet(new long[]{0x0000000000000800L}); - public static final BitSet FOLLOW_DOUBLE_ANGLE_STRING_LITERAL_in_rewriteTemplate1822 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_rewriteTemplateRef_in_rewriteTemplate1828 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_rewriteIndirectTemplateHead_in_rewriteTemplate1833 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ACTION_in_rewriteTemplate1838 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_TEMPLATE_in_rewriteTemplateRef1850 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_rewriteTemplateRef1852 = new BitSet(new long[]{0x0000000000000008L,0x0000000002000000L}); - public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteTemplateRef1854 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_TEMPLATE_in_rewriteIndirectTemplateHead1868 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ACTION_in_rewriteIndirectTemplateHead1870 = new BitSet(new long[]{0x0000000000000008L,0x0000000002000000L}); - public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteIndirectTemplateHead1872 = new BitSet(new long[]{0x0000000000000008L}); - public static final BitSet FOLLOW_ARGLIST_in_rewriteTemplateArgs1886 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs1888 = new BitSet(new long[]{0x0000000000000008L,0x0000000001000000L}); - public static final BitSet FOLLOW_ARG_in_rewriteTemplateArg1904 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_rewriteTemplateArg1906 = new BitSet(new long[]{0x0000000000010000L}); - public static final BitSet FOLLOW_ACTION_in_rewriteTemplateArg1908 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_terminal1335 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_elementOptions_in_terminal1337 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_terminal1346 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TOKEN_REF_in_terminal1355 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARG_ACTION_in_terminal1357 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L}); + public static final BitSet FOLLOW_elementOptions_in_terminal1359 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TOKEN_REF_in_terminal1369 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARG_ACTION_in_terminal1371 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TOKEN_REF_in_terminal1381 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_elementOptions_in_terminal1383 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TOKEN_REF_in_terminal1392 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_WILDCARD_in_terminal1401 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_elementOptions_in_terminal1403 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_WILDCARD_in_terminal1412 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ROOT_in_terminal1421 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_terminal_in_terminal1423 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_BANG_in_terminal1433 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_terminal_in_terminal1435 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ELEMENT_OPTIONS_in_elementOptions1454 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_elementOption_in_elementOptions1456 = new BitSet(new long[]{0x0000200000000008L,0x0000000000400000L}); + public static final BitSet FOLLOW_ID_in_elementOption1475 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ASSIGN_in_elementOption1486 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_elementOption1488 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L}); + public static final BitSet FOLLOW_ID_in_elementOption1490 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ASSIGN_in_elementOption1502 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_elementOption1504 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_elementOption1506 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_predicatedRewrite_in_rewrite1521 = new BitSet(new long[]{0x0000000000000000L,0x0000001800000000L}); + public static final BitSet FOLLOW_nakedRewrite_in_rewrite1524 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ST_RESULT_in_predicatedRewrite1536 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_SEMPRED_in_predicatedRewrite1538 = new BitSet(new long[]{0x0100000800010000L,0x0000000000180000L}); + public static final BitSet FOLLOW_rewriteAlt_in_predicatedRewrite1540 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_RESULT_in_predicatedRewrite1547 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_SEMPRED_in_predicatedRewrite1549 = new BitSet(new long[]{0x0100000800010000L,0x0000000000180000L}); + public static final BitSet FOLLOW_rewriteAlt_in_predicatedRewrite1551 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ST_RESULT_in_nakedRewrite1565 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_rewriteAlt_in_nakedRewrite1567 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_RESULT_in_nakedRewrite1574 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_rewriteAlt_in_nakedRewrite1576 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_rewriteTemplate_in_rewriteAlt1592 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTreeAlt_in_rewriteAlt1600 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ETC_in_rewriteAlt1608 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_EPSILON_in_rewriteAlt1616 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ALT_in_rewriteTreeAlt1635 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_rewriteTreeElement_in_rewriteTreeAlt1637 = new BitSet(new long[]{0xC400000000010008L,0x000000001001C008L}); + public static final BitSet FOLLOW_rewriteTreeAtom_in_rewriteTreeElement1653 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTree_in_rewriteTreeElement1658 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteTreeEbnf_in_rewriteTreeElement1665 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TOKEN_REF_in_rewriteTreeAtom1682 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_elementOptions_in_rewriteTreeAtom1684 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_ARG_ACTION_in_rewriteTreeAtom1686 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TOKEN_REF_in_rewriteTreeAtom1698 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_elementOptions_in_rewriteTreeAtom1700 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TOKEN_REF_in_rewriteTreeAtom1712 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ARG_ACTION_in_rewriteTreeAtom1714 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TOKEN_REF_in_rewriteTreeAtom1722 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_REF_in_rewriteTreeAtom1732 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_rewriteTreeAtom1740 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_elementOptions_in_rewriteTreeAtom1742 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_rewriteTreeAtom1750 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LABEL_in_rewriteTreeAtom1758 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ACTION_in_rewriteTreeAtom1763 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ebnfSuffix_in_rewriteTreeEbnf1775 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_REWRITE_BLOCK_in_rewriteTreeEbnf1778 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_rewriteTreeAlt_in_rewriteTreeEbnf1780 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TREE_BEGIN_in_rewriteTree1793 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_rewriteTreeAtom_in_rewriteTree1795 = new BitSet(new long[]{0xC400000000010008L,0x000000001001C008L}); + public static final BitSet FOLLOW_rewriteTreeElement_in_rewriteTree1797 = new BitSet(new long[]{0xC400000000010008L,0x000000001001C008L}); + public static final BitSet FOLLOW_TEMPLATE_in_rewriteTemplate1812 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteTemplate1814 = new BitSet(new long[]{0x0000000000000400L}); + public static final BitSet FOLLOW_DOUBLE_QUOTE_STRING_LITERAL_in_rewriteTemplate1817 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TEMPLATE_in_rewriteTemplate1824 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteTemplate1826 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_DOUBLE_ANGLE_STRING_LITERAL_in_rewriteTemplate1829 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_rewriteTemplateRef_in_rewriteTemplate1835 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rewriteIndirectTemplateHead_in_rewriteTemplate1840 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ACTION_in_rewriteTemplate1845 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TEMPLATE_in_rewriteTemplateRef1857 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_rewriteTemplateRef1859 = new BitSet(new long[]{0x0000000000000008L,0x0000000001000000L}); + public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteTemplateRef1861 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_TEMPLATE_in_rewriteIndirectTemplateHead1875 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ACTION_in_rewriteIndirectTemplateHead1877 = new BitSet(new long[]{0x0000000000000008L,0x0000000001000000L}); + public static final BitSet FOLLOW_rewriteTemplateArgs_in_rewriteIndirectTemplateHead1879 = new BitSet(new long[]{0x0000000000000008L}); + public static final BitSet FOLLOW_ARGLIST_in_rewriteTemplateArgs1893 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_rewriteTemplateArg_in_rewriteTemplateArgs1895 = new BitSet(new long[]{0x0000000000000008L,0x0000000000800000L}); + public static final BitSet FOLLOW_ARG_in_rewriteTemplateArg1911 = new BitSet(new long[]{0x0000000000000004L}); + public static final BitSet FOLLOW_ID_in_rewriteTemplateArg1913 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_ACTION_in_rewriteTemplateArg1915 = new BitSet(new long[]{0x0000000000000008L}); } \ No newline at end of file diff --git a/tool/src/org/antlr/v4/parse/ASTVerifier.tokens b/tool/src/org/antlr/v4/parse/ASTVerifier.tokens index 2cc5f8089..dcbf34ea7 100644 --- a/tool/src/org/antlr/v4/parse/ASTVerifier.tokens +++ b/tool/src/org/antlr/v4/parse/ASTVerifier.tokens @@ -1,22 +1,22 @@ -COMBINED=91 +COMBINED=90 LT=43 STAR=48 -BACKTRACK_SEMPRED=96 +BACKTRACK_SEMPRED=95 DOUBLE_ANGLE_STRING_LITERAL=11 FORCED_ACTION=5 -ARGLIST=89 +ARGLIST=88 ALTLIST=85 NOT=60 SEMPRED=4 ACTION=16 TOKEN_REF=62 RULEMODIFIERS=74 -ST_RESULT=100 +ST_RESULT=99 RPAREN=41 -RET=90 +RET=89 IMPORT=22 STRING_LITERAL=67 -ARG=88 +ARG=87 ARG_ACTION=14 DOUBLE_QUOTE_STRING_LITERAL=10 COMMENT=9 @@ -24,7 +24,7 @@ ACTION_CHAR_LITERAL=13 GRAMMAR=27 RULEACTIONS=75 WSCHARS=65 -INITACTION=92 +INITACTION=91 ALT_REWRITE=101 IMPLIES=42 RULE=72 @@ -36,7 +36,7 @@ THROWS=32 CHAR_RANGE=82 INT=64 EPSILON=83 -LIST=98 +LIST=97 COLONCOLON=37 WSNLCHARS=18 WS=70 @@ -48,10 +48,10 @@ CLOSURE=79 PARSER=25 DOLLAR=53 PROTECTED=28 -ELEMENT_OPTIONS=99 +ELEMENT_OPTIONS=98 NESTED_ACTION=15 FRAGMENT=23 -ID=87 +ID=86 TREE_BEGIN=58 LPAREN=40 AT=59 @@ -61,7 +61,7 @@ TREE=26 SCOPE=21 ETC=56 COMMA=38 -WILDCARD=97 +WILDCARD=96 DOC_COMMENT=6 PLUS=49 REWRITE_BLOCK=77 @@ -73,8 +73,8 @@ UNICODE_ESC=69 HEX_DIGIT=68 RANGE=55 TOKENS=20 -GATED_SEMPRED=94 -RESULT=86 +RESULT=100 +GATED_SEMPRED=93 BANG=47 ACTION_STRING_LITERAL=12 ROOT=52 @@ -87,8 +87,8 @@ COLON=36 QUESTION=46 FINALLY=34 TEMPLATE=35 -LABEL=93 -SYN_SEMPRED=95 +LABEL=92 +SYN_SEMPRED=94 ERRCHAR=71 BLOCK=76 ASSIGN=45 diff --git a/tool/src/org/antlr/v4/parse/ActionSplitter.java b/tool/src/org/antlr/v4/parse/ActionSplitter.java index 55a5145d7..ca0783b35 100644 --- a/tool/src/org/antlr/v4/parse/ActionSplitter.java +++ b/tool/src/org/antlr/v4/parse/ActionSplitter.java @@ -1,4 +1,4 @@ -// $ANTLR ${project.version} ${buildNumber} ActionSplitter.g 2010-02-16 17:54:26 +// $ANTLR ${project.version} ${buildNumber} ActionSplitter.g 2010-02-19 17:45:08 package org.antlr.v4.parse; @@ -2175,20 +2175,6 @@ public class ActionSplitter extends org.antlr.v4.runtime.Lexer { state.failed=false; return success; } - public final boolean synpred12_ActionSplitter() { - state.backtracking++; - int start = input.mark(); - try { - synpred12_ActionSplitter_fragment(); // can never throw exception - } catch (RecognitionException re) { - System.err.println("impossible: "+re); - } - boolean success = !state.failed; - input.rewind(start); - state.backtracking--; - state.failed=false; - return success; - } public final boolean synpred17_ActionSplitter() { state.backtracking++; int start = input.mark(); @@ -2217,6 +2203,20 @@ public class ActionSplitter extends org.antlr.v4.runtime.Lexer { state.failed=false; return success; } + public final boolean synpred12_ActionSplitter() { + state.backtracking++; + int start = input.mark(); + try { + synpred12_ActionSplitter_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } public final boolean synpred9_ActionSplitter() { state.backtracking++; int start = input.mark(); @@ -2399,11 +2399,11 @@ public class ActionSplitter extends org.antlr.v4.runtime.Lexer { state.failed=false; return success; } - public final boolean synpred15_ActionSplitter() { + public final boolean synpred3_ActionSplitter() { state.backtracking++; int start = input.mark(); try { - synpred15_ActionSplitter_fragment(); // can never throw exception + synpred3_ActionSplitter_fragment(); // can never throw exception } catch (RecognitionException re) { System.err.println("impossible: "+re); } @@ -2413,11 +2413,11 @@ public class ActionSplitter extends org.antlr.v4.runtime.Lexer { state.failed=false; return success; } - public final boolean synpred3_ActionSplitter() { + public final boolean synpred15_ActionSplitter() { state.backtracking++; int start = input.mark(); try { - synpred3_ActionSplitter_fragment(); // can never throw exception + synpred15_ActionSplitter_fragment(); // can never throw exception } catch (RecognitionException re) { System.err.println("impossible: "+re); } @@ -2495,17 +2495,17 @@ public class ActionSplitter extends org.antlr.v4.runtime.Lexer { static final String DFA29_eofS = "\31\uffff"; static final String DFA29_minS = - "\1\0\1\uffff\1\0\6\uffff\1\0\2\uffff\1\0\1\uffff\1\0\12\uffff"; + "\1\0\1\uffff\1\0\12\uffff\1\0\2\uffff\1\0\6\uffff\1\0\1\uffff"; static final String DFA29_maxS = - "\1\uffff\1\uffff\1\0\6\uffff\1\0\2\uffff\1\0\1\uffff\1\0\12\uffff"; + "\1\uffff\1\uffff\1\0\12\uffff\1\0\2\uffff\1\0\6\uffff\1\0\1\uffff"; static final String DFA29_acceptS = - "\1\uffff\1\24\1\uffff\1\16\1\17\1\20\1\21\1\22\1\23\1\uffff\1\1"+ - "\1\2\1\uffff\1\3\1\uffff\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+ - "\1\15"; + "\1\uffff\1\24\1\uffff\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1"+ + "\15\1\uffff\1\1\1\2\1\uffff\1\16\1\17\1\20\1\21\1\22\1\23\1\uffff"+ + "\1\3"; static final String DFA29_specialS = - "\1\0\1\uffff\1\1\6\uffff\1\2\2\uffff\1\3\1\uffff\1\4\12\uffff}>"; + "\1\0\1\uffff\1\1\12\uffff\1\2\2\uffff\1\3\6\uffff\1\4\1\uffff}>"; static final String[] DFA29_transitionS = { - "\44\1\1\16\1\2\11\1\1\11\54\1\1\14\uffa3\1", + "\44\1\1\2\1\20\11\1\1\15\54\1\1\27\uffa3\1", "", "\1\uffff", "", @@ -2514,21 +2514,21 @@ public class ActionSplitter extends org.antlr.v4.runtime.Lexer { "", "", "", + "", + "", + "", + "", "\1\uffff", "", "", "\1\uffff", "", + "", + "", + "", + "", + "", "\1\uffff", - "", - "", - "", - "", - "", - "", - "", - "", - "", "" }; @@ -2574,13 +2574,13 @@ public class ActionSplitter extends org.antlr.v4.runtime.Lexer { s = -1; if ( ((LA29_0>='\u0000' && LA29_0<='#')||(LA29_0>='&' && LA29_0<='.')||(LA29_0>='0' && LA29_0<='[')||(LA29_0>=']' && LA29_0<='\uFFFF')) ) {s = 1;} - else if ( (LA29_0=='%') ) {s = 2;} + else if ( (LA29_0=='$') ) {s = 2;} - else if ( (LA29_0=='/') ) {s = 9;} + else if ( (LA29_0=='/') ) {s = 13;} - else if ( (LA29_0=='\\') ) {s = 12;} + else if ( (LA29_0=='%') ) {s = 16;} - else if ( (LA29_0=='$') ) {s = 14;} + else if ( (LA29_0=='\\') ) {s = 23;} if ( s>=0 ) return s; break; @@ -2591,83 +2591,83 @@ public class ActionSplitter extends org.antlr.v4.runtime.Lexer { int index29_2 = input.index(); input.rewind(); s = -1; - if ( (synpred14_ActionSplitter()) ) {s = 3;} + if ( (synpred4_ActionSplitter()) ) {s = 3;} - else if ( (synpred15_ActionSplitter()) ) {s = 4;} + else if ( (synpred5_ActionSplitter()) ) {s = 4;} - else if ( (synpred16_ActionSplitter()) ) {s = 5;} + else if ( (synpred6_ActionSplitter()) ) {s = 5;} - else if ( (synpred17_ActionSplitter()) ) {s = 6;} + else if ( (synpred7_ActionSplitter()) ) {s = 6;} - else if ( (synpred18_ActionSplitter()) ) {s = 7;} + else if ( (synpred8_ActionSplitter()) ) {s = 7;} - else if ( (synpred19_ActionSplitter()) ) {s = 8;} + else if ( (synpred9_ActionSplitter()) ) {s = 8;} + + else if ( (synpred10_ActionSplitter()) ) {s = 9;} + + else if ( (synpred11_ActionSplitter()) ) {s = 10;} + + else if ( (synpred12_ActionSplitter()) ) {s = 11;} + + else if ( (synpred13_ActionSplitter()) ) {s = 12;} input.seek(index29_2); if ( s>=0 ) return s; break; case 2 : - int LA29_9 = input.LA(1); + int LA29_13 = input.LA(1); - int index29_9 = input.index(); + int index29_13 = input.index(); input.rewind(); s = -1; - if ( (synpred1_ActionSplitter()) ) {s = 10;} + if ( (synpred1_ActionSplitter()) ) {s = 14;} - else if ( (synpred2_ActionSplitter()) ) {s = 11;} + else if ( (synpred2_ActionSplitter()) ) {s = 15;} else if ( (true) ) {s = 1;} - input.seek(index29_9); + input.seek(index29_13); if ( s>=0 ) return s; break; case 3 : - int LA29_12 = input.LA(1); + int LA29_16 = input.LA(1); - int index29_12 = input.index(); + int index29_16 = input.index(); input.rewind(); s = -1; - if ( (synpred3_ActionSplitter()) ) {s = 13;} + if ( (synpred14_ActionSplitter()) ) {s = 17;} + + else if ( (synpred15_ActionSplitter()) ) {s = 18;} + + else if ( (synpred16_ActionSplitter()) ) {s = 19;} + + else if ( (synpred17_ActionSplitter()) ) {s = 20;} + + else if ( (synpred18_ActionSplitter()) ) {s = 21;} + + else if ( (synpred19_ActionSplitter()) ) {s = 22;} + + + input.seek(index29_16); + if ( s>=0 ) return s; + break; + case 4 : + int LA29_23 = input.LA(1); + + + int index29_23 = input.index(); + input.rewind(); + s = -1; + if ( (synpred3_ActionSplitter()) ) {s = 24;} else if ( (true) ) {s = 1;} - input.seek(index29_12); - if ( s>=0 ) return s; - break; - case 4 : - int LA29_14 = input.LA(1); - - - int index29_14 = input.index(); - input.rewind(); - s = -1; - if ( (synpred4_ActionSplitter()) ) {s = 15;} - - else if ( (synpred5_ActionSplitter()) ) {s = 16;} - - else if ( (synpred6_ActionSplitter()) ) {s = 17;} - - else if ( (synpred7_ActionSplitter()) ) {s = 18;} - - else if ( (synpred8_ActionSplitter()) ) {s = 19;} - - else if ( (synpred9_ActionSplitter()) ) {s = 20;} - - else if ( (synpred10_ActionSplitter()) ) {s = 21;} - - else if ( (synpred11_ActionSplitter()) ) {s = 22;} - - else if ( (synpred12_ActionSplitter()) ) {s = 23;} - - else if ( (synpred13_ActionSplitter()) ) {s = 24;} - - - input.seek(index29_14); + input.seek(index29_23); if ( s>=0 ) return s; break; } diff --git a/tool/src/org/antlr/v4/parse/ResyncToEndOfRuleBlock.java b/tool/src/org/antlr/v4/parse/ResyncToEndOfRuleBlock.java new file mode 100644 index 000000000..10497ab7c --- /dev/null +++ b/tool/src/org/antlr/v4/parse/ResyncToEndOfRuleBlock.java @@ -0,0 +1,7 @@ +package org.antlr.v4.parse; + +/** Used to throw us out of deeply nested element back to end of a rule's + * alt list. Note it's not under RecognitionException. + */ +public class ResyncToEndOfRuleBlock extends RuntimeException { +} diff --git a/tool/src/org/antlr/v4/parse/v4ParserException.java b/tool/src/org/antlr/v4/parse/v4ParserException.java new file mode 100644 index 000000000..fd3bdf40a --- /dev/null +++ b/tool/src/org/antlr/v4/parse/v4ParserException.java @@ -0,0 +1,17 @@ +package org.antlr.v4.parse; + +import org.antlr.runtime.IntStream; +import org.antlr.runtime.RecognitionException; + +/** */ +public class v4ParserException extends RecognitionException { + public String msg; + /** Used for remote debugger deserialization */ + public v4ParserException() {;} + + public v4ParserException(String msg, IntStream input) { + super(input); + this.msg = msg; + } + +} diff --git a/tool/src/org/antlr/v4/semantics/BasicSemanticTriggers.java b/tool/src/org/antlr/v4/semantics/BasicSemanticTriggers.java index bbb42e062..e4434a050 100644 --- a/tool/src/org/antlr/v4/semantics/BasicSemanticTriggers.java +++ b/tool/src/org/antlr/v4/semantics/BasicSemanticTriggers.java @@ -1,4 +1,4 @@ -// $ANTLR ${project.version} ${buildNumber} BasicSemanticTriggers.g 2010-02-17 12:27:38 +// $ANTLR ${project.version} ${buildNumber} BasicSemanticTriggers.g 2010-02-19 17:45:09 /* [The "BSD license"] @@ -40,15 +40,15 @@ import java.util.List; */ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "SEMPRED", "FORCED_ACTION", "DOC_COMMENT", "SRC", "NLCHARS", "COMMENT", "DOUBLE_QUOTE_STRING_LITERAL", "DOUBLE_ANGLE_STRING_LITERAL", "ACTION_STRING_LITERAL", "ACTION_CHAR_LITERAL", "ARG_ACTION", "NESTED_ACTION", "ACTION", "ACTION_ESC", "WSNLCHARS", "OPTIONS", "TOKENS", "SCOPE", "IMPORT", "FRAGMENT", "LEXER", "PARSER", "TREE", "GRAMMAR", "PROTECTED", "PUBLIC", "PRIVATE", "RETURNS", "THROWS", "CATCH", "FINALLY", "TEMPLATE", "COLON", "COLONCOLON", "COMMA", "SEMI", "LPAREN", "RPAREN", "IMPLIES", "LT", "GT", "ASSIGN", "QUESTION", "BANG", "STAR", "PLUS", "PLUS_ASSIGN", "OR", "ROOT", "DOLLAR", "DOT", "RANGE", "ETC", "RARROW", "TREE_BEGIN", "AT", "NOT", "RBRACE", "TOKEN_REF", "RULE_REF", "INT", "WSCHARS", "ESC_SEQ", "STRING_LITERAL", "HEX_DIGIT", "UNICODE_ESC", "WS", "ERRCHAR", "RULE", "RULES", "RULEMODIFIERS", "RULEACTIONS", "BLOCK", "REWRITE_BLOCK", "OPTIONAL", "CLOSURE", "POSITIVE_CLOSURE", "SYNPRED", "CHAR_RANGE", "EPSILON", "ALT", "ALTLIST", "RESULT", "ID", "ARG", "ARGLIST", "RET", "COMBINED", "INITACTION", "LABEL", "GATED_SEMPRED", "SYN_SEMPRED", "BACKTRACK_SEMPRED", "WILDCARD", "LIST", "ELEMENT_OPTIONS", "ST_RESULT", "ALT_REWRITE" + "", "", "", "", "SEMPRED", "FORCED_ACTION", "DOC_COMMENT", "SRC", "NLCHARS", "COMMENT", "DOUBLE_QUOTE_STRING_LITERAL", "DOUBLE_ANGLE_STRING_LITERAL", "ACTION_STRING_LITERAL", "ACTION_CHAR_LITERAL", "ARG_ACTION", "NESTED_ACTION", "ACTION", "ACTION_ESC", "WSNLCHARS", "OPTIONS", "TOKENS", "SCOPE", "IMPORT", "FRAGMENT", "LEXER", "PARSER", "TREE", "GRAMMAR", "PROTECTED", "PUBLIC", "PRIVATE", "RETURNS", "THROWS", "CATCH", "FINALLY", "TEMPLATE", "COLON", "COLONCOLON", "COMMA", "SEMI", "LPAREN", "RPAREN", "IMPLIES", "LT", "GT", "ASSIGN", "QUESTION", "BANG", "STAR", "PLUS", "PLUS_ASSIGN", "OR", "ROOT", "DOLLAR", "DOT", "RANGE", "ETC", "RARROW", "TREE_BEGIN", "AT", "NOT", "RBRACE", "TOKEN_REF", "RULE_REF", "INT", "WSCHARS", "ESC_SEQ", "STRING_LITERAL", "HEX_DIGIT", "UNICODE_ESC", "WS", "ERRCHAR", "RULE", "RULES", "RULEMODIFIERS", "RULEACTIONS", "BLOCK", "REWRITE_BLOCK", "OPTIONAL", "CLOSURE", "POSITIVE_CLOSURE", "SYNPRED", "CHAR_RANGE", "EPSILON", "ALT", "ALTLIST", "ID", "ARG", "ARGLIST", "RET", "COMBINED", "INITACTION", "LABEL", "GATED_SEMPRED", "SYN_SEMPRED", "BACKTRACK_SEMPRED", "WILDCARD", "LIST", "ELEMENT_OPTIONS", "ST_RESULT", "RESULT", "ALT_REWRITE" }; - public static final int COMBINED=91; + public static final int COMBINED=90; public static final int LT=43; public static final int STAR=48; - public static final int BACKTRACK_SEMPRED=96; + public static final int BACKTRACK_SEMPRED=95; public static final int DOUBLE_ANGLE_STRING_LITERAL=11; public static final int FORCED_ACTION=5; - public static final int ARGLIST=89; + public static final int ARGLIST=88; public static final int ALTLIST=85; public static final int NOT=60; public static final int EOF=-1; @@ -56,12 +56,12 @@ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter public static final int ACTION=16; public static final int TOKEN_REF=62; public static final int RULEMODIFIERS=74; - public static final int ST_RESULT=100; + public static final int ST_RESULT=99; public static final int RPAREN=41; - public static final int RET=90; + public static final int RET=89; public static final int IMPORT=22; public static final int STRING_LITERAL=67; - public static final int ARG=88; + public static final int ARG=87; public static final int ARG_ACTION=14; public static final int DOUBLE_QUOTE_STRING_LITERAL=10; public static final int COMMENT=9; @@ -69,7 +69,7 @@ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter public static final int GRAMMAR=27; public static final int RULEACTIONS=75; public static final int WSCHARS=65; - public static final int INITACTION=92; + public static final int INITACTION=91; public static final int ALT_REWRITE=101; public static final int IMPLIES=42; public static final int RULE=72; @@ -81,7 +81,7 @@ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter public static final int CHAR_RANGE=82; public static final int INT=64; public static final int EPSILON=83; - public static final int LIST=98; + public static final int LIST=97; public static final int COLONCOLON=37; public static final int WSNLCHARS=18; public static final int WS=70; @@ -93,10 +93,10 @@ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter public static final int PARSER=25; public static final int DOLLAR=53; public static final int PROTECTED=28; - public static final int ELEMENT_OPTIONS=99; + public static final int ELEMENT_OPTIONS=98; public static final int NESTED_ACTION=15; public static final int FRAGMENT=23; - public static final int ID=87; + public static final int ID=86; public static final int TREE_BEGIN=58; public static final int LPAREN=40; public static final int AT=59; @@ -106,7 +106,7 @@ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter public static final int SCOPE=21; public static final int ETC=56; public static final int COMMA=38; - public static final int WILDCARD=97; + public static final int WILDCARD=96; public static final int DOC_COMMENT=6; public static final int PLUS=49; public static final int REWRITE_BLOCK=77; @@ -118,8 +118,8 @@ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter public static final int HEX_DIGIT=68; public static final int RANGE=55; public static final int TOKENS=20; - public static final int GATED_SEMPRED=94; - public static final int RESULT=86; + public static final int RESULT=100; + public static final int GATED_SEMPRED=93; public static final int BANG=47; public static final int ACTION_STRING_LITERAL=12; public static final int ROOT=52; @@ -132,8 +132,8 @@ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter public static final int QUESTION=46; public static final int FINALLY=34; public static final int TEMPLATE=35; - public static final int LABEL=93; - public static final int SYN_SEMPRED=95; + public static final int LABEL=92; + public static final int SYN_SEMPRED=94; public static final int ERRCHAR=71; public static final int BLOCK=76; public static final int ASSIGN=45; @@ -1423,7 +1423,7 @@ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter // BasicSemanticTriggers.g:228:2: ( ( RESULT | ST_RESULT ) ) // BasicSemanticTriggers.g:228:4: ( RESULT | ST_RESULT ) { - if ( input.LA(1)==RESULT||input.LA(1)==ST_RESULT ) { + if ( (input.LA(1)>=ST_RESULT && input.LA(1)<=RESULT) ) { input.consume(); state.errorRecovery=false;state.failed=false; } @@ -1520,22 +1520,22 @@ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter static final String DFA1_eofS = "\14\uffff"; static final String DFA1_minS = - "\1\33\2\uffff\1\2\2\uffff\1\127\1\60\1\3\1\uffff\1\0\1\uffff"; + "\1\33\2\uffff\1\2\2\uffff\1\126\1\60\1\3\1\uffff\1\0\1\uffff"; static final String DFA1_maxS = - "\1\144\2\uffff\1\2\2\uffff\2\127\1\3\1\uffff\1\0\1\uffff"; + "\1\144\2\uffff\1\2\2\uffff\2\126\1\3\1\uffff\1\0\1\uffff"; static final String DFA1_acceptS = "\1\uffff\1\1\1\2\1\uffff\1\4\1\6\3\uffff\1\3\1\uffff\1\5"; static final String DFA1_specialS = "\12\uffff\1\0\1\uffff}>"; static final String[] DFA1_transitionS = { - "\1\1\21\uffff\1\3\32\uffff\1\4\1\2\14\uffff\1\5\15\uffff\1\5", + "\1\1\21\uffff\1\3\32\uffff\1\4\1\2\31\uffff\2\5", "", "", "\1\6", "", "", "\1\7", - "\1\11\17\uffff\1\11\2\uffff\1\10\23\uffff\1\11", + "\1\11\17\uffff\1\11\2\uffff\1\10\22\uffff\1\11", "\1\12", "", "\1\uffff", @@ -1624,15 +1624,15 @@ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter public static final BitSet FOLLOW_GRAMMAR_in_checkGrammarOptions230 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_OPTIONS_in_prequelConstructs253 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_IMPORT_in_prequelConstructs266 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_delegateGrammar_in_prequelConstructs268 = new BitSet(new long[]{0x0000200000000008L,0x0000000000800000L}); + public static final BitSet FOLLOW_delegateGrammar_in_prequelConstructs268 = new BitSet(new long[]{0x0000200000000008L,0x0000000000400000L}); public static final BitSet FOLLOW_TOKENS_in_prequelConstructs279 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ASSIGN_in_delegateGrammar312 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_delegateGrammar314 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L}); + public static final BitSet FOLLOW_ID_in_delegateGrammar314 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L}); public static final BitSet FOLLOW_ID_in_delegateGrammar318 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_ID_in_delegateGrammar332 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RULES_in_rules359 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ASSIGN_in_option380 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_option384 = new BitSet(new long[]{0x0001000000000000L,0x0000000000800009L}); + public static final BitSet FOLLOW_ID_in_option384 = new BitSet(new long[]{0x0001000000000000L,0x0000000000400009L}); public static final BitSet FOLLOW_optionValue_in_option386 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_set_in_optionValue0 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RULE_in_rule468 = new BitSet(new long[]{0x0000000000000004L}); @@ -1645,7 +1645,7 @@ public class BasicSemanticTriggers extends org.antlr.v4.runtime.tree.TreeFilter public static final BitSet FOLLOW_ARG_ACTION_in_tokenRefWithArgs545 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_ELEMENT_OPTIONS_in_elementOption575 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ASSIGN_in_elementOption586 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_elementOption590 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L}); + public static final BitSet FOLLOW_ID_in_elementOption590 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L}); public static final BitSet FOLLOW_ID_in_elementOption594 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_ASSIGN_in_elementOption608 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_elementOption612 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L}); diff --git a/tool/src/org/antlr/v4/semantics/BasicSemanticTriggers.tokens b/tool/src/org/antlr/v4/semantics/BasicSemanticTriggers.tokens index 2cc5f8089..dcbf34ea7 100644 --- a/tool/src/org/antlr/v4/semantics/BasicSemanticTriggers.tokens +++ b/tool/src/org/antlr/v4/semantics/BasicSemanticTriggers.tokens @@ -1,22 +1,22 @@ -COMBINED=91 +COMBINED=90 LT=43 STAR=48 -BACKTRACK_SEMPRED=96 +BACKTRACK_SEMPRED=95 DOUBLE_ANGLE_STRING_LITERAL=11 FORCED_ACTION=5 -ARGLIST=89 +ARGLIST=88 ALTLIST=85 NOT=60 SEMPRED=4 ACTION=16 TOKEN_REF=62 RULEMODIFIERS=74 -ST_RESULT=100 +ST_RESULT=99 RPAREN=41 -RET=90 +RET=89 IMPORT=22 STRING_LITERAL=67 -ARG=88 +ARG=87 ARG_ACTION=14 DOUBLE_QUOTE_STRING_LITERAL=10 COMMENT=9 @@ -24,7 +24,7 @@ ACTION_CHAR_LITERAL=13 GRAMMAR=27 RULEACTIONS=75 WSCHARS=65 -INITACTION=92 +INITACTION=91 ALT_REWRITE=101 IMPLIES=42 RULE=72 @@ -36,7 +36,7 @@ THROWS=32 CHAR_RANGE=82 INT=64 EPSILON=83 -LIST=98 +LIST=97 COLONCOLON=37 WSNLCHARS=18 WS=70 @@ -48,10 +48,10 @@ CLOSURE=79 PARSER=25 DOLLAR=53 PROTECTED=28 -ELEMENT_OPTIONS=99 +ELEMENT_OPTIONS=98 NESTED_ACTION=15 FRAGMENT=23 -ID=87 +ID=86 TREE_BEGIN=58 LPAREN=40 AT=59 @@ -61,7 +61,7 @@ TREE=26 SCOPE=21 ETC=56 COMMA=38 -WILDCARD=97 +WILDCARD=96 DOC_COMMENT=6 PLUS=49 REWRITE_BLOCK=77 @@ -73,8 +73,8 @@ UNICODE_ESC=69 HEX_DIGIT=68 RANGE=55 TOKENS=20 -GATED_SEMPRED=94 -RESULT=86 +RESULT=100 +GATED_SEMPRED=93 BANG=47 ACTION_STRING_LITERAL=12 ROOT=52 @@ -87,8 +87,8 @@ COLON=36 QUESTION=46 FINALLY=34 TEMPLATE=35 -LABEL=93 -SYN_SEMPRED=95 +LABEL=92 +SYN_SEMPRED=94 ERRCHAR=71 BLOCK=76 ASSIGN=45 diff --git a/tool/src/org/antlr/v4/semantics/CollectSymbols.java b/tool/src/org/antlr/v4/semantics/CollectSymbols.java index e7ba37fc3..384458829 100644 --- a/tool/src/org/antlr/v4/semantics/CollectSymbols.java +++ b/tool/src/org/antlr/v4/semantics/CollectSymbols.java @@ -1,4 +1,4 @@ -// $ANTLR ${project.version} ${buildNumber} CollectSymbols.g 2010-02-17 12:27:38 +// $ANTLR ${project.version} ${buildNumber} CollectSymbols.g 2010-02-19 17:45:09 /* [The "BSD license"] @@ -40,15 +40,15 @@ import java.util.List; */ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { public static final String[] tokenNames = new String[] { - "", "", "", "", "SEMPRED", "FORCED_ACTION", "DOC_COMMENT", "SRC", "NLCHARS", "COMMENT", "DOUBLE_QUOTE_STRING_LITERAL", "DOUBLE_ANGLE_STRING_LITERAL", "ACTION_STRING_LITERAL", "ACTION_CHAR_LITERAL", "ARG_ACTION", "NESTED_ACTION", "ACTION", "ACTION_ESC", "WSNLCHARS", "OPTIONS", "TOKENS", "SCOPE", "IMPORT", "FRAGMENT", "LEXER", "PARSER", "TREE", "GRAMMAR", "PROTECTED", "PUBLIC", "PRIVATE", "RETURNS", "THROWS", "CATCH", "FINALLY", "TEMPLATE", "COLON", "COLONCOLON", "COMMA", "SEMI", "LPAREN", "RPAREN", "IMPLIES", "LT", "GT", "ASSIGN", "QUESTION", "BANG", "STAR", "PLUS", "PLUS_ASSIGN", "OR", "ROOT", "DOLLAR", "DOT", "RANGE", "ETC", "RARROW", "TREE_BEGIN", "AT", "NOT", "RBRACE", "TOKEN_REF", "RULE_REF", "INT", "WSCHARS", "ESC_SEQ", "STRING_LITERAL", "HEX_DIGIT", "UNICODE_ESC", "WS", "ERRCHAR", "RULE", "RULES", "RULEMODIFIERS", "RULEACTIONS", "BLOCK", "REWRITE_BLOCK", "OPTIONAL", "CLOSURE", "POSITIVE_CLOSURE", "SYNPRED", "CHAR_RANGE", "EPSILON", "ALT", "ALTLIST", "RESULT", "ID", "ARG", "ARGLIST", "RET", "COMBINED", "INITACTION", "LABEL", "GATED_SEMPRED", "SYN_SEMPRED", "BACKTRACK_SEMPRED", "WILDCARD", "LIST", "ELEMENT_OPTIONS", "ST_RESULT", "ALT_REWRITE" + "", "", "", "", "SEMPRED", "FORCED_ACTION", "DOC_COMMENT", "SRC", "NLCHARS", "COMMENT", "DOUBLE_QUOTE_STRING_LITERAL", "DOUBLE_ANGLE_STRING_LITERAL", "ACTION_STRING_LITERAL", "ACTION_CHAR_LITERAL", "ARG_ACTION", "NESTED_ACTION", "ACTION", "ACTION_ESC", "WSNLCHARS", "OPTIONS", "TOKENS", "SCOPE", "IMPORT", "FRAGMENT", "LEXER", "PARSER", "TREE", "GRAMMAR", "PROTECTED", "PUBLIC", "PRIVATE", "RETURNS", "THROWS", "CATCH", "FINALLY", "TEMPLATE", "COLON", "COLONCOLON", "COMMA", "SEMI", "LPAREN", "RPAREN", "IMPLIES", "LT", "GT", "ASSIGN", "QUESTION", "BANG", "STAR", "PLUS", "PLUS_ASSIGN", "OR", "ROOT", "DOLLAR", "DOT", "RANGE", "ETC", "RARROW", "TREE_BEGIN", "AT", "NOT", "RBRACE", "TOKEN_REF", "RULE_REF", "INT", "WSCHARS", "ESC_SEQ", "STRING_LITERAL", "HEX_DIGIT", "UNICODE_ESC", "WS", "ERRCHAR", "RULE", "RULES", "RULEMODIFIERS", "RULEACTIONS", "BLOCK", "REWRITE_BLOCK", "OPTIONAL", "CLOSURE", "POSITIVE_CLOSURE", "SYNPRED", "CHAR_RANGE", "EPSILON", "ALT", "ALTLIST", "ID", "ARG", "ARGLIST", "RET", "COMBINED", "INITACTION", "LABEL", "GATED_SEMPRED", "SYN_SEMPRED", "BACKTRACK_SEMPRED", "WILDCARD", "LIST", "ELEMENT_OPTIONS", "ST_RESULT", "RESULT", "ALT_REWRITE" }; - public static final int COMBINED=91; + public static final int COMBINED=90; public static final int LT=43; public static final int STAR=48; - public static final int BACKTRACK_SEMPRED=96; + public static final int BACKTRACK_SEMPRED=95; public static final int DOUBLE_ANGLE_STRING_LITERAL=11; public static final int FORCED_ACTION=5; - public static final int ARGLIST=89; + public static final int ARGLIST=88; public static final int ALTLIST=85; public static final int NOT=60; public static final int EOF=-1; @@ -56,12 +56,12 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { public static final int ACTION=16; public static final int TOKEN_REF=62; public static final int RULEMODIFIERS=74; - public static final int ST_RESULT=100; + public static final int ST_RESULT=99; public static final int RPAREN=41; - public static final int RET=90; + public static final int RET=89; public static final int IMPORT=22; public static final int STRING_LITERAL=67; - public static final int ARG=88; + public static final int ARG=87; public static final int ARG_ACTION=14; public static final int DOUBLE_QUOTE_STRING_LITERAL=10; public static final int COMMENT=9; @@ -69,7 +69,7 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { public static final int GRAMMAR=27; public static final int RULEACTIONS=75; public static final int WSCHARS=65; - public static final int INITACTION=92; + public static final int INITACTION=91; public static final int ALT_REWRITE=101; public static final int IMPLIES=42; public static final int RULE=72; @@ -81,7 +81,7 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { public static final int CHAR_RANGE=82; public static final int INT=64; public static final int EPSILON=83; - public static final int LIST=98; + public static final int LIST=97; public static final int COLONCOLON=37; public static final int WSNLCHARS=18; public static final int WS=70; @@ -93,10 +93,10 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { public static final int PARSER=25; public static final int DOLLAR=53; public static final int PROTECTED=28; - public static final int ELEMENT_OPTIONS=99; + public static final int ELEMENT_OPTIONS=98; public static final int NESTED_ACTION=15; public static final int FRAGMENT=23; - public static final int ID=87; + public static final int ID=86; public static final int TREE_BEGIN=58; public static final int LPAREN=40; public static final int AT=59; @@ -106,7 +106,7 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { public static final int SCOPE=21; public static final int ETC=56; public static final int COMMA=38; - public static final int WILDCARD=97; + public static final int WILDCARD=96; public static final int DOC_COMMENT=6; public static final int PLUS=49; public static final int REWRITE_BLOCK=77; @@ -118,8 +118,8 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { public static final int HEX_DIGIT=68; public static final int RANGE=55; public static final int TOKENS=20; - public static final int GATED_SEMPRED=94; - public static final int RESULT=86; + public static final int RESULT=100; + public static final int GATED_SEMPRED=93; public static final int BANG=47; public static final int ACTION_STRING_LITERAL=12; public static final int ROOT=52; @@ -132,8 +132,8 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { public static final int QUESTION=46; public static final int FINALLY=34; public static final int TEMPLATE=35; - public static final int LABEL=93; - public static final int SYN_SEMPRED=95; + public static final int LABEL=92; + public static final int SYN_SEMPRED=94; public static final int ERRCHAR=71; public static final int BLOCK=76; public static final int ASSIGN=45; @@ -1399,10 +1399,10 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { static final String DFA1_eofS = "\41\uffff"; static final String DFA1_minS = - "\1\16\3\2\4\uffff\3\0\6\uffff\1\20\2\127\2\uffff\1\3\1\uffff\1\20"+ + "\1\16\3\2\4\uffff\3\0\6\uffff\1\20\2\126\2\uffff\1\3\1\uffff\1\20"+ "\1\4\1\uffff\1\3\1\uffff\1\2\2\0\1\uffff"; static final String DFA1_maxS = - "\1\145\3\2\4\uffff\3\0\6\uffff\3\127\2\uffff\1\127\1\uffff\1\127"+ + "\1\145\3\2\4\uffff\3\0\6\uffff\3\126\2\uffff\1\126\1\uffff\1\126"+ "\1\145\1\uffff\1\3\1\uffff\1\3\2\0\1\uffff"; static final String DFA1_acceptS = "\4\uffff\1\3\1\4\1\5\1\6\3\uffff\1\12\1\14\1\15\1\16\1\17\1\20\3"+ @@ -1413,8 +1413,8 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { static final String[] DFA1_transitionS = { "\1\6\1\uffff\1\16\4\uffff\1\1\11\uffff\1\7\1\uffff\1\20\1\17"+ "\12\uffff\1\3\4\uffff\1\14\10\uffff\1\2\2\uffff\1\12\1\10\3"+ - "\uffff\1\11\4\uffff\1\5\13\uffff\1\15\2\uffff\1\4\5\uffff\1"+ - "\13\7\uffff\1\15", + "\uffff\1\11\4\uffff\1\5\13\uffff\1\15\1\uffff\1\4\5\uffff\1"+ + "\13\10\uffff\1\15", "\1\21", "\1\22", "\1\23", @@ -1431,14 +1431,14 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { "", "", "", - "\1\27\106\uffff\1\26", + "\1\27\105\uffff\1\26", "\1\30", "\1\31", "", "", - "\1\27\14\uffff\1\32\106\uffff\1\27", + "\1\27\14\uffff\1\32\105\uffff\1\27", "", - "\1\33\106\uffff\1\34", + "\1\33\105\uffff\1\34", "\77\14\1\35\42\14", "", "\1\36", @@ -1591,7 +1591,7 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { public static final BitSet FOLLOW_ID_in_globalScope257 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_ACTION_in_globalScope259 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_AT_in_globalNamedAction278 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_globalNamedAction280 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L}); + public static final BitSet FOLLOW_ID_in_globalNamedAction280 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L}); public static final BitSet FOLLOW_ID_in_globalNamedAction283 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_ACTION_in_globalNamedAction285 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_ASSIGN_in_tokensSection308 = new BitSet(new long[]{0x0000000000000004L}); @@ -1617,7 +1617,7 @@ public class CollectSymbols extends org.antlr.v4.runtime.tree.TreeFilter { public static final BitSet FOLLOW_SCOPE_in_ruleScopeSpec543 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ACTION_in_ruleScopeSpec545 = new BitSet(new long[]{0x0000000000000008L}); public static final BitSet FOLLOW_SCOPE_in_ruleScopeSpec558 = new BitSet(new long[]{0x0000000000000004L}); - public static final BitSet FOLLOW_ID_in_ruleScopeSpec562 = new BitSet(new long[]{0x0000000000000008L,0x0000000000800000L}); + public static final BitSet FOLLOW_ID_in_ruleScopeSpec562 = new BitSet(new long[]{0x0000000000000008L,0x0000000000400000L}); public static final BitSet FOLLOW_set_in_rewriteElement590 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ASSIGN_in_labeledElement626 = new BitSet(new long[]{0x0000000000000004L}); public static final BitSet FOLLOW_ID_in_labeledElement630 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000003FFFFFFFFFL}); diff --git a/tool/src/org/antlr/v4/semantics/CollectSymbols.tokens b/tool/src/org/antlr/v4/semantics/CollectSymbols.tokens index 2cc5f8089..dcbf34ea7 100644 --- a/tool/src/org/antlr/v4/semantics/CollectSymbols.tokens +++ b/tool/src/org/antlr/v4/semantics/CollectSymbols.tokens @@ -1,22 +1,22 @@ -COMBINED=91 +COMBINED=90 LT=43 STAR=48 -BACKTRACK_SEMPRED=96 +BACKTRACK_SEMPRED=95 DOUBLE_ANGLE_STRING_LITERAL=11 FORCED_ACTION=5 -ARGLIST=89 +ARGLIST=88 ALTLIST=85 NOT=60 SEMPRED=4 ACTION=16 TOKEN_REF=62 RULEMODIFIERS=74 -ST_RESULT=100 +ST_RESULT=99 RPAREN=41 -RET=90 +RET=89 IMPORT=22 STRING_LITERAL=67 -ARG=88 +ARG=87 ARG_ACTION=14 DOUBLE_QUOTE_STRING_LITERAL=10 COMMENT=9 @@ -24,7 +24,7 @@ ACTION_CHAR_LITERAL=13 GRAMMAR=27 RULEACTIONS=75 WSCHARS=65 -INITACTION=92 +INITACTION=91 ALT_REWRITE=101 IMPLIES=42 RULE=72 @@ -36,7 +36,7 @@ THROWS=32 CHAR_RANGE=82 INT=64 EPSILON=83 -LIST=98 +LIST=97 COLONCOLON=37 WSNLCHARS=18 WS=70 @@ -48,10 +48,10 @@ CLOSURE=79 PARSER=25 DOLLAR=53 PROTECTED=28 -ELEMENT_OPTIONS=99 +ELEMENT_OPTIONS=98 NESTED_ACTION=15 FRAGMENT=23 -ID=87 +ID=86 TREE_BEGIN=58 LPAREN=40 AT=59 @@ -61,7 +61,7 @@ TREE=26 SCOPE=21 ETC=56 COMMA=38 -WILDCARD=97 +WILDCARD=96 DOC_COMMENT=6 PLUS=49 REWRITE_BLOCK=77 @@ -73,8 +73,8 @@ UNICODE_ESC=69 HEX_DIGIT=68 RANGE=55 TOKENS=20 -GATED_SEMPRED=94 -RESULT=86 +RESULT=100 +GATED_SEMPRED=93 BANG=47 ACTION_STRING_LITERAL=12 ROOT=52 @@ -87,8 +87,8 @@ COLON=36 QUESTION=46 FINALLY=34 TEMPLATE=35 -LABEL=93 -SYN_SEMPRED=95 +LABEL=92 +SYN_SEMPRED=94 ERRCHAR=71 BLOCK=76 ASSIGN=45 diff --git a/tool/src/org/antlr/v4/semantics/SemanticPipeline.java b/tool/src/org/antlr/v4/semantics/SemanticPipeline.java index efbca2ca2..e996dd962 100644 --- a/tool/src/org/antlr/v4/semantics/SemanticPipeline.java +++ b/tool/src/org/antlr/v4/semantics/SemanticPipeline.java @@ -2,6 +2,7 @@ package org.antlr.v4.semantics; import org.antlr.runtime.RecognitionException; import org.antlr.runtime.tree.BufferedTreeNodeStream; +import org.antlr.v4.analysis.Label; import org.antlr.v4.parse.ANTLRParser; import org.antlr.v4.parse.ASTVerifier; import org.antlr.v4.parse.GrammarASTAdaptor; @@ -12,6 +13,8 @@ import java.util.List; /** */ public class SemanticPipeline { public void process(Grammar g) { + if ( g.ast==null ) return; + // VALIDATE AST STRUCTURE // use buffered node stream as we will look around in stream // to give good error messages. @@ -23,6 +26,7 @@ public class SemanticPipeline { try {walker.grammarSpec();} catch (RecognitionException re) { ErrorManager.internalError("bad grammar AST structure", re); + return; // don't process; will get internal errors } // DO BASIC / EASY SEMANTIC CHECKS @@ -66,6 +70,11 @@ public class SemanticPipeline { AttributeChecks.checkAllAttributeExpressions(g); // ASSIGN TOKEN TYPES + //for (GrammarAST a : collector.strings) g.defineAction(a); + //for (String id : symcheck.tokenIDs) g.defineAction(a); + + // TODO: move to a use-def or deadcode eliminator + checkRewriteElementsPresentOnLeftSide(g, collector.rules); } public void checkRuleArgs(Grammar g, List rulerefs) { @@ -111,4 +120,23 @@ public class SemanticPipeline { } } } + + public void checkRewriteElementsPresentOnLeftSide(Grammar g, List rules) { + for (Rule r : rules) { + for (int a=1; a<=r.numberOfAlts; a++) { + Alternative alt = r.alt[a]; + for (GrammarAST e : alt.rewriteElements) { + if ( !(alt.ruleRefs.containsKey(e.getText()) || + g.getTokenType(e.getText())!= Label.INVALID || + alt.labelDefs.containsKey(e.getText()) || + e.getText().equals(r.name)) ) // $r ok in rule r + { + ErrorManager.grammarError(ErrorType.REWRITE_ELEMENT_NOT_PRESENT_ON_LHS, + g.fileName, e.token, e.getText()); + } + } + } + } + } + } diff --git a/tool/src/org/antlr/v4/semantics/SymbolChecks.java b/tool/src/org/antlr/v4/semantics/SymbolChecks.java index c11923809..ed9f2438f 100644 --- a/tool/src/org/antlr/v4/semantics/SymbolChecks.java +++ b/tool/src/org/antlr/v4/semantics/SymbolChecks.java @@ -16,7 +16,7 @@ public class SymbolChecks { protected Grammar g; protected CollectSymbols collector; protected Map nameToRuleMap = new HashMap(); - protected Set tokenIDs = new HashSet(); + protected Set tokenIDs = new HashSet(); protected Set globalScopeNames = new HashSet(); protected Map> actionScopeToActionNames = new HashMap>(); @@ -46,7 +46,7 @@ public class SymbolChecks { //checkRuleArgs(collector.rulerefs); checkForTokenConflicts(collector.tokenIDRefs); // sets tokenIDs checkForLabelConflicts(collector.rules); - checkRewriteElementsPresentOnLeftSide(collector.rules); + //checkRewriteElementsPresentOnLeftSide(collector.rules); // move to after token type assignment } public void checkForRuleConflicts(List rules) { @@ -77,7 +77,7 @@ public class SymbolChecks { globalScopeNames.add(s.getName()); } else { - Token idNode = ((GrammarAST) s.ast.getChild(0)).token; + Token idNode = ((GrammarAST) s.ast.getParent().getChild(0)).token; ErrorManager.grammarError(ErrorType.SCOPE_REDEFINITION, g.fileName, idNode, s.getName()); } @@ -261,20 +261,4 @@ public class SymbolChecks { } } } - - public void checkRewriteElementsPresentOnLeftSide(List rules) { - for (Rule r : rules) { - for (int a=1; a<=r.numberOfAlts; a++) { - Alternative alt = r.alt[a]; - for (GrammarAST e : alt.rewriteElements) { - if ( !(alt.ruleRefs.containsKey(e.getText()) || - alt.tokenRefs.containsKey(e.getText()) || - alt.labelDefs.containsKey(e.getText())) ) { - ErrorManager.grammarError(ErrorType.REWRITE_ELEMENT_NOT_PRESENT_ON_LHS, - g.fileName, e.token, e.getText()); - } - } - } - } - } } diff --git a/tool/src/org/antlr/v4/tool/Alternative.java b/tool/src/org/antlr/v4/tool/Alternative.java index 5ca3698fc..533e3c1db 100644 --- a/tool/src/org/antlr/v4/tool/Alternative.java +++ b/tool/src/org/antlr/v4/tool/Alternative.java @@ -36,10 +36,12 @@ public class Alternative implements AttributeResolver { /** $x Attribute: rule arguments, return values, predefined rule prop. */ public Attribute resolveToAttribute(String x, ActionAST node) { - Attribute a = rule.args.get(x); if ( a!=null ) return a; - a = rule.retvals.get(x); if ( a!=null ) return a; - AttributeDict properties = rule.getPredefinedScope(LabelType.RULE_LABEL); - return properties.get(x); + return rule.resolveToAttribute(x, node); // reuse that code +// if ( rule.args==null ) return null; +// Attribute a = rule.args.get(x); if ( a!=null ) return a; +// a = rule.retvals.get(x); if ( a!=null ) return a; +// AttributeDict properties = rule.getPredefinedScope(LabelType.RULE_LABEL); +// return properties.get(x); } /** $x.y, x can be surrounding rule, token/rule/label ref. y is visible diff --git a/tool/src/org/antlr/v4/tool/ErrorManager.java b/tool/src/org/antlr/v4/tool/ErrorManager.java index 37e00d05a..c6b9713b9 100644 --- a/tool/src/org/antlr/v4/tool/ErrorManager.java +++ b/tool/src/org/antlr/v4/tool/ErrorManager.java @@ -1,6 +1,10 @@ package org.antlr.v4.tool; +import org.antlr.runtime.NoViableAltException; +import org.antlr.runtime.Parser; +import org.antlr.runtime.RecognitionException; import org.antlr.runtime.Token; +import org.antlr.v4.parse.v4ParserException; import org.stringtemplate.v4.ST; import org.stringtemplate.v4.STErrorListener; import org.stringtemplate.v4.STGroup; @@ -166,6 +170,17 @@ public class ErrorManager { } + public static void syntaxError(ErrorType etype, + String fileName, + Token token, + RecognitionException antlrException, + Object... args) + { + state.get().errors++; + Message msg = new GrammarSyntaxMessage(etype,fileName,token,antlrException,args); + state.get().listener.error(msg); + } + public static void internalError(String error, Throwable e) { state.get().errors++; StackTraceElement location = getLastNonErrorManagerCodeLocation(e); @@ -192,6 +207,30 @@ public class ErrorManager { state.get().listener.error(new ToolMessage(errorType, args)); } + public static String getParserErrorMessage(Parser parser, RecognitionException e) { + String msg = null; + if ( e instanceof NoViableAltException) { + String t = parser.getTokenErrorDisplay(e.token); + String name = ""; + if ( e.token.getType()>=0 ) name = parser.getTokenNames()[e.token.getType()]; + msg = " came as a complete surprise to me"; + msg = t+msg; +// if ( t.toLowerCase().equals("'"+name.toLowerCase()+"'") ) { +// msg = t+msg; +// } +// else { +// msg = t+"<"+name+">"+msg; +// } + } + else if ( e instanceof v4ParserException) { + msg = ((v4ParserException)e).msg; + } + else { + msg = parser.getErrorMessage(e, parser.getTokenNames()); + } + return msg; + } + /** * Raise a predefined message with some number of parameters for the StringTemplate * with error information supplied explicitly. diff --git a/tool/src/org/antlr/v4/tool/Grammar.java b/tool/src/org/antlr/v4/tool/Grammar.java index 8265cde12..6319b9ad3 100644 --- a/tool/src/org/antlr/v4/tool/Grammar.java +++ b/tool/src/org/antlr/v4/tool/Grammar.java @@ -5,6 +5,7 @@ import org.antlr.runtime.CommonTokenStream; import org.antlr.runtime.ParserRuleReturnScope; import org.antlr.runtime.RecognitionException; import org.antlr.v4.Tool; +import org.antlr.v4.analysis.Label; import org.antlr.v4.parse.ANTLRLexer; import org.antlr.v4.parse.ANTLRParser; import org.antlr.v4.parse.GrammarASTAdaptor; @@ -48,6 +49,15 @@ public class Grammar implements AttributeResolver { public List importedGrammars; public Map rules = new LinkedHashMap(); + /** Map token like ID (but not literals like "while") to its token type */ + public Map tokenNameToTypeMap = new HashMap(); + + /** Map token literals like "while" to its token type. It may be that + * WHILE="while"=35, in which case both tokenIDToTypeMap and this + * field will have entries both mapped to 35. + */ + public Map stringLiteralToTypeMap = new HashMap(); + /** Map a name to an action. * The code generator will use this to fill holes in the output files. * I track the AST node for the action in case I need the line number @@ -70,19 +80,22 @@ public class Grammar implements AttributeResolver { /** For testing */ public Grammar(String fileName, String grammarText) throws RecognitionException { this.text = grammarText; - ANTLRStringStream in = new ANTLRStringStream(grammarText); - in.name = fileName; - ANTLRLexer lexer = new ANTLRLexer(in); - CommonTokenStream tokens = new CommonTokenStream(lexer); - ANTLRParser p = new ANTLRParser(tokens); - p.setTreeAdaptor(new GrammarASTAdaptor(in)); - ParserRuleReturnScope r = p.grammarSpec(); - ast = (GrammarRootAST)r.getTree(); - this.name = ((GrammarAST)ast.getChild(0)).getText(); - this.fileName = fileName; + this.fileName = fileName; + ANTLRStringStream in = new ANTLRStringStream(grammarText); + in.name = fileName; + ANTLRLexer lexer = new ANTLRLexer(in); + CommonTokenStream tokens = new CommonTokenStream(lexer); + ANTLRParser p = new ANTLRParser(tokens); + p.setTreeAdaptor(new GrammarASTAdaptor(in)); + ParserRuleReturnScope r = p.grammarSpec(); + if ( r.getTree() instanceof GrammarRootAST ) { + this.ast = (GrammarRootAST)r.getTree(); + this.name = ((GrammarAST)ast.getChild(0)).getText(); + } } public void loadImportedGrammars() { + if ( ast==null ) return; GrammarAST i = (GrammarAST)ast.getFirstChildWithType(ANTLRParser.IMPORT); if ( i==null ) return; importedGrammars = new ArrayList(); @@ -98,7 +111,9 @@ public class Grammar implements AttributeResolver { System.out.println("import "+t.getText()); } try { - GrammarRootAST ast = tool.load(importedGrammarName+".g"); + GrammarAST root = tool.load(importedGrammarName+".g"); + if ( root instanceof GrammarASTErrorNode ) return; // came back as error node + GrammarRootAST ast = (GrammarRootAST)root; Grammar g = new Grammar(tool, ast); g.parent = this; importedGrammars.add(g); @@ -232,6 +247,19 @@ public class Grammar implements AttributeResolver { return null; } + public int getTokenType(String tokenName) { + Integer I = null; + if ( tokenName.charAt(0)=='\'') { + I = stringLiteralToTypeMap.get(tokenName); + } + else { // must be a label like ID + I = tokenNameToTypeMap.get(tokenName); + } + int i = (I!=null)?I.intValue(): Label.INVALID; + //System.out.println("grammar type "+type+" "+tokenName+"->"+i); + return i; + } + // no isolated attr at grammar action level public Attribute resolveToAttribute(String x, ActionAST node) { return null; diff --git a/tool/src/org/antlr/v4/tool/GrammarSemanticsMessage.java b/tool/src/org/antlr/v4/tool/GrammarSemanticsMessage.java index fe0df60b0..7f5405925 100644 --- a/tool/src/org/antlr/v4/tool/GrammarSemanticsMessage.java +++ b/tool/src/org/antlr/v4/tool/GrammarSemanticsMessage.java @@ -12,6 +12,7 @@ public class GrammarSemanticsMessage extends Message { */ public Token offendingToken; + /* public GrammarSemanticsMessage(ErrorType etype, Grammar g, Token offendingToken, @@ -26,7 +27,7 @@ public class GrammarSemanticsMessage extends Message { charPosition = offendingToken.getCharPositionInLine(); } } - +*/ public GrammarSemanticsMessage(ErrorType etype, String fileName, Token offendingToken, diff --git a/tool/src/org/antlr/v4/tool/GrammarSyntaxMessage.java b/tool/src/org/antlr/v4/tool/GrammarSyntaxMessage.java new file mode 100644 index 000000000..3f4b1c80c --- /dev/null +++ b/tool/src/org/antlr/v4/tool/GrammarSyntaxMessage.java @@ -0,0 +1,30 @@ +package org.antlr.v4.tool; + +import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.Token; + +/** A problem with the syntax of your antlr grammar such as + * "The '{' came as a complete surprise to me at this point in your program" + */ +public class GrammarSyntaxMessage extends Message { + public Grammar g; + /** Most of the time, we'll have a token and so this will be set. */ + public Token offendingToken; + public RecognitionException antlrException; + + public GrammarSyntaxMessage(ErrorType etype, + String fileName, + Token offendingToken, + RecognitionException antlrException, + Object... args) + { + super(etype,args); + this.fileName = fileName; + this.offendingToken = offendingToken; + this.antlrException = antlrException; + if ( offendingToken!=null ) { + line = offendingToken.getLine(); + charPosition = offendingToken.getCharPositionInLine(); + } + } +} diff --git a/tool/src/org/antlr/v4/tool/Rule.java b/tool/src/org/antlr/v4/tool/Rule.java index d869ef2fd..2f09b0c5b 100644 --- a/tool/src/org/antlr/v4/tool/Rule.java +++ b/tool/src/org/antlr/v4/tool/Rule.java @@ -136,11 +136,15 @@ public class Rule implements AttributeResolver { } /** $x Attribute: rule arguments, return values, predefined rule prop, - * or a token/rule list label. + * or a token/rule list label. */ public Attribute resolveToAttribute(String x, ActionAST node) { - Attribute a = args.get(x); if ( a!=null ) return a; - a = retvals.get(x); if ( a!=null ) return a; + if ( args!=null ) { + Attribute a = args.get(x); if ( a!=null ) return a; + } + if ( retvals!=null ) { + Attribute a = retvals.get(x); if ( a!=null ) return a; + } AttributeDict properties = getPredefinedScope(LabelType.RULE_LABEL); return properties.get(x); } diff --git a/tool/test/org/antlr/v4/test/BaseTest.java b/tool/test/org/antlr/v4/test/BaseTest.java index 5e2a46e9c..fd9a76cef 100644 --- a/tool/test/org/antlr/v4/test/BaseTest.java +++ b/tool/test/org/antlr/v4/test/BaseTest.java @@ -418,7 +418,7 @@ public abstract class BaseTest { return null; } - public void testErrors(String[] pairs) { + public void testErrors(String[] pairs, boolean printTree) { for (int i = 0; i < pairs.length; i+=2) { String input = pairs[i]; String expect = pairs[i+1]; @@ -427,14 +427,19 @@ public abstract class BaseTest { try { String[] lines = input.split("\n"); String fileName = ""; - int grIndex = lines[0].indexOf("grammar"); - if ( grIndex>=0 ) { + int grIndex = lines[0].lastIndexOf("grammar"); + int semi = lines[0].lastIndexOf(';'); + if ( grIndex>=0 && semi>=0 ) { int space = lines[0].indexOf(' ', grIndex); - int semi = lines[0].lastIndexOf(';'); fileName = lines[0].substring(space+1, semi)+".g"; } + if ( fileName.length()==".g".length() ) fileName = ""; Grammar g = new Grammar(fileName, input); g.loadImportedGrammars(); + if ( printTree ) { + if ( g.ast!=null ) System.out.println(g.ast.toStringTree()); + else System.out.println("null tree"); + } SemanticPipeline sem = new SemanticPipeline(); sem.process(g); } @@ -442,7 +447,11 @@ public abstract class BaseTest { re.printStackTrace(System.err); } String actual = equeue.toString(); - assertEquals(expect,actual); + String msg = input; + msg = msg.replaceAll("\n","\\\\n"); + msg = msg.replaceAll("\r","\\\\r"); + msg = msg.replaceAll("\t","\\\\t"); + assertEquals("error in: "+msg,expect,actual); } } diff --git a/tool/test/org/antlr/v4/test/BlankActionSplitterListener.java b/tool/test/org/antlr/v4/test/BlankActionSplitterListener.java new file mode 100644 index 000000000..5a81bb4d7 --- /dev/null +++ b/tool/test/org/antlr/v4/test/BlankActionSplitterListener.java @@ -0,0 +1,57 @@ +package org.antlr.v4.test; + +import org.antlr.runtime.Token; +import org.antlr.v4.parse.ActionSplitterListener; + +public class BlankActionSplitterListener implements ActionSplitterListener { + public void setQualifiedAttr(String expr, Token x, Token y, Token rhs) { + } + + public void qualifiedAttr(String expr, Token x, Token y) { + } + + public void setAttr(String expr, Token x, Token rhs) { + } + + public void attr(String expr, Token x) { + } + + public void setDynamicScopeAttr(String expr, Token x, Token y, Token rhs) { + } + + public void dynamicScopeAttr(String expr, Token x, Token y) { + } + + public void setDynamicNegativeIndexedScopeAttr(String expr, Token x, Token y, Token index, Token rhs) { + } + + public void dynamicNegativeIndexedScopeAttr(String expr, Token x, Token y, Token index) { + } + + public void setDynamicAbsoluteIndexedScopeAttr(String expr, Token x, Token y, Token index, Token rhs) { + } + + public void dynamicAbsoluteIndexedScopeAttr(String expr, Token x, Token y, Token index) { + } + + public void templateInstance(String expr) { + } + + public void indirectTemplateInstance(String expr) { + } + + public void setExprAttribute(String expr) { + } + + public void setAttribute(String expr) { + } + + public void templateExpr(String expr) { + } + + public void unknownSyntax(Token t) { + } + + public void text(String text) { + } +} diff --git a/tool/test/org/antlr/v4/test/TestActionSplitter.java b/tool/test/org/antlr/v4/test/TestActionSplitter.java index d0428766d..518185d8a 100644 --- a/tool/test/org/antlr/v4/test/TestActionSplitter.java +++ b/tool/test/org/antlr/v4/test/TestActionSplitter.java @@ -10,23 +10,23 @@ import java.util.List; public class TestActionSplitter extends BaseTest { static String[] exprs = { - "foo", "['foo'<26>]", - "$x", "['$x'<16>]", - "\\$x", "['\\$x'<26>]", - "$x.y", "['$x.y'<8>]", - "$ID.text", "['$ID.text'<8>]", - "$ID", "['$ID'<16>]", - "$ID.getText()", "['$ID'<16>, '.getText()'<26>]", - "$ID.text = \"test\";", "['$ID.text = \"test\";'<7>]", - "$a.line == $b.line", "['$a.line'<8>, ' == '<26>, '$b.line'<8>]", - "$r.tree", "['$r.tree'<8>]", - "foo $a::n bar", "['foo '<26>, '$a::n'<10>, ' bar'<26>]", - "$Symbols[-1]::names.add($id.text);", "['$Symbols[-1]::names'<12>, '.add('<26>, '$id.text'<8>, ');'<26>]", - "$Symbols[0]::names.add($id.text);", "['$Symbols[0]::names'<14>, '.add('<26>, '$id.text'<8>, ');'<26>]", - "$Symbols::x;", "['$Symbols::x'<10>, ';'<26>]", - "$Symbols.size()>0", "['$Symbols'<16>, '.size()>0'<26>]", - "$field::x = $field.st;", "['$field::x = $field.st;'<9>]", - "$foo.get(\"ick\");", "['$foo'<16>, '.get(\"ick\");'<26>]", + "foo", "['foo'<29>]", + "$x", "['$x'<20>]", + "\\$x", "['\\$'<6>, 'x'<29>]", + "$x.y", "['$x.y'<11>]", + "$ID.text", "['$ID.text'<11>]", + "$ID", "['$ID'<20>]", + "$ID.getText()", "['$ID'<20>, '.getText()'<29>]", + "$ID.text = \"test\";", "['$ID.text = \"test\";'<10>]", + "$a.line == $b.line", "['$a.line'<11>, ' == '<29>, '$b.line'<11>]", + "$r.tree", "['$r.tree'<11>]", + "foo $a::n bar", "['foo '<29>, '$a::n'<13>, ' bar'<29>]", + "$Symbols[-1]::names.add($id.text);", "['$Symbols[-1]::names'<16>, '.add('<29>, '$id.text'<11>, ');'<29>]", + "$Symbols[0]::names.add($id.text);", "['$Symbols[0]::names'<18>, '.add('<29>, '$id.text'<11>, ');'<29>]", + "$Symbols::x;", "['$Symbols::x'<13>, ';'<29>]", + "$Symbols.size()>0", "['$Symbols'<20>, '.size()>0'<29>]", + "$field::x = $field.st;", "['$field::x = $field.st;'<12>]", + "$foo.get(\"ick\");", "['$foo'<20>, '.get(\"ick\");'<29>]", }; @Test public void testExprs() { @@ -34,13 +34,14 @@ public class TestActionSplitter extends BaseTest { String input = exprs[i]; String expect = exprs[i+1]; List chunks = getActionChunks(input); - assertEquals(expect, chunks.toString()); + assertEquals("input: "+input, expect, chunks.toString()); } } public static List getActionChunks(String a) { List chunks = new ArrayList(); - ActionSplitter splitter = new ActionSplitter(new ANTLRStringStream(a)); + ActionSplitter splitter = new ActionSplitter(new ANTLRStringStream(a), + new BlankActionSplitterListener()); Token t = splitter.nextToken(); while ( t.getType()!=Token.EOF ) { chunks.add("'"+t.getText()+"'<"+t.getType()+">"); diff --git a/tool/test/org/antlr/v4/test/TestAttributeChecks.java b/tool/test/org/antlr/v4/test/TestAttributeChecks.java index 32cb687d4..1f7f61574 100644 --- a/tool/test/org/antlr/v4/test/TestAttributeChecks.java +++ b/tool/test/org/antlr/v4/test/TestAttributeChecks.java @@ -240,7 +240,7 @@ public class TestAttributeChecks extends BaseTest { ST st = new ST(template); st.add(location, action); String grammar = st.render(); - testErrors(new String[] {grammar, expected}); + testErrors(new String[] {grammar, expected}, false); } } } diff --git a/tool/test/org/antlr/v4/test/TestBasicSemanticErrors.java b/tool/test/org/antlr/v4/test/TestBasicSemanticErrors.java index e162b5265..aaa0b98ca 100644 --- a/tool/test/org/antlr/v4/test/TestBasicSemanticErrors.java +++ b/tool/test/org/antlr/v4/test/TestBasicSemanticErrors.java @@ -15,10 +15,10 @@ public class TestBasicSemanticErrors extends BaseTest { "\n" + "b : A^ | ((B!|C)) -> C;", // YIELDS - "error(67): A.g:7:7: alts with rewrites can't use heterogeneous types left of ->\n" + - "error(76): A.g:9:4: AST operator with non-AST output option: ^\n" + - "error(76): A.g:9:11: AST operator with non-AST output option: !\n" + - "error(77): A.g:9:11: rule b alt 2 uses rewrite syntax and also an AST operator", + "error(68): A.g:7:7: alts with rewrites can't use heterogeneous types left of ->\n" + + "error(77): A.g:9:4: AST operator with non-AST output option: ^\n" + + "error(77): A.g:9:11: AST operator with non-AST output option: !\n" + + "error(78): A.g:9:11: rule b alt 2 uses rewrite syntax and also an AST operator", // INPUT "tree grammar B;\n" + @@ -32,9 +32,9 @@ public class TestBasicSemanticErrors extends BaseTest { "\n" + "b : ^(. A) ;", // YIELDS - "error(78): B.g:10:6: Wildcard invalid as root; wildcard can itself be a tree\n" + - "error(79): B.g:1:5: option backtrack=false conflicts with tree grammar filter mode\n" + - "error(79): B.g:1:5: option output=template conflicts with tree grammar filter mode" + "error(79): B.g:10:6: Wildcard invalid as root; wildcard can itself be a tree\n" + + "error(80): B.g:1:5: option backtrack=false conflicts with tree grammar filter mode\n" + + "error(80): B.g:1:5: option output=template conflicts with tree grammar filter mode" }; static String[] U = { @@ -56,13 +56,13 @@ public class TestBasicSemanticErrors extends BaseTest { "c : ID ID ;", // YIELDS "error(21): U.g:8:0: repeated grammar prequel spec (option, token, or import); please merge\n" + - "error(21): U.g:7:0: repeated grammar prequel spec (option, token, or import); please merge\n" + - "error(48): U.g:2:10: illegal option foo\n" + - "error(26): U.g:4:8: token names must start with an uppercase letter: f\n" + - "error(48): U.g:8:10: illegal option x\n" + - "error(48): U.g:11:10: illegal option blech\n" + - "error(48): U.g:14:16: illegal option ick\n" + - "error(48): U.g:15:16: illegal option x", + "error(21): U.g:7:0: repeated grammar prequel spec (option, token, or import); please merge\n" + + "error(49): U.g:2:10: illegal option foo\n" + + "error(26): U.g:4:8: token names must start with an uppercase letter: f\n" + + "error(49): U.g:8:10: illegal option x\n" + + "error(49): U.g:11:10: illegal option blech\n" + + "error(49): U.g:14:16: illegal option ick\n" + + "error(49): U.g:15:16: illegal option x", // INPUT "tree grammar V;\n" + @@ -74,7 +74,7 @@ public class TestBasicSemanticErrors extends BaseTest { " | A B -> template() \"kjsfdkdsj\" \n" + " ;", // YIELDS - "error(65): V.g:7:4: with rewrite=true, alt 2 not simple node or obvious tree element; text attribute for rule not guaranteed to be correct", + "error(66): V.g:7:4: with rewrite=true, alt 2 not simple node or obvious tree element; text attribute for rule not guaranteed to be correct", // INPUT "tree grammar V;\n" + @@ -83,9 +83,19 @@ public class TestBasicSemanticErrors extends BaseTest { " | A B -> template() \"kjsfdkdsj\" \n" + " ;", // YIELDS - "error(61): V.g:4:8: rule a uses rewrite syntax or operator with no output option", + "error(62): V.g:4:8: rule a uses rewrite syntax or operator with no output option", }; - @Test public void testA() { super.testErrors(A); } - @Test public void testU() { super.testErrors(U); } + static String[] C = { + "parser grammar C;\n" + + "options {output=AST;}\n" + + "tokens { A; B; C; }\n" + + "a : A -> B $a A ;", // no problem with or $a. + + "" + }; + + @Test public void testA() { super.testErrors(A, false); } + @Test public void testU() { super.testErrors(U, false); } + @Test public void testE() { super.testErrors(C, false); } } \ No newline at end of file diff --git a/tool/test/org/antlr/v4/test/TestSymbolIssues.java b/tool/test/org/antlr/v4/test/TestSymbolIssues.java index d4d9586de..b4560815d 100644 --- a/tool/test/org/antlr/v4/test/TestSymbolIssues.java +++ b/tool/test/org/antlr/v4/test/TestSymbolIssues.java @@ -24,17 +24,17 @@ public class TestSymbolIssues extends BaseTest { "\n" + "ID : 'a'..'z'+ ID ;", // YIELDS - "error(48): A.g:2:10: illegal option opt\n" + - "error(58): A.g:11:6: scope Blort redefinition\n" + - "error(18): A.g:15:0: rule a redefinition\n" + - "error(57): A.g:7:1: redefinition of members action\n" + - "error(57): A.g:9:1: redefinition of header action\n" + - "error(71): A.g:3:19: cannot alias X; token name already defined\n" + - "error(71): A.g:3:26: cannot alias Y; token name already assigned to 'y'\n" + - "error(71): A.g:3:36: cannot alias Z; token name already defined\n" + - "error(45): A.g:13:37: rule b has no defined parameters\n" + - "error(23): A.g:13:43: reference to undefined rule: q\n" + - "error(44): A.g:14:31: missing parameter(s) on rule reference: a" + "error(49): A.g:2:10: illegal option opt\n" + + "error(59): A.g:11:6: scope Blort redefinition\n" + + "error(18): A.g:15:0: rule a redefinition\n" + + "error(58): A.g:7:1: redefinition of members action\n" + + "error(58): A.g:9:1: redefinition of header action\n" + + "error(72): A.g:3:19: cannot alias X; token name already defined\n" + + "error(72): A.g:3:26: cannot alias Y; token name already assigned to 'y'\n" + + "error(72): A.g:3:36: cannot alias Z; token name already defined\n" + + "error(46): A.g:13:32: rule a has no defined parameters\n" + + "error(46): A.g:13:37: rule b has no defined parameters\n" + + "error(23): A.g:13:43: reference to undefined rule: q" }; static String[] B = { @@ -49,11 +49,11 @@ public class TestSymbolIssues extends BaseTest { "\n" + "s : FOO ;", // YIELDS - "error(33): B.g:9:0: symbol s conflicts with global dynamic scope with same name\n" + - "error(34): B.g:5:9: label b conflicts with rule with same name\n" + - "error(33): B.g:5:4: symbol s conflicts with global dynamic scope with same name\n" + - "error(35): B.g:5:15: label X conflicts with token with same name\n" + - "error(40): B.g:7:9: label x type mismatch with previous definition: TOKEN_LIST_LABEL!=TOKEN_LABEL" + "error(34): B.g:9:0: symbol s conflicts with global dynamic scope with same name\n" + + "error(35): B.g:5:9: label b conflicts with rule with same name\n" + + "error(34): B.g:5:4: symbol s conflicts with global dynamic scope with same name\n" + + "error(36): B.g:5:15: label X conflicts with token with same name\n" + + "error(41): B.g:7:9: label x type mismatch with previous definition: TOKEN_LIST_LABEL!=TOKEN_LABEL" }; static String[] C = { @@ -66,12 +66,12 @@ public class TestSymbolIssues extends BaseTest { "b : B ;\n"+ "A : 'a';", // YIELDS - "error(50): C.g:3:23: reference to rewrite element ID not found to left of ->\n" + - "error(50): C.g:3:28: reference to rewrite element r not found to left of ->\n" + - "error(50): C.g:3:30: reference to rewrite element foo not found to left of ->\n" + - "error(50): C.g:3:49: reference to rewrite element 'eh?' not found to left of ->\n" + - "error(50): C.g:4:10: reference to rewrite element x not found to left of ->\n" + - "error(50): C.g:4:13: reference to rewrite element A not found to left of ->" + "error(51): C.g:3:23: reference to rewrite element ID not found to left of ->\n" + + "error(51): C.g:3:28: reference to rewrite element r not found to left of ->\n" + + "error(51): C.g:3:30: reference to rewrite element foo not found to left of ->\n" + + "error(51): C.g:3:49: reference to rewrite element 'eh?' not found to left of ->\n" + + "error(51): C.g:4:10: reference to rewrite element x not found to left of ->\n" + + "error(51): C.g:4:13: reference to rewrite element A not found to left of ->" }; static String[] D = { @@ -88,16 +88,16 @@ public class TestSymbolIssues extends BaseTest { " : ID ;", // YIELDS - "error(37): D.g:4:21: label j conflicts with rule a's return value or parameter with same name\n" + - "error(36): D.g:4:16: label i conflicts with rule a's dynamically-scoped attribute with same name\n" + - "error(41): D.g:6:0: rule b's argument i conflicts a return value with same name\n" + - "error(39): D.g:9:6: rule c's dynamically-scoped attribute i conflicts with c's return value or parameter with same name\n" + - "error(38): D.g:9:6: rule c's dynamically-scoped attribute c conflicts with the rule name\n" + - "error(39): D.g:9:6: rule c's dynamically-scoped attribute k conflicts with c's return value or parameter with same name" + "error(38): D.g:4:21: label j conflicts with rule a's return value or parameter with same name\n" + + "error(37): D.g:4:16: label i conflicts with rule a's dynamically-scoped attribute with same name\n" + + "error(42): D.g:6:0: rule b's argument i conflicts a return value with same name\n" + + "error(40): D.g:9:6: rule c's dynamically-scoped attribute i conflicts with c's return value or parameter with same name\n" + + "error(39): D.g:9:6: rule c's dynamically-scoped attribute c conflicts with the rule name\n" + + "error(40): D.g:9:6: rule c's dynamically-scoped attribute k conflicts with c's return value or parameter with same name" }; - @Test public void testA() { super.testErrors(A); } - @Test public void testB() { super.testErrors(B); } - @Test public void testC() { super.testErrors(C); } - @Test public void testD() { super.testErrors(D); } + @Test public void testA() { super.testErrors(A, false); } + @Test public void testB() { super.testErrors(B, false); } + @Test public void testC() { super.testErrors(C, false); } + @Test public void testD() { super.testErrors(D, false); } } diff --git a/tool/test/org/antlr/v4/test/TestSyntaxErrors.java b/tool/test/org/antlr/v4/test/TestSyntaxErrors.java new file mode 100644 index 000000000..f044d7a28 --- /dev/null +++ b/tool/test/org/antlr/v4/test/TestSyntaxErrors.java @@ -0,0 +1,129 @@ +package org.antlr.v4.test; + +import org.junit.Test; + +public class TestSyntaxErrors extends BaseTest { + static String[] A = { + // INPUT + "grammar A;\n" + + "", + // YIELDS + "error(63): A.g::: grammar A has no rules", + + "A;", + "error(17): :1:0: 'A' came as a complete surprise to me", + + "grammar ;", + "error(17): :1:8: ';' came as a complete surprise to me", + + "grammar A\n" + + "a : ID ;\n", + "error(17): :2:0: missing SEMI at 'a'", + + "grammar A;\n" + + "a : ID ;;\n"+ + "b : B ;", + "error(17): A.g:2:8: ';' came as a complete surprise to me", + + "grammar A;;\n" + + "a : ID ;\n", + "error(17): A;.g:1:10: ';' came as a complete surprise to me", + + "grammar A;\n" + + "a @init : ID ;\n", + "error(17): A.g:2:8: missing ACTION at ':' while matching a rule", + + "grammar A;\n" + + "a ( A | B ) D ;\n" + + "b : B ;", + "error(17): A.g:2:3: missing COLON at '(' while matching a rule", + }; + + @Test public void testA() { super.testErrors(A, true); } + + @Test public void testExtraColon() { + String[] pair = new String[] { + "grammar A;\n" + + "a : : A ;\n" + + "b : B ;", + "error(17): A.g:2:4: ':' came as a complete surprise to me while matching alternative", + }; + super.testErrors(pair, true); + } + + @Test public void testMissingRuleSemi() { + String[] pair = new String[] { + "grammar A;\n" + + "a : A \n" + + "b : B ;", + "error(17): A.g:3:0: unterminated rule (missing ';') detected at 'b :' while looking for rule element", + }; + super.testErrors(pair, true); + } + + @Test public void testMissingRuleSemi2() { + String[] pair = new String[] { + "lexer grammar A;\n" + + "A : 'a' \n" + + "B : 'b' ;", + "error(17): A.g:3:0: unterminated rule (missing ';') detected at 'B :' while looking for rule element", + }; + super.testErrors(pair, true); + } + + @Test public void testMissingRuleSemi3() { + String[] pair = new String[] { + "grammar A;\n" + + "a : A \n" + + "b[int i] returns [int y] : B ;", + "error(17): A.g:3:9: unterminated rule (missing ';') detected at 'returns int y' while looking for rule element" + }; + super.testErrors(pair, true); + } + + @Test public void testMissingRuleSemi4() { + String[] pair = new String[] { + "grammar A;\n" + + "a : b \n" + + " catch [Exception e] {...}\n" + + "b : B ;\n", + + "error(17): A.g:2:4: unterminated rule (missing ';') detected at 'b catch' while looking for rule element" + }; + super.testErrors(pair, true); + } + + @Test public void testMissingRuleSemi5() { + String[] pair = new String[] { + "grammar A;\n" + + "a : A \n" + + " catch [Exception e] {...}\n", + + "error(17): A.g:2:4: unterminated rule (missing ';') detected at 'A catch' while looking for rule element" + }; + super.testErrors(pair, true); + } + + @Test public void testBadRulePrequelStart() { + String[] pair = new String[] { + "grammar A;\n" + + "a @ options {k=1;} : A ;\n" + + "b : B ;", + + "error(17): A.g:2:4: 'options {' came as a complete surprise to me while looking for an identifier" + }; + super.testErrors(pair, true); + } + + @Test public void testBadRulePrequelStart2() { + String[] pair = new String[] { + "grammar A;\n" + + "a } : A ;\n" + + "b : B ;", + + "error(17): A.g:2:2: '}' came as a complete surprise to me while matching rule preamble" + }; + super.testErrors(pair, true); + } + +}