[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