[jboss-svn-commits] JBL Code SVN: r5985 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/lang main/resources/org/drools/lang test/java/org/drools/lang test/resources/org/drools/lang

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Aug 28 08:31:44 EDT 2006


Author: michael.neale at jboss.com
Date: 2006-08-28 08:31:34 -0400 (Mon, 28 Aug 2006)
New Revision: 5985

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/column_partial.drl
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParser.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParserLexer.java
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/drl.g
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
Log:
JBRULES-452 - fix for parsing broken rules which the IDE NEEDS

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParser.java	2006-08-27 21:17:30 UTC (rev 5984)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParser.java	2006-08-28 12:31:34 UTC (rev 5985)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0ea8 /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g 2006-08-16 15:30:47
+// $ANTLR 3.0ea8 /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g 2006-08-24 14:53:10
 
 	package org.drools.lang;
 	import java.util.List;
@@ -5508,37 +5508,41 @@
                     u=lhs_exist();
                     following.pop();
 
+                    d = u;
 
                     }
                     break;
                 case 2 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1148:25: u= lhs_not
                     {
-                    following.push(FOLLOW_lhs_not_in_lhs_unary3148);
+                    following.push(FOLLOW_lhs_not_in_lhs_unary3150);
                     u=lhs_not();
                     following.pop();
 
+                    d = u;
 
                     }
                     break;
                 case 3 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1149:25: u= lhs_eval
                     {
-                    following.push(FOLLOW_lhs_eval_in_lhs_unary3156);
+                    following.push(FOLLOW_lhs_eval_in_lhs_unary3160);
                     u=lhs_eval();
                     following.pop();
 
+                    d = u;
 
                     }
                     break;
                 case 4 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1150:25: u= lhs_column (fm= from_statement )?
                     {
-                    following.push(FOLLOW_lhs_column_in_lhs_unary3168);
+                    following.push(FOLLOW_lhs_column_in_lhs_unary3174);
                     u=lhs_column();
                     following.pop();
 
-                    // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1150:38: (fm= from_statement )?
+                    d=u;
+                    // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1150:45: (fm= from_statement )?
                     int alt68=2;
                     int LA68_0 = input.LA(1);
                     if ( LA68_0==42 ) {
@@ -5549,19 +5553,19 @@
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("1150:38: (fm= from_statement )?", 68, 0, input);
+                            new NoViableAltException("1150:45: (fm= from_statement )?", 68, 0, input);
 
                         throw nvae;
                     }
                     switch (alt68) {
                         case 1 :
-                            // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1150:39: fm= from_statement
+                            // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1150:46: fm= from_statement
                             {
-                            following.push(FOLLOW_from_statement_in_lhs_unary3173);
+                            following.push(FOLLOW_from_statement_in_lhs_unary3181);
                             fm=from_statement();
                             following.pop();
 
-                            fm.setColumn((ColumnDescr) u); u=fm;
+                            fm.setColumn((ColumnDescr) u); d=fm;
 
                             }
                             break;
@@ -5574,27 +5578,27 @@
                 case 5 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1151:25: '(' opt_eol u= lhs opt_eol ')'
                     {
-                    match(input,23,FOLLOW_23_in_lhs_unary3183); 
-                    following.push(FOLLOW_opt_eol_in_lhs_unary3185);
+                    match(input,23,FOLLOW_23_in_lhs_unary3191); 
+                    following.push(FOLLOW_opt_eol_in_lhs_unary3193);
                     opt_eol();
                     following.pop();
 
-                    following.push(FOLLOW_lhs_in_lhs_unary3189);
+                    following.push(FOLLOW_lhs_in_lhs_unary3197);
                     u=lhs();
                     following.pop();
 
-                    following.push(FOLLOW_opt_eol_in_lhs_unary3191);
+                    following.push(FOLLOW_opt_eol_in_lhs_unary3199);
                     opt_eol();
                     following.pop();
 
-                    match(input,25,FOLLOW_25_in_lhs_unary3193); 
+                    match(input,25,FOLLOW_25_in_lhs_unary3201); 
+                    d = u;
 
                     }
                     break;
 
             }
 
-             d = u; 
 
             }
 
