[jboss-svn-commits] JBL Code SVN: r14746 - in labs/jbossrules/trunk/drools-compiler/src/main: java/org/drools/lang/descr and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Aug 29 17:25:44 EDT 2007
Author: tirelli
Date: 2007-08-29 17:25:44 -0400 (Wed, 29 Aug 2007)
New Revision: 14746
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/MVELDumper.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java
labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g
Log:
JBRULES-1136: fixing bug when using boolean comparisons with nested accessors
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java 2007-08-29 19:51:13 UTC (rev 14745)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java 2007-08-29 21:25:44 UTC (rev 14746)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-08-28 11:00:44
+// $ANTLR 3.0 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-08-29 17:26:20
package org.drools.lang;
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java 2007-08-29 19:51:13 UTC (rev 14745)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java 2007-08-29 21:25:44 UTC (rev 14746)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-08-28 11:00:44
+// $ANTLR 3.0 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-08-29 17:26:19
package org.drools.lang;
import java.util.List;
@@ -5931,7 +5931,7 @@
accessor_path_return ap = null;
- String lc = null;
+ literal_constraint_return lc = null;
paren_chunk_return rvc = null;
@@ -6027,7 +6027,7 @@
if (failed) return rd;
if ( backtracking==0 ) {
- rd = new LiteralRestrictionDescr(op, lc);
+ rd = new LiteralRestrictionDescr(op, lc.text, lc.type );
}
@@ -6073,16 +6073,21 @@
}
// $ANTLR end expression_value
+ public static class literal_constraint_return extends ParserRuleReturnScope {
+ public String text;
+ public int type;
+ };
// $ANTLR start literal_constraint
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1541:1: literal_constraint returns [String text] : (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) ;
- public final String literal_constraint() throws RecognitionException {
- String text = null;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1541:1: literal_constraint returns [String text, int type] : (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) ;
+ public final literal_constraint_return literal_constraint() throws RecognitionException {
+ literal_constraint_return retval = new literal_constraint_return();
+ retval.start = input.LT(1);
Token t=null;
- text = null;
+ retval.text = null;
try {
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1545:2: ( (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) )
@@ -6117,7 +6122,7 @@
}
break;
default:
- if (backtracking>0) {failed=true; return text;}
+ if (backtracking>0) {failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("1545:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )", 71, 0, input);
@@ -6129,9 +6134,9 @@
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1545:6: t= STRING
{
t=(Token)input.LT(1);
- match(input,STRING,FOLLOW_STRING_in_literal_constraint4206); if (failed) return text;
+ match(input,STRING,FOLLOW_STRING_in_literal_constraint4206); if (failed) return retval;
if ( backtracking==0 ) {
- text = getString( t.getText() );
+ retval.text = getString( t.getText() ); retval.type = LiteralRestrictionDescr.TYPE_STRING;
}
}
@@ -6140,9 +6145,9 @@
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1546:5: t= INT
{
t=(Token)input.LT(1);
- match(input,INT,FOLLOW_INT_in_literal_constraint4217); if (failed) return text;
+ match(input,INT,FOLLOW_INT_in_literal_constraint4217); if (failed) return retval;
if ( backtracking==0 ) {
- text = t.getText();
+ retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_NUMBER;
}
}
@@ -6151,9 +6156,9 @@
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1547:5: t= FLOAT
{
t=(Token)input.LT(1);
- match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint4230); if (failed) return text;
+ match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint4230); if (failed) return retval;
if ( backtracking==0 ) {
- text = t.getText();
+ retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_NUMBER;
}
}
@@ -6162,9 +6167,9 @@
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1548:5: t= BOOL
{
t=(Token)input.LT(1);
- match(input,BOOL,FOLLOW_BOOL_in_literal_constraint4241); if (failed) return text;
+ match(input,BOOL,FOLLOW_BOOL_in_literal_constraint4241); if (failed) return retval;
if ( backtracking==0 ) {
- text = t.getText();
+ retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_BOOLEAN;
}
}
@@ -6173,9 +6178,9 @@
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1549:5: t= NULL
{
t=(Token)input.LT(1);
- match(input,NULL,FOLLOW_NULL_in_literal_constraint4253); if (failed) return text;
+ match(input,NULL,FOLLOW_NULL_in_literal_constraint4253); if (failed) return retval;
if ( backtracking==0 ) {
- text = null;
+ retval.text = null; retval.type = LiteralRestrictionDescr.TYPE_NULL;
}
}
@@ -6186,6 +6191,8 @@
}
+ retval.stop = input.LT(-1);
+
}
catch (RecognitionException re) {
reportError(re);
@@ -6193,7 +6200,7 @@
}
finally {
}
- return text;
+ return retval;
}
// $ANTLR end literal_constraint
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java 2007-08-29 19:51:13 UTC (rev 14745)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java 2007-08-29 21:25:44 UTC (rev 14746)
@@ -208,14 +208,16 @@
public void visitLiteralRestrictionDescr(final LiteralRestrictionDescr descr) {
this.template = "";
String text = descr.getText();
- if ( text == null ) {
+ if ( text == null || descr.getType() == LiteralRestrictionDescr.TYPE_NULL ) {
text = "null";
- } else {
+ } else if( descr.getType() == LiteralRestrictionDescr.TYPE_NUMBER ) {
try {
Integer.parseInt( text );
} catch ( final NumberFormatException e ) {
text = "\"" + text + "\"";
}
+ } else if( descr.getType() == LiteralRestrictionDescr.TYPE_STRING ) {
+ text = "\"" + text + "\"";
}
this.template = descr.getEvaluator() + " " + text;
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/MVELDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/MVELDumper.java 2007-08-29 19:51:13 UTC (rev 14745)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/MVELDumper.java 2007-08-29 21:25:44 UTC (rev 14746)
@@ -27,7 +27,6 @@
import org.drools.lang.descr.RestrictionConnectiveDescr;
import org.drools.lang.descr.ReturnValueRestrictionDescr;
import org.drools.lang.descr.VariableRestrictionDescr;
-import org.drools.spi.Evaluator;
import org.drools.util.ReflectiveVisitor;
/**
@@ -65,14 +64,16 @@
public void visitLiteralRestrictionDescr(final LiteralRestrictionDescr descr) {
String text = descr.getText();
- if ( text == null ) {
+ if ( text == null || descr.getType() == LiteralRestrictionDescr.TYPE_NULL ) {
text = "null";
- } else {
+ } else if( descr.getType() == LiteralRestrictionDescr.TYPE_NUMBER ) {
try {
Integer.parseInt( text );
} catch ( final NumberFormatException e ) {
text = "\"" + text + "\"";
}
+ } else if( descr.getType() == LiteralRestrictionDescr.TYPE_STRING ) {
+ text = "\"" + text + "\"";
}
this.template = processRestriction( descr.getEvaluator(), text );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java 2007-08-29 19:51:13 UTC (rev 14745)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java 2007-08-29 21:25:44 UTC (rev 14746)
@@ -22,17 +22,32 @@
* The "text" contains the content.
*/
public class LiteralRestrictionDescr extends RestrictionDescr {
+ public static final int TYPE_NULL = 1;
+ public static final int TYPE_NUMBER = 2;
+ public static final int TYPE_STRING = 3;
+ public static final int TYPE_BOOLEAN = 4;
+
/**
*
*/
private static final long serialVersionUID = 400L;
private String evaluator;
private String text;
+ private int type;
public LiteralRestrictionDescr(final String evaluator,
final String text) {
+ this( evaluator,
+ text,
+ TYPE_STRING );// default type is string if not specified
+ }
+
+ public LiteralRestrictionDescr(final String evaluator,
+ final String text,
+ final int type) {
this.text = text;
this.evaluator = evaluator;
+ this.type = type;
}
public String getEvaluator() {
@@ -47,4 +62,12 @@
return "[LiteralRestriction: " + this.evaluator + " " + this.text + "]";
}
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
}
\ No newline at end of file
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 2007-08-29 19:51:13 UTC (rev 14745)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-08-29 21:25:44 UTC (rev 14746)
@@ -1523,7 +1523,7 @@
}
| lc=literal_constraint
{
- $rd = new LiteralRestrictionDescr($op, $lc.text);
+ $rd = new LiteralRestrictionDescr($op, $lc.text, $lc.type );
}
| rvc=paren_chunk
{
@@ -1538,15 +1538,15 @@
}
;
-literal_constraint returns [String text]
+literal_constraint returns [String text, int type]
@init {
$text = null;
}
- : ( t=STRING { $text = getString( $t.text ); }
- | t=INT { $text = $t.text; }
- | t=FLOAT { $text = $t.text; }
- | t=BOOL { $text = $t.text; }
- | t=NULL { $text = null; }
+ : ( t=STRING { $text = getString( $t.text ); $type = LiteralRestrictionDescr.TYPE_STRING; }
+ | t=INT { $text = $t.text; $type = LiteralRestrictionDescr.TYPE_NUMBER; }
+ | t=FLOAT { $text = $t.text; $type = LiteralRestrictionDescr.TYPE_NUMBER; }
+ | t=BOOL { $text = $t.text; $type = LiteralRestrictionDescr.TYPE_BOOLEAN; }
+ | t=NULL { $text = null; $type = LiteralRestrictionDescr.TYPE_NULL; }
)
;
More information about the jboss-svn-commits
mailing list