Example usage for org.antlr.v4.runtime ParserRuleContext toStringTree

List of usage examples for org.antlr.v4.runtime ParserRuleContext toStringTree

Introduction

In this page you can find the example usage for org.antlr.v4.runtime ParserRuleContext toStringTree.

Prototype

@Override
public String toStringTree(Parser recog) 

Source Link

Document

Print out a whole tree, not just a node, in LISP format (root child1 ..

Usage

From source file:dijkstra.utility.DijkstraTreeDisplayer.java

License:Open Source License

/**
 * Call this routine to display the parse tree. Hit ENTER on the console to continue.
 *//*from  ww  w  . j a  v  a2 s .c o m*/
public static void showTree(DijkstraParser parser, ParserRuleContext tree) {
    {
        System.out.println(tree.toStringTree(parser));
        final List<String> ruleNames = Arrays.asList(parser.getRuleNames());
        final TreeViewer tv = new TreeViewer(ruleNames, tree);
        final JFrame frame = new JFrame("Parse Tree");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(tv);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
        final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        try {
            br.readLine();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

From source file:dsl.utility.DijkstraTreeDisplayer.java

License:Open Source License

/**
 * Call this routine to display the parse tree. Hit ENTER on the console to continue.
 *//*from w w w  .j av a  2 s .  c o  m*/
public static void showTree(DSLParser parser, ParserRuleContext tree) {
    {
        System.out.println(tree.toStringTree(parser));
        List<String> ruleNames = Arrays.asList(parser.getRuleNames());
        TreeViewer tv = new TreeViewer(ruleNames, tree);
        JFrame frame = new JFrame("Parse Tree");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(tv);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        try {
            br.readLine();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

From source file:org.smallpearl.compiler.Compiler.java

License:BSD License

public static void main(String[] args) throws Exception {
    int i;//from  w  w  w.ja  v a 2  s  . c  o m
    if (args.length < 1) {
        printHelp();
        return;
    }

    if (!checkAndProcessArguments(args)) {
        return;
    }

    for (i = 0; i < inputFiles.size(); i++) {
        SmallPearlLexer lexer = null;
        try {
            lexer = new SmallPearlLexer(new ANTLRFileStream(inputFiles.get(i)));
        } catch (IOException ex) {
            System.out.println("Error:" + ex.getMessage());
            System.exit(-2);
        }

        CommonTokenStream tokens = new CommonTokenStream(lexer);
        SmallPearlParser parser = new SmallPearlParser(tokens);
        parser.setBuildParseTree(true);

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Start Analysis
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        System.out.println("Start compiling of:" + inputFiles.get(i).toString());

        System.out.println("Performing syntax check");

        ParserRuleContext tree = parser.program();

        System.out.flush();

        if (printAST) {
            System.out.println("Parse tree:");
            System.out.println(tree.toStringTree(parser));
        }

        if (inspectAST) {
            System.out.println("Inspect Parse tree:");
            // visualize parse tree in dialog box
            tree.inspect(parser);
            System.out.println("Press any key");
            try {
                int ch = System.in.read();
            } catch (IOException ex) {
            }
        }

        if (dumpDFA) {
            parser.dumpDFA();
        }

        if (parser.getNumberOfSyntaxErrors() <= 0) {
            BuildSymbolTableVisitor buildSymbolTableVisitor = new BuildSymbolTableVisitor(verbose);
            buildSymbolTableVisitor.visit(tree);

            if (!nosemantic) {
                SemanticCheckVisitor semanticCheckVisitor = new SemanticCheckVisitor(verbose);
                semanticCheckVisitor.visit(tree);
            }

            if (exportSystemPart) {
                SystemPartExport(lexer.getSourceName(), tree);
            }

            //                try {
            CppGenerate(lexer.getSourceName(), tree);
            /*                }
                            catch(Exception ex) {
            System.err.println(ex.getMessage());
            System.err.println("Compilation aborted.");
                    
            if ( stacktrace )  {
                System.err.println( getStackTrace(ex));
            }
                    
            System.exit(-1);
                            }
            */
            if (dumpSymbolTable) {
                SymbolTable symtab = SymbolTable.getSymbolTable();
                System.out.println(symtab);
                symtab.getGlobalsDeclarations();
            }
        }

        noOfErrors = parser.getNumberOfSyntaxErrors();

        System.out.flush();
        System.out.println("Number of errors in " + inputFiles.get(i) + " encountered: " + noOfErrors);

        if (noOfErrors == 0) {
            System.exit(0);
        } else {
            System.exit(1);
        }
    }
}