@@ -5626,7 +5630,7 @@
             // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1159:17: loc= 'exists' ( '(' column= lhs_column ')' | column= lhs_column )
             {
             loc=(Token)input.LT(1);
-            match(input,51,FOLLOW_51_in_lhs_exist3223); 
+            match(input,51,FOLLOW_51_in_lhs_exist3232); 
             // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1159:30: ( '(' column= lhs_column ')' | column= lhs_column )
             int alt70=2;
             int LA70_0 = input.LA(1);
@@ -5646,19 +5650,19 @@
                 case 1 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1159:31: '(' column= lhs_column ')'
                     {
-                    match(input,23,FOLLOW_23_in_lhs_exist3226); 
-                    following.push(FOLLOW_lhs_column_in_lhs_exist3230);
+                    match(input,23,FOLLOW_23_in_lhs_exist3235); 
+                    following.push(FOLLOW_lhs_column_in_lhs_exist3239);
                     column=lhs_column();
                     following.pop();
 
-                    match(input,25,FOLLOW_25_in_lhs_exist3232); 
+                    match(input,25,FOLLOW_25_in_lhs_exist3241); 
 
                     }
                     break;
                 case 2 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1159:59: column= lhs_column
                     {
-                    following.push(FOLLOW_lhs_column_in_lhs_exist3238);
+                    following.push(FOLLOW_lhs_column_in_lhs_exist3247);
                     column=lhs_column();
                     following.pop();
 
@@ -5703,7 +5707,7 @@
             // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1170:17: loc= 'not' ( '(' column= lhs_column ')' | column= lhs_column )
             {
             loc=(Token)input.LT(1);
-            match(input,52,FOLLOW_52_in_lhs_not3268); 
+            match(input,52,FOLLOW_52_in_lhs_not3277); 
             // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1170:27: ( '(' column= lhs_column ')' | column= lhs_column )
             int alt71=2;
             int LA71_0 = input.LA(1);
@@ -5723,19 +5727,19 @@
                 case 1 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1170:28: '(' column= lhs_column ')'
                     {
-                    match(input,23,FOLLOW_23_in_lhs_not3271); 
-                    following.push(FOLLOW_lhs_column_in_lhs_not3275);
+                    match(input,23,FOLLOW_23_in_lhs_not3280); 
+                    following.push(FOLLOW_lhs_column_in_lhs_not3284);
                     column=lhs_column();
                     following.pop();
 
-                    match(input,25,FOLLOW_25_in_lhs_not3278); 
+                    match(input,25,FOLLOW_25_in_lhs_not3287); 
 
                     }
                     break;
                 case 2 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1170:57: column= lhs_column
                     {
-                    following.push(FOLLOW_lhs_column_in_lhs_not3284);
+                    following.push(FOLLOW_lhs_column_in_lhs_not3293);
                     column=lhs_column();
                     following.pop();
 
@@ -5780,14 +5784,14 @@
             // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1182:17: ( 'eval' loc= '(' c= paren_chunk2 ')' )
             // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1182:17: 'eval' loc= '(' c= paren_chunk2 ')'
             {
-            match(input,53,FOLLOW_53_in_lhs_eval3310); 
+            match(input,53,FOLLOW_53_in_lhs_eval3319); 
             loc=(Token)input.LT(1);
-            match(input,23,FOLLOW_23_in_lhs_eval3314); 
-            following.push(FOLLOW_paren_chunk2_in_lhs_eval3322);
+            match(input,23,FOLLOW_23_in_lhs_eval3323); 
+            following.push(FOLLOW_paren_chunk2_in_lhs_eval3331);
             c=paren_chunk2();
             following.pop();
 
-            match(input,25,FOLLOW_25_in_lhs_eval3326); 
+            match(input,25,FOLLOW_25_in_lhs_eval3335); 
              
             			checkTrailingSemicolon( c, offset(loc.getLine()) );
             			d = new EvalDescr( c ); 
@@ -5821,7 +5825,7 @@
             // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1196:17: id= ID ( '.' id= ID )* ( '[' ']' )*
             {
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_dotted_name3358); 
+            match(input,ID,FOLLOW_ID_in_dotted_name3367); 
              name=id.getText(); 
             // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1196:46: ( '.' id= ID )*
             loop72:
@@ -5837,9 +5841,9 @@
             	case 1 :
             	    // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1196:48: '.' id= ID
             	    {
-            	    match(input,18,FOLLOW_18_in_dotted_name3364); 
+            	    match(input,18,FOLLOW_18_in_dotted_name3373); 
             	    id=(Token)input.LT(1);
-            	    match(input,ID,FOLLOW_ID_in_dotted_name3368); 
+            	    match(input,ID,FOLLOW_ID_in_dotted_name3377); 
             	     name = name + "." + id.getText(); 
 
             	    }
@@ -5864,8 +5868,8 @@
             	case 1 :
             	    // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1196:101: '[' ']'
             	    {
-            	    match(input,54,FOLLOW_54_in_dotted_name3377); 
-            	    match(input,55,FOLLOW_55_in_dotted_name3379); 
+            	    match(input,54,FOLLOW_54_in_dotted_name3386); 
+            	    match(input,55,FOLLOW_55_in_dotted_name3388); 
             	     name = name + "[]";
 
             	    }
@@ -5905,7 +5909,7 @@
             // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1204:17: id= ID ( '[' ']' )*
             {
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_argument_name3409); 
+            match(input,ID,FOLLOW_ID_in_argument_name3418); 
              name=id.getText(); 
             // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1204:46: ( '[' ']' )*
             loop74:
@@ -5921,8 +5925,8 @@
             	case 1 :
             	    // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1204:48: '[' ']'
             	    {
-            	    match(input,54,FOLLOW_54_in_argument_name3415); 
-            	    match(input,55,FOLLOW_55_in_argument_name3417); 
+            	    match(input,54,FOLLOW_54_in_argument_name3424); 
+            	    match(input,55,FOLLOW_55_in_argument_name3426); 
             	     name = name + "[]";
 
             	    }
@@ -6007,7 +6011,7 @@
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1212:17: id= ID
                     {
                     id=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_word3445); 
+                    match(input,ID,FOLLOW_ID_in_word3454); 
                      word=id.getText(); 
 
                     }
@@ -6015,7 +6019,7 @@
                 case 2 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1213:17: 'import'
                     {
-                    match(input,17,FOLLOW_17_in_word3457); 
+                    match(input,17,FOLLOW_17_in_word3466); 
                      word="import"; 
 
                     }
@@ -6023,7 +6027,7 @@
                 case 3 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1214:17: 'use'
                     {
-                    match(input,56,FOLLOW_56_in_word3466); 
+                    match(input,56,FOLLOW_56_in_word3475); 
                      word="use"; 
 
                     }
@@ -6031,7 +6035,7 @@
                 case 4 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1215:17: 'rule'
                     {
-                    match(input,31,FOLLOW_31_in_word3478); 
+                    match(input,31,FOLLOW_31_in_word3487); 
                      word="rule"; 
 
                     }
@@ -6039,7 +6043,7 @@
                 case 5 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1216:17: 'query'
                     {
-                    match(input,28,FOLLOW_28_in_word3489); 
+                    match(input,28,FOLLOW_28_in_word3498); 
                      word="query"; 
 
                     }
@@ -6047,7 +6051,7 @@
                 case 6 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1217:17: 'salience'
                     {
-                    match(input,36,FOLLOW_36_in_word3499); 
+                    match(input,36,FOLLOW_36_in_word3508); 
                      word="salience"; 
 
                     }
@@ -6055,7 +6059,7 @@
                 case 7 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1218:17: 'no-loop'
                     {
-                    match(input,37,FOLLOW_37_in_word3507); 
+                    match(input,37,FOLLOW_37_in_word3516); 
                      word="no-loop"; 
 
                     }
@@ -6063,7 +6067,7 @@
                 case 8 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1219:17: 'when'
                     {
-                    match(input,32,FOLLOW_32_in_word3515); 
+                    match(input,32,FOLLOW_32_in_word3524); 
                      word="when"; 
 
                     }
@@ -6071,7 +6075,7 @@
                 case 9 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1220:17: 'then'
                     {
-                    match(input,34,FOLLOW_34_in_word3526); 
+                    match(input,34,FOLLOW_34_in_word3535); 
                      word="then"; 
 
                     }
@@ -6079,7 +6083,7 @@
                 case 10 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1221:17: 'end'
                     {
-                    match(input,29,FOLLOW_29_in_word3537); 
+                    match(input,29,FOLLOW_29_in_word3546); 
                      word="end"; 
 
                     }
@@ -6088,7 +6092,7 @@
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1222:17: str= STRING
                     {
                     str=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_word3551); 
+                    match(input,STRING,FOLLOW_STRING_in_word3560); 
                      word=getString(str);
 
                     }
@@ -6159,7 +6163,7 @@
                 case 1 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1231:17: '=='
                     {
-                    match(input,57,FOLLOW_57_in_operator3580); 
+                    match(input,57,FOLLOW_57_in_operator3589); 
                     str= "==";
 
                     }
@@ -6167,7 +6171,7 @@
                 case 2 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1232:18: '='
                     {
-                    match(input,58,FOLLOW_58_in_operator3587); 
+                    match(input,58,FOLLOW_58_in_operator3596); 
                     str="==";
 
                     }
@@ -6175,7 +6179,7 @@
                 case 3 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1233:18: '>'
                     {
-                    match(input,59,FOLLOW_59_in_operator3594); 
+                    match(input,59,FOLLOW_59_in_operator3603); 
                     str=">";
 
                     }
@@ -6183,7 +6187,7 @@
                 case 4 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1234:18: '>='
                     {
-                    match(input,60,FOLLOW_60_in_operator3601); 
+                    match(input,60,FOLLOW_60_in_operator3610); 
                     str=">=";
 
                     }
@@ -6191,7 +6195,7 @@
                 case 5 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1235:18: '<'
                     {
-                    match(input,61,FOLLOW_61_in_operator3610); 
+                    match(input,61,FOLLOW_61_in_operator3619); 
                     str="<";
 
                     }
@@ -6199,7 +6203,7 @@
                 case 6 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1236:18: '<='
                     {
-                    match(input,62,FOLLOW_62_in_operator3617); 
+                    match(input,62,FOLLOW_62_in_operator3626); 
                     str="<=";
 
                     }
@@ -6207,7 +6211,7 @@
                 case 7 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1237:18: '!='
                     {
-                    match(input,63,FOLLOW_63_in_operator3624); 
+                    match(input,63,FOLLOW_63_in_operator3633); 
                     str="!=";
 
                     }
@@ -6215,7 +6219,7 @@
                 case 8 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1238:18: 'contains'
                     {
-                    match(input,64,FOLLOW_64_in_operator3631); 
+                    match(input,64,FOLLOW_64_in_operator3640); 
                     str="contains";
 
                     }
@@ -6223,7 +6227,7 @@
                 case 9 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1239:18: 'matches'
                     {
-                    match(input,65,FOLLOW_65_in_operator3638); 
+                    match(input,65,FOLLOW_65_in_operator3647); 
                     str="matches";
 
                     }
@@ -6231,7 +6235,7 @@
                 case 10 :
                     // /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g:1240:18: 'excludes'
                     {
-                    match(input,66,FOLLOW_66_in_operator3645); 
+                    match(input,66,FOLLOW_66_in_operator3654); 
                     str="excludes";
 
                     }
@@ -8806,57 +8810,57 @@
     public static final BitSet FOLLOW_opt_eol_in_lhs_and3095 = new BitSet(new long[]{0x0038000000800020L});
     public static final BitSet FOLLOW_lhs_unary_in_lhs_and3102 = new BitSet(new long[]{0x0006000000000002L});
     public static final BitSet FOLLOW_lhs_exist_in_lhs_unary3140 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_not_in_lhs_unary3148 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary3156 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_unary3168 = new BitSet(new long[]{0x0000040000000002L});
-    public static final BitSet FOLLOW_from_statement_in_lhs_unary3173 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_lhs_unary3183 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_lhs_unary3185 = new BitSet(new long[]{0x0038000000800020L});
-    public static final BitSet FOLLOW_lhs_in_lhs_unary3189 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_lhs_unary3191 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_lhs_unary3193 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_51_in_lhs_exist3223 = new BitSet(new long[]{0x0000000000800020L});
-    public static final BitSet FOLLOW_23_in_lhs_exist3226 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3230 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_lhs_exist3232 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3238 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_52_in_lhs_not3268 = new BitSet(new long[]{0x0000000000800020L});
-    public static final BitSet FOLLOW_23_in_lhs_not3271 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_not3275 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_lhs_not3278 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_not3284 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_53_in_lhs_eval3310 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_lhs_eval3314 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x0000000000000007L});
-    public static final BitSet FOLLOW_paren_chunk2_in_lhs_eval3322 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_lhs_eval3326 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_dotted_name3358 = new BitSet(new long[]{0x0040000000040002L});
-    public static final BitSet FOLLOW_18_in_dotted_name3364 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_dotted_name3368 = new BitSet(new long[]{0x0040000000040002L});
-    public static final BitSet FOLLOW_54_in_dotted_name3377 = new BitSet(new long[]{0x0080000000000000L});
-    public static final BitSet FOLLOW_55_in_dotted_name3379 = new BitSet(new long[]{0x0040000000000002L});
-    public static final BitSet FOLLOW_ID_in_argument_name3409 = new BitSet(new long[]{0x0040000000000002L});
-    public static final BitSet FOLLOW_54_in_argument_name3415 = new BitSet(new long[]{0x0080000000000000L});
-    public static final BitSet FOLLOW_55_in_argument_name3417 = new BitSet(new long[]{0x0040000000000002L});
-    public static final BitSet FOLLOW_ID_in_word3445 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_17_in_word3457 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_56_in_word3466 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_31_in_word3478 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_28_in_word3489 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_36_in_word3499 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_37_in_word3507 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_32_in_word3515 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_34_in_word3526 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_29_in_word3537 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_word3551 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_57_in_operator3580 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_58_in_operator3587 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_59_in_operator3594 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_60_in_operator3601 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_61_in_operator3610 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_62_in_operator3617 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_63_in_operator3624 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_64_in_operator3631 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_operator3638 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_66_in_operator3645 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_not_in_lhs_unary3150 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary3160 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_unary3174 = new BitSet(new long[]{0x0000040000000002L});
+    public static final BitSet FOLLOW_from_statement_in_lhs_unary3181 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_lhs_unary3191 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_lhs_unary3193 = new BitSet(new long[]{0x0038000000800020L});
+    public static final BitSet FOLLOW_lhs_in_lhs_unary3197 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_lhs_unary3199 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_lhs_unary3201 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_51_in_lhs_exist3232 = new BitSet(new long[]{0x0000000000800020L});
+    public static final BitSet FOLLOW_23_in_lhs_exist3235 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3239 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_lhs_exist3241 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3247 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_52_in_lhs_not3277 = new BitSet(new long[]{0x0000000000800020L});
+    public static final BitSet FOLLOW_23_in_lhs_not3280 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_not3284 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_lhs_not3287 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_not3293 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_53_in_lhs_eval3319 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_lhs_eval3323 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x0000000000000007L});
+    public static final BitSet FOLLOW_paren_chunk2_in_lhs_eval3331 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_lhs_eval3335 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_dotted_name3367 = new BitSet(new long[]{0x0040000000040002L});
+    public static final BitSet FOLLOW_18_in_dotted_name3373 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_dotted_name3377 = new BitSet(new long[]{0x0040000000040002L});
+    public static final BitSet FOLLOW_54_in_dotted_name3386 = new BitSet(new long[]{0x0080000000000000L});
+    public static final BitSet FOLLOW_55_in_dotted_name3388 = new BitSet(new long[]{0x0040000000000002L});
+    public static final BitSet FOLLOW_ID_in_argument_name3418 = new BitSet(new long[]{0x0040000000000002L});
+    public static final BitSet FOLLOW_54_in_argument_name3424 = new BitSet(new long[]{0x0080000000000000L});
+    public static final BitSet FOLLOW_55_in_argument_name3426 = new BitSet(new long[]{0x0040000000000002L});
+    public static final BitSet FOLLOW_ID_in_word3454 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_word3466 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_56_in_word3475 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_31_in_word3487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_word3498 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_36_in_word3508 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_37_in_word3516 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_32_in_word3524 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_34_in_word3535 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_29_in_word3546 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_word3560 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_57_in_operator3589 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_58_in_operator3596 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_59_in_operator3603 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_60_in_operator3610 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_61_in_operator3619 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_62_in_operator3626 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_63_in_operator3633 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_64_in_operator3640 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_operator3647 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_66_in_operator3654 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParserLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParserLexer.java	2006-08-27 21:17:30 UTC (rev 5984)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParserLexer.java	2006-08-28 12:31:34 UTC (rev 5985)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0ea8 /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g 2006-08-16 15:30:48
+// $ANTLR 3.0ea8 /home/michael/projects/jboss-rules/drools-compiler/src/main/resources/org/drools/lang/drl.g 2006-08-24 14:53:11
 
 	package org.drools.lang;
 

Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/drl.g
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/drl.g	2006-08-27 21:17:30 UTC (rev 5984)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/drl.g	2006-08-28 12:31:34 UTC (rev 5985)
@@ -1144,12 +1144,12 @@
 	@init {
 		d = null;
 	}
