[jboss-svn-commits] JBL Code SVN: r19745 - in labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main: resources/org/drools/lang and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Apr 28 13:05:28 EDT 2008
Author: porcelli
Date: 2008-04-28 13:05:28 -0400 (Mon, 28 Apr 2008)
New Revision: 19745
Added:
labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/NewDRLLexer.java
labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/NewDRLParser.java
labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/TreeNewDRL.java
labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/NewDRL.g
labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/TreeNewDRL.g
Log:
New DRL and its TreeWalker (for now just working with normal_lhs_block rule).
New DRL parser changes:
- Removed from original DRL grammar most hard keywords
- Added Tree rewrite
- Removed most java code actions
Added: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/NewDRLLexer.java
===================================================================
--- labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/NewDRLLexer.java (rev 0)
+++ labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/NewDRLLexer.java 2008-04-28 17:05:28 UTC (rev 19745)
@@ -0,0 +1,1941 @@
+package org.drools.lang;
+
+// $ANTLR 3.0.1 /Users/porcelli/Desktop/testes/NewDRL.g 2008-04-28 10:54:02
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+public class NewDRLLexer extends Lexer {
+ public static final int COMMA=53;
+ public static final int VT_ACCUMULATE_ID_CLAUSE=18;
+ public static final int VT_FACT_OR=23;
+ public static final int VK_NOT=35;
+ public static final int HexDigit=77;
+ public static final int VK_ACCUMULATE=42;
+ public static final int VT_EXPRESSION_CHAIN=20;
+ public static final int ARROW=56;
+ public static final int VT_AND_PREFIX=13;
+ public static final int MISC=73;
+ public static final int FLOAT=66;
+ public static final int VT_CURLY_CHUNK=9;
+ public static final int TILDE=80;
+ public static final int DOT=55;
+ public static final int VT_OR_PREFIX=14;
+ public static final int DOUBLE_PIPE=50;
+ public static final int LESS=61;
+ public static final int VT_PATTERN=21;
+ public static final int EscapeSequence=76;
+ public static final int VK_EXISTS=39;
+ public static final int INT=65;
+ public static final int VT_BIND_FIELD=24;
+ public static final int VK_COLLECT=47;
+ public static final int VK_EVAL=28;
+ public static final int LEFT_SQUARE=69;
+ public static final int SH_STYLE_SINGLE_LINE_COMMENT=81;
+ public static final int GREATER=59;
+ public static final int VT_FACT=4;
+ public static final int VK_MATCHES=30;
+ public static final int LEFT_CURLY=71;
+ public static final int VT_FACT_BINDING=22;
+ public static final int ID=54;
+ public static final int NOT_EQUAL=63;
+ public static final int DOUBLE_AMPER=51;
+ public static final int LEFT_PAREN=48;
+ public static final int RIGHT_CURLY=72;
+ public static final int BOOL=67;
+ public static final int VT_AND_INFIX=15;
+ public static final int VK_ENTRY_POINT=34;
+ public static final int VT_ACCESSOR_PATH=26;
+ public static final int VT_FROM_SOURCE=19;
+ public static final int VT_LABEL=7;
+ public static final int VK_CONTAINS=29;
+ public static final int VK_SOUNDSLIKE=32;
+ public static final int VT_FIELD=25;
+ public static final int WS=75;
+ public static final int VT_QUALIFIED_ID=6;
+ public static final int VK_AND=38;
+ public static final int STRING=64;
+ public static final int VK_IN=36;
+ public static final int VT_ACCESSOR_ELEMENT=27;
+ public static final int VT_ACCUMULATE_INIT_CLAUSE=17;
+ public static final int VK_REVERSE=45;
+ public static final int VK_MEMBEROF=33;
+ public static final int GREATER_EQUAL=60;
+ public static final int VT_OR_INFIX=16;
+ public static final int VK_FORALL=40;
+ public static final int VT_SQUARE_CHUNK=10;
+ public static final int VK_OR=37;
+ public static final int VT_PAREN_CHUNK=11;
+ public static final int VT_NAME=8;
+ public static final int LESS_EQUAL=62;
+ public static final int VK_RESULT=46;
+ public static final int UnicodeEscape=78;
+ public static final int EQUAL=58;
+ public static final int SEMICOLON=52;
+ public static final int VT_AND_IMPLICIT=12;
+ public static final int EOF=-1;
+ public static final int VT_CONSTRAINTS=5;
+ public static final int NULL=68;
+ public static final int EOL=74;
+ public static final int VK_INIT=43;
+ public static final int Tokens=84;
+ public static final int COLON=57;
+ public static final int OctalEscape=79;
+ public static final int VK_ACTION=44;
+ public static final int MULTI_LINE_COMMENT=83;
+ public static final int VK_FROM=41;
+ public static final int VK_EXCLUDES=31;
+ public static final int RIGHT_PAREN=49;
+ public static final int RIGHT_SQUARE=70;
+ public static final int C_STYLE_SINGLE_LINE_COMMENT=82;
+ public NewDRLLexer() {;}
+ public NewDRLLexer(CharStream input) {
+ super(input);
+ ruleMemo = new HashMap[38+1];
+ }
+ public String getGrammarFileName() { return "/Users/porcelli/Desktop/testes/NewDRL.g"; }
+
+ // $ANTLR start WS
+ public final void mWS() throws RecognitionException {
+ try {
+ int _type = WS;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:458:9: ( ( ' ' | '\\t' | '\\f' | EOL )+ )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:458:17: ( ' ' | '\\t' | '\\f' | EOL )+
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:458:17: ( ' ' | '\\t' | '\\f' | EOL )+
+ int cnt1=0;
+ loop1:
+ do {
+ int alt1=5;
+ switch ( input.LA(1) ) {
+ case ' ':
+ {
+ alt1=1;
+ }
+ break;
+ case '\t':
+ {
+ alt1=2;
+ }
+ break;
+ case '\f':
+ {
+ alt1=3;
+ }
+ break;
+ case '\n':
+ case '\r':
+ {
+ alt1=4;
+ }
+ break;
+
+ }
+
+ switch (alt1) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:458:19: ' '
+ {
+ match(' '); if (failed) return ;
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:459:19: '\\t'
+ {
+ match('\t'); if (failed) return ;
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:460:19: '\\f'
+ {
+ match('\f'); if (failed) return ;
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:461:19: EOL
+ {
+ mEOL(); if (failed) return ;
+
+ }
+ break;
+
+ default :
+ if ( cnt1 >= 1 ) break loop1;
+ if (backtracking>0) {failed=true; return ;}
+ EarlyExitException eee =
+ new EarlyExitException(1, input);
+ throw eee;
+ }
+ cnt1++;
+ } while (true);
+
+ if ( backtracking==0 ) {
+ channel=HIDDEN;
+ }
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end WS
+
+ // $ANTLR start EOL
+ public final void mEOL() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:467:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:468:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:468:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+ int alt2=3;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0=='\r') ) {
+ int LA2_1 = input.LA(2);
+
+ if ( (LA2_1=='\n') && (synpred1())) {
+ alt2=1;
+ }
+ else {
+ alt2=2;}
+ }
+ else if ( (LA2_0=='\n') ) {
+ alt2=3;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("468:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
+
+ throw nvae;
+ }
+ switch (alt2) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:468:14: ( '\\r\\n' )=> '\\r\\n'
+ {
+ match("\r\n"); if (failed) return ;
+
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:469:25: '\\r'
+ {
+ match('\r'); if (failed) return ;
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:470:25: '\\n'
+ {
+ match('\n'); if (failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end EOL
+
+ // $ANTLR start INT
+ public final void mINT() throws RecognitionException {
+ try {
+ int _type = INT;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:475:2: ( ( '-' )? ( '0' .. '9' )+ )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:475:4: ( '-' )? ( '0' .. '9' )+
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:475:4: ( '-' )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0=='-') ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:475:5: '-'
+ {
+ match('-'); if (failed) return ;
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:475:10: ( '0' .. '9' )+
+ int cnt4=0;
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( ((LA4_0>='0' && LA4_0<='9')) ) {
+ alt4=1;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:475:11: '0' .. '9'
+ {
+ matchRange('0','9'); if (failed) return ;
+
+ }
+ break;
+
+ default :
+ if ( cnt4 >= 1 ) break loop4;
+ if (backtracking>0) {failed=true; return ;}
+ EarlyExitException eee =
+ new EarlyExitException(4, input);
+ throw eee;
+ }
+ cnt4++;
+ } while (true);
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end INT
+
+ // $ANTLR start FLOAT
+ public final void mFLOAT() throws RecognitionException {
+ try {
+ int _type = FLOAT;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:479:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:479:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:479:4: ( '-' )?
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='-') ) {
+ alt5=1;
+ }
+ switch (alt5) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:479:5: '-'
+ {
+ match('-'); if (failed) return ;
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:479:10: ( '0' .. '9' )+
+ int cnt6=0;
+ loop6:
+ do {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( ((LA6_0>='0' && LA6_0<='9')) ) {
+ alt6=1;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:479:11: '0' .. '9'
+ {
+ matchRange('0','9'); if (failed) return ;
+
+ }
+ break;
+
+ default :
+ if ( cnt6 >= 1 ) break loop6;
+ if (backtracking>0) {failed=true; return ;}
+ EarlyExitException eee =
+ new EarlyExitException(6, input);
+ throw eee;
+ }
+ cnt6++;
+ } while (true);
+
+ match('.'); if (failed) return ;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:479:26: ( '0' .. '9' )+
+ int cnt7=0;
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( ((LA7_0>='0' && LA7_0<='9')) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:479:27: '0' .. '9'
+ {
+ matchRange('0','9'); if (failed) return ;
+
+ }
+ break;
+
+ default :
+ if ( cnt7 >= 1 ) break loop7;
+ if (backtracking>0) {failed=true; return ;}
+ EarlyExitException eee =
+ new EarlyExitException(7, input);
+ throw eee;
+ }
+ cnt7++;
+ } while (true);
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end FLOAT
+
+ // $ANTLR start STRING
+ public final void mSTRING() throws RecognitionException {
+ try {
+ int _type = STRING;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:483:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='\"') ) {
+ alt10=1;
+ }
+ else if ( (LA10_0=='\'') ) {
+ alt10=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("482:1: STRING : ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) );", 10, 0, input);
+
+ throw nvae;
+ }
+ switch (alt10) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:483:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:483:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:483:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+ {
+ match('\"'); if (failed) return ;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:483:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+ loop8:
+ do {
+ int alt8=3;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0=='\\') ) {
+ alt8=1;
+ }
+ else if ( ((LA8_0>='\u0000' && LA8_0<='!')||(LA8_0>='#' && LA8_0<='[')||(LA8_0>=']' && LA8_0<='\uFFFE')) ) {
+ alt8=2;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:483:15: EscapeSequence
+ {
+ mEscapeSequence(); if (failed) return ;
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:483:32: ~ ( '\\\\' | '\"' )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+ failed=false;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ match('\"'); if (failed) return ;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:484:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:484:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:484:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
+ {
+ match('\''); if (failed) return ;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:484:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
+ loop9:
+ do {
+ int alt9=3;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\\') ) {
+ alt9=1;
+ }
+ else if ( ((LA9_0>='\u0000' && LA9_0<='&')||(LA9_0>='(' && LA9_0<='[')||(LA9_0>=']' && LA9_0<='\uFFFE')) ) {
+ alt9=2;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:484:16: EscapeSequence
+ {
+ mEscapeSequence(); if (failed) return ;
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:484:33: ~ ( '\\\\' | '\\'' )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+ failed=false;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop9;
+ }
+ } while (true);
+
+ match('\''); if (failed) return ;
+
+ }
+
+
+ }
+ break;
+
+ }
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end STRING
+
+ // $ANTLR start HexDigit
+ public final void mHexDigit() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:488:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:488:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
+ input.consume();
+ failed=false;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end HexDigit
+
+ // $ANTLR start EscapeSequence
+ public final void mEscapeSequence() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:492:5: ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape )
+ int alt11=3;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0=='\\') ) {
+ switch ( input.LA(2) ) {
+ case '\"':
+ case '$':
+ case '&':
+ case '\'':
+ case '(':
+ case ')':
+ case '*':
+ case '+':
+ case '-':
+ case '.':
+ case '?':
+ case 'A':
+ case 'B':
+ case 'D':
+ case 'E':
+ case 'G':
+ case 'Q':
+ case 'S':
+ case 'W':
+ case 'Z':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'r':
+ case 's':
+ case 't':
+ case 'w':
+ case 'x':
+ case 'z':
+ case '{':
+ case '|':
+ case '}':
+ {
+ alt11=1;
+ }
+ break;
+ case 'u':
+ {
+ alt11=2;
+ }
+ break;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ {
+ alt11=3;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("490:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape );", 11, 1, input);
+
+ throw nvae;
+ }
+
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("490:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape );", 11, 0, input);
+
+ throw nvae;
+ }
+ switch (alt11) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:492:9: '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' )
+ {
+ match('\\'); if (failed) return ;
+ if ( input.LA(1)=='\"'||input.LA(1)=='$'||(input.LA(1)>='&' && input.LA(1)<='+')||(input.LA(1)>='-' && input.LA(1)<='.')||input.LA(1)=='?'||(input.LA(1)>='A' && input.LA(1)<='B')||(input.LA(1)>='D' && input.LA(1)<='E')||input.LA(1)=='G'||input.LA(1)=='Q'||input.LA(1)=='S'||input.LA(1)=='W'||(input.LA(1)>='Z' && input.LA(1)<='^')||(input.LA(1)>='a' && input.LA(1)<='f')||(input.LA(1)>='n' && input.LA(1)<='p')||(input.LA(1)>='r' && input.LA(1)<='t')||(input.LA(1)>='w' && input.LA(1)<='x')||(input.LA(1)>='z' && input.LA(1)<='}') ) {
+ input.consume();
+ failed=false;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:496:9: UnicodeEscape
+ {
+ mUnicodeEscape(); if (failed) return ;
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:497:9: OctalEscape
+ {
+ mOctalEscape(); if (failed) return ;
+
+ }
+ break;
+
+ }
+ }
+ finally {
+ }
+ }
+ // $ANTLR end EscapeSequence
+
+ // $ANTLR start OctalEscape
+ public final void mOctalEscape() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:502:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+ int alt12=3;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0=='\\') ) {
+ int LA12_1 = input.LA(2);
+
+ if ( ((LA12_1>='0' && LA12_1<='3')) ) {
+ int LA12_2 = input.LA(3);
+
+ if ( ((LA12_2>='0' && LA12_2<='7')) ) {
+ int LA12_5 = input.LA(4);
+
+ if ( ((LA12_5>='0' && LA12_5<='7')) ) {
+ alt12=1;
+ }
+ else {
+ alt12=2;}
+ }
+ else {
+ alt12=3;}
+ }
+ else if ( ((LA12_1>='4' && LA12_1<='7')) ) {
+ int LA12_3 = input.LA(3);
+
+ if ( ((LA12_3>='0' && LA12_3<='7')) ) {
+ alt12=2;
+ }
+ else {
+ alt12=3;}
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("500:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("500:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
+
+ throw nvae;
+ }
+ switch (alt12) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:502:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+ {
+ match('\\'); if (failed) return ;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:502:14: ( '0' .. '3' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:502:15: '0' .. '3'
+ {
+ matchRange('0','3'); if (failed) return ;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:502:25: ( '0' .. '7' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:502:26: '0' .. '7'
+ {
+ matchRange('0','7'); if (failed) return ;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:502:36: ( '0' .. '7' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:502:37: '0' .. '7'
+ {
+ matchRange('0','7'); if (failed) return ;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:503:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+ {
+ match('\\'); if (failed) return ;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:503:14: ( '0' .. '7' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:503:15: '0' .. '7'
+ {
+ matchRange('0','7'); if (failed) return ;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:503:25: ( '0' .. '7' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:503:26: '0' .. '7'
+ {
+ matchRange('0','7'); if (failed) return ;
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:504:9: '\\\\' ( '0' .. '7' )
+ {
+ match('\\'); if (failed) return ;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:504:14: ( '0' .. '7' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:504:15: '0' .. '7'
+ {
+ matchRange('0','7'); if (failed) return ;
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ finally {
+ }
+ }
+ // $ANTLR end OctalEscape
+
+ // $ANTLR start UnicodeEscape
+ public final void mUnicodeEscape() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:509:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:509:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+ {
+ match('\\'); if (failed) return ;
+ match('u'); if (failed) return ;
+ mHexDigit(); if (failed) return ;
+ mHexDigit(); if (failed) return ;
+ mHexDigit(); if (failed) return ;
+ mHexDigit(); if (failed) return ;
+
+ }
+
+ }
+ finally {
+ }
+ }
+ // $ANTLR end UnicodeEscape
+
+ // $ANTLR start BOOL
+ public final void mBOOL() throws RecognitionException {
+ try {
+ int _type = BOOL;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:513:2: ( ( 'true' | 'false' ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:513:4: ( 'true' | 'false' )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:513:4: ( 'true' | 'false' )
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0=='t') ) {
+ alt13=1;
+ }
+ else if ( (LA13_0=='f') ) {
+ alt13=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("513:4: ( 'true' | 'false' )", 13, 0, input);
+
+ throw nvae;
+ }
+ switch (alt13) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:513:5: 'true'
+ {
+ match("true"); if (failed) return ;
+
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:513:12: 'false'
+ {
+ match("false"); if (failed) return ;
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end BOOL
+
+ // $ANTLR start NULL
+ public final void mNULL() throws RecognitionException {
+ try {
+ int _type = NULL;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:516:6: ( 'null' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:516:8: 'null'
+ {
+ match("null"); if (failed) return ;
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end NULL
+
+ // $ANTLR start SEMICOLON
+ public final void mSEMICOLON() throws RecognitionException {
+ try {
+ int _type = SEMICOLON;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:519:2: ( ';' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:519:4: ';'
+ {
+ match(';'); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end SEMICOLON
+
+ // $ANTLR start COLON
+ public final void mCOLON() throws RecognitionException {
+ try {
+ int _type = COLON;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:523:2: ( ':' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:523:4: ':'
+ {
+ match(':'); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end COLON
+
+ // $ANTLR start EQUAL
+ public final void mEQUAL() throws RecognitionException {
+ try {
+ int _type = EQUAL;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:528:2: ( '==' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:528:4: '=='
+ {
+ match("=="); if (failed) return ;
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end EQUAL
+
+ // $ANTLR start NOT_EQUAL
+ public final void mNOT_EQUAL() throws RecognitionException {
+ try {
+ int _type = NOT_EQUAL;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:532:2: ( '!=' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:532:4: '!='
+ {
+ match("!="); if (failed) return ;
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end NOT_EQUAL
+
+ // $ANTLR start GREATER
+ public final void mGREATER() throws RecognitionException {
+ try {
+ int _type = GREATER;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:536:2: ( '>' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:536:4: '>'
+ {
+ match('>'); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end GREATER
+
+ // $ANTLR start GREATER_EQUAL
+ public final void mGREATER_EQUAL() throws RecognitionException {
+ try {
+ int _type = GREATER_EQUAL;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:540:2: ( '>=' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:540:4: '>='
+ {
+ match(">="); if (failed) return ;
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end GREATER_EQUAL
+
+ // $ANTLR start LESS
+ public final void mLESS() throws RecognitionException {
+ try {
+ int _type = LESS;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:544:2: ( '<' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:544:4: '<'
+ {
+ match('<'); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end LESS
+
+ // $ANTLR start LESS_EQUAL
+ public final void mLESS_EQUAL() throws RecognitionException {
+ try {
+ int _type = LESS_EQUAL;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:548:2: ( '<=' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:548:4: '<='
+ {
+ match("<="); if (failed) return ;
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end LESS_EQUAL
+
+ // $ANTLR start ARROW
+ public final void mARROW() throws RecognitionException {
+ try {
+ int _type = ARROW;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:552:2: ( '->' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:552:4: '->'
+ {
+ match("->"); if (failed) return ;
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end ARROW
+
+ // $ANTLR start ID
+ public final void mID() throws RecognitionException {
+ try {
+ int _type = ID;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:556:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )* )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:556:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
+ {
+ if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00FF') ) {
+ input.consume();
+ failed=false;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:556:50: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( ((LA14_0>='0' && LA14_0<='9')||(LA14_0>='A' && LA14_0<='Z')||LA14_0=='_'||(LA14_0>='a' && LA14_0<='z')||(LA14_0>='\u00C0' && LA14_0<='\u00FF')) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00FF') ) {
+ input.consume();
+ failed=false;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end ID
+
+ // $ANTLR start LEFT_PAREN
+ public final void mLEFT_PAREN() throws RecognitionException {
+ try {
+ int _type = LEFT_PAREN;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:560:9: ( '(' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:560:11: '('
+ {
+ match('('); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end LEFT_PAREN
+
+ // $ANTLR start RIGHT_PAREN
+ public final void mRIGHT_PAREN() throws RecognitionException {
+ try {
+ int _type = RIGHT_PAREN;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:564:9: ( ')' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:564:11: ')'
+ {
+ match(')'); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RIGHT_PAREN
+
+ // $ANTLR start LEFT_SQUARE
+ public final void mLEFT_SQUARE() throws RecognitionException {
+ try {
+ int _type = LEFT_SQUARE;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:568:9: ( '[' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:568:11: '['
+ {
+ match('['); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end LEFT_SQUARE
+
+ // $ANTLR start RIGHT_SQUARE
+ public final void mRIGHT_SQUARE() throws RecognitionException {
+ try {
+ int _type = RIGHT_SQUARE;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:572:9: ( ']' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:572:11: ']'
+ {
+ match(']'); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RIGHT_SQUARE
+
+ // $ANTLR start LEFT_CURLY
+ public final void mLEFT_CURLY() throws RecognitionException {
+ try {
+ int _type = LEFT_CURLY;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:576:9: ( '{' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:576:11: '{'
+ {
+ match('{'); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end LEFT_CURLY
+
+ // $ANTLR start RIGHT_CURLY
+ public final void mRIGHT_CURLY() throws RecognitionException {
+ try {
+ int _type = RIGHT_CURLY;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:580:9: ( '}' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:580:11: '}'
+ {
+ match('}'); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RIGHT_CURLY
+
+ // $ANTLR start COMMA
+ public final void mCOMMA() throws RecognitionException {
+ try {
+ int _type = COMMA;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:583:7: ( ',' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:583:9: ','
+ {
+ match(','); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end COMMA
+
+ // $ANTLR start DOT
+ public final void mDOT() throws RecognitionException {
+ try {
+ int _type = DOT;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:586:5: ( '.' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:586:7: '.'
+ {
+ match('.'); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end DOT
+
+ // $ANTLR start DOUBLE_AMPER
+ public final void mDOUBLE_AMPER() throws RecognitionException {
+ try {
+ int _type = DOUBLE_AMPER;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:590:2: ( '&&' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:590:4: '&&'
+ {
+ match("&&"); if (failed) return ;
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end DOUBLE_AMPER
+
+ // $ANTLR start DOUBLE_PIPE
+ public final void mDOUBLE_PIPE() throws RecognitionException {
+ try {
+ int _type = DOUBLE_PIPE;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:594:2: ( '||' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:594:4: '||'
+ {
+ match("||"); if (failed) return ;
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end DOUBLE_PIPE
+
+ // $ANTLR start TILDE
+ public final void mTILDE() throws RecognitionException {
+ try {
+ int _type = TILDE;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:597:7: ( '~' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:597:9: '~'
+ {
+ match('~'); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end TILDE
+
+ // $ANTLR start SH_STYLE_SINGLE_LINE_COMMENT
+ public final void mSH_STYLE_SINGLE_LINE_COMMENT() throws RecognitionException {
+ try {
+ int _type = SH_STYLE_SINGLE_LINE_COMMENT;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:600:2: ( '#' ( options {greedy=false; } : . )* EOL )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:600:4: '#' ( options {greedy=false; } : . )* EOL
+ {
+ match('#'); if (failed) return ;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:600:8: ( options {greedy=false; } : . )*
+ loop15:
+ do {
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0=='\r') ) {
+ alt15=2;
+ }
+ else if ( (LA15_0=='\n') ) {
+ alt15=2;
+ }
+ else if ( ((LA15_0>='\u0000' && LA15_0<='\t')||(LA15_0>='\u000B' && LA15_0<='\f')||(LA15_0>='\u000E' && LA15_0<='\uFFFE')) ) {
+ alt15=1;
+ }
+
+
+ switch (alt15) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:600:35: .
+ {
+ matchAny(); if (failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ } while (true);
+
+ mEOL(); if (failed) return ;
+ if ( backtracking==0 ) {
+ channel=HIDDEN; setText("//"+getText().substring(1));
+ }
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end SH_STYLE_SINGLE_LINE_COMMENT
+
+ // $ANTLR start C_STYLE_SINGLE_LINE_COMMENT
+ public final void mC_STYLE_SINGLE_LINE_COMMENT() throws RecognitionException {
+ try {
+ int _type = C_STYLE_SINGLE_LINE_COMMENT;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:606:2: ( '//' ( options {greedy=false; } : . )* EOL )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:606:4: '//' ( options {greedy=false; } : . )* EOL
+ {
+ match("//"); if (failed) return ;
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:606:9: ( options {greedy=false; } : . )*
+ loop16:
+ do {
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0=='\r') ) {
+ alt16=2;
+ }
+ else if ( (LA16_0=='\n') ) {
+ alt16=2;
+ }
+ else if ( ((LA16_0>='\u0000' && LA16_0<='\t')||(LA16_0>='\u000B' && LA16_0<='\f')||(LA16_0>='\u000E' && LA16_0<='\uFFFE')) ) {
+ alt16=1;
+ }
+
+
+ switch (alt16) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:606:36: .
+ {
+ matchAny(); if (failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop16;
+ }
+ } while (true);
+
+ mEOL(); if (failed) return ;
+ if ( backtracking==0 ) {
+ channel=HIDDEN;
+ }
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end C_STYLE_SINGLE_LINE_COMMENT
+
+ // $ANTLR start MULTI_LINE_COMMENT
+ public final void mMULTI_LINE_COMMENT() throws RecognitionException {
+ try {
+ int _type = MULTI_LINE_COMMENT;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:611:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:611:4: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*"); if (failed) return ;
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:611:9: ( options {greedy=false; } : . )*
+ loop17:
+ do {
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0=='*') ) {
+ int LA17_1 = input.LA(2);
+
+ if ( (LA17_1=='/') ) {
+ alt17=2;
+ }
+ else if ( ((LA17_1>='\u0000' && LA17_1<='.')||(LA17_1>='0' && LA17_1<='\uFFFE')) ) {
+ alt17=1;
+ }
+
+
+ }
+ else if ( ((LA17_0>='\u0000' && LA17_0<=')')||(LA17_0>='+' && LA17_0<='\uFFFE')) ) {
+ alt17=1;
+ }
+
+
+ switch (alt17) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:611:35: .
+ {
+ matchAny(); if (failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop17;
+ }
+ } while (true);
+
+ match("*/"); if (failed) return ;
+
+ if ( backtracking==0 ) {
+ channel=HIDDEN;
+ }
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end MULTI_LINE_COMMENT
+
+ // $ANTLR start MISC
+ public final void mMISC() throws RecognitionException {
+ try {
+ int _type = MISC;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:615:7: ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | '=' | '/' | '\\'' | '\\\\' | '|' | '&' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:
+ {
+ if ( input.LA(1)=='!'||(input.LA(1)>='$' && input.LA(1)<='\'')||(input.LA(1)>='*' && input.LA(1)<='+')||input.LA(1)=='-'||input.LA(1)=='/'||input.LA(1)=='='||(input.LA(1)>='?' && input.LA(1)<='@')||input.LA(1)=='\\'||(input.LA(1)>='^' && input.LA(1)<='_')||input.LA(1)=='|' ) {
+ input.consume();
+ failed=false;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end MISC
+
+ public void mTokens() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:8: ( WS | INT | FLOAT | STRING | BOOL | NULL | SEMICOLON | COLON | EQUAL | NOT_EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | ARROW | ID | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | DOUBLE_AMPER | DOUBLE_PIPE | TILDE | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | MISC )
+ int alt18=31;
+ alt18 = dfa18.predict(input);
+ switch (alt18) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:10: WS
+ {
+ mWS(); if (failed) return ;
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:13: INT
+ {
+ mINT(); if (failed) return ;
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:17: FLOAT
+ {
+ mFLOAT(); if (failed) return ;
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:23: STRING
+ {
+ mSTRING(); if (failed) return ;
+
+ }
+ break;
+ case 5 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:30: BOOL
+ {
+ mBOOL(); if (failed) return ;
+
+ }
+ break;
+ case 6 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:35: NULL
+ {
+ mNULL(); if (failed) return ;
+
+ }
+ break;
+ case 7 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:40: SEMICOLON
+ {
+ mSEMICOLON(); if (failed) return ;
+
+ }
+ break;
+ case 8 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:50: COLON
+ {
+ mCOLON(); if (failed) return ;
+
+ }
+ break;
+ case 9 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:56: EQUAL
+ {
+ mEQUAL(); if (failed) return ;
+
+ }
+ break;
+ case 10 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:62: NOT_EQUAL
+ {
+ mNOT_EQUAL(); if (failed) return ;
+
+ }
+ break;
+ case 11 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:72: GREATER
+ {
+ mGREATER(); if (failed) return ;
+
+ }
+ break;
+ case 12 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:80: GREATER_EQUAL
+ {
+ mGREATER_EQUAL(); if (failed) return ;
+
+ }
+ break;
+ case 13 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:94: LESS
+ {
+ mLESS(); if (failed) return ;
+
+ }
+ break;
+ case 14 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:99: LESS_EQUAL
+ {
+ mLESS_EQUAL(); if (failed) return ;
+
+ }
+ break;
+ case 15 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:110: ARROW
+ {
+ mARROW(); if (failed) return ;
+
+ }
+ break;
+ case 16 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:116: ID
+ {
+ mID(); if (failed) return ;
+
+ }
+ break;
+ case 17 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:119: LEFT_PAREN
+ {
+ mLEFT_PAREN(); if (failed) return ;
+
+ }
+ break;
+ case 18 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:130: RIGHT_PAREN
+ {
+ mRIGHT_PAREN(); if (failed) return ;
+
+ }
+ break;
+ case 19 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:142: LEFT_SQUARE
+ {
+ mLEFT_SQUARE(); if (failed) return ;
+
+ }
+ break;
+ case 20 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:154: RIGHT_SQUARE
+ {
+ mRIGHT_SQUARE(); if (failed) return ;
+
+ }
+ break;
+ case 21 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:167: LEFT_CURLY
+ {
+ mLEFT_CURLY(); if (failed) return ;
+
+ }
+ break;
+ case 22 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:178: RIGHT_CURLY
+ {
+ mRIGHT_CURLY(); if (failed) return ;
+
+ }
+ break;
+ case 23 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:190: COMMA
+ {
+ mCOMMA(); if (failed) return ;
+
+ }
+ break;
+ case 24 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:196: DOT
+ {
+ mDOT(); if (failed) return ;
+
+ }
+ break;
+ case 25 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:200: DOUBLE_AMPER
+ {
+ mDOUBLE_AMPER(); if (failed) return ;
+
+ }
+ break;
+ case 26 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:213: DOUBLE_PIPE
+ {
+ mDOUBLE_PIPE(); if (failed) return ;
+
+ }
+ break;
+ case 27 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:225: TILDE
+ {
+ mTILDE(); if (failed) return ;
+
+ }
+ break;
+ case 28 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:231: SH_STYLE_SINGLE_LINE_COMMENT
+ {
+ mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+
+ }
+ break;
+ case 29 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:260: C_STYLE_SINGLE_LINE_COMMENT
+ {
+ mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+
+ }
+ break;
+ case 30 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:288: MULTI_LINE_COMMENT
+ {
+ mMULTI_LINE_COMMENT(); if (failed) return ;
+
+ }
+ break;
+ case 31 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:1:307: MISC
+ {
+ mMISC(); if (failed) return ;
+
+ }
+ break;
+
+ }
+
+ }
+
+ // $ANTLR start synpred1
+ public final void synpred1_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:468:14: ( '\\r\\n' )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:468:16: '\\r\\n'
+ {
+ match("\r\n"); if (failed) return ;
+
+
+ }
+ }
+ // $ANTLR end synpred1
+
+ public final boolean synpred1() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred1_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+
+
+ protected DFA18 dfa18 = new DFA18(this);
+ static final String DFA18_eotS =
+ "\2\uffff\1\36\1\40\1\uffff\1\36\3\35\2\uffff\2\36\1\50\1\52\11\uffff"+
+ "\2\36\2\uffff\1\36\5\uffff\3\35\12\uffff\3\35\1\65\1\35\1\67\1\uffff"+
+ "\1\65\1\uffff";
+ static final String DFA18_eofS =
+ "\70\uffff";
+ static final String DFA18_minS =
+ "\1\11\1\uffff\1\60\1\56\1\uffff\1\0\1\162\1\141\1\165\2\uffff\4"+
+ "\75\11\uffff\1\46\1\174\2\uffff\1\52\5\uffff\1\165\2\154\12\uffff"+
+ "\1\145\1\163\1\154\1\60\1\145\1\60\1\uffff\1\60\1\uffff";
+ static final String DFA18_maxS =
+ "\1\u00ff\1\uffff\1\76\1\71\1\uffff\1\ufffe\1\162\1\141\1\165\2\uffff"+
+ "\4\75\11\uffff\1\46\1\174\2\uffff\1\57\5\uffff\1\165\2\154\12\uffff"+
+ "\1\145\1\163\1\154\1\u00ff\1\145\1\u00ff\1\uffff\1\u00ff\1\uffff";
+ static final String DFA18_acceptS =
+ "\1\uffff\1\1\2\uffff\1\4\4\uffff\1\7\1\10\4\uffff\1\20\1\21\1\22"+
+ "\1\23\1\24\1\25\1\26\1\27\1\30\2\uffff\1\33\1\34\1\uffff\1\20\1"+
+ "\37\1\17\1\2\1\3\3\uffff\1\11\1\12\1\14\1\13\1\16\1\15\1\31\1\32"+
+ "\1\36\1\35\6\uffff\1\5\1\uffff\1\6";
+ static final String DFA18_specialS =
+ "\70\uffff}>";
+ static final String[] DFA18_transitionS = {
+ "\2\1\1\uffff\2\1\22\uffff\1\1\1\14\1\4\1\33\1\17\1\36\1\30\1"+
+ "\5\1\20\1\21\2\36\1\26\1\2\1\27\1\34\12\3\1\12\1\11\1\16\1\13"+
+ "\1\15\2\36\32\35\1\22\1\36\1\23\1\36\1\17\1\uffff\5\35\1\7\7"+
+ "\35\1\10\5\35\1\6\6\35\1\24\1\31\1\25\1\32\101\uffff\100\35",
+ "",
+ "\12\3\4\uffff\1\37",
+ "\1\41\1\uffff\12\3",
+ "",
+ "\uffff\4",
+ "\1\42",
+ "\1\43",
+ "\1\44",
+ "",
+ "",
+ "\1\45",
+ "\1\46",
+ "\1\47",
+ "\1\51",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\53",
+ "\1\54",
+ "",
+ "",
+ "\1\55\4\uffff\1\56",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\57",
+ "\1\60",
+ "\1\61",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\62",
+ "\1\63",
+ "\1\64",
+ "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35\105\uffff\100"+
+ "\35",
+ "\1\66",
+ "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35\105\uffff\100"+
+ "\35",
+ "",
+ "\12\35\7\uffff\32\35\4\uffff\1\35\1\uffff\32\35\105\uffff\100"+
+ "\35",
+ ""
+ };
+
+ static final short[] DFA18_eot = DFA.unpackEncodedString(DFA18_eotS);
+ static final short[] DFA18_eof = DFA.unpackEncodedString(DFA18_eofS);
+ static final char[] DFA18_min = DFA.unpackEncodedStringToUnsignedChars(DFA18_minS);
+ static final char[] DFA18_max = DFA.unpackEncodedStringToUnsignedChars(DFA18_maxS);
+ static final short[] DFA18_accept = DFA.unpackEncodedString(DFA18_acceptS);
+ static final short[] DFA18_special = DFA.unpackEncodedString(DFA18_specialS);
+ static final short[][] DFA18_transition;
+
+ static {
+ int numStates = DFA18_transitionS.length;
+ DFA18_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA18_transition[i] = DFA.unpackEncodedString(DFA18_transitionS[i]);
+ }
+ }
+
+ class DFA18 extends DFA {
+
+ public DFA18(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 18;
+ this.eot = DFA18_eot;
+ this.eof = DFA18_eof;
+ this.min = DFA18_min;
+ this.max = DFA18_max;
+ this.accept = DFA18_accept;
+ this.special = DFA18_special;
+ this.transition = DFA18_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( WS | INT | FLOAT | STRING | BOOL | NULL | SEMICOLON | COLON | EQUAL | NOT_EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | ARROW | ID | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | DOUBLE_AMPER | DOUBLE_PIPE | TILDE | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | MISC );";
+ }
+ }
+
+
+}
\ No newline at end of file
Property changes on: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/NewDRLLexer.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/NewDRLParser.java
===================================================================
--- labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/NewDRLParser.java (rev 0)
+++ labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/NewDRLParser.java 2008-04-28 17:05:28 UTC (rev 19745)
@@ -0,0 +1,10737 @@
+package org.drools.lang;
+
+// $ANTLR 3.0.1 /Users/porcelli/Desktop/testes/NewDRL.g 2008-04-28 10:54:02
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.antlr.runtime.tree.*;
+
+public class NewDRLParser extends Parser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "VT_FACT", "VT_CONSTRAINTS", "VT_QUALIFIED_ID", "VT_LABEL", "VT_NAME", "VT_CURLY_CHUNK", "VT_SQUARE_CHUNK", "VT_PAREN_CHUNK", "VT_AND_IMPLICIT", "VT_AND_PREFIX", "VT_OR_PREFIX", "VT_AND_INFIX", "VT_OR_INFIX", "VT_ACCUMULATE_INIT_CLAUSE", "VT_ACCUMULATE_ID_CLAUSE", "VT_FROM_SOURCE", "VT_EXPRESSION_CHAIN", "VT_PATTERN", "VT_FACT_BINDING", "VT_FACT_OR", "VT_BIND_FIELD", "VT_FIELD", "VT_ACCESSOR_PATH", "VT_ACCESSOR_ELEMENT", "VK_EVAL", "VK_CONTAINS", "VK_MATCHES", "VK_EXCLUDES", "VK_SOUNDSLIKE", "VK_MEMBEROF", "VK_ENTRY_POINT", "VK_NOT", "VK_IN", "VK_OR", "VK_AND", "VK_EXISTS", "VK_FORALL", "VK_FROM", "VK_ACCUMULATE", "VK_INIT", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "VK_COLLECT", "LEFT_PAREN", "RIGHT_PAREN", "DOUBLE_PIPE", "DOUBLE_AMPER", "SEMICOLON", "COMMA", "ID", "DOT", "ARROW", "COLON", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "STRING", "INT", "FLOAT", "BOOL", "NULL", "LEFT_SQUARE", "RIGHT_SQUA!
RE", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "TILDE", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT"
+ };
+ public static final int COMMA=53;
+ public static final int VT_ACCUMULATE_ID_CLAUSE=18;
+ public static final int VT_FACT_OR=23;
+ public static final int VK_NOT=35;
+ public static final int HexDigit=77;
+ public static final int ARROW=56;
+ public static final int VT_EXPRESSION_CHAIN=20;
+ public static final int VK_ACCUMULATE=42;
+ public static final int MISC=73;
+ public static final int VT_AND_PREFIX=13;
+ public static final int FLOAT=66;
+ public static final int VT_CURLY_CHUNK=9;
+ public static final int TILDE=80;
+ public static final int DOT=55;
+ public static final int VT_OR_PREFIX=14;
+ public static final int DOUBLE_PIPE=50;
+ public static final int LESS=61;
+ public static final int VT_PATTERN=21;
+ public static final int EscapeSequence=76;
+ public static final int VK_EXISTS=39;
+ public static final int INT=65;
+ public static final int VT_BIND_FIELD=24;
+ public static final int VK_COLLECT=47;
+ public static final int VK_EVAL=28;
+ public static final int LEFT_SQUARE=69;
+ public static final int SH_STYLE_SINGLE_LINE_COMMENT=81;
+ public static final int GREATER=59;
+ public static final int VT_FACT=4;
+ public static final int VK_MATCHES=30;
+ public static final int LEFT_CURLY=71;
+ public static final int VT_FACT_BINDING=22;
+ public static final int ID=54;
+ public static final int NOT_EQUAL=63;
+ public static final int DOUBLE_AMPER=51;
+ public static final int LEFT_PAREN=48;
+ public static final int RIGHT_CURLY=72;
+ public static final int BOOL=67;
+ public static final int VT_AND_INFIX=15;
+ public static final int VK_ENTRY_POINT=34;
+ public static final int VT_FROM_SOURCE=19;
+ public static final int VT_ACCESSOR_PATH=26;
+ public static final int VT_LABEL=7;
+ public static final int VK_CONTAINS=29;
+ public static final int WS=75;
+ public static final int VT_FIELD=25;
+ public static final int VK_SOUNDSLIKE=32;
+ public static final int VT_QUALIFIED_ID=6;
+ public static final int STRING=64;
+ public static final int VK_AND=38;
+ public static final int VT_ACCESSOR_ELEMENT=27;
+ public static final int VK_IN=36;
+ public static final int VK_REVERSE=45;
+ public static final int VT_ACCUMULATE_INIT_CLAUSE=17;
+ public static final int GREATER_EQUAL=60;
+ public static final int VK_MEMBEROF=33;
+ public static final int VT_OR_INFIX=16;
+ public static final int VT_SQUARE_CHUNK=10;
+ public static final int VK_FORALL=40;
+ public static final int VT_PAREN_CHUNK=11;
+ public static final int VK_OR=37;
+ public static final int VT_NAME=8;
+ public static final int LESS_EQUAL=62;
+ public static final int VK_RESULT=46;
+ public static final int UnicodeEscape=78;
+ public static final int EQUAL=58;
+ public static final int SEMICOLON=52;
+ public static final int VT_AND_IMPLICIT=12;
+ public static final int EOF=-1;
+ public static final int VT_CONSTRAINTS=5;
+ public static final int EOL=74;
+ public static final int NULL=68;
+ public static final int VK_INIT=43;
+ public static final int COLON=57;
+ public static final int OctalEscape=79;
+ public static final int MULTI_LINE_COMMENT=83;
+ public static final int VK_ACTION=44;
+ public static final int VK_EXCLUDES=31;
+ public static final int VK_FROM=41;
+ public static final int RIGHT_PAREN=49;
+ public static final int RIGHT_SQUARE=70;
+ public static final int C_STYLE_SINGLE_LINE_COMMENT=82;
+
+ public NewDRLParser(TokenStream input) {
+ super(input);
+ ruleMemo = new HashMap[77+1];
+ }
+
+ protected TreeAdaptor adaptor = new CommonTreeAdaptor();
+
+ public void setTreeAdaptor(TreeAdaptor adaptor) {
+ this.adaptor = adaptor;
+ }
+ public TreeAdaptor getTreeAdaptor() {
+ return adaptor;
+ }
+
+ public String[] getTokenNames() { return tokenNames; }
+ public String getGrammarFileName() { return "/Users/porcelli/Desktop/testes/NewDRL.g"; }
+
+
+ private boolean validateLT(int LTNumber, String text){
+ if (null == input) return false;
+ if (null == input.LT(LTNumber)) return false;
+ if (null == input.LT(LTNumber).getText()) return false;
+
+ String text2Validate = input.LT(LTNumber).getText();
+ return text2Validate.equalsIgnoreCase(text);
+ }
+
+ private boolean validateIdentifierKey(String text){
+ return validateLT(1, text);
+ }
+
+
+ public static class normal_lhs_block_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start normal_lhs_block
+ // /Users/porcelli/Desktop/testes/NewDRL.g:75:1: normal_lhs_block : ( lhs )* -> ^( VT_AND_IMPLICIT ( lhs )* ) ;
+ public final normal_lhs_block_return normal_lhs_block() throws RecognitionException {
+ normal_lhs_block_return retval = new normal_lhs_block_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ lhs_return lhs1 = null;
+
+
+ RewriteRuleSubtreeStream stream_lhs=new RewriteRuleSubtreeStream(adaptor,"rule lhs");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:76:2: ( ( lhs )* -> ^( VT_AND_IMPLICIT ( lhs )* ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:76:4: ( lhs )*
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:76:4: ( lhs )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==LEFT_PAREN||LA1_0==ID) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:76:4: lhs
+ {
+ pushFollow(FOLLOW_lhs_in_normal_lhs_block220);
+ lhs1=lhs();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs.add(lhs1.getTree());
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+
+ // AST REWRITE
+ // elements: lhs
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 77:2: -> ^( VT_AND_IMPLICIT ( lhs )* )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:77:5: ^( VT_AND_IMPLICIT ( lhs )* )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_AND_IMPLICIT, "VT_AND_IMPLICIT"), root_1);
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:77:23: ( lhs )*
+ while ( stream_lhs.hasNext() ) {
+ adaptor.addChild(root_1, stream_lhs.next());
+
+ }
+ stream_lhs.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end normal_lhs_block
+
+ public static class lhs_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start lhs
+ // /Users/porcelli/Desktop/testes/NewDRL.g:80:1: lhs : lhs_or ;
+ public final lhs_return lhs() throws RecognitionException {
+ lhs_return retval = new lhs_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ lhs_or_return lhs_or2 = null;
+
+
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:80:5: ( lhs_or )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:80:7: lhs_or
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_lhs_or_in_lhs241);
+ lhs_or2=lhs_or();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, lhs_or2.getTree());
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end lhs
+
+ public static class lhs_or_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start lhs_or
+ // /Users/porcelli/Desktop/testes/NewDRL.g:83:1: lhs_or : ( ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ ) | ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )* );
+ public final lhs_or_return lhs_or() throws RecognitionException {
+ lhs_or_return retval = new lhs_or_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token pipe=null;
+ Token LEFT_PAREN3=null;
+ Token RIGHT_PAREN5=null;
+ or_key_return or = null;
+
+ or_key_return value = null;
+
+ lhs_and_return lhs_and4 = null;
+
+ lhs_and_return lhs_and6 = null;
+
+ lhs_and_return lhs_and7 = null;
+
+
+ Object pipe_tree=null;
+ Object LEFT_PAREN3_tree=null;
+ Object RIGHT_PAREN5_tree=null;
+ RewriteRuleTokenStream stream_DOUBLE_PIPE=new RewriteRuleTokenStream(adaptor,"token DOUBLE_PIPE");
+ RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
+ RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
+ RewriteRuleSubtreeStream stream_or_key=new RewriteRuleSubtreeStream(adaptor,"rule or_key");
+ RewriteRuleSubtreeStream stream_lhs_and=new RewriteRuleSubtreeStream(adaptor,"rule lhs_and");
+
+ Token orToken = null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:86:3: ( ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ ) | ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )* )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==LEFT_PAREN) ) {
+ int LA5_1 = input.LA(2);
+
+ if ( (LA5_1==ID) ) {
+ switch ( input.LA(3) ) {
+ case DOT:
+ case COLON:
+ case LEFT_SQUARE:
+ {
+ alt5=2;
+ }
+ break;
+ case LEFT_PAREN:
+ {
+ int LA5_4 = input.LA(4);
+
+ if ( (synpred1()) ) {
+ alt5=1;
+ }
+ else if ( (true) ) {
+ alt5=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("83:1: lhs_or : ( ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ ) | ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )* );", 5, 4, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case ID:
+ {
+ int LA5_5 = input.LA(4);
+
+ if ( (synpred1()) ) {
+ alt5=1;
+ }
+ else if ( (true) ) {
+ alt5=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("83:1: lhs_or : ( ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ ) | ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )* );", 5, 5, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("83:1: lhs_or : ( ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ ) | ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )* );", 5, 3, input);
+
+ throw nvae;
+ }
+
+ }
+ else if ( (LA5_1==LEFT_PAREN) ) {
+ alt5=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("83:1: lhs_or : ( ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ ) | ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )* );", 5, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA5_0==ID) ) {
+ alt5=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("83:1: lhs_or : ( ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ ) | ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )* );", 5, 0, input);
+
+ throw nvae;
+ }
+ switch (alt5) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:86:5: ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN
+ {
+ LEFT_PAREN3=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_or262); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN3);
+
+ pushFollow(FOLLOW_or_key_in_lhs_or266);
+ or=or_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_or_key.add(or.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:86:48: ( lhs_and )+
+ int cnt2=0;
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==LEFT_PAREN||LA2_0==ID) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:86:48: lhs_and
+ {
+ pushFollow(FOLLOW_lhs_and_in_lhs_or268);
+ lhs_and4=lhs_and();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_and.add(lhs_and4.getTree());
+
+ }
+ break;
+
+ default :
+ if ( cnt2 >= 1 ) break loop2;
+ if (backtracking>0) {failed=true; return retval;}
+ EarlyExitException eee =
+ new EarlyExitException(2, input);
+ throw eee;
+ }
+ cnt2++;
+ } while (true);
+
+ RIGHT_PAREN5=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_or271); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN5);
+
+
+ // AST REWRITE
+ // elements: lhs_and
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 87:3: -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:87:6: ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_OR_PREFIX, ((Token)or.start)), root_1);
+
+ if ( !(stream_lhs_and.hasNext()) ) {
+ throw new RewriteEarlyExitException();
+ }
+ while ( stream_lhs_and.hasNext() ) {
+ adaptor.addChild(root_1, stream_lhs_and.next());
+
+ }
+ stream_lhs_and.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:88:4: ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )*
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:88:4: ( lhs_and -> lhs_and )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:88:5: lhs_and
+ {
+ pushFollow(FOLLOW_lhs_and_in_lhs_or290);
+ lhs_and6=lhs_and();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_and.add(lhs_and6.getTree());
+
+ // AST REWRITE
+ // elements: lhs_and
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 88:13: -> lhs_and
+ {
+ adaptor.addChild(root_0, stream_lhs_and.next());
+
+ }
+
+ }
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:89:3: ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )*
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==ID) ) {
+ int LA4_2 = input.LA(2);
+
+ if ( ((synpred2()&&(validateIdentifierKey("or")))) ) {
+ alt4=1;
+ }
+
+
+ }
+ else if ( (LA4_0==DOUBLE_PIPE) ) {
+ int LA4_3 = input.LA(2);
+
+ if ( (synpred2()) ) {
+ alt4=1;
+ }
+
+
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:89:5: ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:89:28: (value= or_key | pipe= DOUBLE_PIPE )
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==ID) && ((validateIdentifierKey("or")))) {
+ alt3=1;
+ }
+ else if ( (LA3_0==DOUBLE_PIPE) ) {
+ alt3=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("89:28: (value= or_key | pipe= DOUBLE_PIPE )", 3, 0, input);
+
+ throw nvae;
+ }
+ switch (alt3) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:89:29: value= or_key
+ {
+ pushFollow(FOLLOW_or_key_in_lhs_or312);
+ value=or_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_or_key.add(value.getTree());
+ if ( backtracking==0 ) {
+ orToken = ((Token)value.start);
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:89:69: pipe= DOUBLE_PIPE
+ {
+ pipe=(Token)input.LT(1);
+ match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_lhs_or319); if (failed) return retval;
+ if ( backtracking==0 ) stream_DOUBLE_PIPE.add(pipe);
+
+ if ( backtracking==0 ) {
+ orToken = pipe;
+ }
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_lhs_and_in_lhs_or324);
+ lhs_and7=lhs_and();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_and.add(lhs_and7.getTree());
+
+ // AST REWRITE
+ // elements: lhs_and, lhs_or
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 90:3: -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:90:6: ^( VT_OR_INFIX[orToken] $lhs_or lhs_and )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_OR_INFIX, orToken), root_1);
+
+ adaptor.addChild(root_1, stream_retval.next());
+ adaptor.addChild(root_1, stream_lhs_and.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end lhs_or
+
+ public static class lhs_and_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start lhs_and
+ // /Users/porcelli/Desktop/testes/NewDRL.g:93:1: lhs_and : ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* );
+ public final lhs_and_return lhs_and() throws RecognitionException {
+ lhs_and_return retval = new lhs_and_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token amper=null;
+ Token LEFT_PAREN8=null;
+ Token RIGHT_PAREN10=null;
+ and_key_return and = null;
+
+ and_key_return value = null;
+
+ lhs_unary_return lhs_unary9 = null;
+
+ lhs_unary_return lhs_unary11 = null;
+
+ lhs_unary_return lhs_unary12 = null;
+
+
+ Object amper_tree=null;
+ Object LEFT_PAREN8_tree=null;
+ Object RIGHT_PAREN10_tree=null;
+ RewriteRuleTokenStream stream_DOUBLE_AMPER=new RewriteRuleTokenStream(adaptor,"token DOUBLE_AMPER");
+ RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
+ RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
+ RewriteRuleSubtreeStream stream_and_key=new RewriteRuleSubtreeStream(adaptor,"rule and_key");
+ RewriteRuleSubtreeStream stream_lhs_unary=new RewriteRuleSubtreeStream(adaptor,"rule lhs_unary");
+
+ Token andToken = null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:96:3: ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* )
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==LEFT_PAREN) ) {
+ int LA9_1 = input.LA(2);
+
+ if ( (LA9_1==ID) ) {
+ switch ( input.LA(3) ) {
+ case DOT:
+ case COLON:
+ case LEFT_SQUARE:
+ {
+ alt9=2;
+ }
+ break;
+ case LEFT_PAREN:
+ {
+ switch ( input.LA(4) ) {
+ case LEFT_PAREN:
+ {
+ int LA9_6 = input.LA(5);
+
+ if ( (synpred3()) ) {
+ alt9=1;
+ }
+ else if ( (true) ) {
+ alt9=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("93:1: lhs_and : ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* );", 9, 6, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case ID:
+ {
+ int LA9_7 = input.LA(5);
+
+ if ( (synpred3()) ) {
+ alt9=1;
+ }
+ else if ( (true) ) {
+ alt9=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("93:1: lhs_and : ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* );", 9, 7, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case VT_FACT:
+ case VT_CONSTRAINTS:
+ case VT_QUALIFIED_ID:
+ case VT_LABEL:
+ case VT_NAME:
+ case VT_CURLY_CHUNK:
+ case VT_SQUARE_CHUNK:
+ case VT_PAREN_CHUNK:
+ case VT_AND_IMPLICIT:
+ case VT_AND_PREFIX:
+ case VT_OR_PREFIX:
+ case VT_AND_INFIX:
+ case VT_OR_INFIX:
+ case VT_ACCUMULATE_INIT_CLAUSE:
+ case VT_ACCUMULATE_ID_CLAUSE:
+ case VT_FROM_SOURCE:
+ case VT_EXPRESSION_CHAIN:
+ case VT_PATTERN:
+ case VT_FACT_BINDING:
+ case VT_FACT_OR:
+ case VT_BIND_FIELD:
+ case VT_FIELD:
+ case VT_ACCESSOR_PATH:
+ case VT_ACCESSOR_ELEMENT:
+ case VK_EVAL:
+ case VK_CONTAINS:
+ case VK_MATCHES:
+ case VK_EXCLUDES:
+ case VK_SOUNDSLIKE:
+ case VK_MEMBEROF:
+ case VK_ENTRY_POINT:
+ case VK_NOT:
+ case VK_IN:
+ case VK_OR:
+ case VK_AND:
+ case VK_EXISTS:
+ case VK_FORALL:
+ case VK_FROM:
+ case VK_ACCUMULATE:
+ case VK_INIT:
+ case VK_ACTION:
+ case VK_REVERSE:
+ case VK_RESULT:
+ case VK_COLLECT:
+ case RIGHT_PAREN:
+ case DOUBLE_PIPE:
+ case DOUBLE_AMPER:
+ case SEMICOLON:
+ case COMMA:
+ case DOT:
+ case ARROW:
+ case COLON:
+ case EQUAL:
+ case GREATER:
+ case GREATER_EQUAL:
+ case LESS:
+ case LESS_EQUAL:
+ case NOT_EQUAL:
+ case STRING:
+ case INT:
+ case FLOAT:
+ case BOOL:
+ case NULL:
+ case LEFT_SQUARE:
+ case RIGHT_SQUARE:
+ case LEFT_CURLY:
+ case RIGHT_CURLY:
+ case MISC:
+ case EOL:
+ case WS:
+ case EscapeSequence:
+ case HexDigit:
+ case UnicodeEscape:
+ case OctalEscape:
+ case TILDE:
+ case SH_STYLE_SINGLE_LINE_COMMENT:
+ case C_STYLE_SINGLE_LINE_COMMENT:
+ case MULTI_LINE_COMMENT:
+ {
+ alt9=2;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("93:1: lhs_and : ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* );", 9, 4, input);
+
+ throw nvae;
+ }
+
+ }
+ break;
+ case ID:
+ {
+ int LA9_5 = input.LA(4);
+
+ if ( (synpred3()) ) {
+ alt9=1;
+ }
+ else if ( (true) ) {
+ alt9=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("93:1: lhs_and : ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* );", 9, 5, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("93:1: lhs_and : ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* );", 9, 3, input);
+
+ throw nvae;
+ }
+
+ }
+ else if ( (LA9_1==LEFT_PAREN) ) {
+ alt9=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("93:1: lhs_and : ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* );", 9, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA9_0==ID) ) {
+ alt9=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("93:1: lhs_and : ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* );", 9, 0, input);
+
+ throw nvae;
+ }
+ switch (alt9) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:96:5: ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN
+ {
+ LEFT_PAREN8=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_and362); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN8);
+
+ pushFollow(FOLLOW_and_key_in_lhs_and366);
+ and=and_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_and_key.add(and.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:96:51: ( lhs_unary )+
+ int cnt6=0;
+ loop6:
+ do {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==LEFT_PAREN||LA6_0==ID) ) {
+ alt6=1;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:96:51: lhs_unary
+ {
+ pushFollow(FOLLOW_lhs_unary_in_lhs_and368);
+ lhs_unary9=lhs_unary();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_unary.add(lhs_unary9.getTree());
+
+ }
+ break;
+
+ default :
+ if ( cnt6 >= 1 ) break loop6;
+ if (backtracking>0) {failed=true; return retval;}
+ EarlyExitException eee =
+ new EarlyExitException(6, input);
+ throw eee;
+ }
+ cnt6++;
+ } while (true);
+
+ RIGHT_PAREN10=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_and371); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN10);
+
+
+ // AST REWRITE
+ // elements: lhs_unary
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 97:3: -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:97:6: ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_AND_PREFIX, ((Token)and.start)), root_1);
+
+ if ( !(stream_lhs_unary.hasNext()) ) {
+ throw new RewriteEarlyExitException();
+ }
+ while ( stream_lhs_unary.hasNext() ) {
+ adaptor.addChild(root_1, stream_lhs_unary.next());
+
+ }
+ stream_lhs_unary.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:98:4: ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )*
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:98:4: ( lhs_unary -> lhs_unary )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:98:5: lhs_unary
+ {
+ pushFollow(FOLLOW_lhs_unary_in_lhs_and390);
+ lhs_unary11=lhs_unary();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_unary.add(lhs_unary11.getTree());
+
+ // AST REWRITE
+ // elements: lhs_unary
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 98:15: -> lhs_unary
+ {
+ adaptor.addChild(root_0, stream_lhs_unary.next());
+
+ }
+
+ }
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:99:3: ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==ID) ) {
+ int LA8_2 = input.LA(2);
+
+ if ( ((synpred4()&&(validateIdentifierKey("and")))) ) {
+ alt8=1;
+ }
+
+
+ }
+ else if ( (LA8_0==DOUBLE_AMPER) ) {
+ int LA8_3 = input.LA(2);
+
+ if ( (synpred4()) ) {
+ alt8=1;
+ }
+
+
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:99:5: ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:99:30: (value= and_key | amper= DOUBLE_AMPER )
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==ID) && ((validateIdentifierKey("and")))) {
+ alt7=1;
+ }
+ else if ( (LA7_0==DOUBLE_AMPER) ) {
+ alt7=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("99:30: (value= and_key | amper= DOUBLE_AMPER )", 7, 0, input);
+
+ throw nvae;
+ }
+ switch (alt7) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:99:31: value= and_key
+ {
+ pushFollow(FOLLOW_and_key_in_lhs_and412);
+ value=and_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_and_key.add(value.getTree());
+ if ( backtracking==0 ) {
+ andToken = ((Token)value.start);
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:99:73: amper= DOUBLE_AMPER
+ {
+ amper=(Token)input.LT(1);
+ match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_lhs_and419); if (failed) return retval;
+ if ( backtracking==0 ) stream_DOUBLE_AMPER.add(amper);
+
+ if ( backtracking==0 ) {
+ andToken = amper;
+ }
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_lhs_unary_in_lhs_and424);
+ lhs_unary12=lhs_unary();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_unary.add(lhs_unary12.getTree());
+
+ // AST REWRITE
+ // elements: lhs_and, lhs_unary
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 100:3: -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:100:6: ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_AND_INFIX, andToken), root_1);
+
+ adaptor.addChild(root_1, stream_retval.next());
+ adaptor.addChild(root_1, stream_lhs_unary.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end lhs_and
+
+ public static class lhs_unary_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start lhs_unary
+ // /Users/porcelli/Desktop/testes/NewDRL.g:103:1: lhs_unary options {backtrack=true; } : ( lhs_exist | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )? ;
+ public final lhs_unary_return lhs_unary() throws RecognitionException {
+ lhs_unary_return retval = new lhs_unary_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_PAREN17=null;
+ Token RIGHT_PAREN19=null;
+ Token SEMICOLON21=null;
+ lhs_exist_return lhs_exist13 = null;
+
+ lhs_not_return lhs_not14 = null;
+
+ lhs_eval_return lhs_eval15 = null;
+
+ lhs_forall_return lhs_forall16 = null;
+
+ lhs_or_return lhs_or18 = null;
+
+ pattern_source_return pattern_source20 = null;
+
+
+ Object LEFT_PAREN17_tree=null;
+ Object RIGHT_PAREN19_tree=null;
+ Object SEMICOLON21_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:105:2: ( ( lhs_exist | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )? )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:105:4: ( lhs_exist | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )?
+ {
+ root_0 = (Object)adaptor.nil();
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:105:4: ( lhs_exist | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source )
+ int alt10=6;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==ID) ) {
+ int LA10_1 = input.LA(2);
+
+ if ( ((validateIdentifierKey("exists"))) ) {
+ alt10=1;
+ }
+ else if ( ((validateIdentifierKey("not"))) ) {
+ alt10=2;
+ }
+ else if ( ((validateIdentifierKey("eval"))) ) {
+ alt10=3;
+ }
+ else if ( ((validateIdentifierKey("forall"))) ) {
+ alt10=4;
+ }
+ else if ( (true) ) {
+ alt10=6;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("105:4: ( lhs_exist | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source )", 10, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA10_0==LEFT_PAREN) ) {
+ alt10=5;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("105:4: ( lhs_exist | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source )", 10, 0, input);
+
+ throw nvae;
+ }
+ switch (alt10) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:105:6: lhs_exist
+ {
+ pushFollow(FOLLOW_lhs_exist_in_lhs_unary462);
+ lhs_exist13=lhs_exist();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, lhs_exist13.getTree());
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:106:5: lhs_not
+ {
+ pushFollow(FOLLOW_lhs_not_in_lhs_unary468);
+ lhs_not14=lhs_not();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, lhs_not14.getTree());
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:107:5: lhs_eval
+ {
+ pushFollow(FOLLOW_lhs_eval_in_lhs_unary474);
+ lhs_eval15=lhs_eval();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, lhs_eval15.getTree());
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:108:5: lhs_forall
+ {
+ pushFollow(FOLLOW_lhs_forall_in_lhs_unary480);
+ lhs_forall16=lhs_forall();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, lhs_forall16.getTree());
+
+ }
+ break;
+ case 5 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:109:5: LEFT_PAREN lhs_or RIGHT_PAREN
+ {
+ LEFT_PAREN17=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary486); if (failed) return retval;
+ pushFollow(FOLLOW_lhs_or_in_lhs_unary489);
+ lhs_or18=lhs_or();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, lhs_or18.getTree());
+ RIGHT_PAREN19=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary491); if (failed) return retval;
+
+ }
+ break;
+ case 6 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:110:5: pattern_source
+ {
+ pushFollow(FOLLOW_pattern_source_in_lhs_unary498);
+ pattern_source20=pattern_source();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, pattern_source20.getTree());
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:112:3: ( ( SEMICOLON )=> SEMICOLON )?
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==SEMICOLON) ) {
+ int LA11_1 = input.LA(2);
+
+ if ( (synpred5()) ) {
+ alt11=1;
+ }
+ }
+ switch (alt11) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:112:4: ( SEMICOLON )=> SEMICOLON
+ {
+ SEMICOLON21=(Token)input.LT(1);
+ match(input,SEMICOLON,FOLLOW_SEMICOLON_in_lhs_unary512); if (failed) return retval;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end lhs_unary
+
+ public static class lhs_exist_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start lhs_exist
+ // /Users/porcelli/Desktop/testes/NewDRL.g:115:1: lhs_exist : exists_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( exists_key ( lhs_or )? ( lhs_pattern )? ) ;
+ public final lhs_exist_return lhs_exist() throws RecognitionException {
+ lhs_exist_return retval = new lhs_exist_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_PAREN24=null;
+ Token RIGHT_PAREN26=null;
+ exists_key_return exists_key22 = null;
+
+ lhs_or_return lhs_or23 = null;
+
+ lhs_or_return lhs_or25 = null;
+
+ lhs_pattern_return lhs_pattern27 = null;
+
+
+ Object LEFT_PAREN24_tree=null;
+ Object RIGHT_PAREN26_tree=null;
+ RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
+ RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
+ RewriteRuleSubtreeStream stream_lhs_or=new RewriteRuleSubtreeStream(adaptor,"rule lhs_or");
+ RewriteRuleSubtreeStream stream_exists_key=new RewriteRuleSubtreeStream(adaptor,"rule exists_key");
+ RewriteRuleSubtreeStream stream_lhs_pattern=new RewriteRuleSubtreeStream(adaptor,"rule lhs_pattern");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:116:2: ( exists_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( exists_key ( lhs_or )? ( lhs_pattern )? ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:116:4: exists_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+ {
+ pushFollow(FOLLOW_exists_key_in_lhs_exist526);
+ exists_key22=exists_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_exists_key.add(exists_key22.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:117:10: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+ int alt12=3;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:117:12: ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or
+ {
+ pushFollow(FOLLOW_lhs_or_in_lhs_exist550);
+ lhs_or23=lhs_or();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_or.add(lhs_or23.getTree());
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:118:5: LEFT_PAREN lhs_or RIGHT_PAREN
+ {
+ LEFT_PAREN24=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist557); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN24);
+
+ pushFollow(FOLLOW_lhs_or_in_lhs_exist559);
+ lhs_or25=lhs_or();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_or.add(lhs_or25.getTree());
+ RIGHT_PAREN26=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist561); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN26);
+
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:119:12: lhs_pattern
+ {
+ pushFollow(FOLLOW_lhs_pattern_in_lhs_exist574);
+ lhs_pattern27=lhs_pattern();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_pattern.add(lhs_pattern27.getTree());
+
+ }
+ break;
+
+ }
+
+
+ // AST REWRITE
+ // elements: exists_key, lhs_or, lhs_pattern
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 121:10: -> ^( exists_key ( lhs_or )? ( lhs_pattern )? )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:121:13: ^( exists_key ( lhs_or )? ( lhs_pattern )? )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(stream_exists_key.nextNode(), root_1);
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:121:26: ( lhs_or )?
+ if ( stream_lhs_or.hasNext() ) {
+ adaptor.addChild(root_1, stream_lhs_or.next());
+
+ }
+ stream_lhs_or.reset();
+ // /Users/porcelli/Desktop/testes/NewDRL.g:121:34: ( lhs_pattern )?
+ if ( stream_lhs_pattern.hasNext() ) {
+ adaptor.addChild(root_1, stream_lhs_pattern.next());
+
+ }
+ stream_lhs_pattern.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end lhs_exist
+
+ public static class lhs_not_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start lhs_not
+ // /Users/porcelli/Desktop/testes/NewDRL.g:124:1: lhs_not : not_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( not_key ( lhs_or )? ( lhs_pattern )? ) ;
+ public final lhs_not_return lhs_not() throws RecognitionException {
+ lhs_not_return retval = new lhs_not_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_PAREN30=null;
+ Token RIGHT_PAREN32=null;
+ not_key_return not_key28 = null;
+
+ lhs_or_return lhs_or29 = null;
+
+ lhs_or_return lhs_or31 = null;
+
+ lhs_pattern_return lhs_pattern33 = null;
+
+
+ Object LEFT_PAREN30_tree=null;
+ Object RIGHT_PAREN32_tree=null;
+ RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
+ RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
+ RewriteRuleSubtreeStream stream_lhs_or=new RewriteRuleSubtreeStream(adaptor,"rule lhs_or");
+ RewriteRuleSubtreeStream stream_not_key=new RewriteRuleSubtreeStream(adaptor,"rule not_key");
+ RewriteRuleSubtreeStream stream_lhs_pattern=new RewriteRuleSubtreeStream(adaptor,"rule lhs_pattern");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:124:9: ( not_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( not_key ( lhs_or )? ( lhs_pattern )? ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:124:11: not_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+ {
+ pushFollow(FOLLOW_not_key_in_lhs_not619);
+ not_key28=not_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_not_key.add(not_key28.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:125:3: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+ int alt13=3;
+ alt13 = dfa13.predict(input);
+ switch (alt13) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:125:5: ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or
+ {
+ pushFollow(FOLLOW_lhs_or_in_lhs_not636);
+ lhs_or29=lhs_or();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_or.add(lhs_or29.getTree());
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:126:5: LEFT_PAREN lhs_or RIGHT_PAREN
+ {
+ LEFT_PAREN30=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not643); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN30);
+
+ pushFollow(FOLLOW_lhs_or_in_lhs_not645);
+ lhs_or31=lhs_or();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_or.add(lhs_or31.getTree());
+ RIGHT_PAREN32=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not647); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN32);
+
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:127:6: lhs_pattern
+ {
+ pushFollow(FOLLOW_lhs_pattern_in_lhs_not655);
+ lhs_pattern33=lhs_pattern();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_pattern.add(lhs_pattern33.getTree());
+
+ }
+ break;
+
+ }
+
+
+ // AST REWRITE
+ // elements: lhs_or, lhs_pattern, not_key
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 128:10: -> ^( not_key ( lhs_or )? ( lhs_pattern )? )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:128:13: ^( not_key ( lhs_or )? ( lhs_pattern )? )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(stream_not_key.nextNode(), root_1);
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:128:23: ( lhs_or )?
+ if ( stream_lhs_or.hasNext() ) {
+ adaptor.addChild(root_1, stream_lhs_or.next());
+
+ }
+ stream_lhs_or.reset();
+ // /Users/porcelli/Desktop/testes/NewDRL.g:128:31: ( lhs_pattern )?
+ if ( stream_lhs_pattern.hasNext() ) {
+ adaptor.addChild(root_1, stream_lhs_pattern.next());
+
+ }
+ stream_lhs_pattern.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end lhs_not
+
+ public static class lhs_eval_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start lhs_eval
+ // /Users/porcelli/Desktop/testes/NewDRL.g:131:1: lhs_eval : eval_key paren_chunk -> ^( eval_key paren_chunk ) ;
+ public final lhs_eval_return lhs_eval() throws RecognitionException {
+ lhs_eval_return retval = new lhs_eval_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ eval_key_return eval_key34 = null;
+
+ paren_chunk_return paren_chunk35 = null;
+
+
+ RewriteRuleSubtreeStream stream_eval_key=new RewriteRuleSubtreeStream(adaptor,"rule eval_key");
+ RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:132:2: ( eval_key paren_chunk -> ^( eval_key paren_chunk ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:132:4: eval_key paren_chunk
+ {
+ pushFollow(FOLLOW_eval_key_in_lhs_eval689);
+ eval_key34=eval_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_eval_key.add(eval_key34.getTree());
+ pushFollow(FOLLOW_paren_chunk_in_lhs_eval691);
+ paren_chunk35=paren_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_paren_chunk.add(paren_chunk35.getTree());
+
+ // AST REWRITE
+ // elements: paren_chunk, eval_key
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 133:3: -> ^( eval_key paren_chunk )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:133:6: ^( eval_key paren_chunk )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(stream_eval_key.nextNode(), root_1);
+
+ adaptor.addChild(root_1, stream_paren_chunk.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end lhs_eval
+
+ public static class lhs_forall_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start lhs_forall
+ // /Users/porcelli/Desktop/testes/NewDRL.g:136:1: lhs_forall : forall_key LEFT_PAREN ( lhs_pattern )+ RIGHT_PAREN -> ^( forall_key ( lhs_pattern )+ ) ;
+ public final lhs_forall_return lhs_forall() throws RecognitionException {
+ lhs_forall_return retval = new lhs_forall_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_PAREN37=null;
+ Token RIGHT_PAREN39=null;
+ forall_key_return forall_key36 = null;
+
+ lhs_pattern_return lhs_pattern38 = null;
+
+
+ Object LEFT_PAREN37_tree=null;
+ Object RIGHT_PAREN39_tree=null;
+ RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
+ RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
+ RewriteRuleSubtreeStream stream_forall_key=new RewriteRuleSubtreeStream(adaptor,"rule forall_key");
+ RewriteRuleSubtreeStream stream_lhs_pattern=new RewriteRuleSubtreeStream(adaptor,"rule lhs_pattern");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:137:2: ( forall_key LEFT_PAREN ( lhs_pattern )+ RIGHT_PAREN -> ^( forall_key ( lhs_pattern )+ ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:137:4: forall_key LEFT_PAREN ( lhs_pattern )+ RIGHT_PAREN
+ {
+ pushFollow(FOLLOW_forall_key_in_lhs_forall712);
+ forall_key36=forall_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_forall_key.add(forall_key36.getTree());
+ LEFT_PAREN37=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall714); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN37);
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:137:26: ( lhs_pattern )+
+ int cnt14=0;
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==ID) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:137:26: lhs_pattern
+ {
+ pushFollow(FOLLOW_lhs_pattern_in_lhs_forall716);
+ lhs_pattern38=lhs_pattern();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_pattern.add(lhs_pattern38.getTree());
+
+ }
+ break;
+
+ default :
+ if ( cnt14 >= 1 ) break loop14;
+ if (backtracking>0) {failed=true; return retval;}
+ EarlyExitException eee =
+ new EarlyExitException(14, input);
+ throw eee;
+ }
+ cnt14++;
+ } while (true);
+
+ RIGHT_PAREN39=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall719); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN39);
+
+
+ // AST REWRITE
+ // elements: lhs_pattern, forall_key
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 138:3: -> ^( forall_key ( lhs_pattern )+ )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:138:6: ^( forall_key ( lhs_pattern )+ )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(stream_forall_key.nextNode(), root_1);
+
+ if ( !(stream_lhs_pattern.hasNext()) ) {
+ throw new RewriteEarlyExitException();
+ }
+ while ( stream_lhs_pattern.hasNext() ) {
+ adaptor.addChild(root_1, stream_lhs_pattern.next());
+
+ }
+ stream_lhs_pattern.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end lhs_forall
+
+ public static class pattern_source_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start pattern_source
+ // /Users/porcelli/Desktop/testes/NewDRL.g:141:1: pattern_source options {k=3; } : lhs_pattern ( from_key ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )? ;
+ public final pattern_source_return pattern_source() throws RecognitionException {
+ pattern_source_return retval = new pattern_source_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ lhs_pattern_return lhs_pattern40 = null;
+
+ from_key_return from_key41 = null;
+
+ accumulate_statement_return accumulate_statement42 = null;
+
+ collect_statement_return collect_statement43 = null;
+
+ entrypoint_statement_return entrypoint_statement44 = null;
+
+ from_source_return from_source45 = null;
+
+
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:143:2: ( lhs_pattern ( from_key ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )? )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:143:4: lhs_pattern ( from_key ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )?
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_lhs_pattern_in_pattern_source749);
+ lhs_pattern40=lhs_pattern();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, lhs_pattern40.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:144:3: ( from_key ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )?
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==ID) ) {
+ int LA16_1 = input.LA(2);
+
+ if ( (LA16_1==ID) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+ int LA16_3 = input.LA(3);
+
+ if ( (LA16_3==EOF||(LA16_3>=RIGHT_PAREN && LA16_3<=COMMA)||LA16_3==MISC) && ((validateIdentifierKey("from")))) {
+ alt16=1;
+ }
+ else if ( (LA16_3==LEFT_PAREN) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+ int LA16_6 = input.LA(4);
+
+ if ( ((validateIdentifierKey("from"))) ) {
+ alt16=1;
+ }
+ }
+ else if ( (LA16_3==ID) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+ int LA16_7 = input.LA(4);
+
+ if ( ((validateIdentifierKey("from"))) ) {
+ alt16=1;
+ }
+ }
+ else if ( (LA16_3==DOT) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+ int LA16_8 = input.LA(4);
+
+ if ( (LA16_8==ID) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+ int LA16_10 = input.LA(5);
+
+ if ( (LA16_10==LEFT_SQUARE) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+ int LA16_11 = input.LA(6);
+
+ if ( (LA16_11==RIGHT_SQUARE) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+ int LA16_14 = input.LA(7);
+
+ if ( (LA16_14==LEFT_PAREN) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+ int LA16_16 = input.LA(8);
+
+ if ( ((validateIdentifierKey("from"))) ) {
+ alt16=1;
+ }
+ }
+ else if ( (LA16_14==EOF||(LA16_14>=RIGHT_PAREN && LA16_14<=DOT)) && ((validateIdentifierKey("from")))) {
+ alt16=1;
+ }
+ }
+ else if ( ((LA16_11>=VT_FACT && LA16_11<=LEFT_SQUARE)||(LA16_11>=LEFT_CURLY && LA16_11<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("from")))) {
+ alt16=1;
+ }
+ }
+ else if ( (LA16_10==LEFT_PAREN) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+ int LA16_12 = input.LA(6);
+
+ if ( ((validateIdentifierKey("from"))) ) {
+ alt16=1;
+ }
+ }
+ else if ( (LA16_10==DOT) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+ int LA16_13 = input.LA(6);
+
+ if ( (LA16_13==ID) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+ int LA16_15 = input.LA(7);
+
+ if ( ((validateIdentifierKey("from"))) ) {
+ alt16=1;
+ }
+ }
+ }
+ else if ( (LA16_10==EOF||(LA16_10>=RIGHT_PAREN && LA16_10<=ID)) && ((validateIdentifierKey("from")))) {
+ alt16=1;
+ }
+ }
+ }
+ }
+ }
+ switch (alt16) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:145:4: from_key ( accumulate_statement | collect_statement | entrypoint_statement | from_source )
+ {
+ pushFollow(FOLLOW_from_key_in_pattern_source758);
+ from_key41=from_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(from_key41.getTree(), root_0);
+ // /Users/porcelli/Desktop/testes/NewDRL.g:146:11: ( accumulate_statement | collect_statement | entrypoint_statement | from_source )
+ int alt15=4;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==ID) ) {
+ int LA15_1 = input.LA(2);
+
+ if ( (LA15_1==MISC) && ((validateIdentifierKey("entry") && validateLT(2, "-") && validateLT(3, "point")))) {
+ alt15=3;
+ }
+ else if ( (LA15_1==LEFT_PAREN) ) {
+ switch ( input.LA(3) ) {
+ case ID:
+ {
+ int LA15_5 = input.LA(4);
+
+ if ( ((validateIdentifierKey("accumulate"))) ) {
+ alt15=1;
+ }
+ else if ( ((validateIdentifierKey("collect"))) ) {
+ alt15=2;
+ }
+ else if ( (true) ) {
+ alt15=4;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("146:11: ( accumulate_statement | collect_statement | entrypoint_statement | from_source )", 15, 5, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case VT_FACT:
+ case VT_CONSTRAINTS:
+ case VT_QUALIFIED_ID:
+ case VT_LABEL:
+ case VT_NAME:
+ case VT_CURLY_CHUNK:
+ case VT_SQUARE_CHUNK:
+ case VT_PAREN_CHUNK:
+ case VT_AND_IMPLICIT:
+ case VT_AND_PREFIX:
+ case VT_OR_PREFIX:
+ case VT_AND_INFIX:
+ case VT_OR_INFIX:
+ case VT_ACCUMULATE_INIT_CLAUSE:
+ case VT_ACCUMULATE_ID_CLAUSE:
+ case VT_FROM_SOURCE:
+ case VT_EXPRESSION_CHAIN:
+ case VT_PATTERN:
+ case VT_FACT_BINDING:
+ case VT_FACT_OR:
+ case VT_BIND_FIELD:
+ case VT_FIELD:
+ case VT_ACCESSOR_PATH:
+ case VT_ACCESSOR_ELEMENT:
+ case VK_EVAL:
+ case VK_CONTAINS:
+ case VK_MATCHES:
+ case VK_EXCLUDES:
+ case VK_SOUNDSLIKE:
+ case VK_MEMBEROF:
+ case VK_ENTRY_POINT:
+ case VK_NOT:
+ case VK_IN:
+ case VK_OR:
+ case VK_AND:
+ case VK_EXISTS:
+ case VK_FORALL:
+ case VK_FROM:
+ case VK_ACCUMULATE:
+ case VK_INIT:
+ case VK_ACTION:
+ case VK_REVERSE:
+ case VK_RESULT:
+ case VK_COLLECT:
+ case RIGHT_PAREN:
+ case DOUBLE_PIPE:
+ case DOUBLE_AMPER:
+ case SEMICOLON:
+ case COMMA:
+ case DOT:
+ case ARROW:
+ case COLON:
+ case EQUAL:
+ case GREATER:
+ case GREATER_EQUAL:
+ case LESS:
+ case LESS_EQUAL:
+ case NOT_EQUAL:
+ case STRING:
+ case INT:
+ case FLOAT:
+ case BOOL:
+ case NULL:
+ case LEFT_SQUARE:
+ case RIGHT_SQUARE:
+ case LEFT_CURLY:
+ case RIGHT_CURLY:
+ case MISC:
+ case EOL:
+ case WS:
+ case EscapeSequence:
+ case HexDigit:
+ case UnicodeEscape:
+ case OctalEscape:
+ case TILDE:
+ case SH_STYLE_SINGLE_LINE_COMMENT:
+ case C_STYLE_SINGLE_LINE_COMMENT:
+ case MULTI_LINE_COMMENT:
+ {
+ alt15=4;
+ }
+ break;
+ case LEFT_PAREN:
+ {
+ int LA15_6 = input.LA(4);
+
+ if ( ((validateIdentifierKey("accumulate"))) ) {
+ alt15=1;
+ }
+ else if ( (true) ) {
+ alt15=4;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("146:11: ( accumulate_statement | collect_statement | entrypoint_statement | from_source )", 15, 6, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("146:11: ( accumulate_statement | collect_statement | entrypoint_statement | from_source )", 15, 3, input);
+
+ throw nvae;
+ }
+
+ }
+ else if ( (LA15_1==EOF||(LA15_1>=RIGHT_PAREN && LA15_1<=DOT)) ) {
+ alt15=4;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("146:11: ( accumulate_statement | collect_statement | entrypoint_statement | from_source )", 15, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("146:11: ( accumulate_statement | collect_statement | entrypoint_statement | from_source )", 15, 0, input);
+
+ throw nvae;
+ }
+ switch (alt15) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:146:14: accumulate_statement
+ {
+ pushFollow(FOLLOW_accumulate_statement_in_pattern_source774);
+ accumulate_statement42=accumulate_statement();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, accumulate_statement42.getTree());
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:147:15: collect_statement
+ {
+ pushFollow(FOLLOW_collect_statement_in_pattern_source790);
+ collect_statement43=collect_statement();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, collect_statement43.getTree());
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:148:15: entrypoint_statement
+ {
+ pushFollow(FOLLOW_entrypoint_statement_in_pattern_source807);
+ entrypoint_statement44=entrypoint_statement();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, entrypoint_statement44.getTree());
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:149:15: from_source
+ {
+ pushFollow(FOLLOW_from_source_in_pattern_source823);
+ from_source45=from_source();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, from_source45.getTree());
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end pattern_source
+
+ public static class accumulate_statement_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start accumulate_statement
+ // /Users/porcelli/Desktop/testes/NewDRL.g:154:1: accumulate_statement : accumulate_key LEFT_PAREN lhs_or ( COMMA )? ( accumulate_init_clause | accumulate_id_clause ) RIGHT_PAREN -> ^( accumulate_key lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? ) ;
+ public final accumulate_statement_return accumulate_statement() throws RecognitionException {
+ accumulate_statement_return retval = new accumulate_statement_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_PAREN47=null;
+ Token COMMA49=null;
+ Token RIGHT_PAREN52=null;
+ accumulate_key_return accumulate_key46 = null;
+
+ lhs_or_return lhs_or48 = null;
+
+ accumulate_init_clause_return accumulate_init_clause50 = null;
+
+ accumulate_id_clause_return accumulate_id_clause51 = null;
+
+
+ Object LEFT_PAREN47_tree=null;
+ Object COMMA49_tree=null;
+ Object RIGHT_PAREN52_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
+ RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
+ RewriteRuleSubtreeStream stream_lhs_or=new RewriteRuleSubtreeStream(adaptor,"rule lhs_or");
+ RewriteRuleSubtreeStream stream_accumulate_init_clause=new RewriteRuleSubtreeStream(adaptor,"rule accumulate_init_clause");
+ RewriteRuleSubtreeStream stream_accumulate_id_clause=new RewriteRuleSubtreeStream(adaptor,"rule accumulate_id_clause");
+ RewriteRuleSubtreeStream stream_accumulate_key=new RewriteRuleSubtreeStream(adaptor,"rule accumulate_key");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:155:2: ( accumulate_key LEFT_PAREN lhs_or ( COMMA )? ( accumulate_init_clause | accumulate_id_clause ) RIGHT_PAREN -> ^( accumulate_key lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:155:4: accumulate_key LEFT_PAREN lhs_or ( COMMA )? ( accumulate_init_clause | accumulate_id_clause ) RIGHT_PAREN
+ {
+ pushFollow(FOLLOW_accumulate_key_in_accumulate_statement851);
+ accumulate_key46=accumulate_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_accumulate_key.add(accumulate_key46.getTree());
+ LEFT_PAREN47=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement855); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN47);
+
+ pushFollow(FOLLOW_lhs_or_in_accumulate_statement857);
+ lhs_or48=lhs_or();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_lhs_or.add(lhs_or48.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:156:21: ( COMMA )?
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0==COMMA) ) {
+ alt17=1;
+ }
+ switch (alt17) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:156:21: COMMA
+ {
+ COMMA49=(Token)input.LT(1);
+ match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement859); if (failed) return retval;
+ if ( backtracking==0 ) stream_COMMA.add(COMMA49);
+
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:157:3: ( accumulate_init_clause | accumulate_id_clause )
+ int alt18=2;
+ alt18 = dfa18.predict(input);
+ switch (alt18) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:157:5: accumulate_init_clause
+ {
+ pushFollow(FOLLOW_accumulate_init_clause_in_accumulate_statement867);
+ accumulate_init_clause50=accumulate_init_clause();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_accumulate_init_clause.add(accumulate_init_clause50.getTree());
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:158:5: accumulate_id_clause
+ {
+ pushFollow(FOLLOW_accumulate_id_clause_in_accumulate_statement873);
+ accumulate_id_clause51=accumulate_id_clause();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_accumulate_id_clause.add(accumulate_id_clause51.getTree());
+
+ }
+ break;
+
+ }
+
+ RIGHT_PAREN52=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_statement881); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN52);
+
+
+ // AST REWRITE
+ // elements: accumulate_init_clause, accumulate_id_clause, lhs_or, accumulate_key
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 161:3: -> ^( accumulate_key lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:161:6: ^( accumulate_key lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(stream_accumulate_key.nextNode(), root_1);
+
+ adaptor.addChild(root_1, stream_lhs_or.next());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:161:30: ( accumulate_init_clause )?
+ if ( stream_accumulate_init_clause.hasNext() ) {
+ adaptor.addChild(root_1, stream_accumulate_init_clause.next());
+
+ }
+ stream_accumulate_init_clause.reset();
+ // /Users/porcelli/Desktop/testes/NewDRL.g:161:54: ( accumulate_id_clause )?
+ if ( stream_accumulate_id_clause.hasNext() ) {
+ adaptor.addChild(root_1, stream_accumulate_id_clause.next());
+
+ }
+ stream_accumulate_id_clause.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end accumulate_statement
+
+ public static class accumulate_init_clause_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start accumulate_init_clause
+ // /Users/porcelli/Desktop/testes/NewDRL.g:164:1: accumulate_init_clause : init_key pc1= paren_chunk ( COMMA )? action_key pc2= paren_chunk ( COMMA )? ( reverse_key pc3= paren_chunk ( COMMA )? )? result_key pc4= paren_chunk -> ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) ) ;
+ public final accumulate_init_clause_return accumulate_init_clause() throws RecognitionException {
+ accumulate_init_clause_return retval = new accumulate_init_clause_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token COMMA54=null;
+ Token COMMA56=null;
+ Token COMMA58=null;
+ paren_chunk_return pc1 = null;
+
+ paren_chunk_return pc2 = null;
+
+ paren_chunk_return pc3 = null;
+
+ paren_chunk_return pc4 = null;
+
+ init_key_return init_key53 = null;
+
+ action_key_return action_key55 = null;
+
+ reverse_key_return reverse_key57 = null;
+
+ result_key_return result_key59 = null;
+
+
+ Object COMMA54_tree=null;
+ Object COMMA56_tree=null;
+ Object COMMA58_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleSubtreeStream stream_reverse_key=new RewriteRuleSubtreeStream(adaptor,"rule reverse_key");
+ RewriteRuleSubtreeStream stream_result_key=new RewriteRuleSubtreeStream(adaptor,"rule result_key");
+ RewriteRuleSubtreeStream stream_init_key=new RewriteRuleSubtreeStream(adaptor,"rule init_key");
+ RewriteRuleSubtreeStream stream_action_key=new RewriteRuleSubtreeStream(adaptor,"rule action_key");
+ RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:165:2: ( init_key pc1= paren_chunk ( COMMA )? action_key pc2= paren_chunk ( COMMA )? ( reverse_key pc3= paren_chunk ( COMMA )? )? result_key pc4= paren_chunk -> ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:165:4: init_key pc1= paren_chunk ( COMMA )? action_key pc2= paren_chunk ( COMMA )? ( reverse_key pc3= paren_chunk ( COMMA )? )? result_key pc4= paren_chunk
+ {
+ pushFollow(FOLLOW_init_key_in_accumulate_init_clause908);
+ init_key53=init_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_init_key.add(init_key53.getTree());
+ pushFollow(FOLLOW_paren_chunk_in_accumulate_init_clause913);
+ pc1=paren_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_paren_chunk.add(pc1.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:166:18: ( COMMA )?
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( (LA19_0==COMMA) ) {
+ alt19=1;
+ }
+ switch (alt19) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:166:18: COMMA
+ {
+ COMMA54=(Token)input.LT(1);
+ match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause915); if (failed) return retval;
+ if ( backtracking==0 ) stream_COMMA.add(COMMA54);
+
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_action_key_in_accumulate_init_clause919);
+ action_key55=action_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_action_key.add(action_key55.getTree());
+ pushFollow(FOLLOW_paren_chunk_in_accumulate_init_clause923);
+ pc2=paren_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_paren_chunk.add(pc2.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:167:29: ( COMMA )?
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0==COMMA) ) {
+ alt20=1;
+ }
+ switch (alt20) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:167:29: COMMA
+ {
+ COMMA56=(Token)input.LT(1);
+ match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause925); if (failed) return retval;
+ if ( backtracking==0 ) stream_COMMA.add(COMMA56);
+
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:168:2: ( reverse_key pc3= paren_chunk ( COMMA )? )?
+ int alt22=2;
+ alt22 = dfa22.predict(input);
+ switch (alt22) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:168:4: reverse_key pc3= paren_chunk ( COMMA )?
+ {
+ pushFollow(FOLLOW_reverse_key_in_accumulate_init_clause931);
+ reverse_key57=reverse_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_reverse_key.add(reverse_key57.getTree());
+ pushFollow(FOLLOW_paren_chunk_in_accumulate_init_clause935);
+ pc3=paren_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_paren_chunk.add(pc3.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:168:32: ( COMMA )?
+ int alt21=2;
+ int LA21_0 = input.LA(1);
+
+ if ( (LA21_0==COMMA) ) {
+ alt21=1;
+ }
+ switch (alt21) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:168:32: COMMA
+ {
+ COMMA58=(Token)input.LT(1);
+ match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause937); if (failed) return retval;
+ if ( backtracking==0 ) stream_COMMA.add(COMMA58);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_result_key_in_accumulate_init_clause943);
+ result_key59=result_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_result_key.add(result_key59.getTree());
+ pushFollow(FOLLOW_paren_chunk_in_accumulate_init_clause947);
+ pc4=paren_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_paren_chunk.add(pc4.getTree());
+
+ // AST REWRITE
+ // elements: reverse_key, pc1, init_key, pc2, pc3, action_key, pc4, result_key
+ // token labels:
+ // rule labels: pc2, pc4, pc3, pc1, retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_pc2=new RewriteRuleSubtreeStream(adaptor,"token pc2",pc2!=null?pc2.tree:null);
+ RewriteRuleSubtreeStream stream_pc4=new RewriteRuleSubtreeStream(adaptor,"token pc4",pc4!=null?pc4.tree:null);
+ RewriteRuleSubtreeStream stream_pc3=new RewriteRuleSubtreeStream(adaptor,"token pc3",pc3!=null?pc3.tree:null);
+ RewriteRuleSubtreeStream stream_pc1=new RewriteRuleSubtreeStream(adaptor,"token pc1",pc1!=null?pc1.tree:null);
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 170:2: -> ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:170:5: ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_ACCUMULATE_INIT_CLAUSE, "VT_ACCUMULATE_INIT_CLAUSE"), root_1);
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:170:33: ^( init_key $pc1)
+ {
+ Object root_2 = (Object)adaptor.nil();
+ root_2 = (Object)adaptor.becomeRoot(stream_init_key.nextNode(), root_2);
+
+ adaptor.addChild(root_2, stream_pc1.next());
+
+ adaptor.addChild(root_1, root_2);
+ }
+ // /Users/porcelli/Desktop/testes/NewDRL.g:170:50: ^( action_key $pc2)
+ {
+ Object root_2 = (Object)adaptor.nil();
+ root_2 = (Object)adaptor.becomeRoot(stream_action_key.nextNode(), root_2);
+
+ adaptor.addChild(root_2, stream_pc2.next());
+
+ adaptor.addChild(root_1, root_2);
+ }
+ // /Users/porcelli/Desktop/testes/NewDRL.g:170:69: ( ^( reverse_key $pc3) )?
+ if ( stream_reverse_key.hasNext()||stream_pc3.hasNext() ) {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:170:69: ^( reverse_key $pc3)
+ {
+ Object root_2 = (Object)adaptor.nil();
+ root_2 = (Object)adaptor.becomeRoot(stream_reverse_key.nextNode(), root_2);
+
+ adaptor.addChild(root_2, stream_pc3.next());
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ }
+ stream_reverse_key.reset();
+ stream_pc3.reset();
+ // /Users/porcelli/Desktop/testes/NewDRL.g:170:90: ^( result_key $pc4)
+ {
+ Object root_2 = (Object)adaptor.nil();
+ root_2 = (Object)adaptor.becomeRoot(stream_result_key.nextNode(), root_2);
+
+ adaptor.addChild(root_2, stream_pc4.next());
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end accumulate_init_clause
+
+ public static class accumulate_id_clause_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start accumulate_id_clause
+ // /Users/porcelli/Desktop/testes/NewDRL.g:173:1: accumulate_id_clause : id= ID text= paren_chunk -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk ) ;
+ public final accumulate_id_clause_return accumulate_id_clause() throws RecognitionException {
+ accumulate_id_clause_return retval = new accumulate_id_clause_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+ paren_chunk_return text = null;
+
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+ RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:174:2: (id= ID text= paren_chunk -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:174:4: id= ID text= paren_chunk
+ {
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_accumulate_id_clause996); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+ pushFollow(FOLLOW_paren_chunk_in_accumulate_id_clause1000);
+ text=paren_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_paren_chunk.add(text.getTree());
+
+ // AST REWRITE
+ // elements: paren_chunk, ID
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 175:2: -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:175:5: ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_ACCUMULATE_ID_CLAUSE, "VT_ACCUMULATE_ID_CLAUSE"), root_1);
+
+ adaptor.addChild(root_1, stream_ID.next());
+ adaptor.addChild(root_1, stream_paren_chunk.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end accumulate_id_clause
+
+ public static class collect_statement_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start collect_statement
+ // /Users/porcelli/Desktop/testes/NewDRL.g:178:1: collect_statement : collect_key LEFT_PAREN pattern_source RIGHT_PAREN -> ^( collect_key pattern_source ) ;
+ public final collect_statement_return collect_statement() throws RecognitionException {
+ collect_statement_return retval = new collect_statement_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_PAREN61=null;
+ Token RIGHT_PAREN63=null;
+ collect_key_return collect_key60 = null;
+
+ pattern_source_return pattern_source62 = null;
+
+
+ Object LEFT_PAREN61_tree=null;
+ Object RIGHT_PAREN63_tree=null;
+ RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
+ RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
+ RewriteRuleSubtreeStream stream_collect_key=new RewriteRuleSubtreeStream(adaptor,"rule collect_key");
+ RewriteRuleSubtreeStream stream_pattern_source=new RewriteRuleSubtreeStream(adaptor,"rule pattern_source");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:179:2: ( collect_key LEFT_PAREN pattern_source RIGHT_PAREN -> ^( collect_key pattern_source ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:179:4: collect_key LEFT_PAREN pattern_source RIGHT_PAREN
+ {
+ pushFollow(FOLLOW_collect_key_in_collect_statement1022);
+ collect_key60=collect_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_collect_key.add(collect_key60.getTree());
+ LEFT_PAREN61=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement1026); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN61);
+
+ pushFollow(FOLLOW_pattern_source_in_collect_statement1028);
+ pattern_source62=pattern_source();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_pattern_source.add(pattern_source62.getTree());
+ RIGHT_PAREN63=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_collect_statement1030); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN63);
+
+
+ // AST REWRITE
+ // elements: collect_key, pattern_source
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 181:2: -> ^( collect_key pattern_source )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:181:5: ^( collect_key pattern_source )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(stream_collect_key.nextNode(), root_1);
+
+ adaptor.addChild(root_1, stream_pattern_source.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end collect_statement
+
+ public static class entrypoint_statement_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start entrypoint_statement
+ // /Users/porcelli/Desktop/testes/NewDRL.g:184:1: entrypoint_statement : entry_point_key name -> ^( entry_point_key name ) ;
+ public final entrypoint_statement_return entrypoint_statement() throws RecognitionException {
+ entrypoint_statement_return retval = new entrypoint_statement_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ entry_point_key_return entry_point_key64 = null;
+
+ name_return name65 = null;
+
+
+ RewriteRuleSubtreeStream stream_entry_point_key=new RewriteRuleSubtreeStream(adaptor,"rule entry_point_key");
+ RewriteRuleSubtreeStream stream_name=new RewriteRuleSubtreeStream(adaptor,"rule name");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:185:2: ( entry_point_key name -> ^( entry_point_key name ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:185:4: entry_point_key name
+ {
+ pushFollow(FOLLOW_entry_point_key_in_entrypoint_statement1050);
+ entry_point_key64=entry_point_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_entry_point_key.add(entry_point_key64.getTree());
+ pushFollow(FOLLOW_name_in_entrypoint_statement1052);
+ name65=name();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_name.add(name65.getTree());
+
+ // AST REWRITE
+ // elements: name, entry_point_key
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 186:2: -> ^( entry_point_key name )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:186:5: ^( entry_point_key name )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(stream_entry_point_key.nextNode(), root_1);
+
+ adaptor.addChild(root_1, stream_name.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end entrypoint_statement
+
+ public static class from_source_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start from_source
+ // /Users/porcelli/Desktop/testes/NewDRL.g:189:1: from_source : ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )? -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? ) ;
+ public final from_source_return from_source() throws RecognitionException {
+ from_source_return retval = new from_source_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token ID66=null;
+ paren_chunk_return args = null;
+
+ expression_chain_return expression_chain67 = null;
+
+
+ Object ID66_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+ RewriteRuleSubtreeStream stream_expression_chain=new RewriteRuleSubtreeStream(adaptor,"rule expression_chain");
+ RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:190:2: ( ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )? -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:190:4: ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )?
+ {
+ ID66=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_from_source1072); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(ID66);
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:191:3: ( ( LEFT_PAREN )=>args= paren_chunk )?
+ int alt23=2;
+ alt23 = dfa23.predict(input);
+ switch (alt23) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:191:5: ( LEFT_PAREN )=>args= paren_chunk
+ {
+ pushFollow(FOLLOW_paren_chunk_in_from_source1085);
+ args=paren_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_paren_chunk.add(args.getTree());
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:192:3: ( expression_chain )?
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+
+ if ( (LA24_0==DOT) ) {
+ alt24=1;
+ }
+ switch (alt24) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:192:3: expression_chain
+ {
+ pushFollow(FOLLOW_expression_chain_in_from_source1092);
+ expression_chain67=expression_chain();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_expression_chain.add(expression_chain67.getTree());
+
+ }
+ break;
+
+ }
+
+
+ // AST REWRITE
+ // elements: paren_chunk, expression_chain, ID
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 193:2: -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:193:5: ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_FROM_SOURCE, "VT_FROM_SOURCE"), root_1);
+
+ adaptor.addChild(root_1, stream_ID.next());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:193:25: ( paren_chunk )?
+ if ( stream_paren_chunk.hasNext() ) {
+ adaptor.addChild(root_1, stream_paren_chunk.next());
+
+ }
+ stream_paren_chunk.reset();
+ // /Users/porcelli/Desktop/testes/NewDRL.g:193:38: ( expression_chain )?
+ if ( stream_expression_chain.hasNext() ) {
+ adaptor.addChild(root_1, stream_expression_chain.next());
+
+ }
+ stream_expression_chain.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end from_source
+
+ public static class expression_chain_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start expression_chain
+ // /Users/porcelli/Desktop/testes/NewDRL.g:196:1: expression_chain : startToken= DOT ID ( ( LEFT_SQUARE )=> square_chunk | ( LEFT_PAREN )=> paren_chunk )? ( expression_chain )? -> ^( VT_EXPRESSION_CHAIN[$startToken] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? ) ;
+ public final expression_chain_return expression_chain() throws RecognitionException {
+ expression_chain_return retval = new expression_chain_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token startToken=null;
+ Token ID68=null;
+ square_chunk_return square_chunk69 = null;
+
+ paren_chunk_return paren_chunk70 = null;
+
+ expression_chain_return expression_chain71 = null;
+
+
+ Object startToken_tree=null;
+ Object ID68_tree=null;
+ RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+ RewriteRuleSubtreeStream stream_square_chunk=new RewriteRuleSubtreeStream(adaptor,"rule square_chunk");
+ RewriteRuleSubtreeStream stream_expression_chain=new RewriteRuleSubtreeStream(adaptor,"rule expression_chain");
+ RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:197:2: (startToken= DOT ID ( ( LEFT_SQUARE )=> square_chunk | ( LEFT_PAREN )=> paren_chunk )? ( expression_chain )? -> ^( VT_EXPRESSION_CHAIN[$startToken] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:198:3: startToken= DOT ID ( ( LEFT_SQUARE )=> square_chunk | ( LEFT_PAREN )=> paren_chunk )? ( expression_chain )?
+ {
+ startToken=(Token)input.LT(1);
+ match(input,DOT,FOLLOW_DOT_in_expression_chain1124); if (failed) return retval;
+ if ( backtracking==0 ) stream_DOT.add(startToken);
+
+ ID68=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_expression_chain1126); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(ID68);
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:199:4: ( ( LEFT_SQUARE )=> square_chunk | ( LEFT_PAREN )=> paren_chunk )?
+ int alt25=3;
+ int LA25_0 = input.LA(1);
+
+ if ( (LA25_0==LEFT_SQUARE) && (synpred9())) {
+ alt25=1;
+ }
+ else if ( (LA25_0==LEFT_PAREN) ) {
+ int LA25_2 = input.LA(2);
+
+ if ( (LA25_2==LEFT_PAREN) ) {
+ int LA25_4 = input.LA(3);
+
+ if ( (synpred10()) ) {
+ alt25=2;
+ }
+ }
+ else if ( (LA25_2==ID) ) {
+ int LA25_5 = input.LA(3);
+
+ if ( (synpred10()) ) {
+ alt25=2;
+ }
+ }
+ else if ( ((LA25_2>=VT_FACT && LA25_2<=VK_COLLECT)||(LA25_2>=DOUBLE_PIPE && LA25_2<=COMMA)||(LA25_2>=DOT && LA25_2<=MULTI_LINE_COMMENT)) && (synpred10())) {
+ alt25=2;
+ }
+ else if ( (LA25_2==RIGHT_PAREN) && (synpred10())) {
+ alt25=2;
+ }
+ }
+ switch (alt25) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:200:6: ( LEFT_SQUARE )=> square_chunk
+ {
+ pushFollow(FOLLOW_square_chunk_in_expression_chain1146);
+ square_chunk69=square_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_square_chunk.add(square_chunk69.getTree());
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:202:6: ( LEFT_PAREN )=> paren_chunk
+ {
+ pushFollow(FOLLOW_paren_chunk_in_expression_chain1168);
+ paren_chunk70=paren_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_paren_chunk.add(paren_chunk70.getTree());
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:204:4: ( expression_chain )?
+ int alt26=2;
+ int LA26_0 = input.LA(1);
+
+ if ( (LA26_0==DOT) ) {
+ alt26=1;
+ }
+ switch (alt26) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:204:4: expression_chain
+ {
+ pushFollow(FOLLOW_expression_chain_in_expression_chain1179);
+ expression_chain71=expression_chain();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_expression_chain.add(expression_chain71.getTree());
+
+ }
+ break;
+
+ }
+
+
+ // AST REWRITE
+ // elements: square_chunk, ID, expression_chain, paren_chunk
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 205:4: -> ^( VT_EXPRESSION_CHAIN[$startToken] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:205:7: ^( VT_EXPRESSION_CHAIN[$startToken] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_EXPRESSION_CHAIN, startToken), root_1);
+
+ adaptor.addChild(root_1, stream_ID.next());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:205:45: ( square_chunk )?
+ if ( stream_square_chunk.hasNext() ) {
+ adaptor.addChild(root_1, stream_square_chunk.next());
+
+ }
+ stream_square_chunk.reset();
+ // /Users/porcelli/Desktop/testes/NewDRL.g:205:59: ( paren_chunk )?
+ if ( stream_paren_chunk.hasNext() ) {
+ adaptor.addChild(root_1, stream_paren_chunk.next());
+
+ }
+ stream_paren_chunk.reset();
+ // /Users/porcelli/Desktop/testes/NewDRL.g:205:72: ( expression_chain )?
+ if ( stream_expression_chain.hasNext() ) {
+ adaptor.addChild(root_1, stream_expression_chain.next());
+
+ }
+ stream_expression_chain.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end expression_chain
+
+ public static class lhs_pattern_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start lhs_pattern
+ // /Users/porcelli/Desktop/testes/NewDRL.g:208:1: lhs_pattern : ( fact_binding -> ^( VT_PATTERN fact_binding ) | fact -> ^( VT_PATTERN fact ) );
+ public final lhs_pattern_return lhs_pattern() throws RecognitionException {
+ lhs_pattern_return retval = new lhs_pattern_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ fact_binding_return fact_binding72 = null;
+
+ fact_return fact73 = null;
+
+
+ RewriteRuleSubtreeStream stream_fact_binding=new RewriteRuleSubtreeStream(adaptor,"rule fact_binding");
+ RewriteRuleSubtreeStream stream_fact=new RewriteRuleSubtreeStream(adaptor,"rule fact");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:209:2: ( fact_binding -> ^( VT_PATTERN fact_binding ) | fact -> ^( VT_PATTERN fact ) )
+ int alt27=2;
+ int LA27_0 = input.LA(1);
+
+ if ( (LA27_0==ID) ) {
+ int LA27_1 = input.LA(2);
+
+ if ( (LA27_1==COLON) ) {
+ alt27=1;
+ }
+ else if ( (LA27_1==LEFT_PAREN||LA27_1==DOT||LA27_1==LEFT_SQUARE) ) {
+ alt27=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("208:1: lhs_pattern : ( fact_binding -> ^( VT_PATTERN fact_binding ) | fact -> ^( VT_PATTERN fact ) );", 27, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("208:1: lhs_pattern : ( fact_binding -> ^( VT_PATTERN fact_binding ) | fact -> ^( VT_PATTERN fact ) );", 27, 0, input);
+
+ throw nvae;
+ }
+ switch (alt27) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:209:4: fact_binding
+ {
+ pushFollow(FOLLOW_fact_binding_in_lhs_pattern1212);
+ fact_binding72=fact_binding();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_fact_binding.add(fact_binding72.getTree());
+
+ // AST REWRITE
+ // elements: fact_binding
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 209:17: -> ^( VT_PATTERN fact_binding )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:209:20: ^( VT_PATTERN fact_binding )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_PATTERN, "VT_PATTERN"), root_1);
+
+ adaptor.addChild(root_1, stream_fact_binding.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:210:4: fact
+ {
+ pushFollow(FOLLOW_fact_in_lhs_pattern1225);
+ fact73=fact();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_fact.add(fact73.getTree());
+
+ // AST REWRITE
+ // elements: fact
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 210:9: -> ^( VT_PATTERN fact )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:210:12: ^( VT_PATTERN fact )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_PATTERN, "VT_PATTERN"), root_1);
+
+ adaptor.addChild(root_1, stream_fact.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end lhs_pattern
+
+ public static class fact_binding_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start fact_binding
+ // /Users/porcelli/Desktop/testes/NewDRL.g:213:1: fact_binding : label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN ) -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ) ;
+ public final fact_binding_return fact_binding() throws RecognitionException {
+ fact_binding_return retval = new fact_binding_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_PAREN76=null;
+ Token RIGHT_PAREN78=null;
+ label_return label74 = null;
+
+ fact_return fact75 = null;
+
+ fact_binding_expression_return fact_binding_expression77 = null;
+
+
+ Object LEFT_PAREN76_tree=null;
+ Object RIGHT_PAREN78_tree=null;
+ RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
+ RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
+ RewriteRuleSubtreeStream stream_label=new RewriteRuleSubtreeStream(adaptor,"rule label");
+ RewriteRuleSubtreeStream stream_fact_binding_expression=new RewriteRuleSubtreeStream(adaptor,"rule fact_binding_expression");
+ RewriteRuleSubtreeStream stream_fact=new RewriteRuleSubtreeStream(adaptor,"rule fact");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:214:3: ( label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN ) -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:214:5: label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN )
+ {
+ pushFollow(FOLLOW_label_in_fact_binding1245);
+ label74=label();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_label.add(label74.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:215:3: ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN )
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+
+ if ( (LA28_0==ID) ) {
+ alt28=1;
+ }
+ else if ( (LA28_0==LEFT_PAREN) ) {
+ alt28=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("215:3: ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN )", 28, 0, input);
+
+ throw nvae;
+ }
+ switch (alt28) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:215:5: fact
+ {
+ pushFollow(FOLLOW_fact_in_fact_binding1251);
+ fact75=fact();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_fact.add(fact75.getTree());
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:216:6: LEFT_PAREN fact_binding_expression RIGHT_PAREN
+ {
+ LEFT_PAREN76=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact_binding1258); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN76);
+
+ pushFollow(FOLLOW_fact_binding_expression_in_fact_binding1260);
+ fact_binding_expression77=fact_binding_expression();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_fact_binding_expression.add(fact_binding_expression77.getTree());
+ RIGHT_PAREN78=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact_binding1262); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN78);
+
+
+ }
+ break;
+
+ }
+
+
+ // AST REWRITE
+ // elements: fact, fact_binding_expression, label
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 218:3: -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:218:6: ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_FACT_BINDING, "VT_FACT_BINDING"), root_1);
+
+ adaptor.addChild(root_1, stream_label.next());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:218:30: ( fact )?
+ if ( stream_fact.hasNext() ) {
+ adaptor.addChild(root_1, stream_fact.next());
+
+ }
+ stream_fact.reset();
+ // /Users/porcelli/Desktop/testes/NewDRL.g:218:36: ( fact_binding_expression )?
+ if ( stream_fact_binding_expression.hasNext() ) {
+ adaptor.addChild(root_1, stream_fact_binding_expression.next());
+
+ }
+ stream_fact_binding_expression.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end fact_binding
+
+ public static class fact_binding_expression_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start fact_binding_expression
+ // /Users/porcelli/Desktop/testes/NewDRL.g:221:1: fact_binding_expression : ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )* ;
+ public final fact_binding_expression_return fact_binding_expression() throws RecognitionException {
+ fact_binding_expression_return retval = new fact_binding_expression_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token pipe=null;
+ or_key_return value = null;
+
+ fact_return fact79 = null;
+
+ fact_return fact80 = null;
+
+
+ Object pipe_tree=null;
+ RewriteRuleTokenStream stream_DOUBLE_PIPE=new RewriteRuleTokenStream(adaptor,"token DOUBLE_PIPE");
+ RewriteRuleSubtreeStream stream_or_key=new RewriteRuleSubtreeStream(adaptor,"rule or_key");
+ RewriteRuleSubtreeStream stream_fact=new RewriteRuleSubtreeStream(adaptor,"rule fact");
+
+ Token orToken = null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:224:3: ( ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )* )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:224:5: ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )*
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:224:5: ( fact -> fact )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:224:6: fact
+ {
+ pushFollow(FOLLOW_fact_in_fact_binding_expression1298);
+ fact79=fact();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_fact.add(fact79.getTree());
+
+ // AST REWRITE
+ // elements: fact
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 224:11: -> fact
+ {
+ adaptor.addChild(root_0, stream_fact.next());
+
+ }
+
+ }
+
+ }
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:224:20: ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )*
+ loop30:
+ do {
+ int alt30=2;
+ int LA30_0 = input.LA(1);
+
+ if ( (LA30_0==ID) && ((validateIdentifierKey("or")))) {
+ alt30=1;
+ }
+ else if ( (LA30_0==DOUBLE_PIPE) ) {
+ alt30=1;
+ }
+
+
+ switch (alt30) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:224:22: (value= or_key | pipe= DOUBLE_PIPE ) fact
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:224:22: (value= or_key | pipe= DOUBLE_PIPE )
+ int alt29=2;
+ int LA29_0 = input.LA(1);
+
+ if ( (LA29_0==ID) && ((validateIdentifierKey("or")))) {
+ alt29=1;
+ }
+ else if ( (LA29_0==DOUBLE_PIPE) ) {
+ alt29=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("224:22: (value= or_key | pipe= DOUBLE_PIPE )", 29, 0, input);
+
+ throw nvae;
+ }
+ switch (alt29) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:224:23: value= or_key
+ {
+ pushFollow(FOLLOW_or_key_in_fact_binding_expression1310);
+ value=or_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_or_key.add(value.getTree());
+ if ( backtracking==0 ) {
+ orToken = ((Token)value.start);
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:224:62: pipe= DOUBLE_PIPE
+ {
+ pipe=(Token)input.LT(1);
+ match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_fact_binding_expression1316); if (failed) return retval;
+ if ( backtracking==0 ) stream_DOUBLE_PIPE.add(pipe);
+
+ if ( backtracking==0 ) {
+ orToken = pipe;
+ }
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_in_fact_binding_expression1321);
+ fact80=fact();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_fact.add(fact80.getTree());
+
+ // AST REWRITE
+ // elements: fact, fact_binding_expression
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 225:3: -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:225:6: ^( VT_FACT_OR[orToken] $fact_binding_expression fact )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_FACT_OR, orToken), root_1);
+
+ adaptor.addChild(root_1, stream_retval.next());
+ adaptor.addChild(root_1, stream_fact.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+ break;
+
+ default :
+ break loop30;
+ }
+ } while (true);
+
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end fact_binding_expression
+
+ public static class fact_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start fact
+ // /Users/porcelli/Desktop/testes/NewDRL.g:228:1: fact : qualified_id LEFT_PAREN ( constraints )? RIGHT_PAREN -> ^( VT_FACT qualified_id ( constraints )? ) ;
+ public final fact_return fact() throws RecognitionException {
+ fact_return retval = new fact_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_PAREN82=null;
+ Token RIGHT_PAREN84=null;
+ qualified_id_return qualified_id81 = null;
+
+ constraints_return constraints83 = null;
+
+
+ Object LEFT_PAREN82_tree=null;
+ Object RIGHT_PAREN84_tree=null;
+ RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
+ RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
+ RewriteRuleSubtreeStream stream_constraints=new RewriteRuleSubtreeStream(adaptor,"rule constraints");
+ RewriteRuleSubtreeStream stream_qualified_id=new RewriteRuleSubtreeStream(adaptor,"rule qualified_id");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:229:2: ( qualified_id LEFT_PAREN ( constraints )? RIGHT_PAREN -> ^( VT_FACT qualified_id ( constraints )? ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:229:4: qualified_id LEFT_PAREN ( constraints )? RIGHT_PAREN
+ {
+ pushFollow(FOLLOW_qualified_id_in_fact1350);
+ qualified_id81=qualified_id();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_qualified_id.add(qualified_id81.getTree());
+ LEFT_PAREN82=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact1352); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN82);
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:229:28: ( constraints )?
+ int alt31=2;
+ int LA31_0 = input.LA(1);
+
+ if ( (LA31_0==LEFT_PAREN||LA31_0==ID) ) {
+ alt31=1;
+ }
+ switch (alt31) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:229:28: constraints
+ {
+ pushFollow(FOLLOW_constraints_in_fact1354);
+ constraints83=constraints();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_constraints.add(constraints83.getTree());
+
+ }
+ break;
+
+ }
+
+ RIGHT_PAREN84=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact1357); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN84);
+
+
+ // AST REWRITE
+ // elements: constraints, qualified_id
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 230:2: -> ^( VT_FACT qualified_id ( constraints )? )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:230:5: ^( VT_FACT qualified_id ( constraints )? )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_FACT, "VT_FACT"), root_1);
+
+ adaptor.addChild(root_1, stream_qualified_id.next());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:230:28: ( constraints )?
+ if ( stream_constraints.hasNext() ) {
+ adaptor.addChild(root_1, stream_constraints.next());
+
+ }
+ stream_constraints.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end fact
+
+ public static class constraints_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start constraints
+ // /Users/porcelli/Desktop/testes/NewDRL.g:233:1: constraints : constraint ( COMMA constraint )* ;
+ public final constraints_return constraints() throws RecognitionException {
+ constraints_return retval = new constraints_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token COMMA86=null;
+ constraint_return constraint85 = null;
+
+ constraint_return constraint87 = null;
+
+
+ Object COMMA86_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:234:2: ( constraint ( COMMA constraint )* )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:234:4: constraint ( COMMA constraint )*
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_constraint_in_constraints1380);
+ constraint85=constraint();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, constraint85.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:234:15: ( COMMA constraint )*
+ loop32:
+ do {
+ int alt32=2;
+ int LA32_0 = input.LA(1);
+
+ if ( (LA32_0==COMMA) ) {
+ alt32=1;
+ }
+
+
+ switch (alt32) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:234:17: COMMA constraint
+ {
+ COMMA86=(Token)input.LT(1);
+ match(input,COMMA,FOLLOW_COMMA_in_constraints1384); if (failed) return retval;
+ pushFollow(FOLLOW_constraint_in_constraints1387);
+ constraint87=constraint();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, constraint87.getTree());
+
+ }
+ break;
+
+ default :
+ break loop32;
+ }
+ } while (true);
+
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end constraints
+
+ public static class constraint_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start constraint
+ // /Users/porcelli/Desktop/testes/NewDRL.g:237:1: constraint : or_constr ;
+ public final constraint_return constraint() throws RecognitionException {
+ constraint_return retval = new constraint_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ or_constr_return or_constr88 = null;
+
+
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:238:2: ( or_constr )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:238:4: or_constr
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_or_constr_in_constraint1401);
+ or_constr88=or_constr();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, or_constr88.getTree());
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end constraint
+
+ public static class or_constr_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start or_constr
+ // /Users/porcelli/Desktop/testes/NewDRL.g:241:1: or_constr : and_constr ( DOUBLE_PIPE and_constr )* ;
+ public final or_constr_return or_constr() throws RecognitionException {
+ or_constr_return retval = new or_constr_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token DOUBLE_PIPE90=null;
+ and_constr_return and_constr89 = null;
+
+ and_constr_return and_constr91 = null;
+
+
+ Object DOUBLE_PIPE90_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:242:2: ( and_constr ( DOUBLE_PIPE and_constr )* )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:242:4: and_constr ( DOUBLE_PIPE and_constr )*
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_and_constr_in_or_constr1412);
+ and_constr89=and_constr();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, and_constr89.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:242:15: ( DOUBLE_PIPE and_constr )*
+ loop33:
+ do {
+ int alt33=2;
+ int LA33_0 = input.LA(1);
+
+ if ( (LA33_0==DOUBLE_PIPE) ) {
+ alt33=1;
+ }
+
+
+ switch (alt33) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:242:17: DOUBLE_PIPE and_constr
+ {
+ DOUBLE_PIPE90=(Token)input.LT(1);
+ match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_constr1416); if (failed) return retval;
+ if ( backtracking==0 ) {
+ DOUBLE_PIPE90_tree = (Object)adaptor.create(DOUBLE_PIPE90);
+ root_0 = (Object)adaptor.becomeRoot(DOUBLE_PIPE90_tree, root_0);
+ }
+ pushFollow(FOLLOW_and_constr_in_or_constr1419);
+ and_constr91=and_constr();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, and_constr91.getTree());
+
+ }
+ break;
+
+ default :
+ break loop33;
+ }
+ } while (true);
+
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end or_constr
+
+ public static class and_constr_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start and_constr
+ // /Users/porcelli/Desktop/testes/NewDRL.g:245:1: and_constr : unary_constr ( DOUBLE_AMPER unary_constr )* ;
+ public final and_constr_return and_constr() throws RecognitionException {
+ and_constr_return retval = new and_constr_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token DOUBLE_AMPER93=null;
+ unary_constr_return unary_constr92 = null;
+
+ unary_constr_return unary_constr94 = null;
+
+
+ Object DOUBLE_AMPER93_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:246:2: ( unary_constr ( DOUBLE_AMPER unary_constr )* )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:246:4: unary_constr ( DOUBLE_AMPER unary_constr )*
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_unary_constr_in_and_constr1434);
+ unary_constr92=unary_constr();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, unary_constr92.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:246:17: ( DOUBLE_AMPER unary_constr )*
+ loop34:
+ do {
+ int alt34=2;
+ int LA34_0 = input.LA(1);
+
+ if ( (LA34_0==DOUBLE_AMPER) ) {
+ alt34=1;
+ }
+
+
+ switch (alt34) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:246:19: DOUBLE_AMPER unary_constr
+ {
+ DOUBLE_AMPER93=(Token)input.LT(1);
+ match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_constr1438); if (failed) return retval;
+ if ( backtracking==0 ) {
+ DOUBLE_AMPER93_tree = (Object)adaptor.create(DOUBLE_AMPER93);
+ root_0 = (Object)adaptor.becomeRoot(DOUBLE_AMPER93_tree, root_0);
+ }
+ pushFollow(FOLLOW_unary_constr_in_and_constr1441);
+ unary_constr94=unary_constr();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, unary_constr94.getTree());
+
+ }
+ break;
+
+ default :
+ break loop34;
+ }
+ } while (true);
+
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end and_constr
+
+ public static class unary_constr_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start unary_constr
+ // /Users/porcelli/Desktop/testes/NewDRL.g:249:1: unary_constr options {k=2; } : ( eval_key paren_chunk -> ^( eval_key paren_chunk ) | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN -> or_constr );
+ public final unary_constr_return unary_constr() throws RecognitionException {
+ unary_constr_return retval = new unary_constr_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_PAREN98=null;
+ Token RIGHT_PAREN100=null;
+ eval_key_return eval_key95 = null;
+
+ paren_chunk_return paren_chunk96 = null;
+
+ field_constraint_return field_constraint97 = null;
+
+ or_constr_return or_constr99 = null;
+
+
+ Object LEFT_PAREN98_tree=null;
+ Object RIGHT_PAREN100_tree=null;
+ RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
+ RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
+ RewriteRuleSubtreeStream stream_or_constr=new RewriteRuleSubtreeStream(adaptor,"rule or_constr");
+ RewriteRuleSubtreeStream stream_eval_key=new RewriteRuleSubtreeStream(adaptor,"rule eval_key");
+ RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:251:2: ( eval_key paren_chunk -> ^( eval_key paren_chunk ) | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN -> or_constr )
+ int alt35=3;
+ int LA35_0 = input.LA(1);
+
+ if ( (LA35_0==ID) ) {
+ int LA35_1 = input.LA(2);
+
+ if ( ((LA35_1>=ID && LA35_1<=DOT)||(LA35_1>=COLON && LA35_1<=NOT_EQUAL)||LA35_1==LEFT_SQUARE) ) {
+ alt35=2;
+ }
+ else if ( (LA35_1==LEFT_PAREN) ) {
+ int LA35_13 = input.LA(3);
+
+ if ( ((validateIdentifierKey("eval"))) ) {
+ alt35=1;
+ }
+ else if ( (true) ) {
+ alt35=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("249:1: unary_constr options {k=2; } : ( eval_key paren_chunk -> ^( eval_key paren_chunk ) | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN -> or_constr );", 35, 13, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("249:1: unary_constr options {k=2; } : ( eval_key paren_chunk -> ^( eval_key paren_chunk ) | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN -> or_constr );", 35, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA35_0==LEFT_PAREN) ) {
+ alt35=3;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("249:1: unary_constr options {k=2; } : ( eval_key paren_chunk -> ^( eval_key paren_chunk ) | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN -> or_constr );", 35, 0, input);
+
+ throw nvae;
+ }
+ switch (alt35) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:251:4: eval_key paren_chunk
+ {
+ pushFollow(FOLLOW_eval_key_in_unary_constr1462);
+ eval_key95=eval_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_eval_key.add(eval_key95.getTree());
+ pushFollow(FOLLOW_paren_chunk_in_unary_constr1464);
+ paren_chunk96=paren_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_paren_chunk.add(paren_chunk96.getTree());
+
+ // AST REWRITE
+ // elements: paren_chunk, eval_key
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 251:25: -> ^( eval_key paren_chunk )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:251:28: ^( eval_key paren_chunk )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(stream_eval_key.nextNode(), root_1);
+
+ adaptor.addChild(root_1, stream_paren_chunk.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:252:4: field_constraint
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_field_constraint_in_unary_constr1477);
+ field_constraint97=field_constraint();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, field_constraint97.getTree());
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:253:4: LEFT_PAREN or_constr RIGHT_PAREN
+ {
+ LEFT_PAREN98=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_unary_constr1482); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN98);
+
+ pushFollow(FOLLOW_or_constr_in_unary_constr1484);
+ or_constr99=or_constr();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_or_constr.add(or_constr99.getTree());
+ RIGHT_PAREN100=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_unary_constr1486); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN100);
+
+
+ // AST REWRITE
+ // elements: or_constr
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 253:37: -> or_constr
+ {
+ adaptor.addChild(root_0, stream_or_constr.next());
+
+ }
+
+ }
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end unary_constr
+
+ public static class field_constraint_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start field_constraint
+ // /Users/porcelli/Desktop/testes/NewDRL.g:257:1: field_constraint : ( label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )? -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( ^( VK_EVAL[$arw] paren_chunk ) )? ) ) -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) ) | accessor_path or_restr_connective -> ^( VT_FIELD accessor_path or_restr_connective ) );
+ public final field_constraint_return field_constraint() throws RecognitionException {
+ field_constraint_return retval = new field_constraint_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token arw=null;
+ label_return label101 = null;
+
+ accessor_path_return accessor_path102 = null;
+
+ or_restr_connective_return or_restr_connective103 = null;
+
+ paren_chunk_return paren_chunk104 = null;
+
+ accessor_path_return accessor_path105 = null;
+
+ or_restr_connective_return or_restr_connective106 = null;
+
+
+ Object arw_tree=null;
+ RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
+ RewriteRuleSubtreeStream stream_accessor_path=new RewriteRuleSubtreeStream(adaptor,"rule accessor_path");
+ RewriteRuleSubtreeStream stream_label=new RewriteRuleSubtreeStream(adaptor,"rule label");
+ RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
+ RewriteRuleSubtreeStream stream_or_restr_connective=new RewriteRuleSubtreeStream(adaptor,"rule or_restr_connective");
+
+ boolean isArrow = false;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:260:3: ( label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )? -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( ^( VK_EVAL[$arw] paren_chunk ) )? ) ) -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) ) | accessor_path or_restr_connective -> ^( VT_FIELD accessor_path or_restr_connective ) )
+ int alt37=2;
+ int LA37_0 = input.LA(1);
+
+ if ( (LA37_0==ID) ) {
+ int LA37_1 = input.LA(2);
+
+ if ( (LA37_1==COLON) ) {
+ alt37=1;
+ }
+ else if ( (LA37_1==LEFT_PAREN||(LA37_1>=ID && LA37_1<=DOT)||(LA37_1>=EQUAL && LA37_1<=NOT_EQUAL)||LA37_1==LEFT_SQUARE) ) {
+ alt37=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("257:1: field_constraint : ( label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )? -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( ^( VK_EVAL[$arw] paren_chunk ) )? ) ) -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) ) | accessor_path or_restr_connective -> ^( VT_FIELD accessor_path or_restr_connective ) );", 37, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("257:1: field_constraint : ( label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )? -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( ^( VK_EVAL[$arw] paren_chunk ) )? ) ) -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) ) | accessor_path or_restr_connective -> ^( VT_FIELD accessor_path or_restr_connective ) );", 37, 0, input);
+
+ throw nvae;
+ }
+ switch (alt37) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:260:5: label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )?
+ {
+ pushFollow(FOLLOW_label_in_field_constraint1505);
+ label101=label();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_label.add(label101.getTree());
+ pushFollow(FOLLOW_accessor_path_in_field_constraint1507);
+ accessor_path102=accessor_path();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_accessor_path.add(accessor_path102.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:260:25: ( or_restr_connective | arw= ARROW paren_chunk )?
+ int alt36=3;
+ int LA36_0 = input.LA(1);
+
+ if ( (LA36_0==LEFT_PAREN||LA36_0==ID||(LA36_0>=EQUAL && LA36_0<=NOT_EQUAL)) ) {
+ alt36=1;
+ }
+ else if ( (LA36_0==ARROW) ) {
+ alt36=2;
+ }
+ switch (alt36) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:260:27: or_restr_connective
+ {
+ pushFollow(FOLLOW_or_restr_connective_in_field_constraint1511);
+ or_restr_connective103=or_restr_connective();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_or_restr_connective.add(or_restr_connective103.getTree());
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:260:49: arw= ARROW paren_chunk
+ {
+ arw=(Token)input.LT(1);
+ match(input,ARROW,FOLLOW_ARROW_in_field_constraint1517); if (failed) return retval;
+ if ( backtracking==0 ) stream_ARROW.add(arw);
+
+ pushFollow(FOLLOW_paren_chunk_in_field_constraint1519);
+ paren_chunk104=paren_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_paren_chunk.add(paren_chunk104.getTree());
+ if ( backtracking==0 ) {
+ isArrow = true;
+ }
+
+ }
+ break;
+
+ }
+
+
+ // AST REWRITE
+ // elements: or_restr_connective, label, paren_chunk, label, accessor_path, accessor_path
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 261:3: -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( ^( VK_EVAL[$arw] paren_chunk ) )? ) )
+ if (isArrow) {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:261:17: ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( ^( VK_EVAL[$arw] paren_chunk ) )? ) )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_BIND_FIELD, "VT_BIND_FIELD"), root_1);
+
+ adaptor.addChild(root_1, stream_label.next());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:261:39: ^( VT_FIELD accessor_path ( ^( VK_EVAL[$arw] paren_chunk ) )? )
+ {
+ Object root_2 = (Object)adaptor.nil();
+ root_2 = (Object)adaptor.becomeRoot(adaptor.create(VT_FIELD, "VT_FIELD"), root_2);
+
+ adaptor.addChild(root_2, stream_accessor_path.next());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:261:64: ( ^( VK_EVAL[$arw] paren_chunk ) )?
+ if ( stream_paren_chunk.hasNext() ) {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:261:64: ^( VK_EVAL[$arw] paren_chunk )
+ {
+ Object root_3 = (Object)adaptor.nil();
+ root_3 = (Object)adaptor.becomeRoot(adaptor.create(VK_EVAL, arw), root_3);
+
+ adaptor.addChild(root_3, stream_paren_chunk.next());
+
+ adaptor.addChild(root_2, root_3);
+ }
+
+ }
+ stream_paren_chunk.reset();
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+ else // 262:3: -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:262:6: ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_BIND_FIELD, "VT_BIND_FIELD"), root_1);
+
+ adaptor.addChild(root_1, stream_label.next());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:262:28: ^( VT_FIELD accessor_path ( or_restr_connective )? )
+ {
+ Object root_2 = (Object)adaptor.nil();
+ root_2 = (Object)adaptor.becomeRoot(adaptor.create(VT_FIELD, "VT_FIELD"), root_2);
+
+ adaptor.addChild(root_2, stream_accessor_path.next());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:262:53: ( or_restr_connective )?
+ if ( stream_or_restr_connective.hasNext() ) {
+ adaptor.addChild(root_2, stream_or_restr_connective.next());
+
+ }
+ stream_or_restr_connective.reset();
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:263:4: accessor_path or_restr_connective
+ {
+ pushFollow(FOLLOW_accessor_path_in_field_constraint1573);
+ accessor_path105=accessor_path();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_accessor_path.add(accessor_path105.getTree());
+ pushFollow(FOLLOW_or_restr_connective_in_field_constraint1575);
+ or_restr_connective106=or_restr_connective();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_or_restr_connective.add(or_restr_connective106.getTree());
+
+ // AST REWRITE
+ // elements: accessor_path, or_restr_connective
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 264:3: -> ^( VT_FIELD accessor_path or_restr_connective )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:264:6: ^( VT_FIELD accessor_path or_restr_connective )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_FIELD, "VT_FIELD"), root_1);
+
+ adaptor.addChild(root_1, stream_accessor_path.next());
+ adaptor.addChild(root_1, stream_or_restr_connective.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end field_constraint
+
+ public static class label_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start label
+ // /Users/porcelli/Desktop/testes/NewDRL.g:267:1: label : value= ID COLON -> VT_LABEL[$value] ;
+ public final label_return label() throws RecognitionException {
+ label_return retval = new label_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token value=null;
+ Token COLON107=null;
+
+ Object value_tree=null;
+ Object COLON107_tree=null;
+ RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:267:7: (value= ID COLON -> VT_LABEL[$value] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:267:9: value= ID COLON
+ {
+ value=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_label1599); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(value);
+
+ COLON107=(Token)input.LT(1);
+ match(input,COLON,FOLLOW_COLON_in_label1601); if (failed) return retval;
+ if ( backtracking==0 ) stream_COLON.add(COLON107);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 267:24: -> VT_LABEL[$value]
+ {
+ adaptor.addChild(root_0, adaptor.create(VT_LABEL, value));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end label
+
+ public static class or_restr_connective_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start or_restr_connective
+ // /Users/porcelli/Desktop/testes/NewDRL.g:270:1: or_restr_connective : and_restr_connective ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective )* ;
+ public final or_restr_connective_return or_restr_connective() throws RecognitionException {
+ or_restr_connective_return retval = new or_restr_connective_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token DOUBLE_PIPE109=null;
+ and_restr_connective_return and_restr_connective108 = null;
+
+ and_restr_connective_return and_restr_connective110 = null;
+
+
+ Object DOUBLE_PIPE109_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:271:2: ( and_restr_connective ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective )* )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:271:4: and_restr_connective ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective )*
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective1617);
+ and_restr_connective108=and_restr_connective();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, and_restr_connective108.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:271:25: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective )*
+ loop38:
+ do {
+ int alt38=2;
+ alt38 = dfa38.predict(input);
+ switch (alt38) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:271:53: DOUBLE_PIPE and_restr_connective
+ {
+ DOUBLE_PIPE109=(Token)input.LT(1);
+ match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_restr_connective1629); if (failed) return retval;
+ if ( backtracking==0 ) {
+ DOUBLE_PIPE109_tree = (Object)adaptor.create(DOUBLE_PIPE109);
+ root_0 = (Object)adaptor.becomeRoot(DOUBLE_PIPE109_tree, root_0);
+ }
+ pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective1632);
+ and_restr_connective110=and_restr_connective();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, and_restr_connective110.getTree());
+
+ }
+ break;
+
+ default :
+ break loop38;
+ }
+ } while (true);
+
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end or_restr_connective
+
+ public static class and_restr_connective_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start and_restr_connective
+ // /Users/porcelli/Desktop/testes/NewDRL.g:274:1: and_restr_connective : constraint_expression ( options {backtrack=true; } : DOUBLE_AMPER constraint_expression )* ;
+ public final and_restr_connective_return and_restr_connective() throws RecognitionException {
+ and_restr_connective_return retval = new and_restr_connective_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token DOUBLE_AMPER112=null;
+ constraint_expression_return constraint_expression111 = null;
+
+ constraint_expression_return constraint_expression113 = null;
+
+
+ Object DOUBLE_AMPER112_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:275:2: ( constraint_expression ( options {backtrack=true; } : DOUBLE_AMPER constraint_expression )* )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:275:4: constraint_expression ( options {backtrack=true; } : DOUBLE_AMPER constraint_expression )*
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_constraint_expression_in_and_restr_connective1647);
+ constraint_expression111=constraint_expression();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, constraint_expression111.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:275:26: ( options {backtrack=true; } : DOUBLE_AMPER constraint_expression )*
+ loop39:
+ do {
+ int alt39=2;
+ alt39 = dfa39.predict(input);
+ switch (alt39) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:275:54: DOUBLE_AMPER constraint_expression
+ {
+ DOUBLE_AMPER112=(Token)input.LT(1);
+ match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_restr_connective1659); if (failed) return retval;
+ if ( backtracking==0 ) {
+ DOUBLE_AMPER112_tree = (Object)adaptor.create(DOUBLE_AMPER112);
+ root_0 = (Object)adaptor.becomeRoot(DOUBLE_AMPER112_tree, root_0);
+ }
+ pushFollow(FOLLOW_constraint_expression_in_and_restr_connective1662);
+ constraint_expression113=constraint_expression();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, constraint_expression113.getTree());
+
+ }
+ break;
+
+ default :
+ break loop39;
+ }
+ } while (true);
+
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end and_restr_connective
+
+ public static class constraint_expression_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start constraint_expression
+ // /Users/porcelli/Desktop/testes/NewDRL.g:278:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective );
+ public final constraint_expression_return constraint_expression() throws RecognitionException {
+ constraint_expression_return retval = new constraint_expression_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_PAREN116=null;
+ Token RIGHT_PAREN118=null;
+ compound_operator_return compound_operator114 = null;
+
+ simple_operator_return simple_operator115 = null;
+
+ or_restr_connective_return or_restr_connective117 = null;
+
+
+ Object LEFT_PAREN116_tree=null;
+ Object RIGHT_PAREN118_tree=null;
+ RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
+ RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
+ RewriteRuleSubtreeStream stream_or_restr_connective=new RewriteRuleSubtreeStream(adaptor,"rule or_restr_connective");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:281:3: ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective )
+ int alt40=3;
+ switch ( input.LA(1) ) {
+ case ID:
+ {
+ switch ( input.LA(2) ) {
+ case ID:
+ {
+ int LA40_9 = input.LA(3);
+
+ if ( (LA40_9==LEFT_SQUARE) ) {
+ alt40=2;
+ }
+ else if ( (LA40_9==ID||(LA40_9>=STRING && LA40_9<=NULL)) && ((validateIdentifierKey("not")))) {
+ alt40=2;
+ }
+ else if ( (LA40_9==LEFT_PAREN) && ((validateIdentifierKey("not")))) {
+ int LA40_16 = input.LA(4);
+
+ if ( ((validateIdentifierKey("not"))) ) {
+ alt40=1;
+ }
+ else if ( ((validateIdentifierKey("not"))) ) {
+ alt40=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("278:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective );", 40, 16, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA40_9==EOF||(LA40_9>=RIGHT_PAREN && LA40_9<=DOUBLE_AMPER)||LA40_9==COMMA||LA40_9==DOT) ) {
+ alt40=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("278:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective );", 40, 9, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case STRING:
+ case INT:
+ case FLOAT:
+ case BOOL:
+ case NULL:
+ case LEFT_SQUARE:
+ {
+ alt40=2;
+ }
+ break;
+ case LEFT_PAREN:
+ {
+ switch ( input.LA(3) ) {
+ case ID:
+ {
+ int LA40_23 = input.LA(4);
+
+ if ( ((validateIdentifierKey("in"))) ) {
+ alt40=1;
+ }
+ else if ( (true) ) {
+ alt40=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("278:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective );", 40, 23, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case LEFT_PAREN:
+ {
+ int LA40_24 = input.LA(4);
+
+ if ( ((validateIdentifierKey("in"))) ) {
+ alt40=1;
+ }
+ else if ( (true) ) {
+ alt40=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("278:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective );", 40, 24, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case VT_FACT:
+ case VT_CONSTRAINTS:
+ case VT_QUALIFIED_ID:
+ case VT_LABEL:
+ case VT_NAME:
+ case VT_CURLY_CHUNK:
+ case VT_SQUARE_CHUNK:
+ case VT_PAREN_CHUNK:
+ case VT_AND_IMPLICIT:
+ case VT_AND_PREFIX:
+ case VT_OR_PREFIX:
+ case VT_AND_INFIX:
+ case VT_OR_INFIX:
+ case VT_ACCUMULATE_INIT_CLAUSE:
+ case VT_ACCUMULATE_ID_CLAUSE:
+ case VT_FROM_SOURCE:
+ case VT_EXPRESSION_CHAIN:
+ case VT_PATTERN:
+ case VT_FACT_BINDING:
+ case VT_FACT_OR:
+ case VT_BIND_FIELD:
+ case VT_FIELD:
+ case VT_ACCESSOR_PATH:
+ case VT_ACCESSOR_ELEMENT:
+ case VK_EVAL:
+ case VK_CONTAINS:
+ case VK_MATCHES:
+ case VK_EXCLUDES:
+ case VK_SOUNDSLIKE:
+ case VK_MEMBEROF:
+ case VK_ENTRY_POINT:
+ case VK_NOT:
+ case VK_IN:
+ case VK_OR:
+ case VK_AND:
+ case VK_EXISTS:
+ case VK_FORALL:
+ case VK_FROM:
+ case VK_ACCUMULATE:
+ case VK_INIT:
+ case VK_ACTION:
+ case VK_REVERSE:
+ case VK_RESULT:
+ case VK_COLLECT:
+ case RIGHT_PAREN:
+ case DOUBLE_PIPE:
+ case DOUBLE_AMPER:
+ case SEMICOLON:
+ case COMMA:
+ case DOT:
+ case ARROW:
+ case COLON:
+ case EQUAL:
+ case GREATER:
+ case GREATER_EQUAL:
+ case LESS:
+ case LESS_EQUAL:
+ case NOT_EQUAL:
+ case LEFT_SQUARE:
+ case RIGHT_SQUARE:
+ case LEFT_CURLY:
+ case RIGHT_CURLY:
+ case MISC:
+ case EOL:
+ case WS:
+ case EscapeSequence:
+ case HexDigit:
+ case UnicodeEscape:
+ case OctalEscape:
+ case TILDE:
+ case SH_STYLE_SINGLE_LINE_COMMENT:
+ case C_STYLE_SINGLE_LINE_COMMENT:
+ case MULTI_LINE_COMMENT:
+ {
+ alt40=2;
+ }
+ break;
+ case STRING:
+ case INT:
+ case FLOAT:
+ case BOOL:
+ case NULL:
+ {
+ int LA40_26 = input.LA(4);
+
+ if ( ((validateIdentifierKey("in"))) ) {
+ alt40=1;
+ }
+ else if ( (true) ) {
+ alt40=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("278:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective );", 40, 26, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("278:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective );", 40, 11, input);
+
+ throw nvae;
+ }
+
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("278:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective );", 40, 1, input);
+
+ throw nvae;
+ }
+
+ }
+ break;
+ case EQUAL:
+ case GREATER:
+ case GREATER_EQUAL:
+ case LESS:
+ case LESS_EQUAL:
+ case NOT_EQUAL:
+ {
+ alt40=2;
+ }
+ break;
+ case LEFT_PAREN:
+ {
+ alt40=3;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("278:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective );", 40, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt40) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:281:5: compound_operator
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_compound_operator_in_constraint_expression1684);
+ compound_operator114=compound_operator();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, compound_operator114.getTree());
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:282:4: simple_operator
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_simple_operator_in_constraint_expression1689);
+ simple_operator115=simple_operator();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, simple_operator115.getTree());
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:283:4: LEFT_PAREN or_restr_connective RIGHT_PAREN
+ {
+ LEFT_PAREN116=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constraint_expression1694); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN116);
+
+ pushFollow(FOLLOW_or_restr_connective_in_constraint_expression1696);
+ or_restr_connective117=or_restr_connective();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_or_restr_connective.add(or_restr_connective117.getTree());
+ RIGHT_PAREN118=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constraint_expression1698); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN118);
+
+
+ // AST REWRITE
+ // elements: or_restr_connective
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 283:47: -> or_restr_connective
+ {
+ adaptor.addChild(root_0, stream_or_restr_connective.next());
+
+ }
+
+ }
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end constraint_expression
+
+ public static class simple_operator_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start simple_operator
+ // /Users/porcelli/Desktop/testes/NewDRL.g:286:1: simple_operator : ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | not_key ( contains_key | soundslike_key | matches_key | memberof_key | ID ( square_chunk )? ) | contains_key | excludes_key | matches_key | soundslike_key | memberof_key | ID ( square_chunk )? ) expression_value ;
+ public final simple_operator_return simple_operator() throws RecognitionException {
+ simple_operator_return retval = new simple_operator_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token EQUAL119=null;
+ Token GREATER120=null;
+ Token GREATER_EQUAL121=null;
+ Token LESS122=null;
+ Token LESS_EQUAL123=null;
+ Token NOT_EQUAL124=null;
+ Token ID130=null;
+ Token ID137=null;
+ not_key_return not_key125 = null;
+
+ contains_key_return contains_key126 = null;
+
+ soundslike_key_return soundslike_key127 = null;
+
+ matches_key_return matches_key128 = null;
+
+ memberof_key_return memberof_key129 = null;
+
+ square_chunk_return square_chunk131 = null;
+
+ contains_key_return contains_key132 = null;
+
+ excludes_key_return excludes_key133 = null;
+
+ matches_key_return matches_key134 = null;
+
+ soundslike_key_return soundslike_key135 = null;
+
+ memberof_key_return memberof_key136 = null;
+
+ square_chunk_return square_chunk138 = null;
+
+ expression_value_return expression_value139 = null;
+
+
+ Object EQUAL119_tree=null;
+ Object GREATER120_tree=null;
+ Object GREATER_EQUAL121_tree=null;
+ Object LESS122_tree=null;
+ Object LESS_EQUAL123_tree=null;
+ Object NOT_EQUAL124_tree=null;
+ Object ID130_tree=null;
+ Object ID137_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:287:2: ( ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | not_key ( contains_key | soundslike_key | matches_key | memberof_key | ID ( square_chunk )? ) | contains_key | excludes_key | matches_key | soundslike_key | memberof_key | ID ( square_chunk )? ) expression_value )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:287:4: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | not_key ( contains_key | soundslike_key | matches_key | memberof_key | ID ( square_chunk )? ) | contains_key | excludes_key | matches_key | soundslike_key | memberof_key | ID ( square_chunk )? ) expression_value
+ {
+ root_0 = (Object)adaptor.nil();
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:287:4: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | not_key ( contains_key | soundslike_key | matches_key | memberof_key | ID ( square_chunk )? ) | contains_key | excludes_key | matches_key | soundslike_key | memberof_key | ID ( square_chunk )? )
+ int alt44=13;
+ switch ( input.LA(1) ) {
+ case EQUAL:
+ {
+ alt44=1;
+ }
+ break;
+ case GREATER:
+ {
+ alt44=2;
+ }
+ break;
+ case GREATER_EQUAL:
+ {
+ alt44=3;
+ }
+ break;
+ case LESS:
+ {
+ alt44=4;
+ }
+ break;
+ case LESS_EQUAL:
+ {
+ alt44=5;
+ }
+ break;
+ case NOT_EQUAL:
+ {
+ alt44=6;
+ }
+ break;
+ case ID:
+ {
+ int LA44_7 = input.LA(2);
+
+ if ( (LA44_7==ID) && ((validateIdentifierKey("not")))) {
+ alt44=7;
+ }
+ else if ( ((validateIdentifierKey("contains"))) ) {
+ alt44=8;
+ }
+ else if ( ((validateIdentifierKey("excludes"))) ) {
+ alt44=9;
+ }
+ else if ( ((validateIdentifierKey("matches"))) ) {
+ alt44=10;
+ }
+ else if ( ((validateIdentifierKey("soundslike"))) ) {
+ alt44=11;
+ }
+ else if ( ((validateIdentifierKey("memberof"))) ) {
+ alt44=12;
+ }
+ else if ( (true) ) {
+ alt44=13;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("287:4: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | not_key ( contains_key | soundslike_key | matches_key | memberof_key | ID ( square_chunk )? ) | contains_key | excludes_key | matches_key | soundslike_key | memberof_key | ID ( square_chunk )? )", 44, 7, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("287:4: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | not_key ( contains_key | soundslike_key | matches_key | memberof_key | ID ( square_chunk )? ) | contains_key | excludes_key | matches_key | soundslike_key | memberof_key | ID ( square_chunk )? )", 44, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt44) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:287:5: EQUAL
+ {
+ EQUAL119=(Token)input.LT(1);
+ match(input,EQUAL,FOLLOW_EQUAL_in_simple_operator1714); if (failed) return retval;
+ if ( backtracking==0 ) {
+ EQUAL119_tree = (Object)adaptor.create(EQUAL119);
+ root_0 = (Object)adaptor.becomeRoot(EQUAL119_tree, root_0);
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:288:4: GREATER
+ {
+ GREATER120=(Token)input.LT(1);
+ match(input,GREATER,FOLLOW_GREATER_in_simple_operator1720); if (failed) return retval;
+ if ( backtracking==0 ) {
+ GREATER120_tree = (Object)adaptor.create(GREATER120);
+ root_0 = (Object)adaptor.becomeRoot(GREATER120_tree, root_0);
+ }
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:289:4: GREATER_EQUAL
+ {
+ GREATER_EQUAL121=(Token)input.LT(1);
+ match(input,GREATER_EQUAL,FOLLOW_GREATER_EQUAL_in_simple_operator1726); if (failed) return retval;
+ if ( backtracking==0 ) {
+ GREATER_EQUAL121_tree = (Object)adaptor.create(GREATER_EQUAL121);
+ root_0 = (Object)adaptor.becomeRoot(GREATER_EQUAL121_tree, root_0);
+ }
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:290:4: LESS
+ {
+ LESS122=(Token)input.LT(1);
+ match(input,LESS,FOLLOW_LESS_in_simple_operator1732); if (failed) return retval;
+ if ( backtracking==0 ) {
+ LESS122_tree = (Object)adaptor.create(LESS122);
+ root_0 = (Object)adaptor.becomeRoot(LESS122_tree, root_0);
+ }
+
+ }
+ break;
+ case 5 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:291:4: LESS_EQUAL
+ {
+ LESS_EQUAL123=(Token)input.LT(1);
+ match(input,LESS_EQUAL,FOLLOW_LESS_EQUAL_in_simple_operator1738); if (failed) return retval;
+ if ( backtracking==0 ) {
+ LESS_EQUAL123_tree = (Object)adaptor.create(LESS_EQUAL123);
+ root_0 = (Object)adaptor.becomeRoot(LESS_EQUAL123_tree, root_0);
+ }
+
+ }
+ break;
+ case 6 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:292:4: NOT_EQUAL
+ {
+ NOT_EQUAL124=(Token)input.LT(1);
+ match(input,NOT_EQUAL,FOLLOW_NOT_EQUAL_in_simple_operator1744); if (failed) return retval;
+ if ( backtracking==0 ) {
+ NOT_EQUAL124_tree = (Object)adaptor.create(NOT_EQUAL124);
+ root_0 = (Object)adaptor.becomeRoot(NOT_EQUAL124_tree, root_0);
+ }
+
+ }
+ break;
+ case 7 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:293:4: not_key ( contains_key | soundslike_key | matches_key | memberof_key | ID ( square_chunk )? )
+ {
+ pushFollow(FOLLOW_not_key_in_simple_operator1750);
+ not_key125=not_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, not_key125.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:293:12: ( contains_key | soundslike_key | matches_key | memberof_key | ID ( square_chunk )? )
+ int alt42=5;
+ int LA42_0 = input.LA(1);
+
+ if ( (LA42_0==ID) ) {
+ int LA42_1 = input.LA(2);
+
+ if ( ((validateIdentifierKey("contains"))) ) {
+ alt42=1;
+ }
+ else if ( ((validateIdentifierKey("soundslike"))) ) {
+ alt42=2;
+ }
+ else if ( ((validateIdentifierKey("matches"))) ) {
+ alt42=3;
+ }
+ else if ( ((validateIdentifierKey("memberof"))) ) {
+ alt42=4;
+ }
+ else if ( (true) ) {
+ alt42=5;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("293:12: ( contains_key | soundslike_key | matches_key | memberof_key | ID ( square_chunk )? )", 42, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("293:12: ( contains_key | soundslike_key | matches_key | memberof_key | ID ( square_chunk )? )", 42, 0, input);
+
+ throw nvae;
+ }
+ switch (alt42) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:293:13: contains_key
+ {
+ pushFollow(FOLLOW_contains_key_in_simple_operator1753);
+ contains_key126=contains_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(contains_key126.getTree(), root_0);
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:293:27: soundslike_key
+ {
+ pushFollow(FOLLOW_soundslike_key_in_simple_operator1756);
+ soundslike_key127=soundslike_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(soundslike_key127.getTree(), root_0);
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:293:43: matches_key
+ {
+ pushFollow(FOLLOW_matches_key_in_simple_operator1759);
+ matches_key128=matches_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(matches_key128.getTree(), root_0);
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:293:56: memberof_key
+ {
+ pushFollow(FOLLOW_memberof_key_in_simple_operator1762);
+ memberof_key129=memberof_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(memberof_key129.getTree(), root_0);
+
+ }
+ break;
+ case 5 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:293:70: ID ( square_chunk )?
+ {
+ ID130=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_simple_operator1765); if (failed) return retval;
+ if ( backtracking==0 ) {
+ ID130_tree = (Object)adaptor.create(ID130);
+ root_0 = (Object)adaptor.becomeRoot(ID130_tree, root_0);
+ }
+ // /Users/porcelli/Desktop/testes/NewDRL.g:293:74: ( square_chunk )?
+ int alt41=2;
+ int LA41_0 = input.LA(1);
+
+ if ( (LA41_0==LEFT_SQUARE) ) {
+ alt41=1;
+ }
+ switch (alt41) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:293:74: square_chunk
+ {
+ pushFollow(FOLLOW_square_chunk_in_simple_operator1768);
+ square_chunk131=square_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, square_chunk131.getTree());
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:294:10: contains_key
+ {
+ pushFollow(FOLLOW_contains_key_in_simple_operator1781);
+ contains_key132=contains_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(contains_key132.getTree(), root_0);
+
+ }
+ break;
+ case 9 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:295:4: excludes_key
+ {
+ pushFollow(FOLLOW_excludes_key_in_simple_operator1787);
+ excludes_key133=excludes_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(excludes_key133.getTree(), root_0);
+
+ }
+ break;
+ case 10 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:296:4: matches_key
+ {
+ pushFollow(FOLLOW_matches_key_in_simple_operator1793);
+ matches_key134=matches_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(matches_key134.getTree(), root_0);
+
+ }
+ break;
+ case 11 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:297:4: soundslike_key
+ {
+ pushFollow(FOLLOW_soundslike_key_in_simple_operator1799);
+ soundslike_key135=soundslike_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(soundslike_key135.getTree(), root_0);
+
+ }
+ break;
+ case 12 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:298:4: memberof_key
+ {
+ pushFollow(FOLLOW_memberof_key_in_simple_operator1805);
+ memberof_key136=memberof_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(memberof_key136.getTree(), root_0);
+
+ }
+ break;
+ case 13 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:299:4: ID ( square_chunk )?
+ {
+ ID137=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_simple_operator1811); if (failed) return retval;
+ if ( backtracking==0 ) {
+ ID137_tree = (Object)adaptor.create(ID137);
+ root_0 = (Object)adaptor.becomeRoot(ID137_tree, root_0);
+ }
+ // /Users/porcelli/Desktop/testes/NewDRL.g:299:8: ( square_chunk )?
+ int alt43=2;
+ int LA43_0 = input.LA(1);
+
+ if ( (LA43_0==LEFT_SQUARE) ) {
+ alt43=1;
+ }
+ switch (alt43) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:299:8: square_chunk
+ {
+ pushFollow(FOLLOW_square_chunk_in_simple_operator1814);
+ square_chunk138=square_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, square_chunk138.getTree());
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_expression_value_in_simple_operator1819);
+ expression_value139=expression_value();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, expression_value139.getTree());
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end simple_operator
+
+ public static class compound_operator_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start compound_operator
+ // /Users/porcelli/Desktop/testes/NewDRL.g:304:1: compound_operator : ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN ;
+ public final compound_operator_return compound_operator() throws RecognitionException {
+ compound_operator_return retval = new compound_operator_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_PAREN143=null;
+ Token COMMA145=null;
+ Token RIGHT_PAREN147=null;
+ in_key_return in_key140 = null;
+
+ not_key_return not_key141 = null;
+
+ in_key_return in_key142 = null;
+
+ expression_value_return expression_value144 = null;
+
+ expression_value_return expression_value146 = null;
+
+
+ Object LEFT_PAREN143_tree=null;
+ Object COMMA145_tree=null;
+ Object RIGHT_PAREN147_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:305:2: ( ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:305:4: ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN
+ {
+ root_0 = (Object)adaptor.nil();
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:305:4: ( in_key | not_key in_key )
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+
+ if ( (LA45_0==ID) && (((validateIdentifierKey("not"))||(validateIdentifierKey("in"))))) {
+ int LA45_1 = input.LA(2);
+
+ if ( (LA45_1==ID) && ((validateIdentifierKey("not")))) {
+ alt45=2;
+ }
+ else if ( (LA45_1==LEFT_PAREN) && ((validateIdentifierKey("in")))) {
+ alt45=1;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("305:4: ( in_key | not_key in_key )", 45, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("305:4: ( in_key | not_key in_key )", 45, 0, input);
+
+ throw nvae;
+ }
+ switch (alt45) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:305:6: in_key
+ {
+ pushFollow(FOLLOW_in_key_in_compound_operator1834);
+ in_key140=in_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(in_key140.getTree(), root_0);
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:305:16: not_key in_key
+ {
+ pushFollow(FOLLOW_not_key_in_compound_operator1839);
+ not_key141=not_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, not_key141.getTree());
+ pushFollow(FOLLOW_in_key_in_compound_operator1841);
+ in_key142=in_key();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(in_key142.getTree(), root_0);
+
+ }
+ break;
+
+ }
+
+ LEFT_PAREN143=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_compound_operator1846); if (failed) return retval;
+ pushFollow(FOLLOW_expression_value_in_compound_operator1849);
+ expression_value144=expression_value();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, expression_value144.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:305:63: ( COMMA expression_value )*
+ loop46:
+ do {
+ int alt46=2;
+ int LA46_0 = input.LA(1);
+
+ if ( (LA46_0==COMMA) ) {
+ alt46=1;
+ }
+
+
+ switch (alt46) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:305:65: COMMA expression_value
+ {
+ COMMA145=(Token)input.LT(1);
+ match(input,COMMA,FOLLOW_COMMA_in_compound_operator1853); if (failed) return retval;
+ pushFollow(FOLLOW_expression_value_in_compound_operator1856);
+ expression_value146=expression_value();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, expression_value146.getTree());
+
+ }
+ break;
+
+ default :
+ break loop46;
+ }
+ } while (true);
+
+ RIGHT_PAREN147=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_compound_operator1861); if (failed) return retval;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end compound_operator
+
+ public static class expression_value_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start expression_value
+ // /Users/porcelli/Desktop/testes/NewDRL.g:308:1: expression_value : ( accessor_path | literal_constraint | paren_chunk );
+ public final expression_value_return expression_value() throws RecognitionException {
+ expression_value_return retval = new expression_value_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ accessor_path_return accessor_path148 = null;
+
+ literal_constraint_return literal_constraint149 = null;
+
+ paren_chunk_return paren_chunk150 = null;
+
+
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:309:2: ( accessor_path | literal_constraint | paren_chunk )
+ int alt47=3;
+ switch ( input.LA(1) ) {
+ case ID:
+ {
+ alt47=1;
+ }
+ break;
+ case STRING:
+ case INT:
+ case FLOAT:
+ case BOOL:
+ case NULL:
+ {
+ alt47=2;
+ }
+ break;
+ case LEFT_PAREN:
+ {
+ alt47=3;
+ }
+ break;
+ default:
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("308:1: expression_value : ( accessor_path | literal_constraint | paren_chunk );", 47, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt47) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:309:4: accessor_path
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_accessor_path_in_expression_value1873);
+ accessor_path148=accessor_path();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, accessor_path148.getTree());
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:310:4: literal_constraint
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_literal_constraint_in_expression_value1878);
+ literal_constraint149=literal_constraint();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, literal_constraint149.getTree());
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:311:4: paren_chunk
+ {
+ root_0 = (Object)adaptor.nil();
+
+ pushFollow(FOLLOW_paren_chunk_in_expression_value1884);
+ paren_chunk150=paren_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, paren_chunk150.getTree());
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end expression_value
+
+ public static class literal_constraint_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start literal_constraint
+ // /Users/porcelli/Desktop/testes/NewDRL.g:314:1: literal_constraint : ( STRING | INT | FLOAT | BOOL | NULL );
+ public final literal_constraint_return literal_constraint() throws RecognitionException {
+ literal_constraint_return retval = new literal_constraint_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token set151=null;
+
+ Object set151_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:315:2: ( STRING | INT | FLOAT | BOOL | NULL )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:
+ {
+ root_0 = (Object)adaptor.nil();
+
+ set151=(Token)input.LT(1);
+ if ( (input.LA(1)>=STRING && input.LA(1)<=NULL) ) {
+ input.consume();
+ if ( backtracking==0 ) adaptor.addChild(root_0, adaptor.create(set151));
+ errorRecovery=false;failed=false;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recoverFromMismatchedSet(input,mse,FOLLOW_set_in_literal_constraint0); throw mse;
+ }
+
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end literal_constraint
+
+ public static class qualified_id_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start qualified_id
+ // /Users/porcelli/Desktop/testes/NewDRL.g:322:1: qualified_id : ID ( DOT ID )* ( LEFT_SQUARE RIGHT_SQUARE )* -> ^( VT_QUALIFIED_ID ( ID )+ ) ;
+ public final qualified_id_return qualified_id() throws RecognitionException {
+ qualified_id_return retval = new qualified_id_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token ID152=null;
+ Token DOT153=null;
+ Token ID154=null;
+ Token LEFT_SQUARE155=null;
+ Token RIGHT_SQUARE156=null;
+
+ Object ID152_tree=null;
+ Object DOT153_tree=null;
+ Object ID154_tree=null;
+ Object LEFT_SQUARE155_tree=null;
+ Object RIGHT_SQUARE156_tree=null;
+ RewriteRuleTokenStream stream_LEFT_SQUARE=new RewriteRuleTokenStream(adaptor,"token LEFT_SQUARE");
+ RewriteRuleTokenStream stream_RIGHT_SQUARE=new RewriteRuleTokenStream(adaptor,"token RIGHT_SQUARE");
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+ RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:323:2: ( ID ( DOT ID )* ( LEFT_SQUARE RIGHT_SQUARE )* -> ^( VT_QUALIFIED_ID ( ID )+ ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:323:4: ID ( DOT ID )* ( LEFT_SQUARE RIGHT_SQUARE )*
+ {
+ ID152=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_qualified_id1926); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(ID152);
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:323:7: ( DOT ID )*
+ loop48:
+ do {
+ int alt48=2;
+ int LA48_0 = input.LA(1);
+
+ if ( (LA48_0==DOT) ) {
+ alt48=1;
+ }
+
+
+ switch (alt48) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:323:9: DOT ID
+ {
+ DOT153=(Token)input.LT(1);
+ match(input,DOT,FOLLOW_DOT_in_qualified_id1930); if (failed) return retval;
+ if ( backtracking==0 ) stream_DOT.add(DOT153);
+
+ ID154=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_qualified_id1932); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(ID154);
+
+
+ }
+ break;
+
+ default :
+ break loop48;
+ }
+ } while (true);
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:323:19: ( LEFT_SQUARE RIGHT_SQUARE )*
+ loop49:
+ do {
+ int alt49=2;
+ int LA49_0 = input.LA(1);
+
+ if ( (LA49_0==LEFT_SQUARE) ) {
+ alt49=1;
+ }
+
+
+ switch (alt49) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:323:21: LEFT_SQUARE RIGHT_SQUARE
+ {
+ LEFT_SQUARE155=(Token)input.LT(1);
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_qualified_id1939); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_SQUARE.add(LEFT_SQUARE155);
+
+ RIGHT_SQUARE156=(Token)input.LT(1);
+ match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_qualified_id1941); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_SQUARE.add(RIGHT_SQUARE156);
+
+
+ }
+ break;
+
+ default :
+ break loop49;
+ }
+ } while (true);
+
+
+ // AST REWRITE
+ // elements: ID
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 324:2: -> ^( VT_QUALIFIED_ID ( ID )+ )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:324:5: ^( VT_QUALIFIED_ID ( ID )+ )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_QUALIFIED_ID, "VT_QUALIFIED_ID"), root_1);
+
+ if ( !(stream_ID.hasNext()) ) {
+ throw new RewriteEarlyExitException();
+ }
+ while ( stream_ID.hasNext() ) {
+ adaptor.addChild(root_1, stream_ID.next());
+
+ }
+ stream_ID.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end qualified_id
+
+ public static class accessor_path_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start accessor_path
+ // /Users/porcelli/Desktop/testes/NewDRL.g:327:1: accessor_path : accessor_element ( DOT accessor_element )* -> ^( VT_ACCESSOR_PATH ( accessor_element )+ ) ;
+ public final accessor_path_return accessor_path() throws RecognitionException {
+ accessor_path_return retval = new accessor_path_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token DOT158=null;
+ accessor_element_return accessor_element157 = null;
+
+ accessor_element_return accessor_element159 = null;
+
+
+ Object DOT158_tree=null;
+ RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
+ RewriteRuleSubtreeStream stream_accessor_element=new RewriteRuleSubtreeStream(adaptor,"rule accessor_element");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:328:2: ( accessor_element ( DOT accessor_element )* -> ^( VT_ACCESSOR_PATH ( accessor_element )+ ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:328:4: accessor_element ( DOT accessor_element )*
+ {
+ pushFollow(FOLLOW_accessor_element_in_accessor_path1966);
+ accessor_element157=accessor_element();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_accessor_element.add(accessor_element157.getTree());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:328:21: ( DOT accessor_element )*
+ loop50:
+ do {
+ int alt50=2;
+ int LA50_0 = input.LA(1);
+
+ if ( (LA50_0==DOT) ) {
+ alt50=1;
+ }
+
+
+ switch (alt50) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:328:23: DOT accessor_element
+ {
+ DOT158=(Token)input.LT(1);
+ match(input,DOT,FOLLOW_DOT_in_accessor_path1970); if (failed) return retval;
+ if ( backtracking==0 ) stream_DOT.add(DOT158);
+
+ pushFollow(FOLLOW_accessor_element_in_accessor_path1972);
+ accessor_element159=accessor_element();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_accessor_element.add(accessor_element159.getTree());
+
+ }
+ break;
+
+ default :
+ break loop50;
+ }
+ } while (true);
+
+
+ // AST REWRITE
+ // elements: accessor_element
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 329:2: -> ^( VT_ACCESSOR_PATH ( accessor_element )+ )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:329:5: ^( VT_ACCESSOR_PATH ( accessor_element )+ )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_ACCESSOR_PATH, "VT_ACCESSOR_PATH"), root_1);
+
+ if ( !(stream_accessor_element.hasNext()) ) {
+ throw new RewriteEarlyExitException();
+ }
+ while ( stream_accessor_element.hasNext() ) {
+ adaptor.addChild(root_1, stream_accessor_element.next());
+
+ }
+ stream_accessor_element.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end accessor_path
+
+ public static class accessor_element_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start accessor_element
+ // /Users/porcelli/Desktop/testes/NewDRL.g:332:1: accessor_element : ID ( square_chunk )* -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* ) ;
+ public final accessor_element_return accessor_element() throws RecognitionException {
+ accessor_element_return retval = new accessor_element_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token ID160=null;
+ square_chunk_return square_chunk161 = null;
+
+
+ Object ID160_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+ RewriteRuleSubtreeStream stream_square_chunk=new RewriteRuleSubtreeStream(adaptor,"rule square_chunk");
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:333:2: ( ID ( square_chunk )* -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:333:4: ID ( square_chunk )*
+ {
+ ID160=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_accessor_element1996); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(ID160);
+
+ // /Users/porcelli/Desktop/testes/NewDRL.g:333:7: ( square_chunk )*
+ loop51:
+ do {
+ int alt51=2;
+ int LA51_0 = input.LA(1);
+
+ if ( (LA51_0==LEFT_SQUARE) ) {
+ alt51=1;
+ }
+
+
+ switch (alt51) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:333:7: square_chunk
+ {
+ pushFollow(FOLLOW_square_chunk_in_accessor_element1998);
+ square_chunk161=square_chunk();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_square_chunk.add(square_chunk161.getTree());
+
+ }
+ break;
+
+ default :
+ break loop51;
+ }
+ } while (true);
+
+
+ // AST REWRITE
+ // elements: square_chunk, ID
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 334:2: -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* )
+ {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:334:5: ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_ACCESSOR_ELEMENT, "VT_ACCESSOR_ELEMENT"), root_1);
+
+ adaptor.addChild(root_1, stream_ID.next());
+ // /Users/porcelli/Desktop/testes/NewDRL.g:334:30: ( square_chunk )*
+ while ( stream_square_chunk.hasNext() ) {
+ adaptor.addChild(root_1, stream_square_chunk.next());
+
+ }
+ stream_square_chunk.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end accessor_element
+
+ public static class name_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start name
+ // /Users/porcelli/Desktop/testes/NewDRL.g:337:1: name : (value= ID -> VT_NAME[$value] | value= STRING -> VT_NAME[$value] );
+ public final name_return name() throws RecognitionException {
+ name_return retval = new name_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token value=null;
+
+ Object value_tree=null;
+ RewriteRuleTokenStream stream_STRING=new RewriteRuleTokenStream(adaptor,"token STRING");
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:338:2: (value= ID -> VT_NAME[$value] | value= STRING -> VT_NAME[$value] )
+ int alt52=2;
+ int LA52_0 = input.LA(1);
+
+ if ( (LA52_0==ID) ) {
+ alt52=1;
+ }
+ else if ( (LA52_0==STRING) ) {
+ alt52=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ NoViableAltException nvae =
+ new NoViableAltException("337:1: name : (value= ID -> VT_NAME[$value] | value= STRING -> VT_NAME[$value] );", 52, 0, input);
+
+ throw nvae;
+ }
+ switch (alt52) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:338:5: value= ID
+ {
+ value=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_name2025); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(value);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 338:14: -> VT_NAME[$value]
+ {
+ adaptor.addChild(root_0, adaptor.create(VT_NAME, value));
+
+ }
+
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:339:5: value= STRING
+ {
+ value=(Token)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_name2038); if (failed) return retval;
+ if ( backtracking==0 ) stream_STRING.add(value);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 339:18: -> VT_NAME[$value]
+ {
+ adaptor.addChild(root_0, adaptor.create(VT_NAME, value));
+
+ }
+
+ }
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end name
+
+ public static class curly_chunk_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start curly_chunk
+ // /Users/porcelli/Desktop/testes/NewDRL.g:342:1: curly_chunk : cc= curly_chunk_data -> VT_CURLY_CHUNK[$cc.start,text] ;
+ public final curly_chunk_return curly_chunk() throws RecognitionException {
+ curly_chunk_return retval = new curly_chunk_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ curly_chunk_data_return cc = null;
+
+
+ RewriteRuleSubtreeStream stream_curly_chunk_data=new RewriteRuleSubtreeStream(adaptor,"rule curly_chunk_data");
+
+ String text = "";
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:345:3: (cc= curly_chunk_data -> VT_CURLY_CHUNK[$cc.start,text] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:345:5: cc= curly_chunk_data
+ {
+ pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk2059);
+ cc=curly_chunk_data();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_curly_chunk_data.add(cc.getTree());
+ if ( backtracking==0 ) {
+ text = input.toString(cc.start,cc.stop);
+ }
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 346:2: -> VT_CURLY_CHUNK[$cc.start,text]
+ {
+ adaptor.addChild(root_0, adaptor.create(VT_CURLY_CHUNK, ((Token)cc.start), text));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end curly_chunk
+
+ public static class curly_chunk_data_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start curly_chunk_data
+ // /Users/porcelli/Desktop/testes/NewDRL.g:349:1: curly_chunk_data : LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data )* RIGHT_CURLY ;
+ public final curly_chunk_data_return curly_chunk_data() throws RecognitionException {
+ curly_chunk_data_return retval = new curly_chunk_data_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token LEFT_CURLY162=null;
+ Token set163=null;
+ Token RIGHT_CURLY165=null;
+ curly_chunk_data_return curly_chunk_data164 = null;
+
+
+ Object LEFT_CURLY162_tree=null;
+ Object set163_tree=null;
+ Object RIGHT_CURLY165_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:350:2: ( LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data )* RIGHT_CURLY )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:350:4: LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data )* RIGHT_CURLY
+ {
+ root_0 = (Object)adaptor.nil();
+
+ LEFT_CURLY162=(Token)input.LT(1);
+ match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk_data2078); if (failed) return retval;
+ if ( backtracking==0 ) {
+ LEFT_CURLY162_tree = (Object)adaptor.create(LEFT_CURLY162);
+ adaptor.addChild(root_0, LEFT_CURLY162_tree);
+ }
+ // /Users/porcelli/Desktop/testes/NewDRL.g:350:15: (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data )*
+ loop53:
+ do {
+ int alt53=3;
+ int LA53_0 = input.LA(1);
+
+ if ( ((LA53_0>=VT_FACT && LA53_0<=RIGHT_SQUARE)||(LA53_0>=MISC && LA53_0<=MULTI_LINE_COMMENT)) ) {
+ alt53=1;
+ }
+ else if ( (LA53_0==LEFT_CURLY) ) {
+ alt53=2;
+ }
+
+
+ switch (alt53) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:350:16: ~ ( LEFT_CURLY | RIGHT_CURLY )
+ {
+ set163=(Token)input.LT(1);
+ if ( (input.LA(1)>=VT_FACT && input.LA(1)<=RIGHT_SQUARE)||(input.LA(1)>=MISC && input.LA(1)<=MULTI_LINE_COMMENT) ) {
+ input.consume();
+ if ( backtracking==0 ) adaptor.addChild(root_0, adaptor.create(set163));
+ errorRecovery=false;failed=false;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recoverFromMismatchedSet(input,mse,FOLLOW_set_in_curly_chunk_data2081); throw mse;
+ }
+
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:350:49: curly_chunk_data
+ {
+ pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk_data2095);
+ curly_chunk_data164=curly_chunk_data();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, curly_chunk_data164.getTree());
+
+ }
+ break;
+
+ default :
+ break loop53;
+ }
+ } while (true);
+
+ RIGHT_CURLY165=(Token)input.LT(1);
+ match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk_data2100); if (failed) return retval;
+ if ( backtracking==0 ) {
+ RIGHT_CURLY165_tree = (Object)adaptor.create(RIGHT_CURLY165);
+ adaptor.addChild(root_0, RIGHT_CURLY165_tree);
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end curly_chunk_data
+
+ public static class paren_chunk_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start paren_chunk
+ // /Users/porcelli/Desktop/testes/NewDRL.g:353:1: paren_chunk : pc= paren_chunk_data -> VT_PAREN_CHUNK[$pc.start,text] ;
+ public final paren_chunk_return paren_chunk() throws RecognitionException {
+ paren_chunk_return retval = new paren_chunk_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ paren_chunk_data_return pc = null;
+
+
+ RewriteRuleSubtreeStream stream_paren_chunk_data=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk_data");
+
+ String text = "";
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:356:3: (pc= paren_chunk_data -> VT_PAREN_CHUNK[$pc.start,text] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:356:5: pc= paren_chunk_data
+ {
+ pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk2117);
+ pc=paren_chunk_data();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_paren_chunk_data.add(pc.getTree());
+ if ( backtracking==0 ) {
+ text = input.toString(pc.start,pc.stop);
+ }
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 357:2: -> VT_PAREN_CHUNK[$pc.start,text]
+ {
+ adaptor.addChild(root_0, adaptor.create(VT_PAREN_CHUNK, ((Token)pc.start), text));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end paren_chunk
+
+ public static class paren_chunk_data_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start paren_chunk_data
+ // /Users/porcelli/Desktop/testes/NewDRL.g:360:1: paren_chunk_data : value= LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data )* RIGHT_PAREN ;
+ public final paren_chunk_data_return paren_chunk_data() throws RecognitionException {
+ paren_chunk_data_return retval = new paren_chunk_data_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token value=null;
+ Token set166=null;
+ Token RIGHT_PAREN168=null;
+ paren_chunk_data_return paren_chunk_data167 = null;
+
+
+ Object value_tree=null;
+ Object set166_tree=null;
+ Object RIGHT_PAREN168_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:361:2: (value= LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data )* RIGHT_PAREN )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:361:4: value= LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data )* RIGHT_PAREN
+ {
+ root_0 = (Object)adaptor.nil();
+
+ value=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk_data2139); if (failed) return retval;
+ if ( backtracking==0 ) {
+ value_tree = (Object)adaptor.create(value);
+ adaptor.addChild(root_0, value_tree);
+ }
+ // /Users/porcelli/Desktop/testes/NewDRL.g:361:21: (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data )*
+ loop54:
+ do {
+ int alt54=3;
+ int LA54_0 = input.LA(1);
+
+ if ( ((LA54_0>=VT_FACT && LA54_0<=VK_COLLECT)||(LA54_0>=DOUBLE_PIPE && LA54_0<=MULTI_LINE_COMMENT)) ) {
+ alt54=1;
+ }
+ else if ( (LA54_0==LEFT_PAREN) ) {
+ alt54=2;
+ }
+
+
+ switch (alt54) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:361:22: ~ ( LEFT_PAREN | RIGHT_PAREN )
+ {
+ set166=(Token)input.LT(1);
+ if ( (input.LA(1)>=VT_FACT && input.LA(1)<=VK_COLLECT)||(input.LA(1)>=DOUBLE_PIPE && input.LA(1)<=MULTI_LINE_COMMENT) ) {
+ input.consume();
+ if ( backtracking==0 ) adaptor.addChild(root_0, adaptor.create(set166));
+ errorRecovery=false;failed=false;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recoverFromMismatchedSet(input,mse,FOLLOW_set_in_paren_chunk_data2142); throw mse;
+ }
+
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:361:55: paren_chunk_data
+ {
+ pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk_data2156);
+ paren_chunk_data167=paren_chunk_data();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, paren_chunk_data167.getTree());
+
+ }
+ break;
+
+ default :
+ break loop54;
+ }
+ } while (true);
+
+ RIGHT_PAREN168=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk_data2161); if (failed) return retval;
+ if ( backtracking==0 ) {
+ RIGHT_PAREN168_tree = (Object)adaptor.create(RIGHT_PAREN168);
+ adaptor.addChild(root_0, RIGHT_PAREN168_tree);
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end paren_chunk_data
+
+ public static class square_chunk_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start square_chunk
+ // /Users/porcelli/Desktop/testes/NewDRL.g:364:1: square_chunk : sc= square_chunk_data -> VT_SQUARE_CHUNK[$sc.start,text] ;
+ public final square_chunk_return square_chunk() throws RecognitionException {
+ square_chunk_return retval = new square_chunk_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ square_chunk_data_return sc = null;
+
+
+ RewriteRuleSubtreeStream stream_square_chunk_data=new RewriteRuleSubtreeStream(adaptor,"rule square_chunk_data");
+
+ String text = "";
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:367:3: (sc= square_chunk_data -> VT_SQUARE_CHUNK[$sc.start,text] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:367:5: sc= square_chunk_data
+ {
+ pushFollow(FOLLOW_square_chunk_data_in_square_chunk2178);
+ sc=square_chunk_data();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) stream_square_chunk_data.add(sc.getTree());
+ if ( backtracking==0 ) {
+ text = input.toString(sc.start,sc.stop);
+ }
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 368:2: -> VT_SQUARE_CHUNK[$sc.start,text]
+ {
+ adaptor.addChild(root_0, adaptor.create(VT_SQUARE_CHUNK, ((Token)sc.start), text));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end square_chunk
+
+ public static class square_chunk_data_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start square_chunk_data
+ // /Users/porcelli/Desktop/testes/NewDRL.g:371:1: square_chunk_data : value= LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data )* RIGHT_SQUARE ;
+ public final square_chunk_data_return square_chunk_data() throws RecognitionException {
+ square_chunk_data_return retval = new square_chunk_data_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token value=null;
+ Token set169=null;
+ Token RIGHT_SQUARE171=null;
+ square_chunk_data_return square_chunk_data170 = null;
+
+
+ Object value_tree=null;
+ Object set169_tree=null;
+ Object RIGHT_SQUARE171_tree=null;
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:372:2: (value= LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data )* RIGHT_SQUARE )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:372:4: value= LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data )* RIGHT_SQUARE
+ {
+ root_0 = (Object)adaptor.nil();
+
+ value=(Token)input.LT(1);
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk_data2199); if (failed) return retval;
+ if ( backtracking==0 ) {
+ value_tree = (Object)adaptor.create(value);
+ adaptor.addChild(root_0, value_tree);
+ }
+ // /Users/porcelli/Desktop/testes/NewDRL.g:372:22: (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data )*
+ loop55:
+ do {
+ int alt55=3;
+ int LA55_0 = input.LA(1);
+
+ if ( ((LA55_0>=VT_FACT && LA55_0<=NULL)||(LA55_0>=LEFT_CURLY && LA55_0<=MULTI_LINE_COMMENT)) ) {
+ alt55=1;
+ }
+ else if ( (LA55_0==LEFT_SQUARE) ) {
+ alt55=2;
+ }
+
+
+ switch (alt55) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:372:23: ~ ( LEFT_SQUARE | RIGHT_SQUARE )
+ {
+ set169=(Token)input.LT(1);
+ if ( (input.LA(1)>=VT_FACT && input.LA(1)<=NULL)||(input.LA(1)>=LEFT_CURLY && input.LA(1)<=MULTI_LINE_COMMENT) ) {
+ input.consume();
+ if ( backtracking==0 ) adaptor.addChild(root_0, adaptor.create(set169));
+ errorRecovery=false;failed=false;
+ }
+ else {
+ if (backtracking>0) {failed=true; return retval;}
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recoverFromMismatchedSet(input,mse,FOLLOW_set_in_square_chunk_data2202); throw mse;
+ }
+
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:372:58: square_chunk_data
+ {
+ pushFollow(FOLLOW_square_chunk_data_in_square_chunk_data2216);
+ square_chunk_data170=square_chunk_data();
+ _fsp--;
+ if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, square_chunk_data170.getTree());
+
+ }
+ break;
+
+ default :
+ break loop55;
+ }
+ } while (true);
+
+ RIGHT_SQUARE171=(Token)input.LT(1);
+ match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk_data2221); if (failed) return retval;
+ if ( backtracking==0 ) {
+ RIGHT_SQUARE171_tree = (Object)adaptor.create(RIGHT_SQUARE171);
+ adaptor.addChild(root_0, RIGHT_SQUARE171_tree);
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end square_chunk_data
+
+ public static class eval_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start eval_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:375:1: eval_key : {...}? =>id= ID -> VK_EVAL[$id] ;
+ public final eval_key_return eval_key() throws RecognitionException {
+ eval_key_return retval = new eval_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:376:2: ({...}? =>id= ID -> VK_EVAL[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:376:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("eval"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "eval_key", "(validateIdentifierKey(\"eval\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_eval_key2238); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 376:48: -> VK_EVAL[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_EVAL, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end eval_key
+
+ public static class contains_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start contains_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:379:1: contains_key : {...}? =>id= ID -> VK_CONTAINS[$id] ;
+ public final contains_key_return contains_key() throws RecognitionException {
+ contains_key_return retval = new contains_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:380:2: ({...}? =>id= ID -> VK_CONTAINS[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:380:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("contains"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "contains_key", "(validateIdentifierKey(\"contains\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_contains_key2260); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 380:52: -> VK_CONTAINS[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_CONTAINS, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end contains_key
+
+ public static class matches_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start matches_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:383:1: matches_key : {...}? =>id= ID -> VK_MATCHES[$id] ;
+ public final matches_key_return matches_key() throws RecognitionException {
+ matches_key_return retval = new matches_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:384:2: ({...}? =>id= ID -> VK_MATCHES[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:384:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("matches"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "matches_key", "(validateIdentifierKey(\"matches\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_matches_key2282); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 384:51: -> VK_MATCHES[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_MATCHES, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end matches_key
+
+ public static class excludes_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start excludes_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:387:1: excludes_key : {...}? =>id= ID -> VK_EXCLUDES[$id] ;
+ public final excludes_key_return excludes_key() throws RecognitionException {
+ excludes_key_return retval = new excludes_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:388:2: ({...}? =>id= ID -> VK_EXCLUDES[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:388:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("excludes"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "excludes_key", "(validateIdentifierKey(\"excludes\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_excludes_key2304); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 388:52: -> VK_EXCLUDES[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_EXCLUDES, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end excludes_key
+
+ public static class soundslike_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start soundslike_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:391:1: soundslike_key : {...}? =>id= ID -> VK_SOUNDSLIKE[$id] ;
+ public final soundslike_key_return soundslike_key() throws RecognitionException {
+ soundslike_key_return retval = new soundslike_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:392:2: ({...}? =>id= ID -> VK_SOUNDSLIKE[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:392:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("soundslike"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "soundslike_key", "(validateIdentifierKey(\"soundslike\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_soundslike_key2326); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 392:54: -> VK_SOUNDSLIKE[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_SOUNDSLIKE, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end soundslike_key
+
+ public static class memberof_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start memberof_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:395:1: memberof_key : {...}? =>id= ID -> VK_MEMBEROF[$id] ;
+ public final memberof_key_return memberof_key() throws RecognitionException {
+ memberof_key_return retval = new memberof_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:396:2: ({...}? =>id= ID -> VK_MEMBEROF[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:396:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("memberof"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "memberof_key", "(validateIdentifierKey(\"memberof\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_memberof_key2348); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 396:52: -> VK_MEMBEROF[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_MEMBEROF, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end memberof_key
+
+ public static class not_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start not_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:399:1: not_key : {...}? =>id= ID -> VK_NOT[$id] ;
+ public final not_key_return not_key() throws RecognitionException {
+ not_key_return retval = new not_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:400:2: ({...}? =>id= ID -> VK_NOT[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:400:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("not"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "not_key", "(validateIdentifierKey(\"not\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_not_key2370); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 400:47: -> VK_NOT[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_NOT, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end not_key
+
+ public static class in_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start in_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:403:1: in_key : {...}? =>id= ID -> VK_IN[$id] ;
+ public final in_key_return in_key() throws RecognitionException {
+ in_key_return retval = new in_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:404:2: ({...}? =>id= ID -> VK_IN[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:404:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("in"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "in_key", "(validateIdentifierKey(\"in\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_in_key2392); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 404:46: -> VK_IN[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_IN, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end in_key
+
+ public static class or_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start or_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:407:1: or_key : {...}? =>id= ID -> VK_OR[$id] ;
+ public final or_key_return or_key() throws RecognitionException {
+ or_key_return retval = new or_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:408:2: ({...}? =>id= ID -> VK_OR[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:408:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("or"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "or_key", "(validateIdentifierKey(\"or\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_or_key2414); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 408:46: -> VK_OR[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_OR, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end or_key
+
+ public static class and_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start and_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:411:1: and_key : {...}? =>id= ID -> VK_AND[$id] ;
+ public final and_key_return and_key() throws RecognitionException {
+ and_key_return retval = new and_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:412:2: ({...}? =>id= ID -> VK_AND[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:412:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("and"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "and_key", "(validateIdentifierKey(\"and\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_and_key2436); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 412:47: -> VK_AND[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_AND, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end and_key
+
+ public static class exists_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start exists_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:415:1: exists_key : {...}? =>id= ID -> VK_EXISTS[$id] ;
+ public final exists_key_return exists_key() throws RecognitionException {
+ exists_key_return retval = new exists_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:416:2: ({...}? =>id= ID -> VK_EXISTS[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:416:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("exists"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "exists_key", "(validateIdentifierKey(\"exists\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_exists_key2458); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 416:50: -> VK_EXISTS[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_EXISTS, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end exists_key
+
+ public static class forall_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start forall_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:419:1: forall_key : {...}? =>id= ID -> VK_FORALL[$id] ;
+ public final forall_key_return forall_key() throws RecognitionException {
+ forall_key_return retval = new forall_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:420:2: ({...}? =>id= ID -> VK_FORALL[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:420:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("forall"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "forall_key", "(validateIdentifierKey(\"forall\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_forall_key2480); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 420:50: -> VK_FORALL[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_FORALL, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end forall_key
+
+ public static class from_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start from_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:423:1: from_key : {...}? =>id= ID -> VK_FROM[$id] ;
+ public final from_key_return from_key() throws RecognitionException {
+ from_key_return retval = new from_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:424:2: ({...}? =>id= ID -> VK_FROM[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:424:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("from"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "from_key", "(validateIdentifierKey(\"from\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_from_key2502); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 424:48: -> VK_FROM[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_FROM, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end from_key
+
+ public static class entry_point_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start entry_point_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:427:1: entry_point_key : {...}? => ID MISC ID -> VK_ENTRY_POINT[$start, text] ;
+ public final entry_point_key_return entry_point_key() throws RecognitionException {
+ entry_point_key_return retval = new entry_point_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token ID172=null;
+ Token MISC173=null;
+ Token ID174=null;
+
+ Object ID172_tree=null;
+ Object MISC173_tree=null;
+ Object ID174_tree=null;
+ RewriteRuleTokenStream stream_MISC=new RewriteRuleTokenStream(adaptor,"token MISC");
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+
+ String text = "";
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:430:3: ({...}? => ID MISC ID -> VK_ENTRY_POINT[$start, text] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:430:5: {...}? => ID MISC ID
+ {
+ if ( !((validateIdentifierKey("entry") && validateLT(2, "-") && validateLT(3, "point"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "entry_point_key", "(validateIdentifierKey(\"entry\") && validateLT(2, \"-\") && validateLT(3, \"point\"))");
+ }
+ ID172=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_entry_point_key2525); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(ID172);
+
+ MISC173=(Token)input.LT(1);
+ match(input,MISC,FOLLOW_MISC_in_entry_point_key2527); if (failed) return retval;
+ if ( backtracking==0 ) stream_MISC.add(MISC173);
+
+ ID174=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_entry_point_key2529); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(ID174);
+
+ if ( backtracking==0 ) {
+ text = input.toString(retval.start,input.LT(-1));
+ }
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 431:2: -> VK_ENTRY_POINT[$start, text]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_ENTRY_POINT, ((Token)retval.start), text));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end entry_point_key
+
+ public static class accumulate_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start accumulate_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:434:1: accumulate_key : {...}? =>id= ID -> VK_ACCUMULATE[$id] ;
+ public final accumulate_key_return accumulate_key() throws RecognitionException {
+ accumulate_key_return retval = new accumulate_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:435:2: ({...}? =>id= ID -> VK_ACCUMULATE[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:435:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("accumulate"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "accumulate_key", "(validateIdentifierKey(\"accumulate\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_accumulate_key2554); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 435:54: -> VK_ACCUMULATE[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_ACCUMULATE, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end accumulate_key
+
+ public static class init_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start init_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:438:1: init_key : {...}? =>id= ID -> VK_INIT[$id] ;
+ public final init_key_return init_key() throws RecognitionException {
+ init_key_return retval = new init_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:439:2: ({...}? =>id= ID -> VK_INIT[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:439:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("init"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "init_key", "(validateIdentifierKey(\"init\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_init_key2576); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 439:48: -> VK_INIT[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_INIT, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end init_key
+
+ public static class action_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start action_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:442:1: action_key : {...}? =>id= ID -> VK_ACTION[$id] ;
+ public final action_key_return action_key() throws RecognitionException {
+ action_key_return retval = new action_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:443:2: ({...}? =>id= ID -> VK_ACTION[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:443:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("action"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "action_key", "(validateIdentifierKey(\"action\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_action_key2598); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 443:50: -> VK_ACTION[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_ACTION, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end action_key
+
+ public static class reverse_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start reverse_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:446:1: reverse_key : {...}? =>id= ID -> VK_REVERSE[$id] ;
+ public final reverse_key_return reverse_key() throws RecognitionException {
+ reverse_key_return retval = new reverse_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:447:2: ({...}? =>id= ID -> VK_REVERSE[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:447:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("reverse"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "reverse_key", "(validateIdentifierKey(\"reverse\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_reverse_key2620); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 447:51: -> VK_REVERSE[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_REVERSE, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end reverse_key
+
+ public static class result_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start result_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:450:1: result_key : {...}? =>id= ID -> VK_RESULT[$id] ;
+ public final result_key_return result_key() throws RecognitionException {
+ result_key_return retval = new result_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:451:2: ({...}? =>id= ID -> VK_RESULT[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:451:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("result"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "result_key", "(validateIdentifierKey(\"result\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_result_key2642); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 451:50: -> VK_RESULT[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_RESULT, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end result_key
+
+ public static class collect_key_return extends ParserRuleReturnScope {
+ Object tree;
+ public Object getTree() { return tree; }
+ };
+
+ // $ANTLR start collect_key
+ // /Users/porcelli/Desktop/testes/NewDRL.g:454:1: collect_key : {...}? =>id= ID -> VK_COLLECT[$id] ;
+ public final collect_key_return collect_key() throws RecognitionException {
+ collect_key_return retval = new collect_key_return();
+ retval.start = input.LT(1);
+
+ Object root_0 = null;
+
+ Token id=null;
+
+ Object id_tree=null;
+ RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
+
+ try {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:455:2: ({...}? =>id= ID -> VK_COLLECT[$id] )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:455:4: {...}? =>id= ID
+ {
+ if ( !((validateIdentifierKey("collect"))) ) {
+ if (backtracking>0) {failed=true; return retval;}
+ throw new FailedPredicateException(input, "collect_key", "(validateIdentifierKey(\"collect\"))");
+ }
+ id=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_collect_key2664); if (failed) return retval;
+ if ( backtracking==0 ) stream_ID.add(id);
+
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ if ( backtracking==0 ) {
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
+
+ root_0 = (Object)adaptor.nil();
+ // 455:51: -> VK_COLLECT[$id]
+ {
+ adaptor.addChild(root_0, adaptor.create(VK_COLLECT, id));
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ if ( backtracking==0 ) {
+ retval.tree = (Object)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end collect_key
+
+ // $ANTLR start synpred1
+ public final void synpred1_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:86:5: ( LEFT_PAREN or_key )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:86:6: LEFT_PAREN or_key
+ {
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred1256); if (failed) return ;
+ pushFollow(FOLLOW_or_key_in_synpred1258);
+ or_key();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred1
+
+ // $ANTLR start synpred2
+ public final void synpred2_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:89:5: ( or_key | DOUBLE_PIPE )
+ int alt56=2;
+ int LA56_0 = input.LA(1);
+
+ if ( (LA56_0==ID) && ((validateIdentifierKey("or")))) {
+ alt56=1;
+ }
+ else if ( (LA56_0==DOUBLE_PIPE) ) {
+ alt56=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("89:5: synpred2 : ( or_key | DOUBLE_PIPE );", 56, 0, input);
+
+ throw nvae;
+ }
+ switch (alt56) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:89:6: or_key
+ {
+ pushFollow(FOLLOW_or_key_in_synpred2303);
+ or_key();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:89:13: DOUBLE_PIPE
+ {
+ match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred2305); if (failed) return ;
+
+ }
+ break;
+
+ }}
+ // $ANTLR end synpred2
+
+ // $ANTLR start synpred3
+ public final void synpred3_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:96:5: ( LEFT_PAREN and_key )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:96:6: LEFT_PAREN and_key
+ {
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred3356); if (failed) return ;
+ pushFollow(FOLLOW_and_key_in_synpred3358);
+ and_key();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred3
+
+ // $ANTLR start synpred4
+ public final void synpred4_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:99:5: ( and_key | DOUBLE_AMPER )
+ int alt57=2;
+ int LA57_0 = input.LA(1);
+
+ if ( (LA57_0==ID) && ((validateIdentifierKey("and")))) {
+ alt57=1;
+ }
+ else if ( (LA57_0==DOUBLE_AMPER) ) {
+ alt57=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("99:5: synpred4 : ( and_key | DOUBLE_AMPER );", 57, 0, input);
+
+ throw nvae;
+ }
+ switch (alt57) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:99:6: and_key
+ {
+ pushFollow(FOLLOW_and_key_in_synpred4403);
+ and_key();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:99:14: DOUBLE_AMPER
+ {
+ match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred4405); if (failed) return ;
+
+ }
+ break;
+
+ }}
+ // $ANTLR end synpred4
+
+ // $ANTLR start synpred5
+ public final void synpred5_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:112:4: ( SEMICOLON )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:112:5: SEMICOLON
+ {
+ match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred5508); if (failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred5
+
+ // $ANTLR start synpred6
+ public final void synpred6_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:117:12: ( LEFT_PAREN ( or_key | and_key ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:117:13: LEFT_PAREN ( or_key | and_key )
+ {
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred6540); if (failed) return ;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:117:24: ( or_key | and_key )
+ int alt58=2;
+ int LA58_0 = input.LA(1);
+
+ if ( (LA58_0==ID) && (((validateIdentifierKey("or"))||(validateIdentifierKey("and"))))) {
+ int LA58_1 = input.LA(2);
+
+ if ( ((validateIdentifierKey("or"))) ) {
+ alt58=1;
+ }
+ else if ( ((validateIdentifierKey("and"))) ) {
+ alt58=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("117:24: ( or_key | and_key )", 58, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("117:24: ( or_key | and_key )", 58, 0, input);
+
+ throw nvae;
+ }
+ switch (alt58) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:117:25: or_key
+ {
+ pushFollow(FOLLOW_or_key_in_synpred6543);
+ or_key();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:117:32: and_key
+ {
+ pushFollow(FOLLOW_and_key_in_synpred6545);
+ and_key();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred6
+
+ // $ANTLR start synpred7
+ public final void synpred7_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:125:5: ( LEFT_PAREN ( or_key | and_key ) )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:125:6: LEFT_PAREN ( or_key | and_key )
+ {
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred7626); if (failed) return ;
+ // /Users/porcelli/Desktop/testes/NewDRL.g:125:17: ( or_key | and_key )
+ int alt59=2;
+ int LA59_0 = input.LA(1);
+
+ if ( (LA59_0==ID) && (((validateIdentifierKey("or"))||(validateIdentifierKey("and"))))) {
+ int LA59_1 = input.LA(2);
+
+ if ( ((validateIdentifierKey("or"))) ) {
+ alt59=1;
+ }
+ else if ( ((validateIdentifierKey("and"))) ) {
+ alt59=2;
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("125:17: ( or_key | and_key )", 59, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (backtracking>0) {failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("125:17: ( or_key | and_key )", 59, 0, input);
+
+ throw nvae;
+ }
+ switch (alt59) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:125:18: or_key
+ {
+ pushFollow(FOLLOW_or_key_in_synpred7629);
+ or_key();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/NewDRL.g:125:25: and_key
+ {
+ pushFollow(FOLLOW_and_key_in_synpred7631);
+ and_key();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred7
+
+ // $ANTLR start synpred8
+ public final void synpred8_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:191:5: ( LEFT_PAREN )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:191:6: LEFT_PAREN
+ {
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred81079); if (failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred8
+
+ // $ANTLR start synpred9
+ public final void synpred9_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:200:6: ( LEFT_SQUARE )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:200:8: LEFT_SQUARE
+ {
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_synpred91140); if (failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred9
+
+ // $ANTLR start synpred10
+ public final void synpred10_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:202:6: ( LEFT_PAREN )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:202:8: LEFT_PAREN
+ {
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred101162); if (failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred10
+
+ // $ANTLR start synpred11
+ public final void synpred11_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:271:53: ( DOUBLE_PIPE and_restr_connective )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:271:53: DOUBLE_PIPE and_restr_connective
+ {
+ match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred111629); if (failed) return ;
+ pushFollow(FOLLOW_and_restr_connective_in_synpred111632);
+ and_restr_connective();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred11
+
+ // $ANTLR start synpred12
+ public final void synpred12_fragment() throws RecognitionException {
+ // /Users/porcelli/Desktop/testes/NewDRL.g:275:54: ( DOUBLE_AMPER constraint_expression )
+ // /Users/porcelli/Desktop/testes/NewDRL.g:275:54: DOUBLE_AMPER constraint_expression
+ {
+ match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred121659); if (failed) return ;
+ pushFollow(FOLLOW_constraint_expression_in_synpred121662);
+ constraint_expression();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred12
+
+ public final boolean synpred12() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred12_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+ public final boolean synpred4() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred4_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+ public final boolean synpred9() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred9_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+ public final boolean synpred7() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred7_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+ public final boolean synpred2() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred2_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+ public final boolean synpred3() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred3_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+ public final boolean synpred1() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred1_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+ public final boolean synpred11() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred11_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+ public final boolean synpred5() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred5_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+ public final boolean synpred6() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred6_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+ public final boolean synpred8() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred8_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+ public final boolean synpred10() {
+ backtracking++;
+ int start = input.mark();
+ try {
+ synpred10_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !failed;
+ input.rewind(start);
+ backtracking--;
+ failed=false;
+ return success;
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ protected DFA13 dfa13 = new DFA13(this);
+ protected DFA18 dfa18 = new DFA18(this);
+ protected DFA22 dfa22 = new DFA22(this);
+ protected DFA23 dfa23 = new DFA23(this);
+ protected DFA38 dfa38 = new DFA38(this);
+ protected DFA39 dfa39 = new DFA39(this);
+ static final String DFA12_eotS =
+ "\164\uffff";
+ static final String DFA12_eofS =
+ "\164\uffff";
+ static final String DFA12_minS =
+ "\3\60\2\0\1\60\1\0\1\uffff\1\66\1\106\2\uffff\1\60\1\66\1\uffff"+
+ "\2\60\1\66\1\106\6\60\2\0\1\66\1\106\2\60\2\0\1\66\1\0\1\4\1\66"+
+ "\7\60\2\uffff\3\60\1\0\1\61\1\66\1\0\1\4\1\66\7\60\1\uffff\1\60"+
+ "\1\uffff\1\4\24\0\1\uffff\4\0\1\uffff\30\0";
+ static final String DFA12_maxS =
+ "\2\66\1\105\2\0\1\66\1\0\1\uffff\1\66\1\106\2\uffff\1\105\1\66\1"+
+ "\uffff\2\105\1\66\1\106\1\66\1\105\1\66\3\105\2\0\1\66\1\106\1\66"+
+ "\1\105\2\0\1\66\1\0\1\123\1\66\1\105\6\104\2\uffff\3\105\1\0\2\66"+
+ "\1\0\1\123\1\66\1\105\6\104\1\uffff\1\105\1\uffff\1\123\24\0\1\uffff"+
+ "\4\0\1\uffff\30\0";
+ static final String DFA12_acceptS =
+ "\7\uffff\1\1\2\uffff\2\2\2\uffff\1\3\35\uffff\2\3\20\uffff\1\3\1"+
+ "\uffff\1\3\25\uffff\1\3\4\uffff\1\3\30\uffff";
+ static final String DFA12_specialS =
+ "\2\uffff\1\1\1\3\1\4\1\uffff\1\0\22\uffff\1\10\1\2\4\uffff\1\11"+
+ "\1\6\1\uffff\1\7\16\uffff\1\12\2\uffff\1\5\77\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\1\1\5\uffff\1\2",
+ "\1\3\5\uffff\1\4",
+ "\1\6\5\uffff\1\7\1\10\1\uffff\1\5\13\uffff\1\11",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\15\5\uffff\1\14",
+ "\1\uffff",
+ "",
+ "\1\17",
+ "\1\20",
+ "",
+ "",
+ "\1\23\6\uffff\1\21\15\uffff\1\22",
+ "\1\24",
+ "",
+ "\1\25\6\uffff\1\10\15\uffff\1\11",
+ "\1\25\24\uffff\1\11",
+ "\1\26",
+ "\1\27",
+ "\1\31\1\32\4\uffff\1\30",
+ "\1\35\6\uffff\1\33\15\uffff\1\34",
+ "\1\37\1\40\4\uffff\1\36",
+ "\1\23\6\uffff\1\21\15\uffff\1\22",
+ "\1\23\24\uffff\1\22",
+ "\1\42\5\uffff\1\45\1\44\1\uffff\1\41\1\46\1\47\1\50\1\51\1\52"+
+ "\1\53\5\uffff\1\43",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\56",
+ "\1\57",
+ "\1\61\1\62\4\uffff\1\60",
+ "\1\64\5\uffff\1\67\1\66\1\uffff\1\63\1\70\1\71\1\72\1\73\1\74"+
+ "\1\75\5\uffff\1\65",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\77",
+ "\1\uffff",
+ "\101\101\1\102\1\103\15\101",
+ "\1\104",
+ "\1\107\5\uffff\1\105\11\uffff\5\106\1\110",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "",
+ "",
+ "\1\35\6\uffff\1\33\15\uffff\1\34",
+ "\1\35\24\uffff\1\34",
+ "\1\125\5\uffff\1\116\1\115\1\uffff\1\113\1\117\1\120\1\121\1"+
+ "\122\1\123\1\124\5\uffff\1\114",
+ "\1\uffff",
+ "\1\131\1\130\3\uffff\1\127",
+ "\1\132",
+ "\1\uffff",
+ "\101\134\1\135\1\136\15\134",
+ "\1\137",
+ "\1\142\5\uffff\1\140\11\uffff\5\141\1\143",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "",
+ "\1\157\1\32\1\162\1\161\1\uffff\1\163\1\150\1\147\1\160\1\uffff"+
+ "\1\151\1\152\1\153\1\154\1\155\1\156\5\uffff\1\146",
+ "",
+ "\101\101\1\102\1\103\15\101",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff"
+ };
+
+ static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+ static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+ static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+ static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+ static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+ static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+ static final short[][] DFA12_transition;
+
+ static {
+ int numStates = DFA12_transitionS.length;
+ DFA12_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+ }
+ }
+
+ class DFA12 extends DFA {
+
+ public DFA12(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 12;
+ this.eot = DFA12_eot;
+ this.eof = DFA12_eof;
+ this.min = DFA12_min;
+ this.max = DFA12_max;
+ this.accept = DFA12_accept;
+ this.special = DFA12_special;
+ this.transition = DFA12_transition;
+ }
+ public String getDescription() {
+ return "117:10: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )";
+ }
+ public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA12_6 = input.LA(1);
+
+
+ int index12_6 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (((synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("eval")))||synpred6()||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("forall"))))) ) {s = 7;}
+
+ else if ( (true) ) {s = 14;}
+
+
+ input.seek(index12_6);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_2 = input.LA(1);
+
+
+ int index12_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA12_2==COLON) ) {s = 5;}
+
+ else if ( (LA12_2==LEFT_PAREN) ) {s = 6;}
+
+ else if ( (LA12_2==ID) && (((synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("exists")))))) {s = 7;}
+
+ else if ( (LA12_2==DOT) ) {s = 8;}
+
+ else if ( (LA12_2==LEFT_SQUARE) ) {s = 9;}
+
+
+ input.seek(index12_2);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_26 = input.LA(1);
+
+
+ int index12_26 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred6()) ) {s = 7;}
+
+ else if ( (true) ) {s = 45;}
+
+
+ input.seek(index12_26);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA12_3 = input.LA(1);
+
+
+ int index12_3 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred6()) ) {s = 7;}
+
+ else if ( (true) ) {s = 10;}
+
+
+ input.seek(index12_3);
+ if ( s>=0 ) return s;
+ break;
+ case 4 :
+ int LA12_4 = input.LA(1);
+
+
+ int index12_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred6()) ) {s = 7;}
+
+ else if ( (true) ) {s = 11;}
+
+
+ input.seek(index12_4);
+ if ( s>=0 ) return s;
+ break;
+ case 5 :
+ int LA12_52 = input.LA(1);
+
+
+ int index12_52 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred6()) ) {s = 7;}
+
+ else if ( (true) ) {s = 91;}
+
+
+ input.seek(index12_52);
+ if ( s>=0 ) return s;
+ break;
+ case 6 :
+ int LA12_32 = input.LA(1);
+
+
+ int index12_32 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred6()) ) {s = 7;}
+
+ else if ( (true) ) {s = 45;}
+
+
+ input.seek(index12_32);
+ if ( s>=0 ) return s;
+ break;
+ case 7 :
+ int LA12_34 = input.LA(1);
+
+
+ int index12_34 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred6()) ) {s = 7;}
+
+ else if ( (true) ) {s = 64;}
+
+
+ input.seek(index12_34);
+ if ( s>=0 ) return s;
+ break;
+ case 8 :
+ int LA12_25 = input.LA(1);
+
+
+ int index12_25 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred6()) ) {s = 7;}
+
+ else if ( (true) ) {s = 44;}
+
+
+ input.seek(index12_25);
+ if ( s>=0 ) return s;
+ break;
+ case 9 :
+ int LA12_31 = input.LA(1);
+
+
+ int index12_31 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred6()) ) {s = 7;}
+
+ else if ( (true) ) {s = 62;}
+
+
+ input.seek(index12_31);
+ if ( s>=0 ) return s;
+ break;
+ case 10 :
+ int LA12_49 = input.LA(1);
+
+
+ int index12_49 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred6()) ) {s = 7;}
+
+ else if ( (true) ) {s = 86;}
+
+
+ input.seek(index12_49);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (backtracking>0) {failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 12, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA13_eotS =
+ "\164\uffff";
+ static final String DFA13_eofS =
+ "\164\uffff";
+ static final String DFA13_minS =
+ "\3\60\2\0\1\60\1\0\1\66\1\106\3\uffff\1\60\1\66\1\uffff\2\60\1\66"+
+ "\1\106\6\60\2\0\1\66\1\106\2\60\2\0\1\66\1\0\1\4\1\66\7\60\2\uffff"+
+ "\3\60\1\0\1\61\1\66\1\0\1\4\1\66\7\60\1\uffff\1\60\1\uffff\1\4\24"+
+ "\0\1\uffff\4\0\1\uffff\30\0";
+ static final String DFA13_maxS =
+ "\2\66\1\105\2\0\1\66\1\0\1\66\1\106\3\uffff\1\105\1\66\1\uffff\2"+
+ "\105\1\66\1\106\1\66\1\105\1\66\3\105\2\0\1\66\1\106\1\66\1\105"+
+ "\2\0\1\66\1\0\1\123\1\66\1\105\6\104\2\uffff\3\105\1\0\2\66\1\0"+
+ "\1\123\1\66\1\105\6\104\1\uffff\1\105\1\uffff\1\123\24\0\1\uffff"+
+ "\4\0\1\uffff\30\0";
+ static final String DFA13_acceptS =
+ "\11\uffff\1\1\2\2\2\uffff\1\3\35\uffff\2\3\20\uffff\1\3\1\uffff"+
+ "\1\3\25\uffff\1\3\4\uffff\1\3\30\uffff";
+ static final String DFA13_specialS =
+ "\2\uffff\1\3\1\2\1\5\1\uffff\1\12\22\uffff\1\10\1\1\4\uffff\1\7"+
+ "\1\4\1\uffff\1\6\16\uffff\1\11\2\uffff\1\0\77\uffff}>";
+ static final String[] DFA13_transitionS = {
+ "\1\1\5\uffff\1\2",
+ "\1\4\5\uffff\1\3",
+ "\1\6\5\uffff\1\11\1\7\1\uffff\1\5\13\uffff\1\10",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\15\5\uffff\1\14",
+ "\1\uffff",
+ "\1\17",
+ "\1\20",
+ "",
+ "",
+ "",
+ "\1\23\6\uffff\1\21\15\uffff\1\22",
+ "\1\24",
+ "",
+ "\1\25\6\uffff\1\7\15\uffff\1\10",
+ "\1\25\24\uffff\1\10",
+ "\1\26",
+ "\1\27",
+ "\1\31\1\32\4\uffff\1\30",
+ "\1\35\6\uffff\1\33\15\uffff\1\34",
+ "\1\37\1\40\4\uffff\1\36",
+ "\1\23\6\uffff\1\21\15\uffff\1\22",
+ "\1\23\24\uffff\1\22",
+ "\1\42\5\uffff\1\45\1\44\1\uffff\1\41\1\46\1\47\1\50\1\51\1\52"+
+ "\1\53\5\uffff\1\43",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\56",
+ "\1\57",
+ "\1\61\1\62\4\uffff\1\60",
+ "\1\64\5\uffff\1\67\1\66\1\uffff\1\63\1\70\1\71\1\72\1\73\1\74"+
+ "\1\75\5\uffff\1\65",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\77",
+ "\1\uffff",
+ "\101\101\1\102\1\103\15\101",
+ "\1\104",
+ "\1\107\5\uffff\1\105\11\uffff\5\106\1\110",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "\1\112\5\uffff\1\111\11\uffff\5\106",
+ "",
+ "",
+ "\1\35\6\uffff\1\33\15\uffff\1\34",
+ "\1\35\24\uffff\1\34",
+ "\1\114\5\uffff\1\117\1\116\1\uffff\1\113\1\120\1\121\1\122\1"+
+ "\123\1\124\1\125\5\uffff\1\115",
+ "\1\uffff",
+ "\1\131\1\130\3\uffff\1\127",
+ "\1\132",
+ "\1\uffff",
+ "\101\134\1\135\1\136\15\134",
+ "\1\137",
+ "\1\142\5\uffff\1\140\11\uffff\5\141\1\143",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "\1\145\5\uffff\1\144\11\uffff\5\141",
+ "",
+ "\1\157\1\32\1\162\1\161\1\uffff\1\163\1\150\1\147\1\160\1\uffff"+
+ "\1\151\1\152\1\153\1\154\1\155\1\156\5\uffff\1\146",
+ "",
+ "\101\101\1\102\1\103\15\101",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff"
+ };
+
+ static final short[] DFA13_eot = DFA.unpackEncodedString(DFA13_eotS);
+ static final short[] DFA13_eof = DFA.unpackEncodedString(DFA13_eofS);
+ static final char[] DFA13_min = DFA.unpackEncodedStringToUnsignedChars(DFA13_minS);
+ static final char[] DFA13_max = DFA.unpackEncodedStringToUnsignedChars(DFA13_maxS);
+ static final short[] DFA13_accept = DFA.unpackEncodedString(DFA13_acceptS);
+ static final short[] DFA13_special = DFA.unpackEncodedString(DFA13_specialS);
+ static final short[][] DFA13_transition;
+
+ static {
+ int numStates = DFA13_transitionS.length;
+ DFA13_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA13_transition[i] = DFA.unpackEncodedString(DFA13_transitionS[i]);
+ }
+ }
+
+ class DFA13 extends DFA {
+
+ public DFA13(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 13;
+ this.eot = DFA13_eot;
+ this.eof = DFA13_eof;
+ this.min = DFA13_min;
+ this.max = DFA13_max;
+ this.accept = DFA13_accept;
+ this.special = DFA13_special;
+ this.transition = DFA13_transition;
+ }
+ public String getDescription() {
+ return "125:3: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )";
+ }
+ public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA13_52 = input.LA(1);
+
+
+ int index13_52 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7()) ) {s = 9;}
+
+ else if ( (true) ) {s = 91;}
+
+
+ input.seek(index13_52);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA13_26 = input.LA(1);
+
+
+ int index13_26 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7()) ) {s = 9;}
+
+ else if ( (true) ) {s = 45;}
+
+
+ input.seek(index13_26);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA13_3 = input.LA(1);
+
+
+ int index13_3 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7()) ) {s = 9;}
+
+ else if ( (true) ) {s = 10;}
+
+
+ input.seek(index13_3);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA13_2 = input.LA(1);
+
+
+ int index13_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA13_2==COLON) ) {s = 5;}
+
+ else if ( (LA13_2==LEFT_PAREN) ) {s = 6;}
+
+ else if ( (LA13_2==DOT) ) {s = 7;}
+
+ else if ( (LA13_2==LEFT_SQUARE) ) {s = 8;}
+
+ else if ( (LA13_2==ID) && (((synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("exists")))))) {s = 9;}
+
+
+ input.seek(index13_2);
+ if ( s>=0 ) return s;
+ break;
+ case 4 :
+ int LA13_32 = input.LA(1);
+
+
+ int index13_32 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7()) ) {s = 9;}
+
+ else if ( (true) ) {s = 45;}
+
+
+ input.seek(index13_32);
+ if ( s>=0 ) return s;
+ break;
+ case 5 :
+ int LA13_4 = input.LA(1);
+
+
+ int index13_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7()) ) {s = 9;}
+
+ else if ( (true) ) {s = 11;}
+
+
+ input.seek(index13_4);
+ if ( s>=0 ) return s;
+ break;
+ case 6 :
+ int LA13_34 = input.LA(1);
+
+
+ int index13_34 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7()) ) {s = 9;}
+
+ else if ( (true) ) {s = 64;}
+
+
+ input.seek(index13_34);
+ if ( s>=0 ) return s;
+ break;
+ case 7 :
+ int LA13_31 = input.LA(1);
+
+
+ int index13_31 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7()) ) {s = 9;}
+
+ else if ( (true) ) {s = 62;}
+
+
+ input.seek(index13_31);
+ if ( s>=0 ) return s;
+ break;
+ case 8 :
+ int LA13_25 = input.LA(1);
+
+
+ int index13_25 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7()) ) {s = 9;}
+
+ else if ( (true) ) {s = 44;}
+
+
+ input.seek(index13_25);
+ if ( s>=0 ) return s;
+ break;
+ case 9 :
+ int LA13_49 = input.LA(1);
+
+
+ int index13_49 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7()) ) {s = 9;}
+
+ else if ( (true) ) {s = 86;}
+
+
+ input.seek(index13_49);
+ if ( s>=0 ) return s;
+ break;
+ case 10 :
+ int LA13_6 = input.LA(1);
+
+
+ int index13_6 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (((synpred7()&&(validateIdentifierKey("exists")))||synpred7()||(synpred7()&&(validateIdentifierKey("eval")))||(synpred7()&&(validateIdentifierKey("forall")))||(synpred7()&&(validateIdentifierKey("not"))))) ) {s = 9;}
+
+ else if ( (true) ) {s = 14;}
+
+
+ input.seek(index13_6);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (backtracking>0) {failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 13, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA18_eotS =
+ "\13\uffff";
+ static final String DFA18_eofS =
+ "\13\uffff";
+ static final String DFA18_minS =
+ "\1\66\1\60\2\4\1\0\1\61\1\0\4\uffff";
+ static final String DFA18_maxS =
+ "\1\66\1\60\2\123\1\0\1\66\1\0\4\uffff";
+ static final String DFA18_acceptS =
+ "\7\uffff\1\1\1\2\1\1\1\2";
+ static final String DFA18_specialS =
+ "\4\uffff\1\1\1\0\1\2\4\uffff}>";
+ static final String[] DFA18_transitionS = {
+ "\1\1",
+ "\1\2",
+ "\54\3\1\4\1\5\42\3",
+ "\54\3\1\6\1\5\42\3",
+ "\1\uffff",
+ "\1\12\3\uffff\2\11",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA18_eot = DFA.unpackEncodedString(DFA18_eotS);
+ static final short[] DFA18_eof = DFA.unpackEncodedString(DFA18_eofS);
+ static final char[] DFA18_min = DFA.unpackEncodedStringToUnsignedChars(DFA18_minS);
+ static final char[] DFA18_max = DFA.unpackEncodedStringToUnsignedChars(DFA18_maxS);
+ static final short[] DFA18_accept = DFA.unpackEncodedString(DFA18_acceptS);
+ static final short[] DFA18_special = DFA.unpackEncodedString(DFA18_specialS);
+ static final short[][] DFA18_transition;
+
+ static {
+ int numStates = DFA18_transitionS.length;
+ DFA18_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA18_transition[i] = DFA.unpackEncodedString(DFA18_transitionS[i]);
+ }
+ }
+
+ class DFA18 extends DFA {
+
+ public DFA18(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 18;
+ this.eot = DFA18_eot;
+ this.eof = DFA18_eof;
+ this.min = DFA18_min;
+ this.max = DFA18_max;
+ this.accept = DFA18_accept;
+ this.special = DFA18_special;
+ this.transition = DFA18_transition;
+ }
+ public String getDescription() {
+ return "157:3: ( accumulate_init_clause | accumulate_id_clause )";
+ }
+ public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA18_5 = input.LA(1);
+
+
+ int index18_5 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((LA18_5>=COMMA && LA18_5<=ID)) && ((validateIdentifierKey("init")))) {s = 9;}
+
+ else if ( (LA18_5==RIGHT_PAREN) ) {s = 10;}
+
+
+ input.seek(index18_5);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA18_4 = input.LA(1);
+
+
+ int index18_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((validateIdentifierKey("init"))) ) {s = 7;}
+
+ else if ( (true) ) {s = 8;}
+
+
+ input.seek(index18_4);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA18_6 = input.LA(1);
+
+
+ int index18_6 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((validateIdentifierKey("init"))) ) {s = 9;}
+
+ else if ( (true) ) {s = 10;}
+
+
+ input.seek(index18_6);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (backtracking>0) {failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 18, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA22_eotS =
+ "\13\uffff";
+ static final String DFA22_eofS =
+ "\13\uffff";
+ static final String DFA22_minS =
+ "\1\66\1\60\2\4\1\0\1\61\1\0\4\uffff";
+ static final String DFA22_maxS =
+ "\1\66\1\60\2\123\1\0\1\66\1\0\4\uffff";
+ static final String DFA22_acceptS =
+ "\7\uffff\1\1\1\2\1\1\1\2";
+ static final String DFA22_specialS =
+ "\1\4\1\6\1\0\1\5\1\2\1\1\1\3\4\uffff}>";
+ static final String[] DFA22_transitionS = {
+ "\1\1",
+ "\1\2",
+ "\54\3\1\4\1\5\42\3",
+ "\54\3\1\6\1\5\42\3",
+ "\1\uffff",
+ "\1\12\3\uffff\2\11",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA22_eot = DFA.unpackEncodedString(DFA22_eotS);
+ static final short[] DFA22_eof = DFA.unpackEncodedString(DFA22_eofS);
+ static final char[] DFA22_min = DFA.unpackEncodedStringToUnsignedChars(DFA22_minS);
+ static final char[] DFA22_max = DFA.unpackEncodedStringToUnsignedChars(DFA22_maxS);
+ static final short[] DFA22_accept = DFA.unpackEncodedString(DFA22_acceptS);
+ static final short[] DFA22_special = DFA.unpackEncodedString(DFA22_specialS);
+ static final short[][] DFA22_transition;
+
+ static {
+ int numStates = DFA22_transitionS.length;
+ DFA22_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA22_transition[i] = DFA.unpackEncodedString(DFA22_transitionS[i]);
+ }
+ }
+
+ class DFA22 extends DFA {
+
+ public DFA22(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 22;
+ this.eot = DFA22_eot;
+ this.eof = DFA22_eof;
+ this.min = DFA22_min;
+ this.max = DFA22_max;
+ this.accept = DFA22_accept;
+ this.special = DFA22_special;
+ this.transition = DFA22_transition;
+ }
+ public String getDescription() {
+ return "168:2: ( reverse_key pc3= paren_chunk ( COMMA )? )?";
+ }
+ public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA22_2 = input.LA(1);
+
+
+ int index22_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((LA22_2>=VT_FACT && LA22_2<=VK_COLLECT)||(LA22_2>=DOUBLE_PIPE && LA22_2<=MULTI_LINE_COMMENT)) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 3;}
+
+ else if ( (LA22_2==LEFT_PAREN) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 4;}
+
+ else if ( (LA22_2==RIGHT_PAREN) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 5;}
+
+
+ input.seek(index22_2);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA22_5 = input.LA(1);
+
+
+ int index22_5 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((LA22_5>=COMMA && LA22_5<=ID)) && ((validateIdentifierKey("reverse")))) {s = 9;}
+
+ else if ( (LA22_5==RIGHT_PAREN) && ((validateIdentifierKey("result")))) {s = 10;}
+
+
+ input.seek(index22_5);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA22_4 = input.LA(1);
+
+
+ int index22_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((validateIdentifierKey("reverse"))) ) {s = 7;}
+
+ else if ( ((validateIdentifierKey("result"))) ) {s = 8;}
+
+
+ input.seek(index22_4);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA22_6 = input.LA(1);
+
+
+ int index22_6 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((validateIdentifierKey("reverse"))) ) {s = 9;}
+
+ else if ( ((validateIdentifierKey("result"))) ) {s = 10;}
+
+
+ input.seek(index22_6);
+ if ( s>=0 ) return s;
+ break;
+ case 4 :
+ int LA22_0 = input.LA(1);
+
+
+ int index22_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA22_0==ID) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 1;}
+
+
+ input.seek(index22_0);
+ if ( s>=0 ) return s;
+ break;
+ case 5 :
+ int LA22_3 = input.LA(1);
+
+
+ int index22_3 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA22_3==RIGHT_PAREN) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 5;}
+
+ else if ( ((LA22_3>=VT_FACT && LA22_3<=VK_COLLECT)||(LA22_3>=DOUBLE_PIPE && LA22_3<=MULTI_LINE_COMMENT)) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 3;}
+
+ else if ( (LA22_3==LEFT_PAREN) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 6;}
+
+
+ input.seek(index22_3);
+ if ( s>=0 ) return s;
+ break;
+ case 6 :
+ int LA22_1 = input.LA(1);
+
+
+ int index22_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA22_1==LEFT_PAREN) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 2;}
+
+
+ input.seek(index22_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (backtracking>0) {failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 22, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA23_eotS =
+ "\25\uffff";
+ static final String DFA23_eofS =
+ "\1\2\24\uffff";
+ static final String DFA23_minS =
+ "\1\60\1\4\1\uffff\1\4\1\0\2\uffff\1\4\2\0\3\4\1\0\1\4\1\uffff\1"+
+ "\4\4\0";
+ static final String DFA23_maxS =
+ "\1\67\1\123\1\uffff\1\123\1\0\2\uffff\1\123\2\0\3\123\1\0\1\123"+
+ "\1\uffff\1\123\4\0";
+ static final String DFA23_acceptS =
+ "\2\uffff\1\2\2\uffff\2\1\10\uffff\1\1\5\uffff";
+ static final String DFA23_specialS =
+ "\1\uffff\1\3\1\uffff\1\7\1\2\2\uffff\1\11\1\6\1\0\1\12\1\1\1\5\1"+
+ "\4\1\10\1\uffff\1\13\4\uffff}>";
+ static final String[] DFA23_transitionS = {
+ "\1\1\7\2",
+ "\54\5\1\4\1\6\4\5\1\3\35\5",
+ "",
+ "\54\5\1\10\1\6\4\5\1\11\1\12\1\5\1\7\13\5\1\13\16\5",
+ "\1\uffff",
+ "",
+ "",
+ "\54\5\1\15\1\6\4\5\1\14\35\5",
+ "\1\uffff",
+ "\1\uffff",
+ "\54\5\1\17\1\6\4\5\1\16\35\5",
+ "\54\5\1\17\1\6\24\5\1\20\15\5",
+ "\54\5\1\22\1\6\5\5\1\21\15\5\1\23\16\5",
+ "\1\uffff",
+ "\54\5\1\24\1\6\5\5\1\12\15\5\1\13\16\5",
+ "",
+ "\54\5\1\24\1\6\23\5\1\13\16\5",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff"
+ };
+
+ static final short[] DFA23_eot = DFA.unpackEncodedString(DFA23_eotS);
+ static final short[] DFA23_eof = DFA.unpackEncodedString(DFA23_eofS);
+ static final char[] DFA23_min = DFA.unpackEncodedStringToUnsignedChars(DFA23_minS);
+ static final char[] DFA23_max = DFA.unpackEncodedStringToUnsignedChars(DFA23_maxS);
+ static final short[] DFA23_accept = DFA.unpackEncodedString(DFA23_acceptS);
+ static final short[] DFA23_special = DFA.unpackEncodedString(DFA23_specialS);
+ static final short[][] DFA23_transition;
+
+ static {
+ int numStates = DFA23_transitionS.length;
+ DFA23_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA23_transition[i] = DFA.unpackEncodedString(DFA23_transitionS[i]);
+ }
+ }
+
+ class DFA23 extends DFA {
+
+ public DFA23(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 23;
+ this.eot = DFA23_eot;
+ this.eof = DFA23_eof;
+ this.min = DFA23_min;
+ this.max = DFA23_max;
+ this.accept = DFA23_accept;
+ this.special = DFA23_special;
+ this.transition = DFA23_transition;
+ }
+ public String getDescription() {
+ return "191:3: ( ( LEFT_PAREN )=>args= paren_chunk )?";
+ }
+ public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA23_9 = input.LA(1);
+
+
+ int index23_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred8()) ) {s = 6;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index23_9);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA23_11 = input.LA(1);
+
+
+ int index23_11 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA23_11==RIGHT_SQUARE) ) {s = 16;}
+
+ else if ( (LA23_11==RIGHT_PAREN) && (synpred8())) {s = 6;}
+
+ else if ( ((LA23_11>=VT_FACT && LA23_11<=VK_COLLECT)||(LA23_11>=DOUBLE_PIPE && LA23_11<=LEFT_SQUARE)||(LA23_11>=LEFT_CURLY && LA23_11<=MULTI_LINE_COMMENT)) && (synpred8())) {s = 5;}
+
+ else if ( (LA23_11==LEFT_PAREN) && (synpred8())) {s = 15;}
+
+
+ input.seek(index23_11);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA23_4 = input.LA(1);
+
+
+ int index23_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred8()) ) {s = 6;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index23_4);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA23_1 = input.LA(1);
+
+
+ int index23_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA23_1==ID) ) {s = 3;}
+
+ else if ( (LA23_1==LEFT_PAREN) ) {s = 4;}
+
+ else if ( ((LA23_1>=VT_FACT && LA23_1<=VK_COLLECT)||(LA23_1>=DOUBLE_PIPE && LA23_1<=COMMA)||(LA23_1>=DOT && LA23_1<=MULTI_LINE_COMMENT)) && (synpred8())) {s = 5;}
+
+ else if ( (LA23_1==RIGHT_PAREN) && (synpred8())) {s = 6;}
+
+
+ input.seek(index23_1);
+ if ( s>=0 ) return s;
+ break;
+ case 4 :
+ int LA23_13 = input.LA(1);
+
+
+ int index23_13 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred8()) ) {s = 15;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index23_13);
+ if ( s>=0 ) return s;
+ break;
+ case 5 :
+ int LA23_12 = input.LA(1);
+
+
+ int index23_12 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA23_12==RIGHT_PAREN) && (synpred8())) {s = 6;}
+
+ else if ( (LA23_12==DOT) ) {s = 17;}
+
+ else if ( (LA23_12==LEFT_PAREN) ) {s = 18;}
+
+ else if ( (LA23_12==LEFT_SQUARE) ) {s = 19;}
+
+ else if ( ((LA23_12>=VT_FACT && LA23_12<=VK_COLLECT)||(LA23_12>=DOUBLE_PIPE && LA23_12<=ID)||(LA23_12>=ARROW && LA23_12<=NULL)||(LA23_12>=RIGHT_SQUARE && LA23_12<=MULTI_LINE_COMMENT)) && (synpred8())) {s = 5;}
+
+
+ input.seek(index23_12);
+ if ( s>=0 ) return s;
+ break;
+ case 6 :
+ int LA23_8 = input.LA(1);
+
+
+ int index23_8 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred8()) ) {s = 6;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index23_8);
+ if ( s>=0 ) return s;
+ break;
+ case 7 :
+ int LA23_3 = input.LA(1);
+
+
+ int index23_3 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA23_3==COLON) ) {s = 7;}
+
+ else if ( (LA23_3==LEFT_PAREN) ) {s = 8;}
+
+ else if ( (LA23_3==ID) ) {s = 9;}
+
+ else if ( (LA23_3==DOT) ) {s = 10;}
+
+ else if ( (LA23_3==LEFT_SQUARE) ) {s = 11;}
+
+ else if ( (LA23_3==RIGHT_PAREN) && (synpred8())) {s = 6;}
+
+ else if ( ((LA23_3>=VT_FACT && LA23_3<=VK_COLLECT)||(LA23_3>=DOUBLE_PIPE && LA23_3<=COMMA)||LA23_3==ARROW||(LA23_3>=EQUAL && LA23_3<=NULL)||(LA23_3>=RIGHT_SQUARE && LA23_3<=MULTI_LINE_COMMENT)) && (synpred8())) {s = 5;}
+
+
+ input.seek(index23_3);
+ if ( s>=0 ) return s;
+ break;
+ case 8 :
+ int LA23_14 = input.LA(1);
+
+
+ int index23_14 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA23_14==LEFT_SQUARE) ) {s = 11;}
+
+ else if ( (LA23_14==LEFT_PAREN) ) {s = 20;}
+
+ else if ( (LA23_14==DOT) ) {s = 10;}
+
+ else if ( (LA23_14==RIGHT_PAREN) && (synpred8())) {s = 6;}
+
+ else if ( ((LA23_14>=VT_FACT && LA23_14<=VK_COLLECT)||(LA23_14>=DOUBLE_PIPE && LA23_14<=ID)||(LA23_14>=ARROW && LA23_14<=NULL)||(LA23_14>=RIGHT_SQUARE && LA23_14<=MULTI_LINE_COMMENT)) && (synpred8())) {s = 5;}
+
+
+ input.seek(index23_14);
+ if ( s>=0 ) return s;
+ break;
+ case 9 :
+ int LA23_7 = input.LA(1);
+
+
+ int index23_7 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA23_7==ID) ) {s = 12;}
+
+ else if ( (LA23_7==LEFT_PAREN) ) {s = 13;}
+
+ else if ( (LA23_7==RIGHT_PAREN) && (synpred8())) {s = 6;}
+
+ else if ( ((LA23_7>=VT_FACT && LA23_7<=VK_COLLECT)||(LA23_7>=DOUBLE_PIPE && LA23_7<=COMMA)||(LA23_7>=DOT && LA23_7<=MULTI_LINE_COMMENT)) && (synpred8())) {s = 5;}
+
+
+ input.seek(index23_7);
+ if ( s>=0 ) return s;
+ break;
+ case 10 :
+ int LA23_10 = input.LA(1);
+
+
+ int index23_10 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA23_10==ID) ) {s = 14;}
+
+ else if ( (LA23_10==RIGHT_PAREN) && (synpred8())) {s = 6;}
+
+ else if ( ((LA23_10>=VT_FACT && LA23_10<=VK_COLLECT)||(LA23_10>=DOUBLE_PIPE && LA23_10<=COMMA)||(LA23_10>=DOT && LA23_10<=MULTI_LINE_COMMENT)) && (synpred8())) {s = 5;}
+
+ else if ( (LA23_10==LEFT_PAREN) && (synpred8())) {s = 15;}
+
+
+ input.seek(index23_10);
+ if ( s>=0 ) return s;
+ break;
+ case 11 :
+ int LA23_16 = input.LA(1);
+
+
+ int index23_16 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA23_16==LEFT_PAREN) ) {s = 20;}
+
+ else if ( (LA23_16==LEFT_SQUARE) ) {s = 11;}
+
+ else if ( (LA23_16==RIGHT_PAREN) && (synpred8())) {s = 6;}
+
+ else if ( ((LA23_16>=VT_FACT && LA23_16<=VK_COLLECT)||(LA23_16>=DOUBLE_PIPE && LA23_16<=NULL)||(LA23_16>=RIGHT_SQUARE && LA23_16<=MULTI_LINE_COMMENT)) && (synpred8())) {s = 5;}
+
+
+ input.seek(index23_16);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (backtracking>0) {failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 23, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA38_eotS =
+ "\30\uffff";
+ static final String DFA38_eofS =
+ "\30\uffff";
+ static final String DFA38_minS =
+ "\1\61\1\uffff\2\60\1\0\1\uffff\1\0\1\60\1\4\2\0\3\4\12\0";
+ static final String DFA38_maxS =
+ "\1\65\1\uffff\1\77\1\105\1\0\1\uffff\1\0\1\105\1\123\2\0\3\123\12"+
+ "\0";
+ static final String DFA38_acceptS =
+ "\1\uffff\1\2\3\uffff\1\1\22\uffff";
+ static final String DFA38_specialS =
+ "\4\uffff\1\0\1\uffff\1\3\2\uffff\1\2\1\1\15\uffff}>";
+ static final String[] DFA38_transitionS = {
+ "\1\1\1\2\1\1\1\uffff\1\1",
+ "",
+ "\1\4\5\uffff\1\3\3\uffff\6\5",
+ "\1\6\5\uffff\1\7\1\1\1\uffff\7\1\5\5\1\10",
+ "\1\uffff",
+ "",
+ "\1\uffff",
+ "\1\13\3\5\1\uffff\1\5\1\11\1\5\10\uffff\5\12\1\14",
+ "\101\15\1\16\1\17\15\15",
+ "\1\uffff",
+ "\1\uffff",
+ "\54\23\1\22\1\24\4\23\1\20\11\23\5\21\17\23",
+ "\101\25\1\26\1\27\15\25",
+ "\101\15\1\16\1\17\15\15",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff"
+ };
+
+ static final short[] DFA38_eot = DFA.unpackEncodedString(DFA38_eotS);
+ static final short[] DFA38_eof = DFA.unpackEncodedString(DFA38_eofS);
+ static final char[] DFA38_min = DFA.unpackEncodedStringToUnsignedChars(DFA38_minS);
+ static final char[] DFA38_max = DFA.unpackEncodedStringToUnsignedChars(DFA38_maxS);
+ static final short[] DFA38_accept = DFA.unpackEncodedString(DFA38_acceptS);
+ static final short[] DFA38_special = DFA.unpackEncodedString(DFA38_specialS);
+ static final short[][] DFA38_transition;
+
+ static {
+ int numStates = DFA38_transitionS.length;
+ DFA38_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA38_transition[i] = DFA.unpackEncodedString(DFA38_transitionS[i]);
+ }
+ }
+
+ class DFA38 extends DFA {
+
+ public DFA38(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 38;
+ this.eot = DFA38_eot;
+ this.eof = DFA38_eof;
+ this.min = DFA38_min;
+ this.max = DFA38_max;
+ this.accept = DFA38_accept;
+ this.special = DFA38_special;
+ this.transition = DFA38_transition;
+ }
+ public String getDescription() {
+ return "()* loopback of 271:25: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective )*";
+ }
+ public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA38_4 = input.LA(1);
+
+
+ int index38_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred11()) ) {s = 5;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index38_4);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA38_10 = input.LA(1);
+
+
+ int index38_10 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred11()) ) {s = 5;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index38_10);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA38_9 = input.LA(1);
+
+
+ int index38_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred11()) ) {s = 5;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index38_9);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA38_6 = input.LA(1);
+
+
+ int index38_6 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred11()) ) {s = 5;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index38_6);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (backtracking>0) {failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 38, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA39_eotS =
+ "\61\uffff";
+ static final String DFA39_eofS =
+ "\1\1\5\uffff\1\4\52\uffff";
+ static final String DFA39_minS =
+ "\1\61\1\uffff\2\60\1\uffff\2\60\2\4\1\60\3\0\5\4\37\0";
+ static final String DFA39_maxS =
+ "\1\65\1\uffff\1\77\1\105\1\uffff\1\77\1\105\2\123\1\105\3\0\5\123"+
+ "\37\0";
+ static final String DFA39_acceptS =
+ "\1\uffff\1\2\2\uffff\1\1\54\uffff";
+ static final String DFA39_specialS =
+ "\12\uffff\1\1\1\0\1\2\44\uffff}>";
+ static final String[] DFA39_transitionS = {
+ "\2\1\1\2\1\uffff\1\1",
+ "",
+ "\1\5\5\uffff\1\3\3\uffff\6\4",
+ "\1\7\5\uffff\1\6\1\1\1\uffff\7\1\5\4\1\10",
+ "",
+ "\1\12\5\uffff\1\11\3\uffff\6\4",
+ "\1\15\3\4\1\uffff\1\4\1\13\1\4\10\uffff\5\14\1\16",
+ "\54\31\1\26\1\30\4\31\1\17\3\31\1\20\1\21\1\22\1\23\1\24\1\25"+
+ "\5\27\17\31",
+ "\101\32\1\33\1\34\15\32",
+ "\1\36\5\uffff\1\35\1\1\1\uffff\7\1\5\4\1\37",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\54\43\1\42\1\44\4\43\1\40\11\43\5\41\17\43",
+ "\101\45\1\46\1\47\15\45",
+ "\54\31\1\52\1\50\3\31\1\56\1\51\1\55\10\31\5\53\1\54\16\31",
+ "\54\31\1\60\1\30\4\31\1\57\11\31\5\53\17\31",
+ "\54\31\1\60\1\30\4\31\1\57\11\31\5\53\17\31",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff"
+ };
+
+ static final short[] DFA39_eot = DFA.unpackEncodedString(DFA39_eotS);
+ static final short[] DFA39_eof = DFA.unpackEncodedString(DFA39_eofS);
+ static final char[] DFA39_min = DFA.unpackEncodedStringToUnsignedChars(DFA39_minS);
+ static final char[] DFA39_max = DFA.unpackEncodedStringToUnsignedChars(DFA39_maxS);
+ static final short[] DFA39_accept = DFA.unpackEncodedString(DFA39_acceptS);
+ static final short[] DFA39_special = DFA.unpackEncodedString(DFA39_specialS);
+ static final short[][] DFA39_transition;
+
+ static {
+ int numStates = DFA39_transitionS.length;
+ DFA39_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA39_transition[i] = DFA.unpackEncodedString(DFA39_transitionS[i]);
+ }
+ }
+
+ class DFA39 extends DFA {
+
+ public DFA39(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 39;
+ this.eot = DFA39_eot;
+ this.eof = DFA39_eof;
+ this.min = DFA39_min;
+ this.max = DFA39_max;
+ this.accept = DFA39_accept;
+ this.special = DFA39_special;
+ this.transition = DFA39_transition;
+ }
+ public String getDescription() {
+ return "()* loopback of 275:26: ( options {backtrack=true; } : DOUBLE_AMPER constraint_expression )*";
+ }
+ public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA39_11 = input.LA(1);
+
+
+ int index39_11 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred12()) ) {s = 4;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index39_11);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA39_10 = input.LA(1);
+
+
+ int index39_10 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred12()) ) {s = 4;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index39_10);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA39_12 = input.LA(1);
+
+
+ int index39_12 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred12()) ) {s = 4;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index39_12);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (backtracking>0) {failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 39, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+ public static final BitSet FOLLOW_lhs_in_normal_lhs_block220 = new BitSet(new long[]{0x0041000000000002L});
+ public static final BitSet FOLLOW_lhs_or_in_lhs241 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_or262 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_or_key_in_lhs_or266 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_lhs_and_in_lhs_or268 = new BitSet(new long[]{0x0043000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_or271 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lhs_and_in_lhs_or290 = new BitSet(new long[]{0x0044000000000002L});
+ public static final BitSet FOLLOW_or_key_in_lhs_or312 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_DOUBLE_PIPE_in_lhs_or319 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_lhs_and_in_lhs_or324 = new BitSet(new long[]{0x0044000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_and362 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_and_key_in_lhs_and366 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_lhs_unary_in_lhs_and368 = new BitSet(new long[]{0x0043000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_and371 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lhs_unary_in_lhs_and390 = new BitSet(new long[]{0x0048000000000002L});
+ public static final BitSet FOLLOW_and_key_in_lhs_and412 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_DOUBLE_AMPER_in_lhs_and419 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_lhs_unary_in_lhs_and424 = new BitSet(new long[]{0x0048000000000002L});
+ public static final BitSet FOLLOW_lhs_exist_in_lhs_unary462 = new BitSet(new long[]{0x0010000000000002L});
+ public static final BitSet FOLLOW_lhs_not_in_lhs_unary468 = new BitSet(new long[]{0x0010000000000002L});
+ public static final BitSet FOLLOW_lhs_eval_in_lhs_unary474 = new BitSet(new long[]{0x0010000000000002L});
+ public static final BitSet FOLLOW_lhs_forall_in_lhs_unary480 = new BitSet(new long[]{0x0010000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary486 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_lhs_or_in_lhs_unary489 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary491 = new BitSet(new long[]{0x0010000000000002L});
+ public static final BitSet FOLLOW_pattern_source_in_lhs_unary498 = new BitSet(new long[]{0x0010000000000002L});
+ public static final BitSet FOLLOW_SEMICOLON_in_lhs_unary512 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_exists_key_in_lhs_exist526 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_lhs_or_in_lhs_exist550 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist557 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_lhs_or_in_lhs_exist559 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist561 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lhs_pattern_in_lhs_exist574 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_not_key_in_lhs_not619 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_lhs_or_in_lhs_not636 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not643 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_lhs_or_in_lhs_not645 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not647 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lhs_pattern_in_lhs_not655 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_eval_key_in_lhs_eval689 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_paren_chunk_in_lhs_eval691 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_forall_key_in_lhs_forall712 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall714 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall716 = new BitSet(new long[]{0x0042000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall719 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lhs_pattern_in_pattern_source749 = new BitSet(new long[]{0x0040000000000002L});
+ public static final BitSet FOLLOW_from_key_in_pattern_source758 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_accumulate_statement_in_pattern_source774 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_collect_statement_in_pattern_source790 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_entrypoint_statement_in_pattern_source807 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_from_source_in_pattern_source823 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_accumulate_key_in_accumulate_statement851 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement855 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_lhs_or_in_accumulate_statement857 = new BitSet(new long[]{0x0060000000000000L});
+ public static final BitSet FOLLOW_COMMA_in_accumulate_statement859 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_accumulate_init_clause_in_accumulate_statement867 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_accumulate_id_clause_in_accumulate_statement873 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement881 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_init_key_in_accumulate_init_clause908 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_paren_chunk_in_accumulate_init_clause913 = new BitSet(new long[]{0x0060000000000000L});
+ public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause915 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_action_key_in_accumulate_init_clause919 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_paren_chunk_in_accumulate_init_clause923 = new BitSet(new long[]{0x0060000000000000L});
+ public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause925 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_reverse_key_in_accumulate_init_clause931 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_paren_chunk_in_accumulate_init_clause935 = new BitSet(new long[]{0x0060000000000000L});
+ public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause937 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_result_key_in_accumulate_init_clause943 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_paren_chunk_in_accumulate_init_clause947 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_accumulate_id_clause996 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_paren_chunk_in_accumulate_id_clause1000 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_collect_key_in_collect_statement1022 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement1026 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_pattern_source_in_collect_statement1028 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement1030 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_entry_point_key_in_entrypoint_statement1050 = new BitSet(new long[]{0x0040000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_name_in_entrypoint_statement1052 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_from_source1072 = new BitSet(new long[]{0x0081000000000002L});
+ public static final BitSet FOLLOW_paren_chunk_in_from_source1085 = new BitSet(new long[]{0x0080000000000002L});
+ public static final BitSet FOLLOW_expression_chain_in_from_source1092 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOT_in_expression_chain1124 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_ID_in_expression_chain1126 = new BitSet(new long[]{0x0081000000000002L,0x0000000000000020L});
+ public static final BitSet FOLLOW_square_chunk_in_expression_chain1146 = new BitSet(new long[]{0x0080000000000002L});
+ public static final BitSet FOLLOW_paren_chunk_in_expression_chain1168 = new BitSet(new long[]{0x0080000000000002L});
+ public static final BitSet FOLLOW_expression_chain_in_expression_chain1179 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_fact_binding_in_lhs_pattern1212 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_fact_in_lhs_pattern1225 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_label_in_fact_binding1245 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_fact_in_fact_binding1251 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_fact_binding1258 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_fact_binding_expression_in_fact_binding1260 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_binding1262 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_fact_in_fact_binding_expression1298 = new BitSet(new long[]{0x0044000000000002L});
+ public static final BitSet FOLLOW_or_key_in_fact_binding_expression1310 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_DOUBLE_PIPE_in_fact_binding_expression1316 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_fact_in_fact_binding_expression1321 = new BitSet(new long[]{0x0044000000000002L});
+ public static final BitSet FOLLOW_qualified_id_in_fact1350 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_fact1352 = new BitSet(new long[]{0x0043000000000000L});
+ public static final BitSet FOLLOW_constraints_in_fact1354 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_fact1357 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_constraint_in_constraints1380 = new BitSet(new long[]{0x0020000000000002L});
+ public static final BitSet FOLLOW_COMMA_in_constraints1384 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_constraint_in_constraints1387 = new BitSet(new long[]{0x0020000000000002L});
+ public static final BitSet FOLLOW_or_constr_in_constraint1401 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_and_constr_in_or_constr1412 = new BitSet(new long[]{0x0004000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_constr1416 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_and_constr_in_or_constr1419 = new BitSet(new long[]{0x0004000000000002L});
+ public static final BitSet FOLLOW_unary_constr_in_and_constr1434 = new BitSet(new long[]{0x0008000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_constr1438 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_unary_constr_in_and_constr1441 = new BitSet(new long[]{0x0008000000000002L});
+ public static final BitSet FOLLOW_eval_key_in_unary_constr1462 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_paren_chunk_in_unary_constr1464 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_field_constraint_in_unary_constr1477 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr1482 = new BitSet(new long[]{0x0041000000000000L});
+ public static final BitSet FOLLOW_or_constr_in_unary_constr1484 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr1486 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_label_in_field_constraint1505 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_accessor_path_in_field_constraint1507 = new BitSet(new long[]{0xFD41000000000002L});
+ public static final BitSet FOLLOW_or_restr_connective_in_field_constraint1511 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ARROW_in_field_constraint1517 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_paren_chunk_in_field_constraint1519 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_accessor_path_in_field_constraint1573 = new BitSet(new long[]{0xFC41000000000000L});
+ public static final BitSet FOLLOW_or_restr_connective_in_field_constraint1575 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_label1599 = new BitSet(new long[]{0x0200000000000000L});
+ public static final BitSet FOLLOW_COLON_in_label1601 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective1617 = new BitSet(new long[]{0x0004000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective1629 = new BitSet(new long[]{0xFC41000000000000L});
+ public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective1632 = new BitSet(new long[]{0x0004000000000002L});
+ public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective1647 = new BitSet(new long[]{0x0008000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective1659 = new BitSet(new long[]{0xFC41000000000000L});
+ public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective1662 = new BitSet(new long[]{0x0008000000000002L});
+ public static final BitSet FOLLOW_compound_operator_in_constraint_expression1684 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_simple_operator_in_constraint_expression1689 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression1694 = new BitSet(new long[]{0xFC41000000000000L});
+ public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression1696 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression1698 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_EQUAL_in_simple_operator1714 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_GREATER_in_simple_operator1720 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_GREATER_EQUAL_in_simple_operator1726 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_LESS_in_simple_operator1732 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_LESS_EQUAL_in_simple_operator1738 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_NOT_EQUAL_in_simple_operator1744 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_not_key_in_simple_operator1750 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_contains_key_in_simple_operator1753 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_soundslike_key_in_simple_operator1756 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_matches_key_in_simple_operator1759 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_memberof_key_in_simple_operator1762 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_ID_in_simple_operator1765 = new BitSet(new long[]{0x0041000000000000L,0x000000000000003FL});
+ public static final BitSet FOLLOW_square_chunk_in_simple_operator1768 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_contains_key_in_simple_operator1781 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_excludes_key_in_simple_operator1787 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_matches_key_in_simple_operator1793 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_soundslike_key_in_simple_operator1799 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_memberof_key_in_simple_operator1805 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_ID_in_simple_operator1811 = new BitSet(new long[]{0x0041000000000000L,0x000000000000003FL});
+ public static final BitSet FOLLOW_square_chunk_in_simple_operator1814 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_expression_value_in_simple_operator1819 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_in_key_in_compound_operator1834 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_not_key_in_compound_operator1839 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_in_key_in_compound_operator1841 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator1846 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_expression_value_in_compound_operator1849 = new BitSet(new long[]{0x0022000000000000L});
+ public static final BitSet FOLLOW_COMMA_in_compound_operator1853 = new BitSet(new long[]{0x0041000000000000L,0x000000000000001FL});
+ public static final BitSet FOLLOW_expression_value_in_compound_operator1856 = new BitSet(new long[]{0x0022000000000000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator1861 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_accessor_path_in_expression_value1873 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_literal_constraint_in_expression_value1878 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_paren_chunk_in_expression_value1884 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_set_in_literal_constraint0 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_qualified_id1926 = new BitSet(new long[]{0x0080000000000002L,0x0000000000000020L});
+ public static final BitSet FOLLOW_DOT_in_qualified_id1930 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_ID_in_qualified_id1932 = new BitSet(new long[]{0x0080000000000002L,0x0000000000000020L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_qualified_id1939 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_RIGHT_SQUARE_in_qualified_id1941 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
+ public static final BitSet FOLLOW_accessor_element_in_accessor_path1966 = new BitSet(new long[]{0x0080000000000002L});
+ public static final BitSet FOLLOW_DOT_in_accessor_path1970 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_accessor_element_in_accessor_path1972 = new BitSet(new long[]{0x0080000000000002L});
+ public static final BitSet FOLLOW_ID_in_accessor_element1996 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
+ public static final BitSet FOLLOW_square_chunk_in_accessor_element1998 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
+ public static final BitSet FOLLOW_ID_in_name2025 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_STRING_in_name2038 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk2059 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk_data2078 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_set_in_curly_chunk_data2081 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk_data2095 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk_data2100 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk2117 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk_data2139 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_set_in_paren_chunk_data2142 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk_data2156 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk_data2161 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_square_chunk_data_in_square_chunk2178 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk_data2199 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_set_in_square_chunk_data2202 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_square_chunk_data_in_square_chunk_data2216 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk_data2221 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_eval_key2238 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_contains_key2260 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_matches_key2282 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_excludes_key2304 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_soundslike_key2326 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_memberof_key2348 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_not_key2370 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_in_key2392 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_or_key2414 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_and_key2436 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_exists_key2458 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_forall_key2480 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_from_key2502 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_entry_point_key2525 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_MISC_in_entry_point_key2527 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_ID_in_entry_point_key2529 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_accumulate_key2554 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_init_key2576 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_action_key2598 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_reverse_key2620 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_result_key2642 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_collect_key2664 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_synpred1256 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_or_key_in_synpred1258 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_or_key_in_synpred2303 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_PIPE_in_synpred2305 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_synpred3356 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_and_key_in_synpred3358 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_and_key_in_synpred4403 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred4405 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SEMICOLON_in_synpred5508 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_synpred6540 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_or_key_in_synpred6543 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_and_key_in_synpred6545 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_synpred7626 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_or_key_in_synpred7629 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_and_key_in_synpred7631 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_synpred81079 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_synpred91140 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_synpred101162 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_PIPE_in_synpred111629 = new BitSet(new long[]{0xFC41000000000000L});
+ public static final BitSet FOLLOW_and_restr_connective_in_synpred111632 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred121659 = new BitSet(new long[]{0xFC41000000000000L});
+ public static final BitSet FOLLOW_constraint_expression_in_synpred121662 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file
Property changes on: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/NewDRLParser.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/TreeNewDRL.java
===================================================================
--- labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/TreeNewDRL.java (rev 0)
+++ labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/TreeNewDRL.java 2008-04-28 17:05:28 UTC (rev 19745)
@@ -0,0 +1,1957 @@
+package org.drools.lang;
+
+import org.antlr.runtime.*;
+import org.antlr.runtime.tree.*;import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+public class TreeNewDRL extends TreeParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "VT_FACT", "VT_CONSTRAINTS", "VT_QUALIFIED_ID", "VT_LABEL", "VT_NAME", "VT_CURLY_CHUNK", "VT_SQUARE_CHUNK", "VT_PAREN_CHUNK", "VT_AND_IMPLICIT", "VT_AND_PREFIX", "VT_OR_PREFIX", "VT_AND_INFIX", "VT_OR_INFIX", "VT_ACCUMULATE_INIT_CLAUSE", "VT_ACCUMULATE_ID_CLAUSE", "VT_FROM_SOURCE", "VT_EXPRESSION_CHAIN", "VT_PATTERN", "VT_FACT_BINDING", "VT_FACT_OR", "VT_BIND_FIELD", "VT_FIELD", "VT_ACCESSOR_PATH", "VT_ACCESSOR_ELEMENT", "VK_EVAL", "VK_CONTAINS", "VK_MATCHES", "VK_EXCLUDES", "VK_SOUNDSLIKE", "VK_MEMBEROF", "VK_ENTRY_POINT", "VK_NOT", "VK_IN", "VK_OR", "VK_AND", "VK_EXISTS", "VK_FORALL", "VK_FROM", "VK_ACCUMULATE", "VK_INIT", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "VK_COLLECT", "LEFT_PAREN", "RIGHT_PAREN", "DOUBLE_PIPE", "DOUBLE_AMPER", "SEMICOLON", "COMMA", "ID", "DOT", "ARROW", "COLON", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "STRING", "INT", "FLOAT", "BOOL", "NULL", "LEFT_SQUARE", "RIGHT_SQUA!
RE", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "TILDE", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT"
+ };
+ public static final int COMMA=53;
+ public static final int VT_ACCUMULATE_ID_CLAUSE=18;
+ public static final int VT_FACT_OR=23;
+ public static final int VK_NOT=35;
+ public static final int HexDigit=77;
+ public static final int VK_ACCUMULATE=42;
+ public static final int VT_EXPRESSION_CHAIN=20;
+ public static final int ARROW=56;
+ public static final int VT_AND_PREFIX=13;
+ public static final int MISC=73;
+ public static final int FLOAT=66;
+ public static final int VT_CURLY_CHUNK=9;
+ public static final int TILDE=80;
+ public static final int DOT=55;
+ public static final int VT_OR_PREFIX=14;
+ public static final int DOUBLE_PIPE=50;
+ public static final int LESS=61;
+ public static final int VT_PATTERN=21;
+ public static final int EscapeSequence=76;
+ public static final int VK_EXISTS=39;
+ public static final int INT=65;
+ public static final int VT_BIND_FIELD=24;
+ public static final int VK_COLLECT=47;
+ public static final int VK_EVAL=28;
+ public static final int LEFT_SQUARE=69;
+ public static final int SH_STYLE_SINGLE_LINE_COMMENT=81;
+ public static final int GREATER=59;
+ public static final int VT_FACT=4;
+ public static final int VK_MATCHES=30;
+ public static final int LEFT_CURLY=71;
+ public static final int VT_FACT_BINDING=22;
+ public static final int ID=54;
+ public static final int NOT_EQUAL=63;
+ public static final int DOUBLE_AMPER=51;
+ public static final int LEFT_PAREN=48;
+ public static final int RIGHT_CURLY=72;
+ public static final int BOOL=67;
+ public static final int VT_AND_INFIX=15;
+ public static final int VK_ENTRY_POINT=34;
+ public static final int VT_ACCESSOR_PATH=26;
+ public static final int VT_FROM_SOURCE=19;
+ public static final int VT_LABEL=7;
+ public static final int VK_CONTAINS=29;
+ public static final int VK_SOUNDSLIKE=32;
+ public static final int VT_FIELD=25;
+ public static final int WS=75;
+ public static final int VT_QUALIFIED_ID=6;
+ public static final int VK_AND=38;
+ public static final int STRING=64;
+ public static final int VK_IN=36;
+ public static final int VT_ACCESSOR_ELEMENT=27;
+ public static final int VT_ACCUMULATE_INIT_CLAUSE=17;
+ public static final int VK_REVERSE=45;
+ public static final int VK_MEMBEROF=33;
+ public static final int GREATER_EQUAL=60;
+ public static final int VT_OR_INFIX=16;
+ public static final int VK_FORALL=40;
+ public static final int VT_SQUARE_CHUNK=10;
+ public static final int VK_OR=37;
+ public static final int VT_PAREN_CHUNK=11;
+ public static final int VT_NAME=8;
+ public static final int LESS_EQUAL=62;
+ public static final int VK_RESULT=46;
+ public static final int UnicodeEscape=78;
+ public static final int EQUAL=58;
+ public static final int SEMICOLON=52;
+ public static final int VT_AND_IMPLICIT=12;
+ public static final int EOF=-1;
+ public static final int VT_CONSTRAINTS=5;
+ public static final int NULL=68;
+ public static final int EOL=74;
+ public static final int VK_INIT=43;
+ public static final int COLON=57;
+ public static final int OctalEscape=79;
+ public static final int VK_ACTION=44;
+ public static final int MULTI_LINE_COMMENT=83;
+ public static final int VK_FROM=41;
+ public static final int VK_EXCLUDES=31;
+ public static final int RIGHT_PAREN=49;
+ public static final int RIGHT_SQUARE=70;
+ public static final int C_STYLE_SINGLE_LINE_COMMENT=82;
+
+ public TreeNewDRL(TreeNodeStream input) {
+ super(input);
+ }
+
+
+ public String[] getTokenNames() { return tokenNames; }
+ public String getGrammarFileName() { return "/Users/porcelli/Desktop/testes/TreeNewDRL.g"; }
+
+ // $ANTLR start lhs_block
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:23:1: lhs_block : ^( VT_AND_IMPLICIT ( lhs )* ) ;
+ public final void lhs_block() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:24:2: ( ^( VT_AND_IMPLICIT ( lhs )* ) )
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:24:4: ^( VT_AND_IMPLICIT ( lhs )* )
+ {
+ match(input,VT_AND_IMPLICIT,FOLLOW_VT_AND_IMPLICIT_in_lhs_block43);
+
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:24:22: ( lhs )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( ((LA1_0>=VT_AND_PREFIX && LA1_0<=VT_OR_INFIX)||LA1_0==VT_PATTERN||LA1_0==VK_EVAL||LA1_0==VK_NOT||(LA1_0>=VK_EXISTS && LA1_0<=VK_FROM)) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:24:22: lhs
+ {
+ pushFollow(FOLLOW_lhs_in_lhs_block45);
+ lhs();
+ _fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end lhs_block
+
+
+ // $ANTLR start lhs
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:28:1: lhs : ( ^( VT_OR_PREFIX ( lhs )+ ) | ^( VT_OR_INFIX lhs lhs ) | ^( VT_AND_PREFIX ( lhs )+ ) | ^( VT_AND_INFIX lhs lhs ) | ^( VK_EXISTS lhs ) | ^( VK_NOT lhs ) | ^( VK_EVAL VT_PAREN_CHUNK ) | ^( VK_FORALL ( lhs )+ ) | ^( VK_FROM lhs_pattern from_elements ) | lhs_pattern );
+ public final void lhs() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:28:5: ( ^( VT_OR_PREFIX ( lhs )+ ) | ^( VT_OR_INFIX lhs lhs ) | ^( VT_AND_PREFIX ( lhs )+ ) | ^( VT_AND_INFIX lhs lhs ) | ^( VK_EXISTS lhs ) | ^( VK_NOT lhs ) | ^( VK_EVAL VT_PAREN_CHUNK ) | ^( VK_FORALL ( lhs )+ ) | ^( VK_FROM lhs_pattern from_elements ) | lhs_pattern )
+ int alt5=10;
+ switch ( input.LA(1) ) {
+ case VT_OR_PREFIX:
+ {
+ alt5=1;
+ }
+ break;
+ case VT_OR_INFIX:
+ {
+ alt5=2;
+ }
+ break;
+ case VT_AND_PREFIX:
+ {
+ alt5=3;
+ }
+ break;
+ case VT_AND_INFIX:
+ {
+ alt5=4;
+ }
+ break;
+ case VK_EXISTS:
+ {
+ alt5=5;
+ }
+ break;
+ case VK_NOT:
+ {
+ alt5=6;
+ }
+ break;
+ case VK_EVAL:
+ {
+ alt5=7;
+ }
+ break;
+ case VK_FORALL:
+ {
+ alt5=8;
+ }
+ break;
+ case VK_FROM:
+ {
+ alt5=9;
+ }
+ break;
+ case VT_PATTERN:
+ {
+ alt5=10;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("28:1: lhs : ( ^( VT_OR_PREFIX ( lhs )+ ) | ^( VT_OR_INFIX lhs lhs ) | ^( VT_AND_PREFIX ( lhs )+ ) | ^( VT_AND_INFIX lhs lhs ) | ^( VK_EXISTS lhs ) | ^( VK_NOT lhs ) | ^( VK_EVAL VT_PAREN_CHUNK ) | ^( VK_FORALL ( lhs )+ ) | ^( VK_FROM lhs_pattern from_elements ) | lhs_pattern );", 5, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt5) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:28:7: ^( VT_OR_PREFIX ( lhs )+ )
+ {
+ match(input,VT_OR_PREFIX,FOLLOW_VT_OR_PREFIX_in_lhs59);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:28:22: ( lhs )+
+ int cnt2=0;
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>=VT_AND_PREFIX && LA2_0<=VT_OR_INFIX)||LA2_0==VT_PATTERN||LA2_0==VK_EVAL||LA2_0==VK_NOT||(LA2_0>=VK_EXISTS && LA2_0<=VK_FROM)) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:28:22: lhs
+ {
+ pushFollow(FOLLOW_lhs_in_lhs61);
+ lhs();
+ _fsp--;
+
+
+ }
+ break;
+
+ default :
+ if ( cnt2 >= 1 ) break loop2;
+ EarlyExitException eee =
+ new EarlyExitException(2, input);
+ throw eee;
+ }
+ cnt2++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:29:4: ^( VT_OR_INFIX lhs lhs )
+ {
+ match(input,VT_OR_INFIX,FOLLOW_VT_OR_INFIX_in_lhs69);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_lhs71);
+ lhs();
+ _fsp--;
+
+ pushFollow(FOLLOW_lhs_in_lhs73);
+ lhs();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:30:4: ^( VT_AND_PREFIX ( lhs )+ )
+ {
+ match(input,VT_AND_PREFIX,FOLLOW_VT_AND_PREFIX_in_lhs80);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:30:20: ( lhs )+
+ int cnt3=0;
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>=VT_AND_PREFIX && LA3_0<=VT_OR_INFIX)||LA3_0==VT_PATTERN||LA3_0==VK_EVAL||LA3_0==VK_NOT||(LA3_0>=VK_EXISTS && LA3_0<=VK_FROM)) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:30:20: lhs
+ {
+ pushFollow(FOLLOW_lhs_in_lhs82);
+ lhs();
+ _fsp--;
+
+
+ }
+ break;
+
+ default :
+ if ( cnt3 >= 1 ) break loop3;
+ EarlyExitException eee =
+ new EarlyExitException(3, input);
+ throw eee;
+ }
+ cnt3++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:31:4: ^( VT_AND_INFIX lhs lhs )
+ {
+ match(input,VT_AND_INFIX,FOLLOW_VT_AND_INFIX_in_lhs90);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_lhs92);
+ lhs();
+ _fsp--;
+
+ pushFollow(FOLLOW_lhs_in_lhs94);
+ lhs();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 5 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:32:4: ^( VK_EXISTS lhs )
+ {
+ match(input,VK_EXISTS,FOLLOW_VK_EXISTS_in_lhs101);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_lhs103);
+ lhs();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 6 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:33:4: ^( VK_NOT lhs )
+ {
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_lhs110);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_lhs112);
+ lhs();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 7 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:34:4: ^( VK_EVAL VT_PAREN_CHUNK )
+ {
+ match(input,VK_EVAL,FOLLOW_VK_EVAL_in_lhs120);
+
+ match(input, Token.DOWN, null);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_lhs122);
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 8 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:35:4: ^( VK_FORALL ( lhs )+ )
+ {
+ match(input,VK_FORALL,FOLLOW_VK_FORALL_in_lhs129);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:35:16: ( lhs )+
+ int cnt4=0;
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( ((LA4_0>=VT_AND_PREFIX && LA4_0<=VT_OR_INFIX)||LA4_0==VT_PATTERN||LA4_0==VK_EVAL||LA4_0==VK_NOT||(LA4_0>=VK_EXISTS && LA4_0<=VK_FROM)) ) {
+ alt4=1;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:35:16: lhs
+ {
+ pushFollow(FOLLOW_lhs_in_lhs131);
+ lhs();
+ _fsp--;
+
+
+ }
+ break;
+
+ default :
+ if ( cnt4 >= 1 ) break loop4;
+ EarlyExitException eee =
+ new EarlyExitException(4, input);
+ throw eee;
+ }
+ cnt4++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 9 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:36:4: ^( VK_FROM lhs_pattern from_elements )
+ {
+ match(input,VK_FROM,FOLLOW_VK_FROM_in_lhs139);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_pattern_in_lhs141);
+ lhs_pattern();
+ _fsp--;
+
+ pushFollow(FOLLOW_from_elements_in_lhs143);
+ from_elements();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 10 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:37:4: lhs_pattern
+ {
+ pushFollow(FOLLOW_lhs_pattern_in_lhs149);
+ lhs_pattern();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end lhs
+
+
+ // $ANTLR start from_elements
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:40:1: from_elements : ( ^( VK_ACCUMULATE lhs ( accumulate_init_clause | accumulate_id_clause ) ) | ^( VK_COLLECT lhs ) | ^( VK_ENTRY_POINT VT_NAME ) | ^( VT_FROM_SOURCE ID ( VT_PAREN_CHUNK )? ( expression_chain )? ) );
+ public final void from_elements() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:41:2: ( ^( VK_ACCUMULATE lhs ( accumulate_init_clause | accumulate_id_clause ) ) | ^( VK_COLLECT lhs ) | ^( VK_ENTRY_POINT VT_NAME ) | ^( VT_FROM_SOURCE ID ( VT_PAREN_CHUNK )? ( expression_chain )? ) )
+ int alt9=4;
+ switch ( input.LA(1) ) {
+ case VK_ACCUMULATE:
+ {
+ alt9=1;
+ }
+ break;
+ case VK_COLLECT:
+ {
+ alt9=2;
+ }
+ break;
+ case VK_ENTRY_POINT:
+ {
+ alt9=3;
+ }
+ break;
+ case VT_FROM_SOURCE:
+ {
+ alt9=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("40:1: from_elements : ( ^( VK_ACCUMULATE lhs ( accumulate_init_clause | accumulate_id_clause ) ) | ^( VK_COLLECT lhs ) | ^( VK_ENTRY_POINT VT_NAME ) | ^( VT_FROM_SOURCE ID ( VT_PAREN_CHUNK )? ( expression_chain )? ) );", 9, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt9) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:41:4: ^( VK_ACCUMULATE lhs ( accumulate_init_clause | accumulate_id_clause ) )
+ {
+ match(input,VK_ACCUMULATE,FOLLOW_VK_ACCUMULATE_in_from_elements161);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_from_elements163);
+ lhs();
+ _fsp--;
+
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:41:24: ( accumulate_init_clause | accumulate_id_clause )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==VT_ACCUMULATE_INIT_CLAUSE) ) {
+ alt6=1;
+ }
+ else if ( (LA6_0==VT_ACCUMULATE_ID_CLAUSE) ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("41:24: ( accumulate_init_clause | accumulate_id_clause )", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:41:25: accumulate_init_clause
+ {
+ pushFollow(FOLLOW_accumulate_init_clause_in_from_elements166);
+ accumulate_init_clause();
+ _fsp--;
+
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:41:48: accumulate_id_clause
+ {
+ pushFollow(FOLLOW_accumulate_id_clause_in_from_elements168);
+ accumulate_id_clause();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:42:4: ^( VK_COLLECT lhs )
+ {
+ match(input,VK_COLLECT,FOLLOW_VK_COLLECT_in_from_elements176);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_from_elements178);
+ lhs();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:43:4: ^( VK_ENTRY_POINT VT_NAME )
+ {
+ match(input,VK_ENTRY_POINT,FOLLOW_VK_ENTRY_POINT_in_from_elements185);
+
+ match(input, Token.DOWN, null);
+ match(input,VT_NAME,FOLLOW_VT_NAME_in_from_elements187);
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:44:4: ^( VT_FROM_SOURCE ID ( VT_PAREN_CHUNK )? ( expression_chain )? )
+ {
+ match(input,VT_FROM_SOURCE,FOLLOW_VT_FROM_SOURCE_in_from_elements194);
+
+ match(input, Token.DOWN, null);
+ match(input,ID,FOLLOW_ID_in_from_elements196);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:44:24: ( VT_PAREN_CHUNK )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==VT_PAREN_CHUNK) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:44:24: VT_PAREN_CHUNK
+ {
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_from_elements198);
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:44:40: ( expression_chain )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==VT_EXPRESSION_CHAIN) ) {
+ alt8=1;
+ }
+ switch (alt8) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:44:40: expression_chain
+ {
+ pushFollow(FOLLOW_expression_chain_in_from_elements201);
+ expression_chain();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end from_elements
+
+
+ // $ANTLR start accumulate_init_clause
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:47:1: accumulate_init_clause : ^( VT_ACCUMULATE_INIT_CLAUSE ^( VK_INIT VT_PAREN_CHUNK ) ^( VK_ACTION VT_PAREN_CHUNK ) ( accumulate_init_reverse_clause )? ^( VK_RESULT VT_PAREN_CHUNK ) ) ;
+ public final void accumulate_init_clause() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:48:2: ( ^( VT_ACCUMULATE_INIT_CLAUSE ^( VK_INIT VT_PAREN_CHUNK ) ^( VK_ACTION VT_PAREN_CHUNK ) ( accumulate_init_reverse_clause )? ^( VK_RESULT VT_PAREN_CHUNK ) ) )
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:48:4: ^( VT_ACCUMULATE_INIT_CLAUSE ^( VK_INIT VT_PAREN_CHUNK ) ^( VK_ACTION VT_PAREN_CHUNK ) ( accumulate_init_reverse_clause )? ^( VK_RESULT VT_PAREN_CHUNK ) )
+ {
+ match(input,VT_ACCUMULATE_INIT_CLAUSE,FOLLOW_VT_ACCUMULATE_INIT_CLAUSE_in_accumulate_init_clause215);
+
+ match(input, Token.DOWN, null);
+ match(input,VK_INIT,FOLLOW_VK_INIT_in_accumulate_init_clause222);
+
+ match(input, Token.DOWN, null);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause224);
+
+ match(input, Token.UP, null);
+ match(input,VK_ACTION,FOLLOW_VK_ACTION_in_accumulate_init_clause232);
+
+ match(input, Token.DOWN, null);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause234);
+
+ match(input, Token.UP, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:51:4: ( accumulate_init_reverse_clause )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==VK_REVERSE) ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:51:4: accumulate_init_reverse_clause
+ {
+ pushFollow(FOLLOW_accumulate_init_reverse_clause_in_accumulate_init_clause241);
+ accumulate_init_reverse_clause();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+ match(input,VK_RESULT,FOLLOW_VK_RESULT_in_accumulate_init_clause248);
+
+ match(input, Token.DOWN, null);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause250);
+
+ match(input, Token.UP, null);
+
+ match(input, Token.UP, null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end accumulate_init_clause
+
+
+ // $ANTLR start accumulate_init_reverse_clause
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:55:1: accumulate_init_reverse_clause : ^( VK_REVERSE VT_PAREN_CHUNK ) ;
+ public final void accumulate_init_reverse_clause() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:56:2: ( ^( VK_REVERSE VT_PAREN_CHUNK ) )
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:56:4: ^( VK_REVERSE VT_PAREN_CHUNK )
+ {
+ match(input,VK_REVERSE,FOLLOW_VK_REVERSE_in_accumulate_init_reverse_clause264);
+
+ match(input, Token.DOWN, null);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_reverse_clause266);
+
+ match(input, Token.UP, null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end accumulate_init_reverse_clause
+
+
+ // $ANTLR start accumulate_id_clause
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:60:1: accumulate_id_clause : ^( VT_ACCUMULATE_ID_CLAUSE ID VT_PAREN_CHUNK ) ;
+ public final void accumulate_id_clause() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:61:2: ( ^( VT_ACCUMULATE_ID_CLAUSE ID VT_PAREN_CHUNK ) )
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:61:4: ^( VT_ACCUMULATE_ID_CLAUSE ID VT_PAREN_CHUNK )
+ {
+ match(input,VT_ACCUMULATE_ID_CLAUSE,FOLLOW_VT_ACCUMULATE_ID_CLAUSE_in_accumulate_id_clause280);
+
+ match(input, Token.DOWN, null);
+ match(input,ID,FOLLOW_ID_in_accumulate_id_clause282);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_accumulate_id_clause284);
+
+ match(input, Token.UP, null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end accumulate_id_clause
+
+
+ // $ANTLR start lhs_pattern
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:64:1: lhs_pattern : ^( VT_PATTERN fact_expression ) ;
+ public final void lhs_pattern() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:65:2: ( ^( VT_PATTERN fact_expression ) )
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:65:4: ^( VT_PATTERN fact_expression )
+ {
+ match(input,VT_PATTERN,FOLLOW_VT_PATTERN_in_lhs_pattern297);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_lhs_pattern299);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end lhs_pattern
+
+
+ // $ANTLR start fact_expression
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:68:1: fact_expression : ( ^( DOUBLE_PIPE fact_expression fact_expression ) | ^( DOUBLE_AMPER fact_expression fact_expression ) | ^( VT_FACT_BINDING VT_LABEL fact_expression ) | ^( VT_FACT ^( VT_QUALIFIED_ID ( ID )+ ) ( fact_expression )* ) | ^( VT_FACT_OR fact_expression fact_expression ) | ^( VK_EVAL VT_PAREN_CHUNK ) | ^( VK_IN ( VK_NOT )? ( fact_expression )+ ) | ^( EQUAL fact_expression ) | ^( GREATER fact_expression ) | ^( GREATER_EQUAL fact_expression ) | ^( LESS fact_expression ) | ^( LESS_EQUAL fact_expression ) | ^( NOT_EQUAL fact_expression ) | ^( VK_CONTAINS ( VK_NOT )? fact_expression ) | ^( VK_EXCLUDES ( VK_NOT )? fact_expression ) | ^( VK_MATCHES ( VK_NOT )? fact_expression ) | ^( VK_SOUNDSLIKE ( VK_NOT )? fact_expression ) | ^( VK_MEMBEROF ( VK_NOT )? fact_expression ) | ^( ID ( VK_NOT )? VT_SQUARE_CHUNK fact_expression ) | ^( VT_BIND_FIELD VT_LABEL fact_expression ) | ^( VT_FIELD ^( VT_ACCESSOR_PATH ( accesso!
r_element )+ ) ( fact_expression )? ) | ^( VT_ACCESSOR_PATH ( accessor_element )+ ) | STRING | INT | FLOAT | BOOL | NULL | VT_PAREN_CHUNK );
+ public final void fact_expression() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:69:2: ( ^( DOUBLE_PIPE fact_expression fact_expression ) | ^( DOUBLE_AMPER fact_expression fact_expression ) | ^( VT_FACT_BINDING VT_LABEL fact_expression ) | ^( VT_FACT ^( VT_QUALIFIED_ID ( ID )+ ) ( fact_expression )* ) | ^( VT_FACT_OR fact_expression fact_expression ) | ^( VK_EVAL VT_PAREN_CHUNK ) | ^( VK_IN ( VK_NOT )? ( fact_expression )+ ) | ^( EQUAL fact_expression ) | ^( GREATER fact_expression ) | ^( GREATER_EQUAL fact_expression ) | ^( LESS fact_expression ) | ^( LESS_EQUAL fact_expression ) | ^( NOT_EQUAL fact_expression ) | ^( VK_CONTAINS ( VK_NOT )? fact_expression ) | ^( VK_EXCLUDES ( VK_NOT )? fact_expression ) | ^( VK_MATCHES ( VK_NOT )? fact_expression ) | ^( VK_SOUNDSLIKE ( VK_NOT )? fact_expression ) | ^( VK_MEMBEROF ( VK_NOT )? fact_expression ) | ^( ID ( VK_NOT )? VT_SQUARE_CHUNK fact_expression ) | ^( VT_BIND_FIELD VT_LABEL fact_expression ) | ^( VT_FIELD ^( VT_ACCESSOR_PATH ( accessor_element !
)+ ) ( fact_expression )? ) | ^( VT_ACCESSOR_PATH ( accessor_element )+ ) | STRING | INT | FLOAT | BOOL | NULL | VT_PAREN_CHUNK )
+ int alt24=28;
+ switch ( input.LA(1) ) {
+ case DOUBLE_PIPE:
+ {
+ alt24=1;
+ }
+ break;
+ case DOUBLE_AMPER:
+ {
+ alt24=2;
+ }
+ break;
+ case VT_FACT_BINDING:
+ {
+ alt24=3;
+ }
+ break;
+ case VT_FACT:
+ {
+ alt24=4;
+ }
+ break;
+ case VT_FACT_OR:
+ {
+ alt24=5;
+ }
+ break;
+ case VK_EVAL:
+ {
+ alt24=6;
+ }
+ break;
+ case VK_IN:
+ {
+ alt24=7;
+ }
+ break;
+ case EQUAL:
+ {
+ alt24=8;
+ }
+ break;
+ case GREATER:
+ {
+ alt24=9;
+ }
+ break;
+ case GREATER_EQUAL:
+ {
+ alt24=10;
+ }
+ break;
+ case LESS:
+ {
+ alt24=11;
+ }
+ break;
+ case LESS_EQUAL:
+ {
+ alt24=12;
+ }
+ break;
+ case NOT_EQUAL:
+ {
+ alt24=13;
+ }
+ break;
+ case VK_CONTAINS:
+ {
+ alt24=14;
+ }
+ break;
+ case VK_EXCLUDES:
+ {
+ alt24=15;
+ }
+ break;
+ case VK_MATCHES:
+ {
+ alt24=16;
+ }
+ break;
+ case VK_SOUNDSLIKE:
+ {
+ alt24=17;
+ }
+ break;
+ case VK_MEMBEROF:
+ {
+ alt24=18;
+ }
+ break;
+ case ID:
+ {
+ alt24=19;
+ }
+ break;
+ case VT_BIND_FIELD:
+ {
+ alt24=20;
+ }
+ break;
+ case VT_FIELD:
+ {
+ alt24=21;
+ }
+ break;
+ case VT_ACCESSOR_PATH:
+ {
+ alt24=22;
+ }
+ break;
+ case STRING:
+ {
+ alt24=23;
+ }
+ break;
+ case INT:
+ {
+ alt24=24;
+ }
+ break;
+ case FLOAT:
+ {
+ alt24=25;
+ }
+ break;
+ case BOOL:
+ {
+ alt24=26;
+ }
+ break;
+ case NULL:
+ {
+ alt24=27;
+ }
+ break;
+ case VT_PAREN_CHUNK:
+ {
+ alt24=28;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("68:1: fact_expression : ( ^( DOUBLE_PIPE fact_expression fact_expression ) | ^( DOUBLE_AMPER fact_expression fact_expression ) | ^( VT_FACT_BINDING VT_LABEL fact_expression ) | ^( VT_FACT ^( VT_QUALIFIED_ID ( ID )+ ) ( fact_expression )* ) | ^( VT_FACT_OR fact_expression fact_expression ) | ^( VK_EVAL VT_PAREN_CHUNK ) | ^( VK_IN ( VK_NOT )? ( fact_expression )+ ) | ^( EQUAL fact_expression ) | ^( GREATER fact_expression ) | ^( GREATER_EQUAL fact_expression ) | ^( LESS fact_expression ) | ^( LESS_EQUAL fact_expression ) | ^( NOT_EQUAL fact_expression ) | ^( VK_CONTAINS ( VK_NOT )? fact_expression ) | ^( VK_EXCLUDES ( VK_NOT )? fact_expression ) | ^( VK_MATCHES ( VK_NOT )? fact_expression ) | ^( VK_SOUNDSLIKE ( VK_NOT )? fact_expression ) | ^( VK_MEMBEROF ( VK_NOT )? fact_expression ) | ^( ID ( VK_NOT )? VT_SQUARE_CHUNK fact_expression ) | ^( VT_BIND_FIELD VT_LABEL fact_expression ) | ^( VT_FIELD ^( VT_ACCESSOR_PATH ( accessor_ele!
ment )+ ) ( fact_expression )? ) | ^( VT_ACCESSOR_PATH ( accessor_element )+ ) | STRING | INT | FLOAT | BOOL | NULL | VT_PAREN_CHUNK );", 24, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt24) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:69:4: ^( DOUBLE_PIPE fact_expression fact_expression )
+ {
+ match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_fact_expression312);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression314);
+ fact_expression();
+ _fsp--;
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression316);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:70:4: ^( DOUBLE_AMPER fact_expression fact_expression )
+ {
+ match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_fact_expression323);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression325);
+ fact_expression();
+ _fsp--;
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression327);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:71:4: ^( VT_FACT_BINDING VT_LABEL fact_expression )
+ {
+ match(input,VT_FACT_BINDING,FOLLOW_VT_FACT_BINDING_in_fact_expression334);
+
+ match(input, Token.DOWN, null);
+ match(input,VT_LABEL,FOLLOW_VT_LABEL_in_fact_expression336);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression338);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:72:4: ^( VT_FACT ^( VT_QUALIFIED_ID ( ID )+ ) ( fact_expression )* )
+ {
+ match(input,VT_FACT,FOLLOW_VT_FACT_in_fact_expression345);
+
+ match(input, Token.DOWN, null);
+ match(input,VT_QUALIFIED_ID,FOLLOW_VT_QUALIFIED_ID_in_fact_expression348);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:72:32: ( ID )+
+ int cnt11=0;
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==ID) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:72:32: ID
+ {
+ match(input,ID,FOLLOW_ID_in_fact_expression350);
+
+ }
+ break;
+
+ default :
+ if ( cnt11 >= 1 ) break loop11;
+ EarlyExitException eee =
+ new EarlyExitException(11, input);
+ throw eee;
+ }
+ cnt11++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:72:37: ( fact_expression )*
+ loop12:
+ do {
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0==VT_FACT||LA12_0==VT_PAREN_CHUNK||(LA12_0>=VT_FACT_BINDING && LA12_0<=VT_ACCESSOR_PATH)||(LA12_0>=VK_EVAL && LA12_0<=VK_MEMBEROF)||LA12_0==VK_IN||(LA12_0>=DOUBLE_PIPE && LA12_0<=DOUBLE_AMPER)||LA12_0==ID||(LA12_0>=EQUAL && LA12_0<=NULL)) ) {
+ alt12=1;
+ }
+
+
+ switch (alt12) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:72:37: fact_expression
+ {
+ pushFollow(FOLLOW_fact_expression_in_fact_expression354);
+ fact_expression();
+ _fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop12;
+ }
+ } while (true);
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 5 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:73:4: ^( VT_FACT_OR fact_expression fact_expression )
+ {
+ match(input,VT_FACT_OR,FOLLOW_VT_FACT_OR_in_fact_expression362);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression364);
+ fact_expression();
+ _fsp--;
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression366);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 6 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:74:4: ^( VK_EVAL VT_PAREN_CHUNK )
+ {
+ match(input,VK_EVAL,FOLLOW_VK_EVAL_in_fact_expression373);
+
+ match(input, Token.DOWN, null);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_fact_expression375);
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 7 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:75:4: ^( VK_IN ( VK_NOT )? ( fact_expression )+ )
+ {
+ match(input,VK_IN,FOLLOW_VK_IN_in_fact_expression382);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:75:12: ( VK_NOT )?
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0==VK_NOT) ) {
+ alt13=1;
+ }
+ switch (alt13) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:75:12: VK_NOT
+ {
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression384);
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:75:20: ( fact_expression )+
+ int cnt14=0;
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==VT_FACT||LA14_0==VT_PAREN_CHUNK||(LA14_0>=VT_FACT_BINDING && LA14_0<=VT_ACCESSOR_PATH)||(LA14_0>=VK_EVAL && LA14_0<=VK_MEMBEROF)||LA14_0==VK_IN||(LA14_0>=DOUBLE_PIPE && LA14_0<=DOUBLE_AMPER)||LA14_0==ID||(LA14_0>=EQUAL && LA14_0<=NULL)) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:75:20: fact_expression
+ {
+ pushFollow(FOLLOW_fact_expression_in_fact_expression387);
+ fact_expression();
+ _fsp--;
+
+
+ }
+ break;
+
+ default :
+ if ( cnt14 >= 1 ) break loop14;
+ EarlyExitException eee =
+ new EarlyExitException(14, input);
+ throw eee;
+ }
+ cnt14++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 8 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:76:4: ^( EQUAL fact_expression )
+ {
+ match(input,EQUAL,FOLLOW_EQUAL_in_fact_expression395);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression397);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 9 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:77:4: ^( GREATER fact_expression )
+ {
+ match(input,GREATER,FOLLOW_GREATER_in_fact_expression404);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression406);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 10 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:78:4: ^( GREATER_EQUAL fact_expression )
+ {
+ match(input,GREATER_EQUAL,FOLLOW_GREATER_EQUAL_in_fact_expression413);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression415);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 11 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:79:4: ^( LESS fact_expression )
+ {
+ match(input,LESS,FOLLOW_LESS_in_fact_expression422);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression424);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 12 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:80:4: ^( LESS_EQUAL fact_expression )
+ {
+ match(input,LESS_EQUAL,FOLLOW_LESS_EQUAL_in_fact_expression431);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression433);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 13 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:81:4: ^( NOT_EQUAL fact_expression )
+ {
+ match(input,NOT_EQUAL,FOLLOW_NOT_EQUAL_in_fact_expression440);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression442);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 14 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:82:4: ^( VK_CONTAINS ( VK_NOT )? fact_expression )
+ {
+ match(input,VK_CONTAINS,FOLLOW_VK_CONTAINS_in_fact_expression449);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:82:18: ( VK_NOT )?
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==VK_NOT) ) {
+ alt15=1;
+ }
+ switch (alt15) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:82:18: VK_NOT
+ {
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression451);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression454);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 15 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:83:4: ^( VK_EXCLUDES ( VK_NOT )? fact_expression )
+ {
+ match(input,VK_EXCLUDES,FOLLOW_VK_EXCLUDES_in_fact_expression461);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:83:18: ( VK_NOT )?
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==VK_NOT) ) {
+ alt16=1;
+ }
+ switch (alt16) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:83:18: VK_NOT
+ {
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression463);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression466);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 16 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:84:4: ^( VK_MATCHES ( VK_NOT )? fact_expression )
+ {
+ match(input,VK_MATCHES,FOLLOW_VK_MATCHES_in_fact_expression473);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:84:17: ( VK_NOT )?
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0==VK_NOT) ) {
+ alt17=1;
+ }
+ switch (alt17) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:84:17: VK_NOT
+ {
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression475);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression478);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 17 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:85:4: ^( VK_SOUNDSLIKE ( VK_NOT )? fact_expression )
+ {
+ match(input,VK_SOUNDSLIKE,FOLLOW_VK_SOUNDSLIKE_in_fact_expression485);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:85:20: ( VK_NOT )?
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0==VK_NOT) ) {
+ alt18=1;
+ }
+ switch (alt18) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:85:20: VK_NOT
+ {
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression487);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression490);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 18 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:86:4: ^( VK_MEMBEROF ( VK_NOT )? fact_expression )
+ {
+ match(input,VK_MEMBEROF,FOLLOW_VK_MEMBEROF_in_fact_expression497);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:86:18: ( VK_NOT )?
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( (LA19_0==VK_NOT) ) {
+ alt19=1;
+ }
+ switch (alt19) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:86:18: VK_NOT
+ {
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression499);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression502);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 19 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:87:4: ^( ID ( VK_NOT )? VT_SQUARE_CHUNK fact_expression )
+ {
+ match(input,ID,FOLLOW_ID_in_fact_expression509);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:87:9: ( VK_NOT )?
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0==VK_NOT) ) {
+ alt20=1;
+ }
+ switch (alt20) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:87:9: VK_NOT
+ {
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression511);
+
+ }
+ break;
+
+ }
+
+ match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_fact_expression514);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression516);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 20 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:88:4: ^( VT_BIND_FIELD VT_LABEL fact_expression )
+ {
+ match(input,VT_BIND_FIELD,FOLLOW_VT_BIND_FIELD_in_fact_expression523);
+
+ match(input, Token.DOWN, null);
+ match(input,VT_LABEL,FOLLOW_VT_LABEL_in_fact_expression525);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression527);
+ fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 21 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:89:4: ^( VT_FIELD ^( VT_ACCESSOR_PATH ( accessor_element )+ ) ( fact_expression )? )
+ {
+ match(input,VT_FIELD,FOLLOW_VT_FIELD_in_fact_expression534);
+
+ match(input, Token.DOWN, null);
+ match(input,VT_ACCESSOR_PATH,FOLLOW_VT_ACCESSOR_PATH_in_fact_expression537);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:89:34: ( accessor_element )+
+ int cnt21=0;
+ loop21:
+ do {
+ int alt21=2;
+ int LA21_0 = input.LA(1);
+
+ if ( (LA21_0==VT_ACCESSOR_ELEMENT) ) {
+ alt21=1;
+ }
+
+
+ switch (alt21) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:89:34: accessor_element
+ {
+ pushFollow(FOLLOW_accessor_element_in_fact_expression539);
+ accessor_element();
+ _fsp--;
+
+
+ }
+ break;
+
+ default :
+ if ( cnt21 >= 1 ) break loop21;
+ EarlyExitException eee =
+ new EarlyExitException(21, input);
+ throw eee;
+ }
+ cnt21++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:89:53: ( fact_expression )?
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+
+ if ( (LA22_0==VT_FACT||LA22_0==VT_PAREN_CHUNK||(LA22_0>=VT_FACT_BINDING && LA22_0<=VT_ACCESSOR_PATH)||(LA22_0>=VK_EVAL && LA22_0<=VK_MEMBEROF)||LA22_0==VK_IN||(LA22_0>=DOUBLE_PIPE && LA22_0<=DOUBLE_AMPER)||LA22_0==ID||(LA22_0>=EQUAL && LA22_0<=NULL)) ) {
+ alt22=1;
+ }
+ switch (alt22) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:89:53: fact_expression
+ {
+ pushFollow(FOLLOW_fact_expression_in_fact_expression543);
+ fact_expression();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 22 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:90:4: ^( VT_ACCESSOR_PATH ( accessor_element )+ )
+ {
+ match(input,VT_ACCESSOR_PATH,FOLLOW_VT_ACCESSOR_PATH_in_fact_expression551);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:90:23: ( accessor_element )+
+ int cnt23=0;
+ loop23:
+ do {
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( (LA23_0==VT_ACCESSOR_ELEMENT) ) {
+ alt23=1;
+ }
+
+
+ switch (alt23) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:90:23: accessor_element
+ {
+ pushFollow(FOLLOW_accessor_element_in_fact_expression553);
+ accessor_element();
+ _fsp--;
+
+
+ }
+ break;
+
+ default :
+ if ( cnt23 >= 1 ) break loop23;
+ EarlyExitException eee =
+ new EarlyExitException(23, input);
+ throw eee;
+ }
+ cnt23++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 23 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:91:4: STRING
+ {
+ match(input,STRING,FOLLOW_STRING_in_fact_expression560);
+
+ }
+ break;
+ case 24 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:92:4: INT
+ {
+ match(input,INT,FOLLOW_INT_in_fact_expression565);
+
+ }
+ break;
+ case 25 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:93:4: FLOAT
+ {
+ match(input,FLOAT,FOLLOW_FLOAT_in_fact_expression570);
+
+ }
+ break;
+ case 26 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:94:4: BOOL
+ {
+ match(input,BOOL,FOLLOW_BOOL_in_fact_expression575);
+
+ }
+ break;
+ case 27 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:95:4: NULL
+ {
+ match(input,NULL,FOLLOW_NULL_in_fact_expression580);
+
+ }
+ break;
+ case 28 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:96:4: VT_PAREN_CHUNK
+ {
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_fact_expression585);
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end fact_expression
+
+
+ // $ANTLR start accessor_element
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:100:1: accessor_element : ^( VT_ACCESSOR_ELEMENT ID ( VT_SQUARE_CHUNK )* ) ;
+ public final void accessor_element() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:101:2: ( ^( VT_ACCESSOR_ELEMENT ID ( VT_SQUARE_CHUNK )* ) )
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:101:4: ^( VT_ACCESSOR_ELEMENT ID ( VT_SQUARE_CHUNK )* )
+ {
+ match(input,VT_ACCESSOR_ELEMENT,FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element598);
+
+ match(input, Token.DOWN, null);
+ match(input,ID,FOLLOW_ID_in_accessor_element600);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:101:29: ( VT_SQUARE_CHUNK )*
+ loop25:
+ do {
+ int alt25=2;
+ int LA25_0 = input.LA(1);
+
+ if ( (LA25_0==VT_SQUARE_CHUNK) ) {
+ alt25=1;
+ }
+
+
+ switch (alt25) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:101:29: VT_SQUARE_CHUNK
+ {
+ match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_accessor_element602);
+
+ }
+ break;
+
+ default :
+ break loop25;
+ }
+ } while (true);
+
+
+ match(input, Token.UP, null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end accessor_element
+
+
+ // $ANTLR start expression_chain
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:104:1: expression_chain : ^( VT_EXPRESSION_CHAIN ID ( VT_SQUARE_CHUNK )? ( VT_PAREN_CHUNK )? ( expression_chain )? ) ;
+ public final void expression_chain() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:105:2: ( ^( VT_EXPRESSION_CHAIN ID ( VT_SQUARE_CHUNK )? ( VT_PAREN_CHUNK )? ( expression_chain )? ) )
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:105:4: ^( VT_EXPRESSION_CHAIN ID ( VT_SQUARE_CHUNK )? ( VT_PAREN_CHUNK )? ( expression_chain )? )
+ {
+ match(input,VT_EXPRESSION_CHAIN,FOLLOW_VT_EXPRESSION_CHAIN_in_expression_chain616);
+
+ match(input, Token.DOWN, null);
+ match(input,ID,FOLLOW_ID_in_expression_chain618);
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:105:29: ( VT_SQUARE_CHUNK )?
+ int alt26=2;
+ int LA26_0 = input.LA(1);
+
+ if ( (LA26_0==VT_SQUARE_CHUNK) ) {
+ alt26=1;
+ }
+ switch (alt26) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:105:29: VT_SQUARE_CHUNK
+ {
+ match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_expression_chain620);
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:105:46: ( VT_PAREN_CHUNK )?
+ int alt27=2;
+ int LA27_0 = input.LA(1);
+
+ if ( (LA27_0==VT_PAREN_CHUNK) ) {
+ alt27=1;
+ }
+ switch (alt27) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:105:46: VT_PAREN_CHUNK
+ {
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_expression_chain623);
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:105:62: ( expression_chain )?
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+
+ if ( (LA28_0==VT_EXPRESSION_CHAIN) ) {
+ alt28=1;
+ }
+ switch (alt28) {
+ case 1 :
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:105:62: expression_chain
+ {
+ pushFollow(FOLLOW_expression_chain_in_expression_chain626);
+ expression_chain();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end expression_chain
+
+
+ // $ANTLR start curly_chunk
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:108:1: curly_chunk : VT_CURLY_CHUNK ;
+ public final void curly_chunk() throws RecognitionException {
+ try {
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:109:2: ( VT_CURLY_CHUNK )
+ // /Users/porcelli/Desktop/testes/TreeNewDRL.g:109:4: VT_CURLY_CHUNK
+ {
+ match(input,VT_CURLY_CHUNK,FOLLOW_VT_CURLY_CHUNK_in_curly_chunk640);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end curly_chunk
+
+
+
+
+ public static final BitSet FOLLOW_VT_AND_IMPLICIT_in_lhs_block43 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs_block45 = new BitSet(new long[]{0x000003881021E008L});
+ public static final BitSet FOLLOW_VT_OR_PREFIX_in_lhs59 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs61 = new BitSet(new long[]{0x000003881021E008L});
+ public static final BitSet FOLLOW_VT_OR_INFIX_in_lhs69 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs71 = new BitSet(new long[]{0x000003881021E000L});
+ public static final BitSet FOLLOW_lhs_in_lhs73 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_AND_PREFIX_in_lhs80 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs82 = new BitSet(new long[]{0x000003881021E008L});
+ public static final BitSet FOLLOW_VT_AND_INFIX_in_lhs90 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs92 = new BitSet(new long[]{0x000003881021E000L});
+ public static final BitSet FOLLOW_lhs_in_lhs94 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_EXISTS_in_lhs101 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs103 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_NOT_in_lhs110 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs112 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_EVAL_in_lhs120 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_lhs122 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_FORALL_in_lhs129 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs131 = new BitSet(new long[]{0x000003881021E008L});
+ public static final BitSet FOLLOW_VK_FROM_in_lhs139 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_pattern_in_lhs141 = new BitSet(new long[]{0x0000840400080000L});
+ public static final BitSet FOLLOW_from_elements_in_lhs143 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_lhs_pattern_in_lhs149 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VK_ACCUMULATE_in_from_elements161 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_from_elements163 = new BitSet(new long[]{0x0000000000060000L});
+ public static final BitSet FOLLOW_accumulate_init_clause_in_from_elements166 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_accumulate_id_clause_in_from_elements168 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_COLLECT_in_from_elements176 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_from_elements178 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_ENTRY_POINT_in_from_elements185 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_NAME_in_from_elements187 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_FROM_SOURCE_in_from_elements194 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_from_elements196 = new BitSet(new long[]{0x0000000000100808L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_from_elements198 = new BitSet(new long[]{0x0000000000100008L});
+ public static final BitSet FOLLOW_expression_chain_in_from_elements201 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_ACCUMULATE_INIT_CLAUSE_in_accumulate_init_clause215 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_INIT_in_accumulate_init_clause222 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause224 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_ACTION_in_accumulate_init_clause232 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause234 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_accumulate_init_reverse_clause_in_accumulate_init_clause241 = new BitSet(new long[]{0x0000400000000000L});
+ public static final BitSet FOLLOW_VK_RESULT_in_accumulate_init_clause248 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause250 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_REVERSE_in_accumulate_init_reverse_clause264 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_reverse_clause266 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_ACCUMULATE_ID_CLAUSE_in_accumulate_id_clause280 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_accumulate_id_clause282 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_id_clause284 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_PATTERN_in_lhs_pattern297 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_lhs_pattern299 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_DOUBLE_PIPE_in_fact_expression312 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression314 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression316 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_DOUBLE_AMPER_in_fact_expression323 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression325 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression327 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_FACT_BINDING_in_fact_expression334 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_LABEL_in_fact_expression336 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression338 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_FACT_in_fact_expression345 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_QUALIFIED_ID_in_fact_expression348 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_fact_expression350 = new BitSet(new long[]{0x0040000000000008L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression354 = new BitSet(new long[]{0xFC4C0013F7C00818L,0x000000000000001FL});
+ public static final BitSet FOLLOW_VT_FACT_OR_in_fact_expression362 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression364 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression366 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_EVAL_in_fact_expression373 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_fact_expression375 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_IN_in_fact_expression382 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression384 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression387 = new BitSet(new long[]{0xFC4C0013F7C00818L,0x000000000000001FL});
+ public static final BitSet FOLLOW_EQUAL_in_fact_expression395 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression397 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_GREATER_in_fact_expression404 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression406 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_GREATER_EQUAL_in_fact_expression413 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression415 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_LESS_in_fact_expression422 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression424 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_LESS_EQUAL_in_fact_expression431 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression433 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_NOT_EQUAL_in_fact_expression440 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression442 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_CONTAINS_in_fact_expression449 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression451 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression454 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_EXCLUDES_in_fact_expression461 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression463 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression466 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_MATCHES_in_fact_expression473 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression475 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression478 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_SOUNDSLIKE_in_fact_expression485 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression487 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression490 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_MEMBEROF_in_fact_expression497 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression499 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression502 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_ID_in_fact_expression509 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression511 = new BitSet(new long[]{0x0000000000000400L});
+ public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_fact_expression514 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression516 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_BIND_FIELD_in_fact_expression523 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_LABEL_in_fact_expression525 = new BitSet(new long[]{0xFC4C0013F7C00810L,0x000000000000001FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression527 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_FIELD_in_fact_expression534 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_ACCESSOR_PATH_in_fact_expression537 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_accessor_element_in_fact_expression539 = new BitSet(new long[]{0x0000000008000008L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression543 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_ACCESSOR_PATH_in_fact_expression551 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_accessor_element_in_fact_expression553 = new BitSet(new long[]{0x0000000008000008L});
+ public static final BitSet FOLLOW_STRING_in_fact_expression560 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INT_in_fact_expression565 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_FLOAT_in_fact_expression570 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BOOL_in_fact_expression575 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_NULL_in_fact_expression580 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_fact_expression585 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element598 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_accessor_element600 = new BitSet(new long[]{0x0000000000000408L});
+ public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_accessor_element602 = new BitSet(new long[]{0x0000000000000408L});
+ public static final BitSet FOLLOW_VT_EXPRESSION_CHAIN_in_expression_chain616 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_expression_chain618 = new BitSet(new long[]{0x0000000000100C08L});
+ public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_expression_chain620 = new BitSet(new long[]{0x0000000000100808L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_expression_chain623 = new BitSet(new long[]{0x0000000000100008L});
+ public static final BitSet FOLLOW_expression_chain_in_expression_chain626 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_CURLY_CHUNK_in_curly_chunk640 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file
Property changes on: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/TreeNewDRL.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/NewDRL.g
===================================================================
--- labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/NewDRL.g (rev 0)
+++ labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/NewDRL.g 2008-04-28 17:05:28 UTC (rev 19745)
@@ -0,0 +1,617 @@
+grammar NewDRL;
+
+options {
+ output=AST;
+}
+
+tokens {
+ VT_FACT;
+ VT_CONSTRAINTS;
+ VT_QUALIFIED_ID;
+ VT_LABEL;
+ VT_NAME;
+
+ VT_CURLY_CHUNK;
+ VT_SQUARE_CHUNK;
+ VT_PAREN_CHUNK;
+
+ VT_AND_IMPLICIT;
+ VT_AND_PREFIX;
+ VT_OR_PREFIX;
+ VT_AND_INFIX;
+ VT_OR_INFIX;
+
+ VT_ACCUMULATE_INIT_CLAUSE;
+ VT_ACCUMULATE_ID_CLAUSE;
+ VT_FROM_SOURCE;
+ VT_EXPRESSION_CHAIN;
+
+ VT_PATTERN;
+ VT_FACT_BINDING;
+ VT_FACT_OR;
+ VT_BIND_FIELD;
+ VT_FIELD;
+
+ VT_ACCESSOR_PATH;
+ VT_ACCESSOR_ELEMENT;
+
+ VK_EVAL;
+ VK_CONTAINS;
+ VK_MATCHES;
+ VK_EXCLUDES;
+ VK_SOUNDSLIKE;
+ VK_MEMBEROF;
+ VK_ENTRY_POINT;
+ VK_NOT;
+ VK_IN;
+ VK_OR;
+ VK_AND;
+ VK_EXISTS;
+ VK_FORALL;
+ VK_FROM;
+ VK_ACCUMULATE;
+ VK_INIT;
+ VK_ACTION;
+ VK_REVERSE;
+ VK_RESULT;
+ VK_COLLECT;
+}
+
+ at parser::members {
+ private boolean validateLT(int LTNumber, String text){
+ if (null == input) return false;
+ if (null == input.LT(LTNumber)) return false;
+ if (null == input.LT(LTNumber).getText()) return false;
+
+ String text2Validate = input.LT(LTNumber).getText();
+ return text2Validate.equalsIgnoreCase(text);
+ }
+
+ private boolean validateIdentifierKey(String text){
+ return validateLT(1, text);
+ }
+}
+
+normal_lhs_block
+ : lhs*
+ -> ^(VT_AND_IMPLICIT lhs*)
+ ;
+
+lhs : lhs_or
+ ;
+
+lhs_or
+ at init{
+ Token orToken = null;
+} : (LEFT_PAREN or_key)=> LEFT_PAREN or=or_key lhs_and+ RIGHT_PAREN // PREFIX
+ -> ^(VT_OR_PREFIX[$or.start] lhs_and+)
+ | (lhs_and -> lhs_and)
+ ( (or_key|DOUBLE_PIPE)=> (value=or_key {orToken = $value.start;} |pipe=DOUBLE_PIPE {orToken = $pipe;}) lhs_and
+ -> ^(VT_OR_INFIX[orToken] $lhs_or lhs_and))*
+ ;
+
+lhs_and
+ at init{
+ Token andToken = null;
+} : (LEFT_PAREN and_key)=> LEFT_PAREN and=and_key lhs_unary+ RIGHT_PAREN // PREFIX
+ -> ^(VT_AND_PREFIX[$and.start] lhs_unary+)
+ | (lhs_unary -> lhs_unary)
+ ( (and_key|DOUBLE_AMPER)=> (value=and_key {andToken = $value.start;} |amper=DOUBLE_AMPER {andToken = $amper;}) lhs_unary
+ -> ^(VT_AND_INFIX[andToken] $lhs_and lhs_unary) )*
+ ;
+
+lhs_unary
+options{k=2;}
+ : ( lhs_exist
+ | lhs_not
+ | lhs_eval
+ | lhs_forall
+ | LEFT_PAREN! lhs_or RIGHT_PAREN!
+ | pattern_source
+ )
+ ((SEMICOLON)=> SEMICOLON!)?
+ ;
+
+lhs_exist
+ : exists_key
+ ( (LEFT_PAREN (or_key|and_key))=> lhs_or //prevent "(("
+ | LEFT_PAREN lhs_or RIGHT_PAREN
+ | lhs_pattern
+ )
+ -> ^(exists_key lhs_or? lhs_pattern? )
+ ;
+
+lhs_not : not_key
+ ( (LEFT_PAREN (or_key|and_key))=> lhs_or //prevent "(("
+ | LEFT_PAREN lhs_or RIGHT_PAREN
+ | lhs_pattern )
+ -> ^(not_key lhs_or? lhs_pattern?)
+ ;
+
+lhs_eval
+ : eval_key paren_chunk
+ -> ^(eval_key paren_chunk)
+ ;
+
+lhs_forall
+ : forall_key LEFT_PAREN lhs_pattern+ RIGHT_PAREN
+ -> ^(forall_key lhs_pattern+)
+ ;
+
+pattern_source
+options { k=3;}
+ : lhs_pattern
+ (
+ from_key^
+ ( accumulate_statement
+ | collect_statement
+ | entrypoint_statement
+ | from_source
+ )
+ )?
+ ;
+
+accumulate_statement
+ : accumulate_key
+ LEFT_PAREN lhs_or COMMA?
+ ( accumulate_init_clause
+ | accumulate_id_clause
+ )
+ RIGHT_PAREN
+ -> ^(accumulate_key lhs_or accumulate_init_clause? accumulate_id_clause?)
+ ;
+
+accumulate_init_clause
+ : init_key
+ pc1=paren_chunk COMMA?
+ action_key pc2=paren_chunk COMMA?
+ ( reverse_key pc3=paren_chunk COMMA?)?
+ result_key pc4=paren_chunk
+ -> ^(VT_ACCUMULATE_INIT_CLAUSE ^(init_key $pc1) ^(action_key $pc2) ^(reverse_key $pc3)? ^(result_key $pc4))
+ ;
+
+accumulate_id_clause
+ : id=ID text=paren_chunk
+ -> ^(VT_ACCUMULATE_ID_CLAUSE ID paren_chunk)
+ ;
+
+collect_statement
+ : collect_key
+ LEFT_PAREN pattern_source RIGHT_PAREN
+ -> ^(collect_key pattern_source)
+ ;
+
+entrypoint_statement
+ : entry_point_key name
+ -> ^(entry_point_key name)
+ ;
+
+from_source
+ : ID
+ ( (LEFT_PAREN)=> args=paren_chunk )?
+ expression_chain?
+ -> ^(VT_FROM_SOURCE ID paren_chunk? expression_chain?)
+ ;
+
+expression_chain
+ :
+ startToken=DOT ID
+ (
+ ( LEFT_SQUARE ) => square_chunk
+ |
+ ( LEFT_PAREN ) => paren_chunk
+ )?
+ expression_chain?
+ -> ^(VT_EXPRESSION_CHAIN[$startToken] ID square_chunk? paren_chunk? expression_chain?)
+ ;
+
+lhs_pattern
+ : fact_binding -> ^(VT_PATTERN fact_binding)
+ | fact -> ^(VT_PATTERN fact)
+ ;
+
+fact_binding
+ : label
+ ( fact
+ | LEFT_PAREN fact_binding_expression RIGHT_PAREN
+ )
+ -> ^(VT_FACT_BINDING label fact? fact_binding_expression?)
+ ;
+
+fact_binding_expression
+ at init{
+ Token orToken = null;
+} : (fact -> fact) ( (value=or_key {orToken = $value.start;}|pipe=DOUBLE_PIPE {orToken = $pipe;}) fact
+ -> ^(VT_FACT_OR[orToken] $fact_binding_expression fact) )*
+ ;
+
+fact
+ : qualified_id LEFT_PAREN constraints? RIGHT_PAREN
+ -> ^(VT_FACT qualified_id constraints?)
+ ;
+
+constraints
+ : constraint ( COMMA! constraint )*
+ ;
+
+constraint
+ : or_constr
+ ;
+
+or_constr
+ : and_constr ( DOUBLE_PIPE^ and_constr )*
+ ;
+
+and_constr
+ : unary_constr ( DOUBLE_AMPER^ unary_constr )*
+ ;
+
+unary_constr
+options {k=2;}
+ : eval_key paren_chunk -> ^(eval_key paren_chunk)
+ | field_constraint
+ | LEFT_PAREN or_constr RIGHT_PAREN -> or_constr
+ ;
+
+//STOPED HERE
+field_constraint
+ at init{
+ boolean isArrow = false;
+} : label accessor_path ( or_restr_connective | arw=ARROW paren_chunk {isArrow = true;})?
+ -> {isArrow}? ^(VT_BIND_FIELD label ^(VT_FIELD accessor_path ^(VK_EVAL[$arw] paren_chunk)?))
+ -> ^(VT_BIND_FIELD label ^(VT_FIELD accessor_path or_restr_connective?))
+ | accessor_path or_restr_connective
+ -> ^(VT_FIELD accessor_path or_restr_connective)
+ ;
+
+label : value=ID COLON -> VT_LABEL[$value]
+ ;
+
+or_restr_connective
+ : and_restr_connective (options{backtrack=true;}: DOUBLE_PIPE^ and_restr_connective )*
+ ;
+
+and_restr_connective
+ : constraint_expression (options{backtrack=true;}: DOUBLE_AMPER^ constraint_expression )*
+ ;
+
+constraint_expression
+options{
+k=3;
+} : compound_operator
+ | simple_operator
+ | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective
+ ;
+
+simple_operator
+ : (EQUAL^
+ | GREATER^
+ | GREATER_EQUAL^
+ | LESS^
+ | LESS_EQUAL^
+ | NOT_EQUAL^
+ | not_key (contains_key^|soundslike_key^|matches_key^|memberof_key^|ID^ square_chunk?)
+ | contains_key^
+ | excludes_key^
+ | matches_key^
+ | soundslike_key^
+ | memberof_key^
+ | ID^ square_chunk?)
+ expression_value
+ ;
+
+//Simple Syntax Sugar
+compound_operator
+ : ( in_key^ | not_key in_key^ ) LEFT_PAREN! expression_value ( COMMA! expression_value )* RIGHT_PAREN!
+ ;
+
+expression_value
+ : accessor_path
+ | literal_constraint
+ | paren_chunk
+ ;
+
+literal_constraint
+ : STRING
+ | INT
+ | FLOAT
+ | BOOL
+ | NULL
+ ;
+
+qualified_id
+ : ID ( DOT ID )* ( LEFT_SQUARE RIGHT_SQUARE )*
+ -> ^(VT_QUALIFIED_ID ID+)
+ ;
+
+accessor_path
+ : accessor_element ( DOT accessor_element )*
+ -> ^(VT_ACCESSOR_PATH accessor_element+)
+ ;
+
+accessor_element
+ : ID square_chunk*
+ -> ^(VT_ACCESSOR_ELEMENT ID square_chunk*)
+ ;
+
+name
+ : value=ID -> VT_NAME[$value]
+ | value=STRING -> VT_NAME[$value]
+ ;
+
+curly_chunk
+ at init{
+ String text = "";
+} : cc=curly_chunk_data {text = $cc.text;}
+ -> VT_CURLY_CHUNK[$cc.start,text]
+ ;
+
+curly_chunk_data
+ : LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data )* RIGHT_CURLY
+ ;
+
+paren_chunk
+ at init{
+ String text = "";
+} : pc=paren_chunk_data {text = $pc.text;}
+ -> VT_PAREN_CHUNK[$pc.start,text]
+ ;
+
+paren_chunk_data
+ : value=LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data )* RIGHT_PAREN
+ ;
+
+square_chunk
+ at init{
+ String text = "";
+} : sc=square_chunk_data {text = $sc.text;}
+ -> VT_SQUARE_CHUNK[$sc.start,text]
+ ;
+
+square_chunk_data
+ : value=LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data )* RIGHT_SQUARE
+ ;
+
+eval_key
+ : {(validateIdentifierKey("eval"))}?=> id=ID -> VK_EVAL[$id]
+ ;
+
+contains_key
+ : {(validateIdentifierKey("contains"))}?=> id=ID -> VK_CONTAINS[$id]
+ ;
+
+matches_key
+ : {(validateIdentifierKey("matches"))}?=> id=ID -> VK_MATCHES[$id]
+ ;
+
+excludes_key
+ : {(validateIdentifierKey("excludes"))}?=> id=ID -> VK_EXCLUDES[$id]
+ ;
+
+soundslike_key
+ : {(validateIdentifierKey("soundslike"))}?=> id=ID -> VK_SOUNDSLIKE[$id]
+ ;
+
+memberof_key
+ : {(validateIdentifierKey("memberof"))}?=> id=ID -> VK_MEMBEROF[$id]
+ ;
+
+not_key
+ : {(validateIdentifierKey("not"))}?=> id=ID -> VK_NOT[$id]
+ ;
+
+in_key
+ : {(validateIdentifierKey("in"))}?=> id=ID -> VK_IN[$id]
+ ;
+
+or_key
+ : {(validateIdentifierKey("or"))}?=> id=ID -> VK_OR[$id]
+ ;
+
+and_key
+ : {(validateIdentifierKey("and"))}?=> id=ID -> VK_AND[$id]
+ ;
+
+exists_key
+ : {(validateIdentifierKey("exists"))}?=> id=ID -> VK_EXISTS[$id]
+ ;
+
+forall_key
+ : {(validateIdentifierKey("forall"))}?=> id=ID -> VK_FORALL[$id]
+ ;
+
+from_key
+ : {(validateIdentifierKey("from"))}?=> id=ID -> VK_FROM[$id]
+ ;
+
+entry_point_key
+ at init{
+ String text = "";
+} : {(validateIdentifierKey("entry") && validateLT(2, "-") && validateLT(3, "point"))}?=> ID MISC ID {text = $text;}
+ -> VK_ENTRY_POINT[$start, text]
+ ;
+
+accumulate_key
+ : {(validateIdentifierKey("accumulate"))}?=> id=ID -> VK_ACCUMULATE[$id]
+ ;
+
+init_key
+ : {(validateIdentifierKey("init"))}?=> id=ID -> VK_INIT[$id]
+ ;
+
+action_key
+ : {(validateIdentifierKey("action"))}?=> id=ID -> VK_ACTION[$id]
+ ;
+
+reverse_key
+ : {(validateIdentifierKey("reverse"))}?=> id=ID -> VK_REVERSE[$id]
+ ;
+
+result_key
+ : {(validateIdentifierKey("result"))}?=> id=ID -> VK_RESULT[$id]
+ ;
+
+collect_key
+ : {(validateIdentifierKey("collect"))}?=> id=ID -> VK_COLLECT[$id]
+ ;
+
+WS : ( ' '
+ | '\t'
+ | '\f'
+ | EOL
+ )+
+ { $channel=HIDDEN; }
+ ;
+
+fragment
+EOL :
+ ( ( '\r\n' )=> '\r\n' // Evil DOS
+ | '\r' // Macintosh
+ | '\n' // Unix (the right way)
+ )
+ ;
+
+INT
+ : ('-')?('0'..'9')+
+ ;
+
+FLOAT
+ : ('-')?('0'..'9')+ '.' ('0'..'9')+
+ ;
+
+STRING
+ : ('"' ( EscapeSequence | ~('\\'|'"') )* '"')
+ | ('\'' ( EscapeSequence | ~('\\'|'\'') )* '\'')
+ ;
+
+fragment
+HexDigit : ('0'..'9'|'a'..'f'|'A'..'F') ;
+
+fragment
+EscapeSequence
+ : '\\' ('b'|'B'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\'|'.'|'o'|
+ 'x'|'a'|'e'|'c'|'d'|'D'|'s'|'S'|'w'|'W'|'p'|'A'|
+ 'G'|'Z'|'z'|'Q'|'E'|'*'|'['|']'|'('|')'|'$'|'^'|
+ '{'|'}'|'?'|'+'|'-'|'&'|'|')
+ | UnicodeEscape
+ | OctalEscape
+ ;
+
+fragment
+OctalEscape
+ : '\\' ('0'..'3') ('0'..'7') ('0'..'7')
+ | '\\' ('0'..'7') ('0'..'7')
+ | '\\' ('0'..'7')
+ ;
+
+fragment
+UnicodeEscape
+ : '\\' 'u' HexDigit HexDigit HexDigit HexDigit
+ ;
+
+BOOL
+ : ('true'|'false')
+ ;
+
+NULL : 'null';
+
+SEMICOLON
+ : ';'
+ ;
+
+COLON
+ : ':'
+ ;
+
+
+EQUAL
+ : '=='
+ ;
+
+NOT_EQUAL
+ : '!='
+ ;
+
+GREATER
+ : '>'
+ ;
+
+GREATER_EQUAL
+ : '>='
+ ;
+
+LESS
+ : '<'
+ ;
+
+LESS_EQUAL
+ : '<='
+ ;
+
+ARROW
+ : '->'
+ ;
+
+ID
+ : ('a'..'z'|'A'..'Z'|'_'|'$'|'\u00c0'..'\u00ff')('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff')*
+ ;
+
+LEFT_PAREN
+ : '('
+ ;
+
+RIGHT_PAREN
+ : ')'
+ ;
+
+LEFT_SQUARE
+ : '['
+ ;
+
+RIGHT_SQUARE
+ : ']'
+ ;
+
+LEFT_CURLY
+ : '{'
+ ;
+
+RIGHT_CURLY
+ : '}'
+ ;
+
+COMMA : ','
+ ;
+
+DOT : '.'
+ ;
+
+DOUBLE_AMPER
+ : '&&'
+ ;
+
+DOUBLE_PIPE
+ : '||'
+ ;
+
+TILDE : '~';
+
+SH_STYLE_SINGLE_LINE_COMMENT
+ : '#' ( options{greedy=false;} : .)* EOL /* ('\r')? '\n' */
+ { $channel=HIDDEN; setText("//"+getText().substring(1));}
+ ;
+
+
+C_STYLE_SINGLE_LINE_COMMENT
+ : '//' ( options{greedy=false;} : .)* EOL // ('\r')? '\n'
+ { $channel=HIDDEN; }
+ ;
+
+MULTI_LINE_COMMENT
+ : '/*' (options{greedy=false;} : .)* '*/'
+ { $channel=HIDDEN; }
+ ;
+
+MISC :
+ '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | '=' | '/' | '\'' | '\\' | '|' | '&'
+ ;
\ No newline at end of file
Property changes on: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/NewDRL.g
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/TreeNewDRL.g
===================================================================
--- labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/TreeNewDRL.g (rev 0)
+++ labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/TreeNewDRL.g 2008-04-28 17:05:28 UTC (rev 19745)
@@ -0,0 +1,94 @@
+tree grammar TreeNewDRL;
+
+options{
+ tokenVocab=NewDRL;
+ ASTLabelType=CommonTree;
+}
+
+lhs_block
+ : ^(VT_AND_IMPLICIT lhs*)
+ ;
+
+lhs : ^(VT_OR_PREFIX lhs+)
+ | ^(VT_OR_INFIX lhs lhs)
+ | ^(VT_AND_PREFIX lhs+)
+ | ^(VT_AND_INFIX lhs lhs)
+ | ^(VK_EXISTS lhs)
+ | ^(VK_NOT lhs )
+ | ^(VK_EVAL VT_PAREN_CHUNK)
+ | ^(VK_FORALL lhs+)
+ | ^(VK_FROM lhs_pattern from_elements)
+ | lhs_pattern
+ ;
+
+from_elements
+ : ^(VK_ACCUMULATE lhs (accumulate_init_clause|accumulate_id_clause))
+ | ^(VK_COLLECT lhs)
+ | ^(VK_ENTRY_POINT VT_NAME)
+ | ^(VT_FROM_SOURCE ID VT_PAREN_CHUNK? expression_chain?)
+ ;
+
+accumulate_init_clause
+ : ^(VT_ACCUMULATE_INIT_CLAUSE
+ ^(VK_INIT VT_PAREN_CHUNK)
+ ^(VK_ACTION VT_PAREN_CHUNK)
+ accumulate_init_reverse_clause?
+ ^(VK_RESULT VT_PAREN_CHUNK))
+ ;
+
+accumulate_init_reverse_clause
+ : ^(VK_REVERSE VT_PAREN_CHUNK)
+ ;
+
+
+accumulate_id_clause
+ : ^(VT_ACCUMULATE_ID_CLAUSE ID VT_PAREN_CHUNK)
+ ;
+
+lhs_pattern
+ : ^(VT_PATTERN fact_expression)
+ ;
+
+fact_expression
+ : ^(DOUBLE_PIPE fact_expression fact_expression)
+ | ^(DOUBLE_AMPER fact_expression fact_expression)
+ | ^(VT_FACT_BINDING VT_LABEL fact_expression)
+ | ^(VT_FACT ^(VT_QUALIFIED_ID ID+) fact_expression*)
+ | ^(VT_FACT_OR fact_expression fact_expression)
+ | ^(VK_EVAL VT_PAREN_CHUNK)
+ | ^(VK_IN VK_NOT? fact_expression+)
+ | ^(EQUAL fact_expression)
+ | ^(GREATER fact_expression)
+ | ^(GREATER_EQUAL fact_expression)
+ | ^(LESS fact_expression)
+ | ^(LESS_EQUAL fact_expression)
+ | ^(NOT_EQUAL fact_expression)
+ | ^(VK_CONTAINS VK_NOT? fact_expression)
+ | ^(VK_EXCLUDES VK_NOT? fact_expression)
+ | ^(VK_MATCHES VK_NOT? fact_expression)
+ | ^(VK_SOUNDSLIKE VK_NOT? fact_expression)
+ | ^(VK_MEMBEROF VK_NOT? fact_expression)
+ | ^(ID VK_NOT? VT_SQUARE_CHUNK fact_expression)
+ | ^(VT_BIND_FIELD VT_LABEL fact_expression)
+ | ^(VT_FIELD ^(VT_ACCESSOR_PATH accessor_element+) fact_expression?)
+ | ^(VT_ACCESSOR_PATH accessor_element+)
+ | STRING
+ | INT
+ | FLOAT
+ | BOOL
+ | NULL
+ | VT_PAREN_CHUNK
+ ;
+
+
+accessor_element
+ : ^(VT_ACCESSOR_ELEMENT ID VT_SQUARE_CHUNK*)
+ ;
+
+expression_chain
+ : ^(VT_EXPRESSION_CHAIN ID VT_SQUARE_CHUNK? VT_PAREN_CHUNK? expression_chain?)
+ ;
+
+curly_chunk
+ : VT_CURLY_CHUNK
+ ;
\ No newline at end of file
Property changes on: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/TreeNewDRL.g
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list