[jboss-svn-commits] JBL Code SVN: r10612 - labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Mar 29 08:45:49 EDT 2007
Author: mark.proctor at jboss.com
Date: 2007-03-29 08:45:49 -0400 (Thu, 29 Mar 2007)
New Revision: 10612
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DrlParser.java
Log:
-now uses AntlrReaderStream
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DrlParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DrlParser.java 2007-03-29 12:43:47 UTC (rev 10611)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DrlParser.java 2007-03-29 12:45:49 UTC (rev 10612)
@@ -22,6 +22,7 @@
import java.util.Iterator;
import java.util.List;
+import org.antlr.runtime.ANTLRReaderStream;
import org.antlr.runtime.ANTLRStringStream;
import org.antlr.runtime.RecognitionException;
import org.drools.lang.DRLLexer;
@@ -49,42 +50,24 @@
return parser.getPackageDescr();
}
+
+ public PackageDescr parse(final Reader reader) throws DroolsParserException {
+ final DRLParser parser = getParser( reader );
+ compile( parser );
+ return parser.getPackageDescr();
- private void compile(final DRLParser parser) throws DroolsParserException {
- try {
- parser.compilation_unit();
+ }
- makeErrorList( parser );
- } catch ( final RecognitionException e ) {
- throw new DroolsParserException( e );
- }
- }
- /** Convert the antlr exceptions to drools parser exceptions */
- private void makeErrorList(final DRLParser parser) {
- for ( final Iterator iter = parser.getErrors().iterator(); iter.hasNext(); ) {
- final RecognitionException recogErr = (RecognitionException) iter.next();
- final ParserError err = new ParserError( parser.createErrorMessage( recogErr ),
- recogErr.line,
- recogErr.charPositionInLine );
- this.results.add( err );
- }
- }
+// /** Parse and build a rule package from a DRL source */
+// public PackageDescr parse(final Reader reader) throws IOException,
+// DroolsParserException {
+// DRLParser parser =
+//
+// //final StringBuffer text = getDRLText( reader );
+// //return parse( text.toString() );
+// }
- /**
- * @return An instance of a RuleParser should you need one (most folks will not).
- */
- private DRLParser getParser(final String text) {
- return new DRLParser( new SwitchingCommonTokenStream( new DRLLexer( new ANTLRStringStream( text ) ) ) );
- }
-
- /** Parse and build a rule package from a DRL source */
- public PackageDescr parse(final Reader reader) throws IOException,
- DroolsParserException {
- final StringBuffer text = getDRLText( reader );
- return parse( text.toString() );
- }
-
/**
* Parse and build a rule package from a DRL source with a
* domain specific language.
@@ -147,4 +130,40 @@
public List getErrors() {
return this.results;
}
+
+ private void compile(final DRLParser parser) throws DroolsParserException {
+ try {
+ parser.compilation_unit();
+
+ makeErrorList( parser );
+ } catch ( final RecognitionException e ) {
+ throw new DroolsParserException( e );
+ }
+ }
+
+ /** Convert the antlr exceptions to drools parser exceptions */
+ private void makeErrorList(final DRLParser parser) {
+ for ( final Iterator iter = parser.getErrors().iterator(); iter.hasNext(); ) {
+ final RecognitionException recogErr = (RecognitionException) iter.next();
+ final ParserError err = new ParserError( parser.createErrorMessage( recogErr ),
+ recogErr.line,
+ recogErr.charPositionInLine );
+ this.results.add( err );
+ }
+ }
+
+ /**
+ * @return An instance of a RuleParser should you need one (most folks will not).
+ */
+ private DRLParser getParser(final String text) {
+ return new DRLParser( new SwitchingCommonTokenStream( new DRLLexer( new ANTLRStringStream( text ) ) ) );
+ }
+
+ private DRLParser getParser(final Reader reader) {
+ try {
+ return new DRLParser( new SwitchingCommonTokenStream( new DRLLexer( new ANTLRReaderStream( reader ) ) ) );
+ }catch (Exception e) {
+ throw new RuntimeException( "Unable to parser Reader", e);
+ }
+ }
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list