Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/rxm.git

Added tree walker for parsing an rxm.

Author Dave Jarvis <email>
Date 2015-02-28 20:18:19 GMT-0800
Commit 7ddac6fd5b61614082cb98dcea4e5522d9c70fb5
Parent 996bdf6
Delta 25 lines added, 1 line removed, 24-line increase
source/java/com/whitemagicsoftware/rxm/Parser.java
import java.nio.file.Paths;
+import org.antlr.v4.runtime.ANTLRInputStream;
+import org.antlr.v4.runtime.CommonTokenStream;
+
+import org.antlr.v4.runtime.tree.ParseTreeWalker;
+
+import com.whitemagicsoftware.rxm.grammar.*;
+
/**
* Parses the expression into an abstract tree.
*/
-public class Parser {
+public class Parser extends QueryBaseListener {
/**
* Creates a Parser instance that parses a given <b>rxm</b> string.
*/
public Parser( String rxm ) throws ParserException {
+ QueryLexer lexer = new QueryLexer( new ANTLRInputStream( rxm ) );
+ CommonTokenStream tokens = new CommonTokenStream( lexer );
+
+ QueryParser parser = new QueryParser( tokens );
+ QueryParser.QueryContext context = parser.query();
+
+ ParseTreeWalker walker = new ParseTreeWalker();
+ walker.walk( this, context );
+ }
+
+ @Override
+ public void enterQuery( QueryParser.QueryContext context ) {
+ System.out.println( "Enter Query" );
+ }
+
+ public void exitQuery( QueryParser.QueryContext context ) {
+ System.out.println( "Exit Query" );
}