[jboss-svn-commits] JBL Code SVN: r20044 - labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon May 19 13:40:47 EDT 2008
Author: porcelli
Date: 2008-05-19 13:40:47 -0400 (Mon, 19 May 2008)
New Revision: 20044
Added:
labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java
Log:
Tree walker, responsible to build all the descritors data.
Added: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java
===================================================================
--- labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java (rev 0)
+++ labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java 2008-05-19 17:40:47 UTC (rev 20044)
@@ -0,0 +1,4163 @@
+// $ANTLR 3.0.1 /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g 2008-05-19 14:24:38
+
+ package org.drools.lang;
+
+ import java.util.HashMap;
+ import java.util.Map;
+ import java.util.LinkedList;
+ import org.drools.lang.descr.DescrFactory;
+ import org.drools.lang.descr.BaseDescr;
+ import org.drools.lang.descr.PackageDescr;
+ import org.drools.lang.descr.AttributeDescr;
+ import org.drools.lang.descr.ImportDescr;
+ import org.drools.lang.descr.FunctionImportDescr;
+ import org.drools.lang.descr.GlobalDescr;
+ import org.drools.lang.descr.FunctionDescr;
+ import org.drools.lang.descr.FactTemplateDescr;
+ import org.drools.lang.descr.FieldTemplateDescr;
+ import org.drools.lang.descr.AndDescr;
+ import org.drools.lang.descr.QueryDescr;
+ import org.drools.lang.descr.RuleDescr;
+ import org.drools.lang.descr.PatternSourceDescr;
+ import org.drools.lang.descr.AccumulateDescr;
+ import org.drools.lang.descr.AccessorDescr;
+ import org.drools.lang.descr.DeclarativeInvokerDescr;
+ import org.drools.lang.descr.FromDescr;
+ import org.drools.lang.descr.FieldConstraintDescr;
+
+
+import org.antlr.runtime.*;
+import org.antlr.runtime.tree.*;import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+public class DescrBuilderTree extends TreeParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "VT_COMPILATION_UNIT", "VT_FUNCTION_IMPORT", "VT_FACT", "VT_CONSTRAINTS", "VT_LABEL", "VT_QUERY_ID", "VT_TEMPLATE_ID", "VT_RULE_ID", "VT_ENTRYPOINT_ID", "VT_SLOT_ID", "VT_SLOT", "VT_RULE_ATTRIBUTES", "VT_RHS_CHUNK", "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", "VT_DATA_TYPE", "VT_PACKAGE_ID", "VT_IMPORT_ID", "VT_GLOBAL_ID", "VT_FUNCTION_ID", "VT_PARAM_LIST", "VK_DATE_EFFECTIVE", "VK_DATE_EXPIRES", "VK_LOCK_ON_ACTIVE", "VK_NO_LOOP", "VK_AUTO_FOCUS", "VK_ACTIVATION_GROUP", "VK_AGENDA_GROUP", "VK_RULEFLOW_GROUP", "VK_DURATION", "VK_DIALECT", "VK_SALIENCE", "VK_ENABLED", "VK_ATTRIBUTES", "VK_WHEN", "VK_RULE", "VK_IMPORT", "VK_P!
ACKAGE", "VK_TEMPLATE", "VK_QUERY", "VK_DECLARE", "VK_FUNCTION", "VK_GLOBAL", "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", "SEMICOLON", "ID", "DOT", "DOT_STAR", "END", "STRING", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "COLON", "BOOL", "INT", "DOUBLE_PIPE", "DOUBLE_AMPER", "ARROW", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT"
+ };
+ public static final int COMMA=91;
+ public static final int VT_ACCUMULATE_ID_CLAUSE=26;
+ public static final int VK_FUNCTION=62;
+ public static final int VK_DIALECT=51;
+ public static final int END=88;
+ public static final int HexDigit=116;
+ public static final int VK_ATTRIBUTES=54;
+ public static final int VT_EXPRESSION_CHAIN=28;
+ public static final int VK_ACCUMULATE=78;
+ public static final int MISC=112;
+ public static final int VT_AND_PREFIX=21;
+ public static final int VK_QUERY=60;
+ public static final int THEN=109;
+ public static final int VK_AUTO_FOCUS=46;
+ public static final int DOT=86;
+ public static final int VK_IMPORT=57;
+ public static final int VT_SLOT=14;
+ public static final int VT_PACKAGE_ID=37;
+ public static final int LEFT_SQUARE=107;
+ public static final int SH_STYLE_SINGLE_LINE_COMMENT=119;
+ public static final int VT_DATA_TYPE=36;
+ public static final int VK_MATCHES=66;
+ public static final int VT_FACT=6;
+ public static final int LEFT_CURLY=110;
+ public static final int LEFT_PAREN=90;
+ public static final int DOUBLE_AMPER=97;
+ public static final int VT_QUERY_ID=9;
+ public static final int VT_ACCESSOR_PATH=34;
+ public static final int VT_LABEL=8;
+ public static final int VT_ENTRYPOINT_ID=12;
+ public static final int VK_SOUNDSLIKE=68;
+ public static final int VK_SALIENCE=52;
+ public static final int VT_FIELD=33;
+ public static final int WS=114;
+ public static final int STRING=89;
+ public static final int VK_AND=74;
+ public static final int VT_ACCESSOR_ELEMENT=35;
+ public static final int VK_REVERSE=81;
+ public static final int VK_GLOBAL=63;
+ public static final int VT_ACCUMULATE_INIT_CLAUSE=25;
+ public static final int VK_DURATION=50;
+ public static final int VT_SQUARE_CHUNK=18;
+ public static final int VK_FORALL=76;
+ public static final int VT_COMPILATION_UNIT=4;
+ public static final int VT_PAREN_CHUNK=19;
+ public static final int VK_ENABLED=53;
+ public static final int VK_RESULT=82;
+ public static final int UnicodeEscape=117;
+ public static final int VK_PACKAGE=58;
+ public static final int VT_RULE_ID=11;
+ public static final int EQUAL=99;
+ public static final int VK_NO_LOOP=45;
+ public static final int SEMICOLON=84;
+ public static final int VK_TEMPLATE=59;
+ public static final int VT_AND_IMPLICIT=20;
+ public static final int NULL=106;
+ public static final int COLON=93;
+ public static final int MULTI_LINE_COMMENT=121;
+ public static final int VT_RULE_ATTRIBUTES=15;
+ public static final int RIGHT_SQUARE=108;
+ public static final int VK_AGENDA_GROUP=48;
+ public static final int VT_FACT_OR=31;
+ public static final int VK_NOT=71;
+ public static final int VK_DATE_EXPIRES=43;
+ public static final int ARROW=98;
+ public static final int FLOAT=105;
+ public static final int VT_SLOT_ID=13;
+ public static final int VT_CURLY_CHUNK=17;
+ public static final int VT_OR_PREFIX=22;
+ public static final int DOUBLE_PIPE=96;
+ public static final int LESS=102;
+ public static final int VT_PATTERN=29;
+ public static final int VK_DATE_EFFECTIVE=42;
+ public static final int EscapeSequence=115;
+ public static final int VK_EXISTS=75;
+ public static final int INT=95;
+ public static final int VT_BIND_FIELD=32;
+ public static final int VK_RULE=56;
+ public static final int VK_EVAL=64;
+ public static final int VK_COLLECT=83;
+ public static final int GREATER=100;
+ public static final int VT_FACT_BINDING=30;
+ public static final int ID=85;
+ public static final int NOT_EQUAL=104;
+ public static final int RIGHT_CURLY=111;
+ public static final int VK_ENTRY_POINT=70;
+ public static final int BOOL=94;
+ public static final int VT_PARAM_LIST=41;
+ public static final int VT_AND_INFIX=23;
+ public static final int VT_FROM_SOURCE=27;
+ public static final int VK_CONTAINS=65;
+ public static final int VK_LOCK_ON_ACTIVE=44;
+ public static final int VT_FUNCTION_IMPORT=5;
+ public static final int VK_IN=72;
+ public static final int VT_RHS_CHUNK=16;
+ public static final int VK_MEMBEROF=69;
+ public static final int GREATER_EQUAL=101;
+ public static final int VT_OR_INFIX=24;
+ public static final int DOT_STAR=87;
+ public static final int VK_OR=73;
+ public static final int VT_GLOBAL_ID=39;
+ public static final int LESS_EQUAL=103;
+ public static final int VK_WHEN=55;
+ public static final int VK_RULEFLOW_GROUP=49;
+ public static final int VT_FUNCTION_ID=40;
+ public static final int EOF=-1;
+ public static final int VT_CONSTRAINTS=7;
+ public static final int VT_IMPORT_ID=38;
+ public static final int EOL=113;
+ public static final int VK_INIT=79;
+ public static final int VK_ACTIVATION_GROUP=47;
+ public static final int OctalEscape=118;
+ public static final int VK_ACTION=80;
+ public static final int VK_FROM=77;
+ public static final int VK_EXCLUDES=67;
+ public static final int RIGHT_PAREN=92;
+ public static final int VT_TEMPLATE_ID=10;
+ public static final int VK_DECLARE=61;
+ public static final int C_STYLE_SINGLE_LINE_COMMENT=120;
+
+ public DescrBuilderTree(TreeNodeStream input) {
+ super(input);
+ }
+
+
+ public String[] getTokenNames() { return tokenNames; }
+ public String getGrammarFileName() { return "/Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g"; }
+
+
+ DescrFactory factory = new DescrFactory();
+ PackageDescr packageDescr = null;
+
+ public PackageDescr getPackageDescr() {
+ return packageDescr;
+ }
+
+
+
+ // $ANTLR start compilation_unit
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:45:1: compilation_unit : ^( VT_COMPILATION_UNIT package_statement ( statement )* ) ;
+ public final void compilation_unit() throws RecognitionException {
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:46:2: ( ^( VT_COMPILATION_UNIT package_statement ( statement )* ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:46:4: ^( VT_COMPILATION_UNIT package_statement ( statement )* )
+ {
+ match(input,VT_COMPILATION_UNIT,FOLLOW_VT_COMPILATION_UNIT_in_compilation_unit49);
+
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_package_statement_in_compilation_unit51);
+ package_statement();
+ _fsp--;
+
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:46:44: ( statement )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==VT_FUNCTION_IMPORT||(LA1_0>=VK_DATE_EFFECTIVE && LA1_0<=VK_ENABLED)||(LA1_0>=VK_RULE && LA1_0<=VK_IMPORT)||(LA1_0>=VK_TEMPLATE && LA1_0<=VK_QUERY)||(LA1_0>=VK_FUNCTION && LA1_0<=VK_GLOBAL)) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:46:44: statement
+ {
+ pushFollow(FOLLOW_statement_in_compilation_unit53);
+ statement();
+ _fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end compilation_unit
+
+
+ // $ANTLR start package_statement
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:49:1: package_statement returns [String packageName] : ( ^( VK_PACKAGE packageId= package_id ) | );
+ public final String package_statement() throws RecognitionException {
+ String packageName = null;
+
+ List packageId = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:50:2: ( ^( VK_PACKAGE packageId= package_id ) | )
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==VK_PACKAGE) ) {
+ alt2=1;
+ }
+ else if ( (LA2_0==UP||LA2_0==VT_FUNCTION_IMPORT||(LA2_0>=VK_DATE_EFFECTIVE && LA2_0<=VK_ENABLED)||(LA2_0>=VK_RULE && LA2_0<=VK_IMPORT)||(LA2_0>=VK_TEMPLATE && LA2_0<=VK_QUERY)||(LA2_0>=VK_FUNCTION && LA2_0<=VK_GLOBAL)) ) {
+ alt2=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("49:1: package_statement returns [String packageName] : ( ^( VK_PACKAGE packageId= package_id ) | );", 2, 0, input);
+
+ throw nvae;
+ }
+ switch (alt2) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:50:4: ^( VK_PACKAGE packageId= package_id )
+ {
+ match(input,VK_PACKAGE,FOLLOW_VK_PACKAGE_in_package_statement71);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_package_id_in_package_statement75);
+ packageId=package_id();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ this.packageDescr = factory.createPackage(packageId);
+ packageName = packageDescr.getName();
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:54:2:
+ {
+ this.packageDescr = factory.createPackage(null);
+ packageName = "";
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return packageName;
+ }
+ // $ANTLR end package_statement
+
+
+ // $ANTLR start package_id
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:58:1: package_id returns [List idList] : ^( VT_PACKAGE_ID (tempList+= ID )+ ) ;
+ public final List package_id() throws RecognitionException {
+ List idList = null;
+
+ DroolsTree tempList=null;
+ List list_tempList=null;
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:59:2: ( ^( VT_PACKAGE_ID (tempList+= ID )+ ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:59:4: ^( VT_PACKAGE_ID (tempList+= ID )+ )
+ {
+ match(input,VT_PACKAGE_ID,FOLLOW_VT_PACKAGE_ID_in_package_id102);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:59:28: (tempList+= ID )+
+ int cnt3=0;
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==ID) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:59:28: tempList+= ID
+ {
+ tempList=(DroolsTree)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_package_id106);
+ if (list_tempList==null) list_tempList=new ArrayList();
+ list_tempList.add(tempList);
+
+
+ }
+ break;
+
+ default :
+ if ( cnt3 >= 1 ) break loop3;
+ EarlyExitException eee =
+ new EarlyExitException(3, input);
+ throw eee;
+ }
+ cnt3++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ idList = list_tempList;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return idList;
+ }
+ // $ANTLR end package_id
+
+
+ // $ANTLR start statement
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:63:1: statement : (a= rule_attribute | fi= function_import_statement | is= import_statement | gl= global | fn= function | tp= template | rl= rule | qr= query );
+ public final void statement() throws RecognitionException {
+ AttributeDescr a = null;
+
+ FunctionImportDescr fi = null;
+
+ ImportDescr is = null;
+
+ global_return gl = null;
+
+ function_return fn = null;
+
+ template_return tp = null;
+
+ rule_return rl = null;
+
+ query_return qr = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:64:2: (a= rule_attribute | fi= function_import_statement | is= import_statement | gl= global | fn= function | tp= template | rl= rule | qr= query )
+ int alt4=8;
+ switch ( input.LA(1) ) {
+ case VK_DATE_EFFECTIVE:
+ case VK_DATE_EXPIRES:
+ case VK_LOCK_ON_ACTIVE:
+ case VK_NO_LOOP:
+ case VK_AUTO_FOCUS:
+ case VK_ACTIVATION_GROUP:
+ case VK_AGENDA_GROUP:
+ case VK_RULEFLOW_GROUP:
+ case VK_DURATION:
+ case VK_DIALECT:
+ case VK_SALIENCE:
+ case VK_ENABLED:
+ {
+ alt4=1;
+ }
+ break;
+ case VT_FUNCTION_IMPORT:
+ {
+ alt4=2;
+ }
+ break;
+ case VK_IMPORT:
+ {
+ alt4=3;
+ }
+ break;
+ case VK_GLOBAL:
+ {
+ alt4=4;
+ }
+ break;
+ case VK_FUNCTION:
+ {
+ alt4=5;
+ }
+ break;
+ case VK_TEMPLATE:
+ {
+ alt4=6;
+ }
+ break;
+ case VK_RULE:
+ {
+ alt4=7;
+ }
+ break;
+ case VK_QUERY:
+ {
+ alt4=8;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("63:1: statement : (a= rule_attribute | fi= function_import_statement | is= import_statement | gl= global | fn= function | tp= template | rl= rule | qr= query );", 4, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt4) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:64:4: a= rule_attribute
+ {
+ pushFollow(FOLLOW_rule_attribute_in_statement124);
+ a=rule_attribute();
+ _fsp--;
+
+ this.packageDescr.addAttribute(a);
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:66:4: fi= function_import_statement
+ {
+ pushFollow(FOLLOW_function_import_statement_in_statement134);
+ fi=function_import_statement();
+ _fsp--;
+
+ this.packageDescr.addFunctionImport(fi);
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:68:4: is= import_statement
+ {
+ pushFollow(FOLLOW_import_statement_in_statement144);
+ is=import_statement();
+ _fsp--;
+
+ this.packageDescr.addImport(is);
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:70:4: gl= global
+ {
+ pushFollow(FOLLOW_global_in_statement155);
+ gl=global();
+ _fsp--;
+
+ this.packageDescr.addGlobal(gl.globalDescr);
+
+ }
+ break;
+ case 5 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:72:4: fn= function
+ {
+ pushFollow(FOLLOW_function_in_statement165);
+ fn=function();
+ _fsp--;
+
+ this.packageDescr.addFunction(fn.functionDescr);
+
+ }
+ break;
+ case 6 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:74:4: tp= template
+ {
+ pushFollow(FOLLOW_template_in_statement175);
+ tp=template();
+ _fsp--;
+
+ this.packageDescr.addFactTemplate(tp.factTemplateDescr);
+
+ }
+ break;
+ case 7 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:76:4: rl= rule
+ {
+ pushFollow(FOLLOW_rule_in_statement185);
+ rl=rule();
+ _fsp--;
+
+ this.packageDescr.addRule(rl.ruleDescr);
+
+ }
+ break;
+ case 8 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:78:4: qr= query
+ {
+ pushFollow(FOLLOW_query_in_statement195);
+ qr=query();
+ _fsp--;
+
+ this.packageDescr.addRule(qr.queryDescr);
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end statement
+
+
+ // $ANTLR start import_statement
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:82:1: import_statement returns [ImportDescr importDescr] : ^(importStart= VK_IMPORT importId= import_name ) ;
+ public final ImportDescr import_statement() throws RecognitionException {
+ ImportDescr importDescr = null;
+
+ DroolsTree importStart=null;
+ import_name_return importId = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:83:2: ( ^(importStart= VK_IMPORT importId= import_name ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:83:4: ^(importStart= VK_IMPORT importId= import_name )
+ {
+ importStart=(DroolsTree)input.LT(1);
+ match(input,VK_IMPORT,FOLLOW_VK_IMPORT_in_import_statement216);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_import_name_in_import_statement220);
+ importId=import_name();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ importDescr = factory.createImport(importStart, importId.idList, importId.dotStar);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return importDescr;
+ }
+ // $ANTLR end import_statement
+
+
+ // $ANTLR start function_import_statement
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:87:1: function_import_statement returns [FunctionImportDescr functionImportDescr] : ^(importStart= VT_FUNCTION_IMPORT VK_FUNCTION importId= import_name ) ;
+ public final FunctionImportDescr function_import_statement() throws RecognitionException {
+ FunctionImportDescr functionImportDescr = null;
+
+ DroolsTree importStart=null;
+ import_name_return importId = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:88:2: ( ^(importStart= VT_FUNCTION_IMPORT VK_FUNCTION importId= import_name ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:88:4: ^(importStart= VT_FUNCTION_IMPORT VK_FUNCTION importId= import_name )
+ {
+ importStart=(DroolsTree)input.LT(1);
+ match(input,VT_FUNCTION_IMPORT,FOLLOW_VT_FUNCTION_IMPORT_in_function_import_statement242);
+
+ match(input, Token.DOWN, null);
+ match(input,VK_FUNCTION,FOLLOW_VK_FUNCTION_in_function_import_statement244);
+ pushFollow(FOLLOW_import_name_in_function_import_statement248);
+ importId=import_name();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ functionImportDescr = factory.createFunctionImport(importStart, importId.idList, importId.dotStar);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return functionImportDescr;
+ }
+ // $ANTLR end function_import_statement
+
+ public static class import_name_return extends TreeRuleReturnScope {
+ public List idList;
+ public DroolsTree dotStar;
+ };
+
+ // $ANTLR start import_name
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:92:1: import_name returns [List idList, DroolsTree dotStar] : ^( VT_IMPORT_ID (tempList+= ID )+ (tempDotStar= DOT_STAR )? ) ;
+ public final import_name_return import_name() throws RecognitionException {
+ import_name_return retval = new import_name_return();
+ retval.start = input.LT(1);
+
+ DroolsTree tempDotStar=null;
+ DroolsTree tempList=null;
+ List list_tempList=null;
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:93:2: ( ^( VT_IMPORT_ID (tempList+= ID )+ (tempDotStar= DOT_STAR )? ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:93:4: ^( VT_IMPORT_ID (tempList+= ID )+ (tempDotStar= DOT_STAR )? )
+ {
+ match(input,VT_IMPORT_ID,FOLLOW_VT_IMPORT_ID_in_import_name267);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:93:27: (tempList+= ID )+
+ int cnt5=0;
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==ID) ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:93:27: tempList+= ID
+ {
+ tempList=(DroolsTree)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_import_name271);
+ if (list_tempList==null) list_tempList=new ArrayList();
+ list_tempList.add(tempList);
+
+
+ }
+ break;
+
+ default :
+ if ( cnt5 >= 1 ) break loop5;
+ EarlyExitException eee =
+ new EarlyExitException(5, input);
+ throw eee;
+ }
+ cnt5++;
+ } while (true);
+
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:93:44: (tempDotStar= DOT_STAR )?
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==DOT_STAR) ) {
+ alt6=1;
+ }
+ switch (alt6) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:93:44: tempDotStar= DOT_STAR
+ {
+ tempDotStar=(DroolsTree)input.LT(1);
+ match(input,DOT_STAR,FOLLOW_DOT_STAR_in_import_name276);
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+ retval.idList = list_tempList;
+ retval.dotStar = tempDotStar;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end import_name
+
+ public static class global_return extends TreeRuleReturnScope {
+ public GlobalDescr globalDescr;
+ };
+
+ // $ANTLR start global
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:98:1: global returns [GlobalDescr globalDescr] : ^(start= VK_GLOBAL dt= data_type globalId= VT_GLOBAL_ID ) ;
+ public final global_return global() throws RecognitionException {
+ global_return retval = new global_return();
+ retval.start = input.LT(1);
+
+ DroolsTree start=null;
+ DroolsTree globalId=null;
+ BaseDescr dt = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:99:2: ( ^(start= VK_GLOBAL dt= data_type globalId= VT_GLOBAL_ID ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:99:4: ^(start= VK_GLOBAL dt= data_type globalId= VT_GLOBAL_ID )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_GLOBAL,FOLLOW_VK_GLOBAL_in_global299);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_data_type_in_global303);
+ dt=data_type();
+ _fsp--;
+
+ globalId=(DroolsTree)input.LT(1);
+ match(input,VT_GLOBAL_ID,FOLLOW_VT_GLOBAL_ID_in_global307);
+
+ match(input, Token.UP, null);
+ retval.globalDescr = factory.createGlobal(start,dt, globalId);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end global
+
+ public static class function_return extends TreeRuleReturnScope {
+ public FunctionDescr functionDescr;
+ };
+
+ // $ANTLR start function
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:103:1: function returns [FunctionDescr functionDescr] : ^(start= VK_FUNCTION (dt= data_type )? functionId= VT_FUNCTION_ID params= parameters content= VT_CURLY_CHUNK ) ;
+ public final function_return function() throws RecognitionException {
+ function_return retval = new function_return();
+ retval.start = input.LT(1);
+
+ DroolsTree start=null;
+ DroolsTree functionId=null;
+ DroolsTree content=null;
+ BaseDescr dt = null;
+
+ List params = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:104:2: ( ^(start= VK_FUNCTION (dt= data_type )? functionId= VT_FUNCTION_ID params= parameters content= VT_CURLY_CHUNK ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:104:4: ^(start= VK_FUNCTION (dt= data_type )? functionId= VT_FUNCTION_ID params= parameters content= VT_CURLY_CHUNK )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_FUNCTION,FOLLOW_VK_FUNCTION_in_function329);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:104:26: (dt= data_type )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==VT_DATA_TYPE) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:104:26: dt= data_type
+ {
+ pushFollow(FOLLOW_data_type_in_function333);
+ dt=data_type();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+ functionId=(DroolsTree)input.LT(1);
+ match(input,VT_FUNCTION_ID,FOLLOW_VT_FUNCTION_ID_in_function338);
+ pushFollow(FOLLOW_parameters_in_function342);
+ params=parameters();
+ _fsp--;
+
+ content=(DroolsTree)input.LT(1);
+ match(input,VT_CURLY_CHUNK,FOLLOW_VT_CURLY_CHUNK_in_function346);
+
+ match(input, Token.UP, null);
+ retval.functionDescr = factory.createFunction(start, dt, functionId, params, content);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end function
+
+ public static class template_return extends TreeRuleReturnScope {
+ public FactTemplateDescr factTemplateDescr;
+ };
+
+ // $ANTLR start template
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:108:1: template returns [FactTemplateDescr factTemplateDescr] : ^(start= VK_TEMPLATE id= VT_TEMPLATE_ID (ts= template_slot )+ end= END ) ;
+ public final template_return template() throws RecognitionException {
+ template_return retval = new template_return();
+ retval.start = input.LT(1);
+
+ DroolsTree start=null;
+ DroolsTree id=null;
+ DroolsTree end=null;
+ FieldTemplateDescr ts = null;
+
+
+
+ List slotList = new LinkedList<FieldTemplateDescr>();
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:111:3: ( ^(start= VK_TEMPLATE id= VT_TEMPLATE_ID (ts= template_slot )+ end= END ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:111:5: ^(start= VK_TEMPLATE id= VT_TEMPLATE_ID (ts= template_slot )+ end= END )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_TEMPLATE,FOLLOW_VK_TEMPLATE_in_template371);
+
+ match(input, Token.DOWN, null);
+ id=(DroolsTree)input.LT(1);
+ match(input,VT_TEMPLATE_ID,FOLLOW_VT_TEMPLATE_ID_in_template375);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:112:4: (ts= template_slot )+
+ int cnt8=0;
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==VT_SLOT) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:112:6: ts= template_slot
+ {
+ pushFollow(FOLLOW_template_slot_in_template384);
+ ts=template_slot();
+ _fsp--;
+
+ slotList.add(ts);
+
+ }
+ break;
+
+ default :
+ if ( cnt8 >= 1 ) break loop8;
+ EarlyExitException eee =
+ new EarlyExitException(8, input);
+ throw eee;
+ }
+ cnt8++;
+ } while (true);
+
+ end=(DroolsTree)input.LT(1);
+ match(input,END,FOLLOW_END_in_template392);
+
+ match(input, Token.UP, null);
+ retval.factTemplateDescr = factory.createFactTemplate(start, id, slotList, end);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end template
+
+
+ // $ANTLR start template_slot
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:116:1: template_slot returns [FieldTemplateDescr fieldTemplateDescr] : ^( VT_SLOT dt= data_type id= VT_SLOT_ID ) ;
+ public final FieldTemplateDescr template_slot() throws RecognitionException {
+ FieldTemplateDescr fieldTemplateDescr = null;
+
+ DroolsTree id=null;
+ BaseDescr dt = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:117:2: ( ^( VT_SLOT dt= data_type id= VT_SLOT_ID ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:117:4: ^( VT_SLOT dt= data_type id= VT_SLOT_ID )
+ {
+ match(input,VT_SLOT,FOLLOW_VT_SLOT_in_template_slot412);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_data_type_in_template_slot416);
+ dt=data_type();
+ _fsp--;
+
+ id=(DroolsTree)input.LT(1);
+ match(input,VT_SLOT_ID,FOLLOW_VT_SLOT_ID_in_template_slot420);
+
+ match(input, Token.UP, null);
+ fieldTemplateDescr = factory.createFieldTemplate(dt, id);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return fieldTemplateDescr;
+ }
+ // $ANTLR end template_slot
+
+ public static class query_return extends TreeRuleReturnScope {
+ public QueryDescr queryDescr;
+ };
+
+ // $ANTLR start query
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:121:1: query returns [QueryDescr queryDescr] : ^(start= VK_QUERY id= VT_QUERY_ID (params= parameters )? lb= lhs_block end= END ) ;
+ public final query_return query() throws RecognitionException {
+ query_return retval = new query_return();
+ retval.start = input.LT(1);
+
+ DroolsTree start=null;
+ DroolsTree id=null;
+ DroolsTree end=null;
+ List params = null;
+
+ AndDescr lb = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:122:2: ( ^(start= VK_QUERY id= VT_QUERY_ID (params= parameters )? lb= lhs_block end= END ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:122:4: ^(start= VK_QUERY id= VT_QUERY_ID (params= parameters )? lb= lhs_block end= END )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_QUERY,FOLLOW_VK_QUERY_in_query442);
+
+ match(input, Token.DOWN, null);
+ id=(DroolsTree)input.LT(1);
+ match(input,VT_QUERY_ID,FOLLOW_VT_QUERY_ID_in_query446);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:122:42: (params= parameters )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==VT_PARAM_LIST) ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:122:42: params= parameters
+ {
+ pushFollow(FOLLOW_parameters_in_query450);
+ params=parameters();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_lhs_block_in_query455);
+ lb=lhs_block();
+ _fsp--;
+
+ end=(DroolsTree)input.LT(1);
+ match(input,END,FOLLOW_END_in_query459);
+
+ match(input, Token.UP, null);
+ retval.queryDescr = factory.createQuery(start, id, params, lb, end);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end query
+
+ public static class rule_return extends TreeRuleReturnScope {
+ public RuleDescr ruleDescr;
+ };
+
+ // $ANTLR start rule
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:126:1: rule returns [RuleDescr ruleDescr] : ^(start= VK_RULE id= VT_RULE_ID (ra= rule_attributes )? (wn= when_part )? content= VT_RHS_CHUNK ) ;
+ public final rule_return rule() throws RecognitionException {
+ rule_return retval = new rule_return();
+ retval.start = input.LT(1);
+
+ DroolsTree start=null;
+ DroolsTree id=null;
+ DroolsTree content=null;
+ List ra = null;
+
+ AndDescr wn = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:127:2: ( ^(start= VK_RULE id= VT_RULE_ID (ra= rule_attributes )? (wn= when_part )? content= VT_RHS_CHUNK ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:127:4: ^(start= VK_RULE id= VT_RULE_ID (ra= rule_attributes )? (wn= when_part )? content= VT_RHS_CHUNK )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_RULE,FOLLOW_VK_RULE_in_rule481);
+
+ match(input, Token.DOWN, null);
+ id=(DroolsTree)input.LT(1);
+ match(input,VT_RULE_ID,FOLLOW_VT_RULE_ID_in_rule485);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:127:36: (ra= rule_attributes )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==VT_RULE_ATTRIBUTES) ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:127:36: ra= rule_attributes
+ {
+ pushFollow(FOLLOW_rule_attributes_in_rule489);
+ ra=rule_attributes();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:127:56: (wn= when_part )?
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==VK_WHEN) ) {
+ alt11=1;
+ }
+ switch (alt11) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:127:56: wn= when_part
+ {
+ pushFollow(FOLLOW_when_part_in_rule494);
+ wn=when_part();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+ content=(DroolsTree)input.LT(1);
+ match(input,VT_RHS_CHUNK,FOLLOW_VT_RHS_CHUNK_in_rule499);
+
+ match(input, Token.UP, null);
+ retval.ruleDescr = factory.createRule(start, id, ra, wn, content);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end rule
+
+
+ // $ANTLR start when_part
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:131:1: when_part returns [AndDescr andDescr] : VK_WHEN lh= lhs_block ;
+ public final AndDescr when_part() throws RecognitionException {
+ AndDescr andDescr = null;
+
+ AndDescr lh = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:132:2: ( VK_WHEN lh= lhs_block )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:132:4: VK_WHEN lh= lhs_block
+ {
+ match(input,VK_WHEN,FOLLOW_VK_WHEN_in_when_part518);
+ pushFollow(FOLLOW_lhs_block_in_when_part522);
+ lh=lhs_block();
+ _fsp--;
+
+ andDescr = lh;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return andDescr;
+ }
+ // $ANTLR end when_part
+
+
+ // $ANTLR start rule_attributes
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:136:1: rule_attributes returns [List attrList] : ^( VT_RULE_ATTRIBUTES ( VK_ATTRIBUTES )? (rl= rule_attribute )+ ) ;
+ public final List rule_attributes() throws RecognitionException {
+ List attrList = null;
+
+ AttributeDescr rl = null;
+
+
+
+ attrList = new LinkedList<AttributeDescr>();
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:139:3: ( ^( VT_RULE_ATTRIBUTES ( VK_ATTRIBUTES )? (rl= rule_attribute )+ ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:139:5: ^( VT_RULE_ATTRIBUTES ( VK_ATTRIBUTES )? (rl= rule_attribute )+ )
+ {
+ match(input,VT_RULE_ATTRIBUTES,FOLLOW_VT_RULE_ATTRIBUTES_in_rule_attributes544);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:139:26: ( VK_ATTRIBUTES )?
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0==VK_ATTRIBUTES) ) {
+ alt12=1;
+ }
+ switch (alt12) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:139:26: VK_ATTRIBUTES
+ {
+ match(input,VK_ATTRIBUTES,FOLLOW_VK_ATTRIBUTES_in_rule_attributes546);
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:139:41: (rl= rule_attribute )+
+ int cnt13=0;
+ loop13:
+ do {
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( ((LA13_0>=VK_DATE_EFFECTIVE && LA13_0<=VK_ENABLED)) ) {
+ alt13=1;
+ }
+
+
+ switch (alt13) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:139:42: rl= rule_attribute
+ {
+ pushFollow(FOLLOW_rule_attribute_in_rule_attributes552);
+ rl=rule_attribute();
+ _fsp--;
+
+ attrList.add(rl);
+
+ }
+ break;
+
+ default :
+ if ( cnt13 >= 1 ) break loop13;
+ EarlyExitException eee =
+ new EarlyExitException(13, input);
+ throw eee;
+ }
+ cnt13++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return attrList;
+ }
+ // $ANTLR end rule_attributes
+
+
+ // $ANTLR start parameters
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:142:1: parameters returns [List paramList] : ^( VT_PARAM_LIST (p= param_definition )* ) ;
+ public final List parameters() throws RecognitionException {
+ List paramList = null;
+
+ Map p = null;
+
+
+
+ paramList = new LinkedList<Map<BaseDescr, BaseDescr>>();
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:145:3: ( ^( VT_PARAM_LIST (p= param_definition )* ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:145:5: ^( VT_PARAM_LIST (p= param_definition )* )
+ {
+ match(input,VT_PARAM_LIST,FOLLOW_VT_PARAM_LIST_in_parameters576);
+
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:145:21: (p= param_definition )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==VT_DATA_TYPE||LA14_0==ID) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:145:22: p= param_definition
+ {
+ pushFollow(FOLLOW_param_definition_in_parameters581);
+ p=param_definition();
+ _fsp--;
+
+ paramList.add(p);
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return paramList;
+ }
+ // $ANTLR end parameters
+
+
+ // $ANTLR start param_definition
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:148:1: param_definition returns [Map param] : (dt= data_type )? a= argument ;
+ public final Map param_definition() throws RecognitionException {
+ Map param = null;
+
+ BaseDescr dt = null;
+
+ BaseDescr a = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:149:2: ( (dt= data_type )? a= argument )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:149:4: (dt= data_type )? a= argument
+ {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:149:6: (dt= data_type )?
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==VT_DATA_TYPE) ) {
+ alt15=1;
+ }
+ switch (alt15) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:149:6: dt= data_type
+ {
+ pushFollow(FOLLOW_data_type_in_param_definition603);
+ dt=data_type();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_argument_in_param_definition608);
+ a=argument();
+ _fsp--;
+
+ param = new HashMap<BaseDescr, BaseDescr>();
+ param.put(a, dt);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return param;
+ }
+ // $ANTLR end param_definition
+
+
+ // $ANTLR start argument
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:154:1: argument returns [BaseDescr arg] : id= ID ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* ;
+ public final BaseDescr argument() throws RecognitionException {
+ BaseDescr arg = null;
+
+ DroolsTree id=null;
+ DroolsTree rightList=null;
+ List list_rightList=null;
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:155:2: (id= ID ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:155:4: id= ID ( LEFT_SQUARE rightList+= RIGHT_SQUARE )*
+ {
+ id=(DroolsTree)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_argument628);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:155:10: ( LEFT_SQUARE rightList+= RIGHT_SQUARE )*
+ loop16:
+ do {
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==LEFT_SQUARE) ) {
+ alt16=1;
+ }
+
+
+ switch (alt16) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:155:11: LEFT_SQUARE rightList+= RIGHT_SQUARE
+ {
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_argument631);
+ rightList=(DroolsTree)input.LT(1);
+ match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_argument635);
+ if (list_rightList==null) list_rightList=new ArrayList();
+ list_rightList.add(rightList);
+
+
+ }
+ break;
+
+ default :
+ break loop16;
+ }
+ } while (true);
+
+ arg = factory.createArgument(id, list_rightList);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return arg;
+ }
+ // $ANTLR end argument
+
+
+ // $ANTLR start rule_attribute
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:159:1: rule_attribute returns [AttributeDescr attributeDescr] : ( ^(attrName= VK_SALIENCE (value= INT | value= VT_PAREN_CHUNK ) ) | ^(attrName= VK_NO_LOOP (value= BOOL )? ) | ^(attrName= VK_AGENDA_GROUP value= STRING ) | ^(attrName= VK_DURATION value= INT ) | ^(attrName= VK_ACTIVATION_GROUP value= STRING ) | ^(attrName= VK_AUTO_FOCUS (value= BOOL )? ) | ^(attrName= VK_DATE_EFFECTIVE value= STRING ) | ^(attrName= VK_DATE_EXPIRES value= STRING ) | ^(attrName= VK_ENABLED value= BOOL ) | ^(attrName= VK_RULEFLOW_GROUP value= STRING ) | ^(attrName= VK_LOCK_ON_ACTIVE (value= BOOL )? ) | ^(attrName= VK_DIALECT value= STRING ) ) ;
+ public final AttributeDescr rule_attribute() throws RecognitionException {
+ AttributeDescr attributeDescr = null;
+
+ DroolsTree attrName=null;
+ DroolsTree value=null;
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:160:2: ( ( ^(attrName= VK_SALIENCE (value= INT | value= VT_PAREN_CHUNK ) ) | ^(attrName= VK_NO_LOOP (value= BOOL )? ) | ^(attrName= VK_AGENDA_GROUP value= STRING ) | ^(attrName= VK_DURATION value= INT ) | ^(attrName= VK_ACTIVATION_GROUP value= STRING ) | ^(attrName= VK_AUTO_FOCUS (value= BOOL )? ) | ^(attrName= VK_DATE_EFFECTIVE value= STRING ) | ^(attrName= VK_DATE_EXPIRES value= STRING ) | ^(attrName= VK_ENABLED value= BOOL ) | ^(attrName= VK_RULEFLOW_GROUP value= STRING ) | ^(attrName= VK_LOCK_ON_ACTIVE (value= BOOL )? ) | ^(attrName= VK_DIALECT value= STRING ) ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:160:4: ( ^(attrName= VK_SALIENCE (value= INT | value= VT_PAREN_CHUNK ) ) | ^(attrName= VK_NO_LOOP (value= BOOL )? ) | ^(attrName= VK_AGENDA_GROUP value= STRING ) | ^(attrName= VK_DURATION value= INT ) | ^(attrName= VK_ACTIVATION_GROUP value= STRING ) | ^(attrName= VK_AUTO_FOCUS (value= BOOL )? ) | ^(attrName= VK_DATE_EFFECTIVE value= STRING ) | ^(attrName= VK_DATE_EXPIRES value= STRING ) | ^(attrName= VK_ENABLED value= BOOL ) | ^(attrName= VK_RULEFLOW_GROUP value= STRING ) | ^(attrName= VK_LOCK_ON_ACTIVE (value= BOOL )? ) | ^(attrName= VK_DIALECT value= STRING ) )
+ {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:160:4: ( ^(attrName= VK_SALIENCE (value= INT | value= VT_PAREN_CHUNK ) ) | ^(attrName= VK_NO_LOOP (value= BOOL )? ) | ^(attrName= VK_AGENDA_GROUP value= STRING ) | ^(attrName= VK_DURATION value= INT ) | ^(attrName= VK_ACTIVATION_GROUP value= STRING ) | ^(attrName= VK_AUTO_FOCUS (value= BOOL )? ) | ^(attrName= VK_DATE_EFFECTIVE value= STRING ) | ^(attrName= VK_DATE_EXPIRES value= STRING ) | ^(attrName= VK_ENABLED value= BOOL ) | ^(attrName= VK_RULEFLOW_GROUP value= STRING ) | ^(attrName= VK_LOCK_ON_ACTIVE (value= BOOL )? ) | ^(attrName= VK_DIALECT value= STRING ) )
+ int alt21=12;
+ switch ( input.LA(1) ) {
+ case VK_SALIENCE:
+ {
+ alt21=1;
+ }
+ break;
+ case VK_NO_LOOP:
+ {
+ alt21=2;
+ }
+ break;
+ case VK_AGENDA_GROUP:
+ {
+ alt21=3;
+ }
+ break;
+ case VK_DURATION:
+ {
+ alt21=4;
+ }
+ break;
+ case VK_ACTIVATION_GROUP:
+ {
+ alt21=5;
+ }
+ break;
+ case VK_AUTO_FOCUS:
+ {
+ alt21=6;
+ }
+ break;
+ case VK_DATE_EFFECTIVE:
+ {
+ alt21=7;
+ }
+ break;
+ case VK_DATE_EXPIRES:
+ {
+ alt21=8;
+ }
+ break;
+ case VK_ENABLED:
+ {
+ alt21=9;
+ }
+ break;
+ case VK_RULEFLOW_GROUP:
+ {
+ alt21=10;
+ }
+ break;
+ case VK_LOCK_ON_ACTIVE:
+ {
+ alt21=11;
+ }
+ break;
+ case VK_DIALECT:
+ {
+ alt21=12;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("160:4: ( ^(attrName= VK_SALIENCE (value= INT | value= VT_PAREN_CHUNK ) ) | ^(attrName= VK_NO_LOOP (value= BOOL )? ) | ^(attrName= VK_AGENDA_GROUP value= STRING ) | ^(attrName= VK_DURATION value= INT ) | ^(attrName= VK_ACTIVATION_GROUP value= STRING ) | ^(attrName= VK_AUTO_FOCUS (value= BOOL )? ) | ^(attrName= VK_DATE_EFFECTIVE value= STRING ) | ^(attrName= VK_DATE_EXPIRES value= STRING ) | ^(attrName= VK_ENABLED value= BOOL ) | ^(attrName= VK_RULEFLOW_GROUP value= STRING ) | ^(attrName= VK_LOCK_ON_ACTIVE (value= BOOL )? ) | ^(attrName= VK_DIALECT value= STRING ) )", 21, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt21) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:160:5: ^(attrName= VK_SALIENCE (value= INT | value= VT_PAREN_CHUNK ) )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_SALIENCE,FOLLOW_VK_SALIENCE_in_rule_attribute659);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:160:28: (value= INT | value= VT_PAREN_CHUNK )
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0==INT) ) {
+ alt17=1;
+ }
+ else if ( (LA17_0==VT_PAREN_CHUNK) ) {
+ alt17=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("160:28: (value= INT | value= VT_PAREN_CHUNK )", 17, 0, input);
+
+ throw nvae;
+ }
+ switch (alt17) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:160:29: value= INT
+ {
+ value=(DroolsTree)input.LT(1);
+ match(input,INT,FOLLOW_INT_in_rule_attribute664);
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:160:39: value= VT_PAREN_CHUNK
+ {
+ value=(DroolsTree)input.LT(1);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_rule_attribute668);
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:161:4: ^(attrName= VK_NO_LOOP (value= BOOL )? )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_NO_LOOP,FOLLOW_VK_NO_LOOP_in_rule_attribute679);
+
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:161:31: (value= BOOL )?
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0==BOOL) ) {
+ alt18=1;
+ }
+ switch (alt18) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:161:31: value= BOOL
+ {
+ value=(DroolsTree)input.LT(1);
+ match(input,BOOL,FOLLOW_BOOL_in_rule_attribute683);
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+ }
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:162:4: ^(attrName= VK_AGENDA_GROUP value= STRING )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_AGENDA_GROUP,FOLLOW_VK_AGENDA_GROUP_in_rule_attribute695);
+
+ match(input, Token.DOWN, null);
+ value=(DroolsTree)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_rule_attribute699);
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:163:4: ^(attrName= VK_DURATION value= INT )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_DURATION,FOLLOW_VK_DURATION_in_rule_attribute710);
+
+ match(input, Token.DOWN, null);
+ value=(DroolsTree)input.LT(1);
+ match(input,INT,FOLLOW_INT_in_rule_attribute714);
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 5 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:164:4: ^(attrName= VK_ACTIVATION_GROUP value= STRING )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_ACTIVATION_GROUP,FOLLOW_VK_ACTIVATION_GROUP_in_rule_attribute726);
+
+ match(input, Token.DOWN, null);
+ value=(DroolsTree)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_rule_attribute730);
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 6 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:165:4: ^(attrName= VK_AUTO_FOCUS (value= BOOL )? )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_AUTO_FOCUS,FOLLOW_VK_AUTO_FOCUS_in_rule_attribute740);
+
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:165:34: (value= BOOL )?
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( (LA19_0==BOOL) ) {
+ alt19=1;
+ }
+ switch (alt19) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:165:34: value= BOOL
+ {
+ value=(DroolsTree)input.LT(1);
+ match(input,BOOL,FOLLOW_BOOL_in_rule_attribute744);
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+ }
+
+ }
+ break;
+ case 7 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:166:4: ^(attrName= VK_DATE_EFFECTIVE value= STRING )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_DATE_EFFECTIVE,FOLLOW_VK_DATE_EFFECTIVE_in_rule_attribute755);
+
+ match(input, Token.DOWN, null);
+ value=(DroolsTree)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_rule_attribute759);
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 8 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:167:4: ^(attrName= VK_DATE_EXPIRES value= STRING )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_DATE_EXPIRES,FOLLOW_VK_DATE_EXPIRES_in_rule_attribute769);
+
+ match(input, Token.DOWN, null);
+ value=(DroolsTree)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_rule_attribute773);
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 9 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:168:4: ^(attrName= VK_ENABLED value= BOOL )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_ENABLED,FOLLOW_VK_ENABLED_in_rule_attribute783);
+
+ match(input, Token.DOWN, null);
+ value=(DroolsTree)input.LT(1);
+ match(input,BOOL,FOLLOW_BOOL_in_rule_attribute787);
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 10 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:169:4: ^(attrName= VK_RULEFLOW_GROUP value= STRING )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_RULEFLOW_GROUP,FOLLOW_VK_RULEFLOW_GROUP_in_rule_attribute797);
+
+ match(input, Token.DOWN, null);
+ value=(DroolsTree)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_rule_attribute801);
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 11 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:170:4: ^(attrName= VK_LOCK_ON_ACTIVE (value= BOOL )? )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_LOCK_ON_ACTIVE,FOLLOW_VK_LOCK_ON_ACTIVE_in_rule_attribute811);
+
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:170:38: (value= BOOL )?
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0==BOOL) ) {
+ alt20=1;
+ }
+ switch (alt20) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:170:38: value= BOOL
+ {
+ value=(DroolsTree)input.LT(1);
+ match(input,BOOL,FOLLOW_BOOL_in_rule_attribute815);
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+ }
+
+ }
+ break;
+ case 12 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:171:4: ^(attrName= VK_DIALECT value= STRING )
+ {
+ attrName=(DroolsTree)input.LT(1);
+ match(input,VK_DIALECT,FOLLOW_VK_DIALECT_in_rule_attribute825);
+
+ match(input, Token.DOWN, null);
+ value=(DroolsTree)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_rule_attribute829);
+
+ match(input, Token.UP, null);
+
+ }
+ break;
+
+ }
+
+ attributeDescr = factory.createAttribute(attrName, value);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return attributeDescr;
+ }
+ // $ANTLR end rule_attribute
+
+
+ // $ANTLR start lhs_block
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:175:1: lhs_block returns [AndDescr andDescr] : ^( VT_AND_IMPLICIT (dt= lhs )* ) ;
+ public final AndDescr lhs_block() throws RecognitionException {
+ AndDescr andDescr = null;
+
+ lhs_return dt = null;
+
+
+
+ andDescr = new AndDescr();
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:178:3: ( ^( VT_AND_IMPLICIT (dt= lhs )* ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:178:5: ^( VT_AND_IMPLICIT (dt= lhs )* )
+ {
+ match(input,VT_AND_IMPLICIT,FOLLOW_VT_AND_IMPLICIT_in_lhs_block854);
+
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:178:23: (dt= lhs )*
+ loop22:
+ do {
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+
+ if ( ((LA22_0>=VT_AND_PREFIX && LA22_0<=VT_OR_INFIX)||LA22_0==VT_PATTERN||LA22_0==VK_EVAL||LA22_0==VK_NOT||(LA22_0>=VK_EXISTS && LA22_0<=VK_FROM)) ) {
+ alt22=1;
+ }
+
+
+ switch (alt22) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:178:24: dt= lhs
+ {
+ pushFollow(FOLLOW_lhs_in_lhs_block859);
+ dt=lhs();
+ _fsp--;
+
+ andDescr.addDescr(dt.baseDescr);
+
+ }
+ break;
+
+ default :
+ break loop22;
+ }
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return andDescr;
+ }
+ // $ANTLR end lhs_block
+
+ public static class lhs_return extends TreeRuleReturnScope {
+ public BaseDescr baseDescr;
+ };
+
+ // $ANTLR start lhs
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:181:1: lhs returns [BaseDescr baseDescr] : ( ^(start= VT_OR_PREFIX (dt= lhs )+ ) | ^(start= VT_OR_INFIX dt1= lhs dt2= lhs ) | ^(start= VT_AND_PREFIX (dt= lhs )+ ) | ^(start= VT_AND_INFIX dt1= lhs dt2= lhs ) | ^(start= VK_EXISTS dt= lhs ) | ^(start= VK_NOT dt= lhs ) | ^(start= VK_EVAL pc= VT_PAREN_CHUNK ) | ^(start= VK_FORALL (dt= lhs )+ ) | ^( VK_FROM pn= lhs_pattern fe= from_elements ) | pn= lhs_pattern );
+ public final lhs_return lhs() throws RecognitionException {
+ lhs_return retval = new lhs_return();
+ retval.start = input.LT(1);
+
+ DroolsTree start=null;
+ DroolsTree pc=null;
+ lhs_return dt = null;
+
+ lhs_return dt1 = null;
+
+ lhs_return dt2 = null;
+
+ BaseDescr pn = null;
+
+ from_elements_return fe = null;
+
+
+
+ List<BaseDescr> lhsList = new LinkedList<BaseDescr>();
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:184:3: ( ^(start= VT_OR_PREFIX (dt= lhs )+ ) | ^(start= VT_OR_INFIX dt1= lhs dt2= lhs ) | ^(start= VT_AND_PREFIX (dt= lhs )+ ) | ^(start= VT_AND_INFIX dt1= lhs dt2= lhs ) | ^(start= VK_EXISTS dt= lhs ) | ^(start= VK_NOT dt= lhs ) | ^(start= VK_EVAL pc= VT_PAREN_CHUNK ) | ^(start= VK_FORALL (dt= lhs )+ ) | ^( VK_FROM pn= lhs_pattern fe= from_elements ) | pn= lhs_pattern )
+ int alt26=10;
+ switch ( input.LA(1) ) {
+ case VT_OR_PREFIX:
+ {
+ alt26=1;
+ }
+ break;
+ case VT_OR_INFIX:
+ {
+ alt26=2;
+ }
+ break;
+ case VT_AND_PREFIX:
+ {
+ alt26=3;
+ }
+ break;
+ case VT_AND_INFIX:
+ {
+ alt26=4;
+ }
+ break;
+ case VK_EXISTS:
+ {
+ alt26=5;
+ }
+ break;
+ case VK_NOT:
+ {
+ alt26=6;
+ }
+ break;
+ case VK_EVAL:
+ {
+ alt26=7;
+ }
+ break;
+ case VK_FORALL:
+ {
+ alt26=8;
+ }
+ break;
+ case VK_FROM:
+ {
+ alt26=9;
+ }
+ break;
+ case VT_PATTERN:
+ {
+ alt26=10;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("181:1: lhs returns [BaseDescr baseDescr] : ( ^(start= VT_OR_PREFIX (dt= lhs )+ ) | ^(start= VT_OR_INFIX dt1= lhs dt2= lhs ) | ^(start= VT_AND_PREFIX (dt= lhs )+ ) | ^(start= VT_AND_INFIX dt1= lhs dt2= lhs ) | ^(start= VK_EXISTS dt= lhs ) | ^(start= VK_NOT dt= lhs ) | ^(start= VK_EVAL pc= VT_PAREN_CHUNK ) | ^(start= VK_FORALL (dt= lhs )+ ) | ^( VK_FROM pn= lhs_pattern fe= from_elements ) | pn= lhs_pattern );", 26, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt26) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:184:5: ^(start= VT_OR_PREFIX (dt= lhs )+ )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VT_OR_PREFIX,FOLLOW_VT_OR_PREFIX_in_lhs885);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:184:26: (dt= lhs )+
+ int cnt23=0;
+ loop23:
+ do {
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( ((LA23_0>=VT_AND_PREFIX && LA23_0<=VT_OR_INFIX)||LA23_0==VT_PATTERN||LA23_0==VK_EVAL||LA23_0==VK_NOT||(LA23_0>=VK_EXISTS && LA23_0<=VK_FROM)) ) {
+ alt23=1;
+ }
+
+
+ switch (alt23) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:184:27: dt= lhs
+ {
+ pushFollow(FOLLOW_lhs_in_lhs890);
+ dt=lhs();
+ _fsp--;
+
+ lhsList.add(dt.baseDescr);
+
+ }
+ break;
+
+ default :
+ if ( cnt23 >= 1 ) break loop23;
+ EarlyExitException eee =
+ new EarlyExitException(23, input);
+ throw eee;
+ }
+ cnt23++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ retval.baseDescr = factory.createOr(start, lhsList);
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:186:4: ^(start= VT_OR_INFIX dt1= lhs dt2= lhs )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VT_OR_INFIX,FOLLOW_VT_OR_INFIX_in_lhs906);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_lhs910);
+ dt1=lhs();
+ _fsp--;
+
+ pushFollow(FOLLOW_lhs_in_lhs914);
+ dt2=lhs();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ lhsList.add(dt1.baseDescr);
+ lhsList.add(dt2.baseDescr);
+ retval.baseDescr = factory.createOr(start, lhsList);
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:190:4: ^(start= VT_AND_PREFIX (dt= lhs )+ )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VT_AND_PREFIX,FOLLOW_VT_AND_PREFIX_in_lhs926);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:190:26: (dt= lhs )+
+ int cnt24=0;
+ loop24:
+ do {
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+
+ if ( ((LA24_0>=VT_AND_PREFIX && LA24_0<=VT_OR_INFIX)||LA24_0==VT_PATTERN||LA24_0==VK_EVAL||LA24_0==VK_NOT||(LA24_0>=VK_EXISTS && LA24_0<=VK_FROM)) ) {
+ alt24=1;
+ }
+
+
+ switch (alt24) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:190:27: dt= lhs
+ {
+ pushFollow(FOLLOW_lhs_in_lhs931);
+ dt=lhs();
+ _fsp--;
+
+ lhsList.add(dt.baseDescr);
+
+ }
+ break;
+
+ default :
+ if ( cnt24 >= 1 ) break loop24;
+ EarlyExitException eee =
+ new EarlyExitException(24, input);
+ throw eee;
+ }
+ cnt24++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ retval.baseDescr = factory.createAnd(start, lhsList);
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:192:4: ^(start= VT_AND_INFIX dt1= lhs dt2= lhs )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VT_AND_INFIX,FOLLOW_VT_AND_INFIX_in_lhs947);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_lhs951);
+ dt1=lhs();
+ _fsp--;
+
+ pushFollow(FOLLOW_lhs_in_lhs955);
+ dt2=lhs();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ lhsList.add(dt1.baseDescr);
+ lhsList.add(dt2.baseDescr);
+ retval.baseDescr = factory.createAnd(start, lhsList);
+
+ }
+ break;
+ case 5 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:196:4: ^(start= VK_EXISTS dt= lhs )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_EXISTS,FOLLOW_VK_EXISTS_in_lhs967);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_lhs971);
+ dt=lhs();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.baseDescr = factory.createExists(start, dt.baseDescr);
+
+ }
+ break;
+ case 6 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:198:4: ^(start= VK_NOT dt= lhs )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_lhs983);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_lhs987);
+ dt=lhs();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.baseDescr = factory.createNot(start, dt.baseDescr);
+
+ }
+ break;
+ case 7 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:200:4: ^(start= VK_EVAL pc= VT_PAREN_CHUNK )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_EVAL,FOLLOW_VK_EVAL_in_lhs999);
+
+ match(input, Token.DOWN, null);
+ pc=(DroolsTree)input.LT(1);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_lhs1003);
+
+ match(input, Token.UP, null);
+ retval.baseDescr = factory.createEval(start, pc);
+
+ }
+ break;
+ case 8 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:202:4: ^(start= VK_FORALL (dt= lhs )+ )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_FORALL,FOLLOW_VK_FORALL_in_lhs1015);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:202:22: (dt= lhs )+
+ int cnt25=0;
+ loop25:
+ do {
+ int alt25=2;
+ int LA25_0 = input.LA(1);
+
+ if ( ((LA25_0>=VT_AND_PREFIX && LA25_0<=VT_OR_INFIX)||LA25_0==VT_PATTERN||LA25_0==VK_EVAL||LA25_0==VK_NOT||(LA25_0>=VK_EXISTS && LA25_0<=VK_FROM)) ) {
+ alt25=1;
+ }
+
+
+ switch (alt25) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:202:23: dt= lhs
+ {
+ pushFollow(FOLLOW_lhs_in_lhs1020);
+ dt=lhs();
+ _fsp--;
+
+ lhsList.add(dt.baseDescr);
+
+ }
+ break;
+
+ default :
+ if ( cnt25 >= 1 ) break loop25;
+ EarlyExitException eee =
+ new EarlyExitException(25, input);
+ throw eee;
+ }
+ cnt25++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ retval.baseDescr = factory.createForAll(start, lhsList);
+
+ }
+ break;
+ case 9 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:204:4: ^( VK_FROM pn= lhs_pattern fe= from_elements )
+ {
+ match(input,VK_FROM,FOLLOW_VK_FROM_in_lhs1034);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_pattern_in_lhs1038);
+ pn=lhs_pattern();
+ _fsp--;
+
+ pushFollow(FOLLOW_from_elements_in_lhs1042);
+ fe=from_elements();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.baseDescr = factory.setupFrom(pn, fe.patternSourceDescr);
+
+ }
+ break;
+ case 10 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:206:4: pn= lhs_pattern
+ {
+ pushFollow(FOLLOW_lhs_pattern_in_lhs1053);
+ pn=lhs_pattern();
+ _fsp--;
+
+ retval.baseDescr = pn;
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end lhs
+
+ public static class from_elements_return extends TreeRuleReturnScope {
+ public PatternSourceDescr patternSourceDescr;
+ };
+
+ // $ANTLR start from_elements
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:210:1: from_elements returns [PatternSourceDescr patternSourceDescr] : ( ^(start= VK_ACCUMULATE dt= lhs ret= accumulate_parts[$patternSourceDescr] ) | ^(start= VK_COLLECT dt= lhs ) | ^(start= VK_ENTRY_POINT entryId= VT_ENTRYPOINT_ID ) | fs= from_source_clause );
+ public final from_elements_return from_elements() throws RecognitionException {
+ from_elements_return retval = new from_elements_return();
+ retval.start = input.LT(1);
+
+ DroolsTree start=null;
+ DroolsTree entryId=null;
+ lhs_return dt = null;
+
+ AccumulateDescr ret = null;
+
+ FromDescr fs = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:211:2: ( ^(start= VK_ACCUMULATE dt= lhs ret= accumulate_parts[$patternSourceDescr] ) | ^(start= VK_COLLECT dt= lhs ) | ^(start= VK_ENTRY_POINT entryId= VT_ENTRYPOINT_ID ) | fs= from_source_clause )
+ int alt27=4;
+ switch ( input.LA(1) ) {
+ case VK_ACCUMULATE:
+ {
+ alt27=1;
+ }
+ break;
+ case VK_COLLECT:
+ {
+ alt27=2;
+ }
+ break;
+ case VK_ENTRY_POINT:
+ {
+ alt27=3;
+ }
+ break;
+ case VT_FROM_SOURCE:
+ {
+ alt27=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("210:1: from_elements returns [PatternSourceDescr patternSourceDescr] : ( ^(start= VK_ACCUMULATE dt= lhs ret= accumulate_parts[$patternSourceDescr] ) | ^(start= VK_COLLECT dt= lhs ) | ^(start= VK_ENTRY_POINT entryId= VT_ENTRYPOINT_ID ) | fs= from_source_clause );", 27, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt27) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:211:4: ^(start= VK_ACCUMULATE dt= lhs ret= accumulate_parts[$patternSourceDescr] )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_ACCUMULATE,FOLLOW_VK_ACCUMULATE_in_from_elements1074);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_from_elements1078);
+ dt=lhs();
+ _fsp--;
+
+ retval.patternSourceDescr = factory.createAccumulate(start, dt.baseDescr);
+ pushFollow(FOLLOW_accumulate_parts_in_from_elements1088);
+ ret=accumulate_parts(retval.patternSourceDescr);
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.patternSourceDescr = ret;
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:215:4: ^(start= VK_COLLECT dt= lhs )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_COLLECT,FOLLOW_VK_COLLECT_in_from_elements1101);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_lhs_in_from_elements1105);
+ dt=lhs();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.patternSourceDescr = factory.createCollect(start, dt.baseDescr);
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:217:4: ^(start= VK_ENTRY_POINT entryId= VT_ENTRYPOINT_ID )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_ENTRY_POINT,FOLLOW_VK_ENTRY_POINT_in_from_elements1117);
+
+ match(input, Token.DOWN, null);
+ entryId=(DroolsTree)input.LT(1);
+ match(input,VT_ENTRYPOINT_ID,FOLLOW_VT_ENTRYPOINT_ID_in_from_elements1121);
+
+ match(input, Token.UP, null);
+ retval.patternSourceDescr = factory.createEntryPoint(start, entryId);
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:219:4: fs= from_source_clause
+ {
+ pushFollow(FOLLOW_from_source_clause_in_from_elements1132);
+ fs=from_source_clause();
+ _fsp--;
+
+ retval.patternSourceDescr = fs;
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end from_elements
+
+
+ // $ANTLR start accumulate_parts
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:223:1: accumulate_parts[PatternSourceDescr patternSourceDescr] returns [AccumulateDescr accumulateDescr] : (ac1= accumulate_init_clause[$patternSourceDescr] | ac2= accumulate_id_clause[$patternSourceDescr] );
+ public final AccumulateDescr accumulate_parts(PatternSourceDescr patternSourceDescr) throws RecognitionException {
+ AccumulateDescr accumulateDescr = null;
+
+ accumulate_init_clause_return ac1 = null;
+
+ AccumulateDescr ac2 = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:224:2: (ac1= accumulate_init_clause[$patternSourceDescr] | ac2= accumulate_id_clause[$patternSourceDescr] )
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+
+ if ( (LA28_0==VT_ACCUMULATE_INIT_CLAUSE) ) {
+ alt28=1;
+ }
+ else if ( (LA28_0==VT_ACCUMULATE_ID_CLAUSE) ) {
+ alt28=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("223:1: accumulate_parts[PatternSourceDescr patternSourceDescr] returns [AccumulateDescr accumulateDescr] : (ac1= accumulate_init_clause[$patternSourceDescr] | ac2= accumulate_id_clause[$patternSourceDescr] );", 28, 0, input);
+
+ throw nvae;
+ }
+ switch (alt28) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:224:4: ac1= accumulate_init_clause[$patternSourceDescr]
+ {
+ pushFollow(FOLLOW_accumulate_init_clause_in_accumulate_parts1153);
+ ac1=accumulate_init_clause(patternSourceDescr);
+ _fsp--;
+
+ accumulateDescr = ac1.accumulateDescr;
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:226:4: ac2= accumulate_id_clause[$patternSourceDescr]
+ {
+ pushFollow(FOLLOW_accumulate_id_clause_in_accumulate_parts1164);
+ ac2=accumulate_id_clause(patternSourceDescr);
+ _fsp--;
+
+ accumulateDescr = ac2;
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return accumulateDescr;
+ }
+ // $ANTLR end accumulate_parts
+
+ public static class accumulate_init_clause_return extends TreeRuleReturnScope {
+ public AccumulateDescr accumulateDescr;
+ };
+
+ // $ANTLR start accumulate_init_clause
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:230:1: accumulate_init_clause[PatternSourceDescr accumulateParam] returns [AccumulateDescr accumulateDescr] : ^( VT_ACCUMULATE_INIT_CLAUSE ^(start= VK_INIT pc1= VT_PAREN_CHUNK ) ^( VK_ACTION pc2= VT_PAREN_CHUNK ) (rev= accumulate_init_reverse_clause )? ^( VK_RESULT pc3= VT_PAREN_CHUNK ) ) ;
+ public final accumulate_init_clause_return accumulate_init_clause(PatternSourceDescr accumulateParam) throws RecognitionException {
+ accumulate_init_clause_return retval = new accumulate_init_clause_return();
+ retval.start = input.LT(1);
+
+ DroolsTree start=null;
+ DroolsTree pc1=null;
+ DroolsTree pc2=null;
+ DroolsTree pc3=null;
+ accumulate_init_reverse_clause_return rev = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:231:2: ( ^( VT_ACCUMULATE_INIT_CLAUSE ^(start= VK_INIT pc1= VT_PAREN_CHUNK ) ^( VK_ACTION pc2= VT_PAREN_CHUNK ) (rev= accumulate_init_reverse_clause )? ^( VK_RESULT pc3= VT_PAREN_CHUNK ) ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:231:4: ^( VT_ACCUMULATE_INIT_CLAUSE ^(start= VK_INIT pc1= VT_PAREN_CHUNK ) ^( VK_ACTION pc2= VT_PAREN_CHUNK ) (rev= accumulate_init_reverse_clause )? ^( VK_RESULT pc3= VT_PAREN_CHUNK ) )
+ {
+ match(input,VT_ACCUMULATE_INIT_CLAUSE,FOLLOW_VT_ACCUMULATE_INIT_CLAUSE_in_accumulate_init_clause1187);
+
+ match(input, Token.DOWN, null);
+ start=(DroolsTree)input.LT(1);
+ match(input,VK_INIT,FOLLOW_VK_INIT_in_accumulate_init_clause1196);
+
+ match(input, Token.DOWN, null);
+ pc1=(DroolsTree)input.LT(1);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause1200);
+
+ match(input, Token.UP, null);
+ match(input,VK_ACTION,FOLLOW_VK_ACTION_in_accumulate_init_clause1208);
+
+ match(input, Token.DOWN, null);
+ pc2=(DroolsTree)input.LT(1);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause1212);
+
+ match(input, Token.UP, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:234:7: (rev= accumulate_init_reverse_clause )?
+ int alt29=2;
+ int LA29_0 = input.LA(1);
+
+ if ( (LA29_0==VK_REVERSE) ) {
+ alt29=1;
+ }
+ switch (alt29) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:234:7: rev= accumulate_init_reverse_clause
+ {
+ pushFollow(FOLLOW_accumulate_init_reverse_clause_in_accumulate_init_clause1221);
+ rev=accumulate_init_reverse_clause();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+ match(input,VK_RESULT,FOLLOW_VK_RESULT_in_accumulate_init_clause1228);
+
+ match(input, Token.DOWN, null);
+ pc3=(DroolsTree)input.LT(1);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause1232);
+
+ match(input, Token.UP, null);
+
+ match(input, Token.UP, null);
+ if (null == rev){
+ retval.accumulateDescr = factory.setupAccumulateInit(accumulateParam, start, pc1, pc2, pc3, null);
+ } else {
+ retval.accumulateDescr = factory.setupAccumulateInit(accumulateParam, start, pc1, pc2, pc3, rev.vkReverseChunk);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end accumulate_init_clause
+
+ public static class accumulate_init_reverse_clause_return extends TreeRuleReturnScope {
+ public DroolsTree vkReverse;
+ public DroolsTree vkReverseChunk;
+ };
+
+ // $ANTLR start accumulate_init_reverse_clause
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:243:1: accumulate_init_reverse_clause returns [DroolsTree vkReverse, DroolsTree vkReverseChunk] : ^(vk= VK_REVERSE pc= VT_PAREN_CHUNK ) ;
+ public final accumulate_init_reverse_clause_return accumulate_init_reverse_clause() throws RecognitionException {
+ accumulate_init_reverse_clause_return retval = new accumulate_init_reverse_clause_return();
+ retval.start = input.LT(1);
+
+ DroolsTree vk=null;
+ DroolsTree pc=null;
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:244:2: ( ^(vk= VK_REVERSE pc= VT_PAREN_CHUNK ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:244:4: ^(vk= VK_REVERSE pc= VT_PAREN_CHUNK )
+ {
+ vk=(DroolsTree)input.LT(1);
+ match(input,VK_REVERSE,FOLLOW_VK_REVERSE_in_accumulate_init_reverse_clause1255);
+
+ match(input, Token.DOWN, null);
+ pc=(DroolsTree)input.LT(1);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_reverse_clause1259);
+
+ match(input, Token.UP, null);
+ retval.vkReverse = vk;
+ retval.vkReverseChunk = pc;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end accumulate_init_reverse_clause
+
+
+ // $ANTLR start accumulate_id_clause
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:249:1: accumulate_id_clause[PatternSourceDescr accumulateParam] returns [AccumulateDescr accumulateDescr] : ^( VT_ACCUMULATE_ID_CLAUSE id= ID pc= VT_PAREN_CHUNK ) ;
+ public final AccumulateDescr accumulate_id_clause(PatternSourceDescr accumulateParam) throws RecognitionException {
+ AccumulateDescr accumulateDescr = null;
+
+ DroolsTree id=null;
+ DroolsTree pc=null;
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:250:2: ( ^( VT_ACCUMULATE_ID_CLAUSE id= ID pc= VT_PAREN_CHUNK ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:250:4: ^( VT_ACCUMULATE_ID_CLAUSE id= ID pc= VT_PAREN_CHUNK )
+ {
+ match(input,VT_ACCUMULATE_ID_CLAUSE,FOLLOW_VT_ACCUMULATE_ID_CLAUSE_in_accumulate_id_clause1281);
+
+ match(input, Token.DOWN, null);
+ id=(DroolsTree)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_accumulate_id_clause1285);
+ pc=(DroolsTree)input.LT(1);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_accumulate_id_clause1289);
+
+ match(input, Token.UP, null);
+ accumulateDescr = factory.setupAccumulateId(accumulateParam, id, pc);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return accumulateDescr;
+ }
+ // $ANTLR end accumulate_id_clause
+
+ protected static class from_source_clause_scope {
+ AccessorDescr accessorDescr;
+ }
+ protected Stack from_source_clause_stack = new Stack();
+
+
+ // $ANTLR start from_source_clause
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:254:1: from_source_clause returns [FromDescr fromDescr] : ^( VT_FROM_SOURCE id= ID (pc= VT_PAREN_CHUNK )? ( expression_chain )? ) ;
+ public final FromDescr from_source_clause() throws RecognitionException {
+ from_source_clause_stack.push(new from_source_clause_scope());
+ FromDescr fromDescr = null;
+
+ DroolsTree id=null;
+ DroolsTree pc=null;
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:257:3: ( ^( VT_FROM_SOURCE id= ID (pc= VT_PAREN_CHUNK )? ( expression_chain )? ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:257:5: ^( VT_FROM_SOURCE id= ID (pc= VT_PAREN_CHUNK )? ( expression_chain )? )
+ {
+ match(input,VT_FROM_SOURCE,FOLLOW_VT_FROM_SOURCE_in_from_source_clause1311);
+
+ match(input, Token.DOWN, null);
+ id=(DroolsTree)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_from_source_clause1315);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:257:30: (pc= VT_PAREN_CHUNK )?
+ int alt30=2;
+ int LA30_0 = input.LA(1);
+
+ if ( (LA30_0==VT_PAREN_CHUNK) ) {
+ alt30=1;
+ }
+ switch (alt30) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:257:30: pc= VT_PAREN_CHUNK
+ {
+ pc=(DroolsTree)input.LT(1);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_from_source_clause1319);
+
+ }
+ break;
+
+ }
+
+ ((from_source_clause_scope)from_source_clause_stack.peek()).accessorDescr = factory.createAccessor(id, pc);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:259:3: ( expression_chain )?
+ int alt31=2;
+ int LA31_0 = input.LA(1);
+
+ if ( (LA31_0==VT_EXPRESSION_CHAIN) ) {
+ alt31=1;
+ }
+ switch (alt31) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:259:3: expression_chain
+ {
+ pushFollow(FOLLOW_expression_chain_in_from_source_clause1328);
+ expression_chain();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+ fromDescr = factory.createFromSource(factory.setupAccessorOffset(((from_source_clause_scope)from_source_clause_stack.peek()).accessorDescr));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ from_source_clause_stack.pop();
+ }
+ return fromDescr;
+ }
+ // $ANTLR end from_source_clause
+
+ public static class expression_chain_return extends TreeRuleReturnScope {
+ };
+
+ // $ANTLR start expression_chain
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:263:1: expression_chain : ^(start= VT_EXPRESSION_CHAIN id= ID (sc= VT_SQUARE_CHUNK )? (pc= VT_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);
+
+ DroolsTree start=null;
+ DroolsTree id=null;
+ DroolsTree sc=null;
+ DroolsTree pc=null;
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:264:2: ( ^(start= VT_EXPRESSION_CHAIN id= ID (sc= VT_SQUARE_CHUNK )? (pc= VT_PAREN_CHUNK )? ( expression_chain )? ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:264:4: ^(start= VT_EXPRESSION_CHAIN id= ID (sc= VT_SQUARE_CHUNK )? (pc= VT_PAREN_CHUNK )? ( expression_chain )? )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VT_EXPRESSION_CHAIN,FOLLOW_VT_EXPRESSION_CHAIN_in_expression_chain1347);
+
+ match(input, Token.DOWN, null);
+ id=(DroolsTree)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_expression_chain1351);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:264:40: (sc= VT_SQUARE_CHUNK )?
+ int alt32=2;
+ int LA32_0 = input.LA(1);
+
+ if ( (LA32_0==VT_SQUARE_CHUNK) ) {
+ alt32=1;
+ }
+ switch (alt32) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:264:40: sc= VT_SQUARE_CHUNK
+ {
+ sc=(DroolsTree)input.LT(1);
+ match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_expression_chain1355);
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:264:60: (pc= VT_PAREN_CHUNK )?
+ int alt33=2;
+ int LA33_0 = input.LA(1);
+
+ if ( (LA33_0==VT_PAREN_CHUNK) ) {
+ alt33=1;
+ }
+ switch (alt33) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:264:60: pc= VT_PAREN_CHUNK
+ {
+ pc=(DroolsTree)input.LT(1);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_expression_chain1360);
+
+ }
+ break;
+
+ }
+
+ DeclarativeInvokerDescr declarativeInvokerResult = factory.createExpressionChain(start, id, sc, pc);
+ ((from_source_clause_scope)from_source_clause_stack.peek()).accessorDescr.addInvoker(declarativeInvokerResult);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:267:3: ( expression_chain )?
+ int alt34=2;
+ int LA34_0 = input.LA(1);
+
+ if ( (LA34_0==VT_EXPRESSION_CHAIN) ) {
+ alt34=1;
+ }
+ switch (alt34) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:267:3: expression_chain
+ {
+ pushFollow(FOLLOW_expression_chain_in_expression_chain1368);
+ expression_chain();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end expression_chain
+
+
+ // $ANTLR start lhs_pattern
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:270:1: lhs_pattern returns [BaseDescr baseDescr] : ^( VT_PATTERN fe= fact_expression ) ;
+ public final BaseDescr lhs_pattern() throws RecognitionException {
+ BaseDescr baseDescr = null;
+
+ fact_expression_return fe = null;
+
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:271:2: ( ^( VT_PATTERN fe= fact_expression ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:271:4: ^( VT_PATTERN fe= fact_expression )
+ {
+ match(input,VT_PATTERN,FOLLOW_VT_PATTERN_in_lhs_pattern1386);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_lhs_pattern1390);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ baseDescr = fe.descr;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return baseDescr;
+ }
+ // $ANTLR end lhs_pattern
+
+ public static class fact_expression_return extends TreeRuleReturnScope {
+ public BaseDescr descr;
+ };
+
+ // $ANTLR start fact_expression
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:275:1: fact_expression returns [BaseDescr descr] : ( ^( VT_FACT dt= data_type (fe= fact_expression )* ) | ^( VT_FACT_BINDING label= VT_LABEL fact= fact_expression ) | ^(start= VT_FACT_OR left= fact_expression right= fact_expression ) | ^( VT_FIELD field= field_element (fe= fact_expression )? ) | ^( VT_BIND_FIELD label= VT_LABEL fe= fact_expression ) | ^( VK_EVAL pc= VT_PAREN_CHUNK ) | ^(op= EQUAL fe= fact_expression ) | ^(op= NOT_EQUAL fe= fact_expression ) | ^(op= GREATER fe= fact_expression ) | ^(op= GREATER_EQUAL fe= fact_expression ) | ^(op= LESS fe= fact_expression ) | ^(op= LESS_EQUAL fe= fact_expression ) | ^(op= VK_CONTAINS (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_EXCLUDES (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_MATCHES (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_SOUNDSLIKE (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_MEMBEROF (!
not= VK_NOT )? fe= fact_expression ) | ^(op= ID (not= VK_NOT )? (param= VT_SQUARE_CHUNK )? fe= fact_expression ) | ^( VK_IN (not= VK_NOT )? (fe= fact_expression )+ ) | ^( DOUBLE_PIPE left= fact_expression right= fact_expression ) | ^( DOUBLE_AMPER left= fact_expression right= fact_expression ) | ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) | s= STRING | i= INT | f= FLOAT | b= BOOL | n= NULL | pc= VT_PAREN_CHUNK );
+ public final fact_expression_return fact_expression() throws RecognitionException {
+ fact_expression_return retval = new fact_expression_return();
+ retval.start = input.LT(1);
+
+ DroolsTree label=null;
+ DroolsTree start=null;
+ DroolsTree pc=null;
+ DroolsTree op=null;
+ DroolsTree not=null;
+ DroolsTree param=null;
+ DroolsTree s=null;
+ DroolsTree i=null;
+ DroolsTree f=null;
+ DroolsTree b=null;
+ DroolsTree n=null;
+ BaseDescr dt = null;
+
+ fact_expression_return fe = null;
+
+ fact_expression_return fact = null;
+
+ fact_expression_return left = null;
+
+ fact_expression_return right = null;
+
+ FieldConstraintDescr field = null;
+
+ BaseDescr ae = null;
+
+
+
+ List<BaseDescr> exprList = new LinkedList<BaseDescr>();
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:278:3: ( ^( VT_FACT dt= data_type (fe= fact_expression )* ) | ^( VT_FACT_BINDING label= VT_LABEL fact= fact_expression ) | ^(start= VT_FACT_OR left= fact_expression right= fact_expression ) | ^( VT_FIELD field= field_element (fe= fact_expression )? ) | ^( VT_BIND_FIELD label= VT_LABEL fe= fact_expression ) | ^( VK_EVAL pc= VT_PAREN_CHUNK ) | ^(op= EQUAL fe= fact_expression ) | ^(op= NOT_EQUAL fe= fact_expression ) | ^(op= GREATER fe= fact_expression ) | ^(op= GREATER_EQUAL fe= fact_expression ) | ^(op= LESS fe= fact_expression ) | ^(op= LESS_EQUAL fe= fact_expression ) | ^(op= VK_CONTAINS (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_EXCLUDES (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_MATCHES (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_SOUNDSLIKE (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_MEMBEROF (not= VK_NOT )? fe= fact_expression )!
| ^(op= ID (not= VK_NOT )? (param= VT_SQUARE_CHUNK )? fe= fact_expression ) | ^( VK_IN (not= VK_NOT )? (fe= fact_expression )+ ) | ^( DOUBLE_PIPE left= fact_expression right= fact_expression ) | ^( DOUBLE_AMPER left= fact_expression right= fact_expression ) | ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) | s= STRING | i= INT | f= FLOAT | b= BOOL | n= NULL | pc= VT_PAREN_CHUNK )
+ int alt47=28;
+ switch ( input.LA(1) ) {
+ case VT_FACT:
+ {
+ alt47=1;
+ }
+ break;
+ case VT_FACT_BINDING:
+ {
+ alt47=2;
+ }
+ break;
+ case VT_FACT_OR:
+ {
+ alt47=3;
+ }
+ break;
+ case VT_FIELD:
+ {
+ alt47=4;
+ }
+ break;
+ case VT_BIND_FIELD:
+ {
+ alt47=5;
+ }
+ break;
+ case VK_EVAL:
+ {
+ alt47=6;
+ }
+ break;
+ case EQUAL:
+ {
+ alt47=7;
+ }
+ break;
+ case NOT_EQUAL:
+ {
+ alt47=8;
+ }
+ break;
+ case GREATER:
+ {
+ alt47=9;
+ }
+ break;
+ case GREATER_EQUAL:
+ {
+ alt47=10;
+ }
+ break;
+ case LESS:
+ {
+ alt47=11;
+ }
+ break;
+ case LESS_EQUAL:
+ {
+ alt47=12;
+ }
+ break;
+ case VK_CONTAINS:
+ {
+ alt47=13;
+ }
+ break;
+ case VK_EXCLUDES:
+ {
+ alt47=14;
+ }
+ break;
+ case VK_MATCHES:
+ {
+ alt47=15;
+ }
+ break;
+ case VK_SOUNDSLIKE:
+ {
+ alt47=16;
+ }
+ break;
+ case VK_MEMBEROF:
+ {
+ alt47=17;
+ }
+ break;
+ case ID:
+ {
+ alt47=18;
+ }
+ break;
+ case VK_IN:
+ {
+ alt47=19;
+ }
+ break;
+ case DOUBLE_PIPE:
+ {
+ alt47=20;
+ }
+ break;
+ case DOUBLE_AMPER:
+ {
+ alt47=21;
+ }
+ break;
+ case VT_ACCESSOR_PATH:
+ {
+ alt47=22;
+ }
+ break;
+ case STRING:
+ {
+ alt47=23;
+ }
+ break;
+ case INT:
+ {
+ alt47=24;
+ }
+ break;
+ case FLOAT:
+ {
+ alt47=25;
+ }
+ break;
+ case BOOL:
+ {
+ alt47=26;
+ }
+ break;
+ case NULL:
+ {
+ alt47=27;
+ }
+ break;
+ case VT_PAREN_CHUNK:
+ {
+ alt47=28;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("275:1: fact_expression returns [BaseDescr descr] : ( ^( VT_FACT dt= data_type (fe= fact_expression )* ) | ^( VT_FACT_BINDING label= VT_LABEL fact= fact_expression ) | ^(start= VT_FACT_OR left= fact_expression right= fact_expression ) | ^( VT_FIELD field= field_element (fe= fact_expression )? ) | ^( VT_BIND_FIELD label= VT_LABEL fe= fact_expression ) | ^( VK_EVAL pc= VT_PAREN_CHUNK ) | ^(op= EQUAL fe= fact_expression ) | ^(op= NOT_EQUAL fe= fact_expression ) | ^(op= GREATER fe= fact_expression ) | ^(op= GREATER_EQUAL fe= fact_expression ) | ^(op= LESS fe= fact_expression ) | ^(op= LESS_EQUAL fe= fact_expression ) | ^(op= VK_CONTAINS (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_EXCLUDES (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_MATCHES (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_SOUNDSLIKE (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_MEMBEROF (not= VK_NOT )? fe= fact_expression ) | ^(op= ID (not= VK_NOT )? (par!
am= VT_SQUARE_CHUNK )? fe= fact_expression ) | ^( VK_IN (not= VK_NOT )? (fe= fact_expression )+ ) | ^( DOUBLE_PIPE left= fact_expression right= fact_expression ) | ^( DOUBLE_AMPER left= fact_expression right= fact_expression ) | ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) | s= STRING | i= INT | f= FLOAT | b= BOOL | n= NULL | pc= VT_PAREN_CHUNK );", 47, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt47) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:278:5: ^( VT_FACT dt= data_type (fe= fact_expression )* )
+ {
+ match(input,VT_FACT,FOLLOW_VT_FACT_in_fact_expression1413);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_data_type_in_fact_expression1417);
+ dt=data_type();
+ _fsp--;
+
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:278:28: (fe= fact_expression )*
+ loop35:
+ do {
+ int alt35=2;
+ int LA35_0 = input.LA(1);
+
+ if ( (LA35_0==VT_FACT||LA35_0==VT_PAREN_CHUNK||(LA35_0>=VT_FACT_BINDING && LA35_0<=VT_ACCESSOR_PATH)||(LA35_0>=VK_EVAL && LA35_0<=VK_MEMBEROF)||LA35_0==VK_IN||LA35_0==ID||LA35_0==STRING||(LA35_0>=BOOL && LA35_0<=DOUBLE_AMPER)||(LA35_0>=EQUAL && LA35_0<=NULL)) ) {
+ alt35=1;
+ }
+
+
+ switch (alt35) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:278:29: fe= fact_expression
+ {
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1422);
+ fe=fact_expression();
+ _fsp--;
+
+ exprList.add(fe.descr);
+
+ }
+ break;
+
+ default :
+ break loop35;
+ }
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.createPattern(dt, exprList);
+
+ }
+ break;
+ case 2 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:280:4: ^( VT_FACT_BINDING label= VT_LABEL fact= fact_expression )
+ {
+ match(input,VT_FACT_BINDING,FOLLOW_VT_FACT_BINDING_in_fact_expression1436);
+
+ match(input, Token.DOWN, null);
+ label=(DroolsTree)input.LT(1);
+ match(input,VT_LABEL,FOLLOW_VT_LABEL_in_fact_expression1440);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1444);
+ fact=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupPatternBiding(label, fact.descr);
+
+ }
+ break;
+ case 3 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:282:4: ^(start= VT_FACT_OR left= fact_expression right= fact_expression )
+ {
+ start=(DroolsTree)input.LT(1);
+ match(input,VT_FACT_OR,FOLLOW_VT_FACT_OR_in_fact_expression1456);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1460);
+ left=fact_expression();
+ _fsp--;
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1464);
+ right=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.createFactOr(start, left.descr, right.descr);
+
+ }
+ break;
+ case 4 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:285:4: ^( VT_FIELD field= field_element (fe= fact_expression )? )
+ {
+ match(input,VT_FIELD,FOLLOW_VT_FIELD_in_fact_expression1475);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_field_element_in_fact_expression1479);
+ field=field_element();
+ _fsp--;
+
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:285:37: (fe= fact_expression )?
+ int alt36=2;
+ int LA36_0 = input.LA(1);
+
+ if ( (LA36_0==VT_FACT||LA36_0==VT_PAREN_CHUNK||(LA36_0>=VT_FACT_BINDING && LA36_0<=VT_ACCESSOR_PATH)||(LA36_0>=VK_EVAL && LA36_0<=VK_MEMBEROF)||LA36_0==VK_IN||LA36_0==ID||LA36_0==STRING||(LA36_0>=BOOL && LA36_0<=DOUBLE_AMPER)||(LA36_0>=EQUAL && LA36_0<=NULL)) ) {
+ alt36=1;
+ }
+ switch (alt36) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:285:37: fe= fact_expression
+ {
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1483);
+ fe=fact_expression();
+ _fsp--;
+
+
+ }
+ break;
+
+ }
+
+
+ match(input, Token.UP, null);
+ if (null != fe){
+ retval.descr = factory.setupFieldConstraint(field, fe.descr);
+ } else {
+ retval.descr = factory.setupFieldConstraint(field, null);
+ }
+
+ }
+ break;
+ case 5 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:291:4: ^( VT_BIND_FIELD label= VT_LABEL fe= fact_expression )
+ {
+ match(input,VT_BIND_FIELD,FOLLOW_VT_BIND_FIELD_in_fact_expression1494);
+
+ match(input, Token.DOWN, null);
+ label=(DroolsTree)input.LT(1);
+ match(input,VT_LABEL,FOLLOW_VT_LABEL_in_fact_expression1498);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1502);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.createFieldBinding(label, fe.descr);
+
+ }
+ break;
+ case 6 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:294:4: ^( VK_EVAL pc= VT_PAREN_CHUNK )
+ {
+ match(input,VK_EVAL,FOLLOW_VK_EVAL_in_fact_expression1513);
+
+ match(input, Token.DOWN, null);
+ pc=(DroolsTree)input.LT(1);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_fact_expression1517);
+
+ match(input, Token.UP, null);
+ retval.descr = factory.createPredicate(pc);
+
+ }
+ break;
+ case 7 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:297:4: ^(op= EQUAL fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,EQUAL,FOLLOW_EQUAL_in_fact_expression1530);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1534);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, null, fe.descr);
+
+ }
+ break;
+ case 8 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:299:4: ^(op= NOT_EQUAL fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,NOT_EQUAL,FOLLOW_NOT_EQUAL_in_fact_expression1546);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1550);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, null, fe.descr);
+
+ }
+ break;
+ case 9 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:301:4: ^(op= GREATER fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,GREATER,FOLLOW_GREATER_in_fact_expression1562);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1566);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, null, fe.descr);
+
+ }
+ break;
+ case 10 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:303:4: ^(op= GREATER_EQUAL fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,GREATER_EQUAL,FOLLOW_GREATER_EQUAL_in_fact_expression1578);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1582);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, null, fe.descr);
+
+ }
+ break;
+ case 11 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:305:4: ^(op= LESS fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,LESS,FOLLOW_LESS_in_fact_expression1594);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1598);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, null, fe.descr);
+
+ }
+ break;
+ case 12 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:307:4: ^(op= LESS_EQUAL fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,LESS_EQUAL,FOLLOW_LESS_EQUAL_in_fact_expression1610);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1614);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, null, fe.descr);
+
+ }
+ break;
+ case 13 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:309:4: ^(op= VK_CONTAINS (not= VK_NOT )? fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,VK_CONTAINS,FOLLOW_VK_CONTAINS_in_fact_expression1626);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:309:24: (not= VK_NOT )?
+ int alt37=2;
+ int LA37_0 = input.LA(1);
+
+ if ( (LA37_0==VK_NOT) ) {
+ alt37=1;
+ }
+ switch (alt37) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:309:24: not= VK_NOT
+ {
+ not=(DroolsTree)input.LT(1);
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1630);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1635);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, not, fe.descr);
+
+ }
+ break;
+ case 14 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:311:4: ^(op= VK_EXCLUDES (not= VK_NOT )? fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,VK_EXCLUDES,FOLLOW_VK_EXCLUDES_in_fact_expression1647);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:311:24: (not= VK_NOT )?
+ int alt38=2;
+ int LA38_0 = input.LA(1);
+
+ if ( (LA38_0==VK_NOT) ) {
+ alt38=1;
+ }
+ switch (alt38) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:311:24: not= VK_NOT
+ {
+ not=(DroolsTree)input.LT(1);
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1651);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1656);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, not, fe.descr);
+
+ }
+ break;
+ case 15 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:313:4: ^(op= VK_MATCHES (not= VK_NOT )? fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,VK_MATCHES,FOLLOW_VK_MATCHES_in_fact_expression1668);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:313:23: (not= VK_NOT )?
+ int alt39=2;
+ int LA39_0 = input.LA(1);
+
+ if ( (LA39_0==VK_NOT) ) {
+ alt39=1;
+ }
+ switch (alt39) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:313:23: not= VK_NOT
+ {
+ not=(DroolsTree)input.LT(1);
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1672);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1677);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, not, fe.descr);
+
+ }
+ break;
+ case 16 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:315:4: ^(op= VK_SOUNDSLIKE (not= VK_NOT )? fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,VK_SOUNDSLIKE,FOLLOW_VK_SOUNDSLIKE_in_fact_expression1689);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:315:26: (not= VK_NOT )?
+ int alt40=2;
+ int LA40_0 = input.LA(1);
+
+ if ( (LA40_0==VK_NOT) ) {
+ alt40=1;
+ }
+ switch (alt40) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:315:26: not= VK_NOT
+ {
+ not=(DroolsTree)input.LT(1);
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1693);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1698);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, not, fe.descr);
+
+ }
+ break;
+ case 17 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:317:4: ^(op= VK_MEMBEROF (not= VK_NOT )? fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,VK_MEMBEROF,FOLLOW_VK_MEMBEROF_in_fact_expression1710);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:317:24: (not= VK_NOT )?
+ int alt41=2;
+ int LA41_0 = input.LA(1);
+
+ if ( (LA41_0==VK_NOT) ) {
+ alt41=1;
+ }
+ switch (alt41) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:317:24: not= VK_NOT
+ {
+ not=(DroolsTree)input.LT(1);
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1714);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1719);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, not, fe.descr);
+
+ }
+ break;
+ case 18 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:319:4: ^(op= ID (not= VK_NOT )? (param= VT_SQUARE_CHUNK )? fe= fact_expression )
+ {
+ op=(DroolsTree)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_fact_expression1731);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:319:15: (not= VK_NOT )?
+ int alt42=2;
+ int LA42_0 = input.LA(1);
+
+ if ( (LA42_0==VK_NOT) ) {
+ alt42=1;
+ }
+ switch (alt42) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:319:15: not= VK_NOT
+ {
+ not=(DroolsTree)input.LT(1);
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1735);
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:319:29: (param= VT_SQUARE_CHUNK )?
+ int alt43=2;
+ int LA43_0 = input.LA(1);
+
+ if ( (LA43_0==VT_SQUARE_CHUNK) ) {
+ alt43=1;
+ }
+ switch (alt43) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:319:29: param= VT_SQUARE_CHUNK
+ {
+ param=(DroolsTree)input.LT(1);
+ match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_fact_expression1740);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1745);
+ fe=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.setupRestriction(op, not, fe.descr, param);
+
+ }
+ break;
+ case 19 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:322:4: ^( VK_IN (not= VK_NOT )? (fe= fact_expression )+ )
+ {
+ match(input,VK_IN,FOLLOW_VK_IN_in_fact_expression1756);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:322:15: (not= VK_NOT )?
+ int alt44=2;
+ int LA44_0 = input.LA(1);
+
+ if ( (LA44_0==VK_NOT) ) {
+ alt44=1;
+ }
+ switch (alt44) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:322:15: not= VK_NOT
+ {
+ not=(DroolsTree)input.LT(1);
+ match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1760);
+
+ }
+ break;
+
+ }
+
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:322:24: (fe= fact_expression )+
+ int cnt45=0;
+ loop45:
+ do {
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+
+ if ( (LA45_0==VT_FACT||LA45_0==VT_PAREN_CHUNK||(LA45_0>=VT_FACT_BINDING && LA45_0<=VT_ACCESSOR_PATH)||(LA45_0>=VK_EVAL && LA45_0<=VK_MEMBEROF)||LA45_0==VK_IN||LA45_0==ID||LA45_0==STRING||(LA45_0>=BOOL && LA45_0<=DOUBLE_AMPER)||(LA45_0>=EQUAL && LA45_0<=NULL)) ) {
+ alt45=1;
+ }
+
+
+ switch (alt45) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:322:25: fe= fact_expression
+ {
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1766);
+ fe=fact_expression();
+ _fsp--;
+
+ exprList.add(fe.descr);
+
+ }
+ break;
+
+ default :
+ if ( cnt45 >= 1 ) break loop45;
+ EarlyExitException eee =
+ new EarlyExitException(45, input);
+ throw eee;
+ }
+ cnt45++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.createRestrictionConnective(not, exprList);
+
+ }
+ break;
+ case 20 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:325:4: ^( DOUBLE_PIPE left= fact_expression right= fact_expression )
+ {
+ match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_fact_expression1781);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1785);
+ left=fact_expression();
+ _fsp--;
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1789);
+ right=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.createOrRestrictionConnective(left.descr, right.descr);
+
+ }
+ break;
+ case 21 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:327:4: ^( DOUBLE_AMPER left= fact_expression right= fact_expression )
+ {
+ match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_fact_expression1799);
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1803);
+ left=fact_expression();
+ _fsp--;
+
+ pushFollow(FOLLOW_fact_expression_in_fact_expression1807);
+ right=fact_expression();
+ _fsp--;
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.createAndRestrictionConnective(left.descr, right.descr);
+
+ }
+ break;
+ case 22 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:330:4: ^( VT_ACCESSOR_PATH (ae= accessor_element )+ )
+ {
+ match(input,VT_ACCESSOR_PATH,FOLLOW_VT_ACCESSOR_PATH_in_fact_expression1818);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:330:23: (ae= accessor_element )+
+ int cnt46=0;
+ loop46:
+ do {
+ int alt46=2;
+ int LA46_0 = input.LA(1);
+
+ if ( (LA46_0==VT_ACCESSOR_ELEMENT) ) {
+ alt46=1;
+ }
+
+
+ switch (alt46) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:330:24: ae= accessor_element
+ {
+ pushFollow(FOLLOW_accessor_element_in_fact_expression1823);
+ ae=accessor_element();
+ _fsp--;
+
+ exprList.add(ae);
+
+ }
+ break;
+
+ default :
+ if ( cnt46 >= 1 ) break loop46;
+ EarlyExitException eee =
+ new EarlyExitException(46, input);
+ throw eee;
+ }
+ cnt46++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ retval.descr = factory.createAccessorPath(exprList);
+
+ }
+ break;
+ case 23 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:332:4: s= STRING
+ {
+ s=(DroolsTree)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_fact_expression1838);
+ retval.descr = factory.createStringLiteralRestriction(s);
+
+ }
+ break;
+ case 24 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:334:4: i= INT
+ {
+ i=(DroolsTree)input.LT(1);
+ match(input,INT,FOLLOW_INT_in_fact_expression1848);
+ retval.descr = factory.createIntLiteralRestriction(i);
+
+ }
+ break;
+ case 25 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:336:4: f= FLOAT
+ {
+ f=(DroolsTree)input.LT(1);
+ match(input,FLOAT,FOLLOW_FLOAT_in_fact_expression1858);
+ retval.descr = factory.createFloatLiteralRestriction(f);
+
+ }
+ break;
+ case 26 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:338:4: b= BOOL
+ {
+ b=(DroolsTree)input.LT(1);
+ match(input,BOOL,FOLLOW_BOOL_in_fact_expression1868);
+ retval.descr = factory.createBoolLiteralRestriction(b);
+
+ }
+ break;
+ case 27 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:340:4: n= NULL
+ {
+ n=(DroolsTree)input.LT(1);
+ match(input,NULL,FOLLOW_NULL_in_fact_expression1878);
+ retval.descr = factory.createNullLiteralRestriction(n);
+
+ }
+ break;
+ case 28 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:342:4: pc= VT_PAREN_CHUNK
+ {
+ pc=(DroolsTree)input.LT(1);
+ match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_fact_expression1888);
+ retval.descr = factory.createReturnValue(pc);
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return retval;
+ }
+ // $ANTLR end fact_expression
+
+
+ // $ANTLR start field_element
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:346:1: field_element returns [FieldConstraintDescr element] : ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) ;
+ public final FieldConstraintDescr field_element() throws RecognitionException {
+ FieldConstraintDescr element = null;
+
+ BaseDescr ae = null;
+
+
+
+ List<BaseDescr> aeList = new LinkedList<BaseDescr>();
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:349:3: ( ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:349:5: ^( VT_ACCESSOR_PATH (ae= accessor_element )+ )
+ {
+ match(input,VT_ACCESSOR_PATH,FOLLOW_VT_ACCESSOR_PATH_in_field_element1910);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:349:24: (ae= accessor_element )+
+ int cnt48=0;
+ loop48:
+ do {
+ int alt48=2;
+ int LA48_0 = input.LA(1);
+
+ if ( (LA48_0==VT_ACCESSOR_ELEMENT) ) {
+ alt48=1;
+ }
+
+
+ switch (alt48) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:349:25: ae= accessor_element
+ {
+ pushFollow(FOLLOW_accessor_element_in_field_element1915);
+ ae=accessor_element();
+ _fsp--;
+
+ aeList.add(ae);
+
+ }
+ break;
+
+ default :
+ if ( cnt48 >= 1 ) break loop48;
+ EarlyExitException eee =
+ new EarlyExitException(48, input);
+ throw eee;
+ }
+ cnt48++;
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ element = factory.createFieldConstraint(aeList);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return element;
+ }
+ // $ANTLR end field_element
+
+
+ // $ANTLR start accessor_element
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:353:1: accessor_element returns [BaseDescr element] : ^( VT_ACCESSOR_ELEMENT id= ID (sc+= VT_SQUARE_CHUNK )* ) ;
+ public final BaseDescr accessor_element() throws RecognitionException {
+ BaseDescr element = null;
+
+ DroolsTree id=null;
+ DroolsTree sc=null;
+ List list_sc=null;
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:354:2: ( ^( VT_ACCESSOR_ELEMENT id= ID (sc+= VT_SQUARE_CHUNK )* ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:354:4: ^( VT_ACCESSOR_ELEMENT id= ID (sc+= VT_SQUARE_CHUNK )* )
+ {
+ match(input,VT_ACCESSOR_ELEMENT,FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element1939);
+
+ match(input, Token.DOWN, null);
+ id=(DroolsTree)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_accessor_element1943);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:354:34: (sc+= VT_SQUARE_CHUNK )*
+ loop49:
+ do {
+ int alt49=2;
+ int LA49_0 = input.LA(1);
+
+ if ( (LA49_0==VT_SQUARE_CHUNK) ) {
+ alt49=1;
+ }
+
+
+ switch (alt49) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:354:34: sc+= VT_SQUARE_CHUNK
+ {
+ sc=(DroolsTree)input.LT(1);
+ match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_accessor_element1947);
+ if (list_sc==null) list_sc=new ArrayList();
+ list_sc.add(sc);
+
+
+ }
+ break;
+
+ default :
+ break loop49;
+ }
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ element = factory.createAccessorElement(id, list_sc);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return element;
+ }
+ // $ANTLR end accessor_element
+
+
+ // $ANTLR start data_type
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:358:1: data_type returns [BaseDescr dataType] : ^( VT_DATA_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* ) ;
+ public final BaseDescr data_type() throws RecognitionException {
+ BaseDescr dataType = null;
+
+ DroolsTree idList=null;
+ DroolsTree rightList=null;
+ List list_idList=null;
+ List list_rightList=null;
+
+ try {
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:359:2: ( ^( VT_DATA_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* ) )
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:359:4: ^( VT_DATA_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* )
+ {
+ match(input,VT_DATA_TYPE,FOLLOW_VT_DATA_TYPE_in_data_type1968);
+
+ match(input, Token.DOWN, null);
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:359:25: (idList+= ID )+
+ int cnt50=0;
+ loop50:
+ do {
+ int alt50=2;
+ int LA50_0 = input.LA(1);
+
+ if ( (LA50_0==ID) ) {
+ alt50=1;
+ }
+
+
+ switch (alt50) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:359:25: idList+= ID
+ {
+ idList=(DroolsTree)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_data_type1972);
+ if (list_idList==null) list_idList=new ArrayList();
+ list_idList.add(idList);
+
+
+ }
+ break;
+
+ default :
+ if ( cnt50 >= 1 ) break loop50;
+ EarlyExitException eee =
+ new EarlyExitException(50, input);
+ throw eee;
+ }
+ cnt50++;
+ } while (true);
+
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:359:31: ( LEFT_SQUARE rightList+= RIGHT_SQUARE )*
+ loop51:
+ do {
+ int alt51=2;
+ int LA51_0 = input.LA(1);
+
+ if ( (LA51_0==LEFT_SQUARE) ) {
+ alt51=1;
+ }
+
+
+ switch (alt51) {
+ case 1 :
+ // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:359:32: LEFT_SQUARE rightList+= RIGHT_SQUARE
+ {
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_data_type1976);
+ rightList=(DroolsTree)input.LT(1);
+ match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_data_type1980);
+ if (list_rightList==null) list_rightList=new ArrayList();
+ list_rightList.add(rightList);
+
+
+ }
+ break;
+
+ default :
+ break loop51;
+ }
+ } while (true);
+
+
+ match(input, Token.UP, null);
+ dataType = factory.createDataType(list_idList, list_rightList);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return dataType;
+ }
+ // $ANTLR end data_type
+
+
+
+
+ public static final BitSet FOLLOW_VT_COMPILATION_UNIT_in_compilation_unit49 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_package_statement_in_compilation_unit51 = new BitSet(new long[]{0xDB3FFC0000000028L});
+ public static final BitSet FOLLOW_statement_in_compilation_unit53 = new BitSet(new long[]{0xDB3FFC0000000028L});
+ public static final BitSet FOLLOW_VK_PACKAGE_in_package_statement71 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_package_id_in_package_statement75 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_PACKAGE_ID_in_package_id102 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_package_id106 = new BitSet(new long[]{0x0000000000000008L,0x0000000000200000L});
+ public static final BitSet FOLLOW_rule_attribute_in_statement124 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_function_import_statement_in_statement134 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_import_statement_in_statement144 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_global_in_statement155 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_function_in_statement165 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_template_in_statement175 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule_in_statement185 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_query_in_statement195 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VK_IMPORT_in_import_statement216 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_import_name_in_import_statement220 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_FUNCTION_IMPORT_in_function_import_statement242 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_FUNCTION_in_function_import_statement244 = new BitSet(new long[]{0x0000004000000000L});
+ public static final BitSet FOLLOW_import_name_in_function_import_statement248 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_IMPORT_ID_in_import_name267 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_import_name271 = new BitSet(new long[]{0x0000000000000008L,0x0000000000A00000L});
+ public static final BitSet FOLLOW_DOT_STAR_in_import_name276 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_GLOBAL_in_global299 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_data_type_in_global303 = new BitSet(new long[]{0x0000008000000000L});
+ public static final BitSet FOLLOW_VT_GLOBAL_ID_in_global307 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_FUNCTION_in_function329 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_data_type_in_function333 = new BitSet(new long[]{0x0000010000000000L});
+ public static final BitSet FOLLOW_VT_FUNCTION_ID_in_function338 = new BitSet(new long[]{0x0000020000000000L});
+ public static final BitSet FOLLOW_parameters_in_function342 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_VT_CURLY_CHUNK_in_function346 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_TEMPLATE_in_template371 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_TEMPLATE_ID_in_template375 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_template_slot_in_template384 = new BitSet(new long[]{0x0000000000004000L,0x0000000001000000L});
+ public static final BitSet FOLLOW_END_in_template392 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_SLOT_in_template_slot412 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_data_type_in_template_slot416 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_VT_SLOT_ID_in_template_slot420 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_QUERY_in_query442 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_QUERY_ID_in_query446 = new BitSet(new long[]{0x0000020000100000L});
+ public static final BitSet FOLLOW_parameters_in_query450 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_lhs_block_in_query455 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
+ public static final BitSet FOLLOW_END_in_query459 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_RULE_in_rule481 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_RULE_ID_in_rule485 = new BitSet(new long[]{0x0080000000018000L});
+ public static final BitSet FOLLOW_rule_attributes_in_rule489 = new BitSet(new long[]{0x0080000000010000L});
+ public static final BitSet FOLLOW_when_part_in_rule494 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_VT_RHS_CHUNK_in_rule499 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_WHEN_in_when_part518 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_lhs_block_in_when_part522 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VT_RULE_ATTRIBUTES_in_rule_attributes544 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_ATTRIBUTES_in_rule_attributes546 = new BitSet(new long[]{0x003FFC0000000000L});
+ public static final BitSet FOLLOW_rule_attribute_in_rule_attributes552 = new BitSet(new long[]{0x003FFC0000000008L});
+ public static final BitSet FOLLOW_VT_PARAM_LIST_in_parameters576 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_param_definition_in_parameters581 = new BitSet(new long[]{0x0000001000000008L,0x0000000000200000L});
+ public static final BitSet FOLLOW_data_type_in_param_definition603 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_argument_in_param_definition608 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_argument628 = new BitSet(new long[]{0x0000000000000002L,0x0000080000000000L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_argument631 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
+ public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument635 = new BitSet(new long[]{0x0000000000000002L,0x0000080000000000L});
+ public static final BitSet FOLLOW_VK_SALIENCE_in_rule_attribute659 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INT_in_rule_attribute664 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_rule_attribute668 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_NO_LOOP_in_rule_attribute679 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_BOOL_in_rule_attribute683 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_AGENDA_GROUP_in_rule_attribute695 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_in_rule_attribute699 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_DURATION_in_rule_attribute710 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INT_in_rule_attribute714 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_ACTIVATION_GROUP_in_rule_attribute726 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_in_rule_attribute730 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_AUTO_FOCUS_in_rule_attribute740 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_BOOL_in_rule_attribute744 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_DATE_EFFECTIVE_in_rule_attribute755 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_in_rule_attribute759 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_DATE_EXPIRES_in_rule_attribute769 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_in_rule_attribute773 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_ENABLED_in_rule_attribute783 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_BOOL_in_rule_attribute787 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_RULEFLOW_GROUP_in_rule_attribute797 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_in_rule_attribute801 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_LOCK_ON_ACTIVE_in_rule_attribute811 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_BOOL_in_rule_attribute815 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_DIALECT_in_rule_attribute825 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_in_rule_attribute829 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_AND_IMPLICIT_in_lhs_block854 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs_block859 = new BitSet(new long[]{0x0000000021E00008L,0x0000000000003881L});
+ public static final BitSet FOLLOW_VT_OR_PREFIX_in_lhs885 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs890 = new BitSet(new long[]{0x0000000021E00008L,0x0000000000003881L});
+ public static final BitSet FOLLOW_VT_OR_INFIX_in_lhs906 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs910 = new BitSet(new long[]{0x0000000021E00000L,0x0000000000003881L});
+ public static final BitSet FOLLOW_lhs_in_lhs914 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_AND_PREFIX_in_lhs926 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs931 = new BitSet(new long[]{0x0000000021E00008L,0x0000000000003881L});
+ public static final BitSet FOLLOW_VT_AND_INFIX_in_lhs947 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs951 = new BitSet(new long[]{0x0000000021E00000L,0x0000000000003881L});
+ public static final BitSet FOLLOW_lhs_in_lhs955 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_EXISTS_in_lhs967 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs971 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_NOT_in_lhs983 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs987 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_EVAL_in_lhs999 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_lhs1003 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_FORALL_in_lhs1015 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_lhs1020 = new BitSet(new long[]{0x0000000021E00008L,0x0000000000003881L});
+ public static final BitSet FOLLOW_VK_FROM_in_lhs1034 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_pattern_in_lhs1038 = new BitSet(new long[]{0x0000000008000000L,0x0000000000084040L});
+ public static final BitSet FOLLOW_from_elements_in_lhs1042 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_lhs_pattern_in_lhs1053 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VK_ACCUMULATE_in_from_elements1074 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_from_elements1078 = new BitSet(new long[]{0x0000000006000000L});
+ public static final BitSet FOLLOW_accumulate_parts_in_from_elements1088 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_COLLECT_in_from_elements1101 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_lhs_in_from_elements1105 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_ENTRY_POINT_in_from_elements1117 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_ENTRYPOINT_ID_in_from_elements1121 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_from_source_clause_in_from_elements1132 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_accumulate_init_clause_in_accumulate_parts1153 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_accumulate_id_clause_in_accumulate_parts1164 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VT_ACCUMULATE_INIT_CLAUSE_in_accumulate_init_clause1187 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_INIT_in_accumulate_init_clause1196 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause1200 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_ACTION_in_accumulate_init_clause1208 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause1212 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_accumulate_init_reverse_clause_in_accumulate_init_clause1221 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+ public static final BitSet FOLLOW_VK_RESULT_in_accumulate_init_clause1228 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause1232 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_REVERSE_in_accumulate_init_reverse_clause1255 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_reverse_clause1259 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_ACCUMULATE_ID_CLAUSE_in_accumulate_id_clause1281 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_accumulate_id_clause1285 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_id_clause1289 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_FROM_SOURCE_in_from_source_clause1311 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_from_source_clause1315 = new BitSet(new long[]{0x0000000010080008L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_from_source_clause1319 = new BitSet(new long[]{0x0000000010000008L});
+ public static final BitSet FOLLOW_expression_chain_in_from_source_clause1328 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_EXPRESSION_CHAIN_in_expression_chain1347 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_expression_chain1351 = new BitSet(new long[]{0x00000000100C0008L});
+ public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_expression_chain1355 = new BitSet(new long[]{0x0000000010080008L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_expression_chain1360 = new BitSet(new long[]{0x0000000010000008L});
+ public static final BitSet FOLLOW_expression_chain_in_expression_chain1368 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_PATTERN_in_lhs_pattern1386 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_lhs_pattern1390 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_FACT_in_fact_expression1413 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_data_type_in_fact_expression1417 = new BitSet(new long[]{0x00000007C0080048L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1422 = new BitSet(new long[]{0x00000007C0080048L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_VT_FACT_BINDING_in_fact_expression1436 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_LABEL_in_fact_expression1440 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1444 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_FACT_OR_in_fact_expression1456 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1460 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1464 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_FIELD_in_fact_expression1475 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_field_element_in_fact_expression1479 = new BitSet(new long[]{0x00000007C0080048L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1483 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_BIND_FIELD_in_fact_expression1494 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_LABEL_in_fact_expression1498 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1502 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_EVAL_in_fact_expression1513 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_fact_expression1517 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_EQUAL_in_fact_expression1530 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1534 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_NOT_EQUAL_in_fact_expression1546 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1550 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_GREATER_in_fact_expression1562 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1566 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_GREATER_EQUAL_in_fact_expression1578 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1582 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_LESS_in_fact_expression1594 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1598 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_LESS_EQUAL_in_fact_expression1610 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1614 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_CONTAINS_in_fact_expression1626 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression1630 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1635 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_EXCLUDES_in_fact_expression1647 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression1651 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1656 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_MATCHES_in_fact_expression1668 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression1672 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1677 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_SOUNDSLIKE_in_fact_expression1689 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression1693 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1698 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_MEMBEROF_in_fact_expression1710 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression1714 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1719 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_ID_in_fact_expression1731 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression1735 = new BitSet(new long[]{0x00000007C00C0040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_fact_expression1740 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1745 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VK_IN_in_fact_expression1756 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_VK_NOT_in_fact_expression1760 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1766 = new BitSet(new long[]{0x00000007C0080048L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_DOUBLE_PIPE_in_fact_expression1781 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1785 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1789 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_DOUBLE_AMPER_in_fact_expression1799 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1803 = new BitSet(new long[]{0x00000007C0080040L,0x000007FBC220013FL});
+ public static final BitSet FOLLOW_fact_expression_in_fact_expression1807 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_VT_ACCESSOR_PATH_in_fact_expression1818 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_accessor_element_in_fact_expression1823 = new BitSet(new long[]{0x0000000800000008L});
+ public static final BitSet FOLLOW_STRING_in_fact_expression1838 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INT_in_fact_expression1848 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_FLOAT_in_fact_expression1858 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BOOL_in_fact_expression1868 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_NULL_in_fact_expression1878 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_fact_expression1888 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VT_ACCESSOR_PATH_in_field_element1910 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_accessor_element_in_field_element1915 = new BitSet(new long[]{0x0000000800000008L});
+ public static final BitSet FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element1939 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_accessor_element1943 = new BitSet(new long[]{0x0000000000040008L});
+ public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_accessor_element1947 = new BitSet(new long[]{0x0000000000040008L});
+ public static final BitSet FOLLOW_VT_DATA_TYPE_in_data_type1968 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ID_in_data_type1972 = new BitSet(new long[]{0x0000000000000008L,0x0000080000200000L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_data_type1976 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
+ public static final BitSet FOLLOW_RIGHT_SQUARE_in_data_type1980 = new BitSet(new long[]{0x0000000000000008L,0x0000080000000000L});
+
+}
\ No newline at end of file
Property changes on: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list