[jboss-svn-commits] JBL Code SVN: r32808 - in labs/jbossrules/branches/DRLv6: src/main/resources and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon May 10 21:25:17 EDT 2010
Author: dsotty
Date: 2010-05-10 21:25:16 -0400 (Mon, 10 May 2010)
New Revision: 32808
Modified:
labs/jbossrules/branches/DRLv6/out/DRLv6Log.txt
labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Lexer.g
labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Parser.g
labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Rule_Test.java
Log:
Modified: labs/jbossrules/branches/DRLv6/out/DRLv6Log.txt
===================================================================
--- labs/jbossrules/branches/DRLv6/out/DRLv6Log.txt 2010-05-10 23:12:56 UTC (rev 32807)
+++ labs/jbossrules/branches/DRLv6/out/DRLv6Log.txt 2010-05-11 01:25:16 UTC (rev 32808)
@@ -2,7 +2,7 @@
compilation_unit
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 8
+>> TIME to parse 7
>> SOURCE :
package org.pack.subpack;
import org.klass;
@@ -63,7 +63,7 @@
package_statement
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 0
+>> TIME to parse 1
>> SOURCE :
package simplePack
>> OUTPUT :
@@ -76,7 +76,7 @@
global
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 0
+>> TIME to parse 1
>> SOURCE :
global int N
>> OUTPUT :
@@ -146,7 +146,7 @@
data_type
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 0
+>> TIME to parse 1
>> SOURCE :
int[][][]
>> OUTPUT :
@@ -157,7 +157,7 @@
import_statement
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 0
+>> TIME to parse 1
>> SOURCE :
import jav.lang.String
>> OUTPUT :
@@ -170,7 +170,7 @@
import_statement
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
import Test ;
>> OUTPUT :
@@ -196,7 +196,7 @@
function_import_statement
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
import function org.pack.square
>> OUTPUT :
@@ -209,7 +209,7 @@
function
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 2
+>> TIME to parse 1
>> SOURCE :
function float square( float x ) { ... x*x ... }
>> OUTPUT :
@@ -249,7 +249,7 @@
parameters
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
( int a, org.klass.AnType obj, String[][] argz )
>> OUTPUT :
@@ -272,7 +272,7 @@
type_declaration
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 2
+>> TIME to parse 1
>> SOURCE :
declare Student
@role(entity)
@@ -344,7 +344,7 @@
type_declaration
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 2
>> SOURCE :
declare HasSpouse
@role(property)
@@ -410,7 +410,7 @@
type_declare_attribute
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
@role(entity)
>> OUTPUT :
@@ -443,7 +443,7 @@
type_declare_attribute
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 0
+>> TIME to parse 1
>> SOURCE :
@subclass(Type)
>> OUTPUT :
@@ -485,7 +485,7 @@
type_declare_attribute
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
@transitive
>> OUTPUT :
@@ -505,7 +505,7 @@
decl_field
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
field = (...) : datatype[][] @[key]
>> OUTPUT :
@@ -524,7 +524,7 @@
rule
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
rule "ruleName" extends "anotherRule"
salience 100
@@ -651,7 +651,7 @@
rule_attribute
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
agenda-group "act-group"
>> OUTPUT :
@@ -717,7 +717,7 @@
rule_attribute
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
deductive
>> OUTPUT :
@@ -744,7 +744,7 @@
rule_attribute
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
deduction @[crisp]
>> OUTPUT :
@@ -781,7 +781,6 @@
default,
defeat,
merge="mStrat",
-filter="fStrat",
missing="sStrat"
]
>> OUTPUT :
@@ -797,8 +796,6 @@
) crisp default defeat
(merge = "mStrat"
)
- (filter = "fStrat"
- )
(missing = "sStrat"
)
)
@@ -806,7 +803,7 @@
rule
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 2
+>> TIME to parse 3
>> SOURCE :
rule test when Bus() Car() Taxi()then end
>> OUTPUT :
@@ -833,7 +830,7 @@
rule
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 0
+>> TIME to parse 1
>> SOURCE :
rule test when $p : Person() implies @[kind="anImpl"] Dog()then end
>> OUTPUT :
@@ -903,7 +900,7 @@
rule
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 0
+>> TIME to parse 1
>> SOURCE :
rule test when $p : Person() xor Dog()then end
>> OUTPUT :
@@ -930,7 +927,7 @@
rule
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
rule test when (Person() xor Dog()) equiv Cat()then end
>> OUTPUT :
@@ -963,7 +960,7 @@
rule
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 0
+>> TIME to parse 1
>> SOURCE :
rule test when Car() and Taxi() and Bus()then end
>> OUTPUT :
@@ -1288,7 +1285,7 @@
rule
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 1
+>> TIME to parse 0
>> SOURCE :
rule "r" when forall ( $p : Person() (Person() Dog()) ) then end
>> OUTPUT :
@@ -1404,7 +1401,7 @@
rule
**************************************
>>>> RESULT : SUCCESS
->> TIME to parse 3
+>> TIME to parse 2
>> SOURCE :
rule "r" when Person( "john" , 18, height > 150) then end
>> OUTPUT :
@@ -1499,6 +1496,18 @@
(VT_NEW_OBJ
(VT_TYPE Obj
)
- (VT_ARGS 12 - 13 * $var * 2 + sqrt 4
+ (VT_ARGS
+ (- 12
+ (* 13
+ (+
+ (* $var 2
+ )
+ (sqrt
+ (VT_ARGS 4
+ )
+ )
+ )
+ )
+ )
)
)
Modified: labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Lexer.g
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Lexer.g 2010-05-10 23:12:56 UTC (rev 32807)
+++ labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Lexer.g 2010-05-11 01:25:16 UTC (rev 32808)
@@ -165,10 +165,12 @@
OA_MERGE
: 'merge'
;
-
+
+/*
OA_FILTER
: 'filter'
;
+*/
OA_MISSING
: 'missing'
@@ -273,6 +275,10 @@
EXTEND
: 'extends'
;
+
+FILTER
+ : 'filter'
+ ;
FORALL
: 'forall'
@@ -566,6 +572,10 @@
: '!='
;
+PIPE
+ : '|'
+ ;
+
PLUS
: '+'
;
@@ -647,7 +657,7 @@
MISC :
//'!' | '%' | '^' | '*' | '-' | '+' | '?' | '/' | '\'' | '\\' | '|' | '&'
- '!' | '%' | '^' | '\'' | '\\' | '|' | '&'
+ '!' | '%' | '^' | '\'' | '\\' | '&'
;
Modified: labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Parser.g
===================================================================
--- labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Parser.g 2010-05-10 23:12:56 UTC (rev 32807)
+++ labs/jbossrules/branches/DRLv6/src/main/resources/DRLv6Parser.g 2010-05-11 01:25:16 UTC (rev 32808)
@@ -69,6 +69,8 @@
VT_FIELD;
VT_EXPR;
+ VT_FILTER;
+
VT_LIST;
VT_BEHAVIOR;
@@ -633,7 +635,7 @@
;
lhs_unary
- : lhs_modified_unary
+ : lhs_modified_unary filter_chain?
| lhs_query
;
@@ -697,11 +699,22 @@
;
lhs_atom_pattern
- : ID LEFT_PAREN constraints? RIGHT_PAREN operator_attributes? over_clause? from?
- -> ^(VT_AND operator_attributes? VT_ENABLED ^(VT_PATTERN ID) constraints? over_clause? from?)
+ : ID LEFT_PAREN constraints? RIGHT_PAREN operator_attributes? /*over_clause?*/ from?
+ -> ^(VT_AND operator_attributes? VT_ENABLED ^(VT_PATTERN ID) constraints? /*over_clause?*/ from?)
;
+
+
+filter_chain
+ : PIPE filter filter_chain?
+ -> ^(VT_FILTER ID filter_chain?)
+ ;
+
+filter
+ : over_clause
+ | FILTER ID
+ ;
/*********************************************** INSIDE PATTERN *****************************************/
@@ -732,8 +745,8 @@
}
: literal
-> ^(VT_POSITIONAL_CONST VT_POSITIONAL_INDEX[$start,idx] literal)
- | VAR
- -> ^(VT_POSITIONAL_VAR VT_POSITIONAL_INDEX[$start,idx] VAR)
+ | var_literal
+ -> ^(VT_POSITIONAL_VAR VT_POSITIONAL_INDEX[$start,idx] var_literal)
;
slotted_constraint
@@ -747,21 +760,40 @@
k=6;
}
: STRING
- | INT
- | FLOAT
+ | INT msr_unit?
+ | FLOAT msr_unit?
| BOOL
| NULL
| literal_object
| list
;
+
+var
+ : VAR
+ ;
+
+
+var_literal
+ : VAR msr_unit?
+ ;
+
+msr_unit
+ : GATE ID conversion*
+ ;
+
+conversion
+ : COLON ID
+ ;
+
+
list
: LEFT_CURLY list_members? RIGHT_CURLY
->^(VT_LIST list_members?)
;
list_members
- : (literal|VAR) (COMMA! (literal|VAR))*
+ : (literal|var_literal) (COMMA! (literal|var_literal))*
;
@@ -787,19 +819,19 @@
// method expr roots can't start with () and have a slightly simpler structure than outer expressions
method_expr_root
- : method_expr_atom ( (PLUS | MINUS) method_factor )*
+ : method_expr_atom ( (PLUS | MINUS)^ method_factor )*
;
method_expr_recur
- : method_factor ( (PLUS | MINUS) method_factor )*
+ : method_factor ( (PLUS | MINUS)^ method_factor )*
;
method_factor
- : method_term ( (TIMES | SLASH) method_term )*
+ : method_term ( (TIMES | SLASH)^ method_term )*
;
method_term
- : MINUS? method_expr_unary
+ : MINUS^? method_expr_unary
;
method_expr_unary
@@ -808,13 +840,15 @@
;
method_expr_atom
- : VAR
+ : var_literal
| literal
- | method
+ | method
;
method
- : ID LEFT_PAREN! method_args? RIGHT_PAREN!
+ : ID LEFT_PAREN args=method_args? RIGHT_PAREN msr_unit?
+ -> {args==null}? ^(ID msr_unit? )
+ -> ^(ID msr_unit? ^(VT_ARGS method_args?))
;
@@ -1001,9 +1035,9 @@
: label
(
left_expr_atom
- -> ^(VT_BINDING VAR ^(VT_FIELD left_expr_atom))
+ -> ^(VT_BINDING label ^(VT_FIELD left_expr_atom))
| LEFT_PAREN left_expr_root RIGHT_PAREN
- -> ^(VT_BINDING VAR ^(VT_EXPR left_expr_root))
+ -> ^(VT_BINDING label ^(VT_EXPR left_expr_root))
)
| left_expr_root
-> ^(VT_EXPR left_expr_root)
@@ -1016,7 +1050,7 @@
expr_atom
: accessor_path
- | VAR
+ | var_literal
| literal
;
@@ -1047,7 +1081,7 @@
accessor_path
: accessor (DOT! accessor)*
- | VAR (DOT! accessor)+
+ | var (DOT! accessor)+
;
/*
@@ -1222,7 +1256,7 @@
label
- : VAR COLON
+ : var COLON
;
@@ -1381,7 +1415,7 @@
rhs_retract
: RETRACT^
( literal_object
- | VAR
+ | var
)
SEMICOLON!
;
@@ -1389,19 +1423,19 @@
rhs_retract_logical
: RETRACT_LOG^
( literal_object
- | VAR
+ | var
)
SEMICOLON!
;
rhs_update
: UPDATE^
- VAR
+ var
SEMICOLON!
;
rhs_modify
- : MODIFY^ LEFT_PAREN! VAR RIGHT_PAREN!
+ : MODIFY^ LEFT_PAREN! var RIGHT_PAREN!
LEFT_CURLY!
accessor_path
(COMMA! accessor_path)*
Modified: labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Rule_Test.java
===================================================================
--- labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Rule_Test.java 2010-05-10 23:12:56 UTC (rev 32807)
+++ labs/jbossrules/branches/DRLv6/src/test/java/org/drools/lang/Rule_Test.java 2010-05-11 01:25:16 UTC (rev 32808)
@@ -227,7 +227,7 @@
}
- @Test
+ @Test
public void test_rule() {
String rule = "rule";
String[] testDRL = {
@@ -239,6 +239,9 @@
"then" + "\n" +
"end" + "\n"
};
+
+
+ String test2;
check(rule,testDRL);
}
@@ -289,7 +292,7 @@
"default," + "\n" +
"defeat," + "\n" +
"merge=\"mStrat\", " + "\n" +
- "filter=\"fStrat\", " + "\n" +
+ //"filter=\"fStrat\", " + "\n" + //TODO: removed "filter" from here
"missing=\"sStrat\" " + "\n" +
"]",
};
@@ -533,35 +536,18 @@
check(rule,testDRL);
}
- /*
- method_expr_root
- : method_expr_atom ( (PLUS | MINUS) method_factor )*
- ;
-
- method_factor
- : method_term ( (TIMES | SLASH) method_term )*
- ;
-
- method_term
- : MINUS? method_expr_unary
- ;
-
- method_expr_unary
- : method_expr_atom
- | LEFT_PAREN! method_expr_root RIGHT_PAREN!
- ;
-
- method_expr_atom
- : VAR
- | literal
- | method
- ;
-
- method
- : ID LEFT_PAREN! method_args? RIGHT_PAREN!
- ;
- */
+ public void test_meta_annotation() {
+ String rule = "rule";
+ String[] testDRL = {
+ "xx"
+ };
+
+ check(rule,testDRL);
+ }
+
+ //TODO : test filter & tree struct
+
/*
@Test
public void test_ {
@@ -1296,6 +1282,7 @@
+
}
More information about the jboss-svn-commits
mailing list