[jboss-svn-commits] JBL Code SVN: r26893 - in labs/jbossrules/branches/DroolsChance/drools-compiler/src/main: java/org/drools/rule/builder and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jun 10 02:47:24 EDT 2009
Author: dsotty
Date: 2009-06-10 02:47:23 -0400 (Wed, 10 Jun 2009)
New Revision: 26893
Modified:
labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java
labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java
labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java
labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java
labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java
labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DRL.g
labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g
Log:
Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java 2009-06-10 06:46:19 UTC (rev 26892)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java 2009-06-10 06:47:23 UTC (rev 26893)
@@ -68,7 +68,7 @@
}
public void addOrMerge(final BaseDescr baseDescr) {
- if ( baseDescr instanceof AndDescr ) {
+ if ( baseDescr instanceof AndDescr && ! overrides(this,baseDescr) ) {
this.descrs.addAll( ((AndDescr) baseDescr).getDescrs() );
} else {
addDescr( baseDescr );
Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java 2009-06-10 06:46:19 UTC (rev 26892)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java 2009-06-10 06:47:23 UTC (rev 26893)
@@ -195,4 +195,19 @@
public String getPrior() {
return prior;
}
+
+ public boolean overrides(BaseDescr master, BaseDescr slave) {
+ boolean testCut = master.isCutter() == slave.isCutter();
+
+ boolean testLabel = (master.getLabel() == null && slave.getLabel() == null)
+ || (master.getLabel() != null && master.getLabel().equals(slave.getLabel()));
+
+ boolean testPrior = (master.getPrior() == null && slave.getPrior() == null)
+ || (master.getPrior() != null && master.getPrior().equals(slave.getPrior()));
+
+ boolean testParams = (master.getParams() == null && slave.getParams() == null)
+ || (master.getParams() != null && master.getParams().equals(slave.getParams()));
+
+ return ! (testCut && testLabel && testPrior && testParams);
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java 2009-06-10 06:46:19 UTC (rev 26892)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java 2009-06-10 06:47:23 UTC (rev 26893)
@@ -65,7 +65,7 @@
}
public void addOrMerge(final BaseDescr baseDescr) {
- if( baseDescr instanceof OrDescr ) {
+ if( baseDescr instanceof OrDescr && ! overrides(this,baseDescr)) {
this.descrs.addAll( ((OrDescr)baseDescr).getDescrs() );
} else {
this.descrs.add( baseDescr );
Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java 2009-06-10 06:46:19 UTC (rev 26892)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java 2009-06-10 06:47:23 UTC (rev 26893)
@@ -232,6 +232,12 @@
if (patternDescr.getLabel() != null)
pattern.setLabel(patternDescr.getLabel());
+
+ if (patternDescr.getParams() != null)
+ pattern.setParams(patternDescr.getParams());
+
+ if (patternDescr.getPrior() != null)
+ pattern.setPrior(patternDescr.getPrior());
return pattern;
}
Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java 2009-06-10 06:46:19 UTC (rev 26892)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java 2009-06-10 06:47:23 UTC (rev 26893)
@@ -134,6 +134,8 @@
rule.setEntailMode(attributeDescr.getValue());
} else if ( name.equals( "filter_str" ) ) {
rule.setFilterStrategy(attributeDescr.getValue());
+ } else if ( name.equals( "kind" ) ) {
+ rule.setModusPonensKind(attributeDescr.getValue());
}
}
Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DRL.g
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2009-06-10 06:46:19 UTC (rev 26892)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2009-06-10 06:47:23 UTC (rev 26893)
@@ -768,6 +768,7 @@
| prior
| entail_mode
| filter
+ | kind
;
finally {
if (isEditorInterfaceEnabled && isFailed) {
@@ -857,10 +858,13 @@
{ emit($STRING, DroolsEditorType.STRING_CONST ); }
;
+kind
+ : kind_key^ { emit(Location.LOCATION_RULE_HEADER_KEYWORD); } STRING
+ { emit($STRING, DroolsEditorType.STRING_CONST ); }
+ ;
-
normal_lhs_block
: lhs*
-> ^(VT_AND_IMPLICIT lhs*)
@@ -1272,66 +1276,107 @@
+//or_constr
+// :
+// or_constr_config
+//
+// (DOUBLE_PIPE^
+// and_constr
+// )*
+//
+// ;
+//
+//or_constr_config
+// :
+// (and_constr SINGLE_PIPE) =>
+// and_constr
+// SINGLE_PIPE
+// //square_chunk?
+// //constr_identifier?
+// //cut?
+// constr_parameters
+// and_constr
+// -> ^(SINGLE_PIPE
+// // square_chunk? ^(VT_CONSTRID constr_identifier)? cut?
+// constr_parameters?
+// and_constr and_constr)
+// |
+// and_constr
+// ;
+
+
+//
+//and_constr
+// :
+// and_constr_config
+// (DOUBLE_AMPER^
+// unary_constr
+// )*
+// ;
+//
+//and_constr_config
+// :
+// (unary_constr SINGLE_AMPER) =>
+// unary_constr
+// SINGLE_AMPER
+// //square_chunk?
+// //constr_identifier?
+// //cut?
+// constr_parameters?
+// unary_constr
+// -> ^(SINGLE_AMPER
+// // square_chunk? ^(VT_CONSTRID constr_identifier)? cut?
+// constr_parameters?
+// unary_constr unary_constr)
+// |
+// unary_constr
+// ;
+
+
+
+
+
or_constr
- :
- or_constr_config
+ :
+ and_constr
- (DOUBLE_PIPE^
- and_constr
- )*
+ (DOUBLE_PIPE^
+ constr_parameters?
+ or_constr_follow
+ )?
;
-or_constr_config
- :
- (and_constr SINGLE_PIPE) =>
- and_constr
- SINGLE_PIPE
- //square_chunk?
- //constr_identifier?
- //cut?
- constr_parameters
- and_constr
- -> ^(SINGLE_PIPE
- // square_chunk? ^(VT_CONSTRID constr_identifier)? cut?
- constr_parameters?
- and_constr and_constr)
- |
- and_constr
- ;
+or_constr_follow
+ : and_constr
+ (DOUBLE_PIPE^
+ or_constr_follow
+ )?
+ ;
+
and_constr
-
- :
- and_constr_config
+ :
+ unary_constr
- (DOUBLE_AMPER^
- unary_constr
- )*
-
-
+ (DOUBLE_AMPER^
+ constr_parameters?
+ and_constr_follow
+ )?
+ //-> ^(VT_AND_RESTR constr_parameters? unary_constr and_constr_follow?)
;
-and_constr_config
- :
- (unary_constr SINGLE_AMPER) =>
- unary_constr
- SINGLE_AMPER
- //square_chunk?
- //constr_identifier?
- //cut?
- constr_parameters?
- unary_constr
- -> ^(SINGLE_AMPER
- // square_chunk? ^(VT_CONSTRID constr_identifier)? cut?
- constr_parameters?
- unary_constr unary_constr)
- |
- unary_constr
- ;
+and_constr_follow
+ : unary_constr
+ (DOUBLE_AMPER^
+ and_constr_follow
+ )?
+ ;
+
+
/*
or_constr
:
@@ -2745,6 +2790,13 @@
;
+kind_key
+ : {(validateIdentifierKey(DroolsSoftKeywords.KIND))}?=> id=ID
+ { emit($id, DroolsEditorType.KEYWORD); }
+ -> VK_KIND[$id]
+ ;
+
+
salience_key
: {(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))}?=> id=ID
{ emit($id, DroolsEditorType.KEYWORD); }
@@ -2950,12 +3002,7 @@
{ emit($id, DroolsEditorType.KEYWORD); }
-> VK_CUT[$id]
;
-
-kind_key
- : {(validateIdentifierKey(DroolsSoftKeywords.KIND))}?=> id=ID
- { emit($id, DroolsEditorType.KEYWORD); }
- -> VK_KIND[$id]
- ;
+
args_key
: {(validateIdentifierKey(DroolsSoftKeywords.ARGS))}?=> id=ID
Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g 2009-06-10 06:46:19 UTC (rev 26892)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g 2009-06-10 06:47:23 UTC (rev 26893)
@@ -207,6 +207,7 @@
| ^(attrName=VK_PRIOR value=VT_PAREN_CHUNK)
| ^(attrName=VK_ENTAIL value=STRING)
| ^(attrName=VK_FILTER value=STRING)
+ | ^(attrName=VK_KIND value=STRING)
)
{ $attributeDescr = factory.createAttribute($attrName, $value); }
;
@@ -412,7 +413,7 @@
| ^((DOUBLE_PIPE | SINGLE_PIPE) attribs=constraint_attributes? left=fact_expression right=fact_expression )
{ $descr = factory.createOrRestrictionConnective($left.descr, $right.descr, attribs); }
- | ^((DOUBLE_AMPER | SINGLE_AMPER) attribs=constraint_attributes? left=fact_expression right=fact_expression )
+ | ^(( DOUBLE_AMPER | SINGLE_AMPER) left=fact_expression attribs=constraint_attributes? right=fact_expression )
{ $descr = factory.createAndRestrictionConnective($left.descr, $right.descr, attribs);
}
More information about the jboss-svn-commits
mailing list