-	:	(	u=lhs_exist
-		|	u=lhs_not
-		|	u=lhs_eval				
-		|	u=lhs_column (fm=from_statement {fm.setColumn((ColumnDescr) u); u=fm;})?
-		|	'(' opt_eol u=lhs opt_eol ')'
-		) { d = u; }
+	:	(	u=lhs_exist {d = u;}
+		|	u=lhs_not {d = u;}
+		|	u=lhs_eval {d = u;}				
+		|	u=lhs_column {d=u;} (fm=from_statement {fm.setColumn((ColumnDescr) u); d=fm;})?
+		|	'(' opt_eol u=lhs opt_eol ')' {d = u;}
+		) 
 	;
 	
 lhs_exist returns [PatternDescr d]

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2006-08-27 21:17:30 UTC (rev 5984)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2006-08-28 12:31:34 UTC (rev 5985)
@@ -126,6 +126,26 @@
         
     }
     
+    public void testPartialAST() throws Exception {
+        parseResource( "column_partial.drl" );
+        
+        parser.compilation_unit();
+        
+        assertTrue(parser.hasErrors());
+        
+        PackageDescr pkg = parser.getPackageDescr();
+        assertEquals(1, pkg.getRules().size());
+        RuleDescr rule = (RuleDescr) pkg.getRules().get( 0 );
+        
+        assertEquals(1, rule.getLhs().getDescrs().size());
+        ColumnDescr col = (ColumnDescr) rule.getLhs().getDescrs().get(0);
+        
+        assertNotNull(col);
+        assertEquals("Bar", col.getObjectType());
+        assertEquals("foo3", col.getIdentifier());
+                
+    }
+    
     public void testTemplates() throws Exception {
         
         final RuleParser parser = parseResource( "test_Templates.drl" );

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/column_partial.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/column_partial.drl	2006-08-27 21:17:30 UTC (rev 5984)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/column_partial.drl	2006-08-28 12:31:34 UTC (rev 5985)
@@ -0,0 +1,10 @@
+#the purpose of this is to see what happens when we have some partially damaged syntax
+#as the IDE uses the parsers AST to work out completion suggestions.
+package test
+
+
+rule simple_rule 
+  when
+    foo3 : Bar(
+#I think the problem is it is not building the column due to not knowing when to finish looking
+#at the lhs.
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/column_partial.drl
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the jboss-svn-commits mailing list