Example usage for org.antlr.v4.runtime.tree ParseTreeVisitor visit

List of usage examples for org.antlr.v4.runtime.tree ParseTreeVisitor visit

Introduction

In this page you can find the example usage for org.antlr.v4.runtime.tree ParseTreeVisitor visit.

Prototype

T visit(ParseTree tree);

Source Link

Document

Visit a parse tree, and return a user-defined result of the operation.

Usage

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