| | 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" ); |
| | } |
| | |