List of usage examples for org.antlr.v4.runtime.tree ParseTreeVisitor visit
T visit(ParseTree tree);
From source file:io.cloudchaser.murmur.Murmur.java
License:Open Source License
/** * /*from w ww . j a v a 2 s. c o m*/ * @param args */ public static void main(String[] args) { try { Reader reader = new BufferedReader(new FileReader(args[0])); ANTLRInputStream input = new ANTLRInputStream(reader); MurmurLexer lexer = new MurmurLexer(input); TokenStream tokens = new CommonTokenStream(lexer); MurmurParser parser = new MurmurParser(tokens); // Build a symbol table for the file. ParseTreeVisitor visitor = new MurmurASTVisitor(); visitor.visit(parser.compilationUnit()); } catch (IOException ex) { Logger.getLogger(Murmur.class.getName()).log(Level.SEVERE, null, ex); } catch (MurmurError err) { // Output an error message. System.err.printf("Murmur Error: %1$s%n", err.getMessage()); System.err.printf("(%1$s @Line %2$d)%n", args[0], err.getLineNumber()); System.err.printf(">\t%1$s%n%n", err.getLineText()); // Display the call stack. if (err.getCallStack() != null) { err.getCallStack().stream().forEach((object) -> { System.err.printf("@ Line %1$d:\t%2$s%n", object.getDeclaringLine(), object.getMethodSignature()); }); System.err.println(); } // Exit with error code. System.exit(1); } }
From source file:io.viewserver.expression.AntlrExpressionParser.java
License:Apache License
@Override public <TResult> TResult parse(String expressionText, ParseTreeVisitor<TResult> parseTreeVisitor, BitSet columnsUsed) {//from w w w .j av a2 s . c o m ExpressionLexer lexer = new ExpressionLexer(new ANTLRInputStream(expressionText)); ExpressionParser parser = new ExpressionParser(new CommonTokenStream(lexer)); ExpressionParser.ParseContext parse = parser.parse(); TResult result = parseTreeVisitor.visit(parse); if (columnsUsed != null && parseTreeVisitor instanceof IColumnTrackingExpressionVisitor) { columnsUsed.or(((IColumnTrackingExpressionVisitor) parseTreeVisitor).getColumnsUsed()); } return result; }