[jboss-svn-commits] JBL Code SVN: r20046 - labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/xml/rules.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon May 19 13:43:15 EDT 2008
Author: porcelli
Date: 2008-05-19 13:43:15 -0400 (Mon, 19 May 2008)
New Revision: 20046
Modified:
labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/xml/rules/ExpressionHandler.java
Log:
Necessary changes to work with the new parser structure (Parser + TreeWalker)
Modified: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/xml/rules/ExpressionHandler.java
===================================================================
--- labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/xml/rules/ExpressionHandler.java 2008-05-19 17:41:32 UTC (rev 20045)
+++ labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/xml/rules/ExpressionHandler.java 2008-05-19 17:43:15 UTC (rev 20046)
@@ -23,10 +23,13 @@
import org.antlr.runtime.CommonTokenStream;
import org.antlr.runtime.RecognitionException;
import org.antlr.runtime.TokenStream;
+import org.antlr.runtime.tree.CommonTreeNodeStream;
+import org.antlr.runtime.tree.Tree;
+import org.drools.lang.DescrBuilderTree;
+import org.drools.lang.DroolsTreeAdaptor;
import org.drools.lang.DRLLexer;
import org.drools.lang.DRLParser;
import org.drools.lang.descr.BaseDescr;
-import org.drools.lang.descr.DeclarativeInvokerDescr;
import org.drools.lang.descr.FromDescr;
import org.drools.xml.BaseAbstractHandler;
import org.drools.xml.Configuration;
@@ -84,15 +87,24 @@
final Object parent = parser.getParent();
- final FromDescr fromSource = (FromDescr) parent;
+ FromDescr fromSource = null;
final CharStream charStream = new ANTLRStringStream( expression.trim() );
final DRLLexer lexer = new DRLLexer( charStream );
final TokenStream tokenStream = new CommonTokenStream( lexer );
final DRLParser drlParser = new DRLParser( tokenStream );
+ drlParser.setTreeAdaptor(new DroolsTreeAdaptor());
try {
- final DeclarativeInvokerDescr declarativeInvoker = drlParser.from_source( fromSource );
- fromSource.setDataSource( declarativeInvoker );
+ Tree fromSourceTree = (Tree) drlParser.from_source().getTree();
+ if (!drlParser.hasErrors()){
+ CommonTreeNodeStream nodes = new CommonTreeNodeStream(fromSourceTree);
+ nodes.setTokenStream(tokenStream);
+ DescrBuilderTree walker = new DescrBuilderTree(nodes);
+ fromSource = walker.from_source_clause();
+ } else {
+ throw new SAXParseException( "<" + localName + "> must have a valid expression content ",
+ parser.getLocator() );
+ }
} catch ( final RecognitionException e ) {
throw new SAXParseException( "<" + localName + "> must have a valid expression content ",
parser.getLocator() );
@@ -100,5 +112,4 @@
return null;
}
-
-}
+}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list