Search in sources :

Example 16 with ASTPrinter

use of de.be4.classicalb.core.parser.visualisation.ASTPrinter in project probparsers by bendisposto.

the class AbstractTest method parseInput.

protected Start parseInput(final String input, final boolean debugOutput) throws BException {
    if (debugOutput) {
        System.out.println();
        System.out.println();
    }
    final EventBParser parser = new EventBParser();
    final Start rootNode = parser.parse(input, debugOutput);
    if (debugOutput) {
        rootNode.apply(new ASTPrinter());
    }
    return rootNode;
}
Also used : Start(de.be4.eventbalg.core.parser.node.Start) EventBParser(de.be4.eventbalg.core.parser.EventBParser) ASTPrinter(de.be4.eventbalg.core.parser.analysis.ASTPrinter)

Example 17 with ASTPrinter

use of de.be4.classicalb.core.parser.visualisation.ASTPrinter in project probparsers by bendisposto.

the class EventBParser method main.

public static void main(final String[] args) {
    if (args.length < 1) {
        System.err.println("usage: BParser [options] <BMachine file>");
        System.err.println();
        System.err.println("Available options are:");
        System.err.println(CLI_SWITCH_VERBOSE + "\t\tVerbose output during lexing and parsing");
        System.err.println(CLI_SWITCH_TIME + "\t\tOutput time used for complete parsing process.");
        System.err.println(CLI_SWITCH_AST + "\t\tPrint AST on standard output.");
        System.err.println(CLI_SWITCH_UI + "\t\tShow AST as Swing UI.");
        System.exit(-1);
    }
    try {
        final long start = System.currentTimeMillis();
        final EventBParser parser = new EventBParser();
        final Start tree = parser.parseFile(new File(args[args.length - 1]), isCliSwitchSet(args, CLI_SWITCH_VERBOSE));
        final long end = System.currentTimeMillis();
        System.out.println();
        if (isCliSwitchSet(args, CLI_SWITCH_TIME)) {
            System.out.println("Time for parsing: " + (end - start) + "ms");
        }
        if (isCliSwitchSet(args, CLI_SWITCH_AST)) {
            System.out.println("AST:");
            tree.apply(new ASTPrinter());
        }
        if (isCliSwitchSet(args, CLI_SWITCH_UI)) {
            tree.apply(new ASTDisplay());
        }
    } catch (final IOException e) {
        System.err.println();
        System.err.println("Error reading input file: " + e.getLocalizedMessage());
        System.exit(-2);
    } catch (final BException e) {
        System.err.println();
        System.err.println("Error parsing input file: " + e.getLocalizedMessage());
        System.exit(-3);
    }
}
Also used : Start(de.be4.eventb.core.parser.node.Start) ASTPrinter(de.be4.eventb.core.parser.analysis.ASTPrinter) ASTDisplay(de.be4.eventb.core.parser.analysis.ASTDisplay) IOException(java.io.IOException) File(java.io.File)

Aggregations

Start (de.be4.classicalb.core.parser.node.Start)14 BParser (de.be4.classicalb.core.parser.BParser)8 Ast2String (util.Ast2String)7 ASTPrinter (de.be4.classicalb.core.parser.visualisation.ASTPrinter)6 Test (org.junit.Test)5 BLexer (de.be4.classicalb.core.parser.BLexer)3 EOF (de.be4.classicalb.core.parser.node.EOF)3 Token (de.be4.classicalb.core.parser.node.Token)3 File (java.io.File)3 IOException (java.io.IOException)3 PushbackReader (java.io.PushbackReader)3 StringReader (java.io.StringReader)3 ASTPrinter (de.be4.eventbalg.core.parser.analysis.ASTPrinter)2 Start (de.be4.eventbalg.core.parser.node.Start)2 Helpers.getTreeAsString (util.Helpers.getTreeAsString)2 LexerException (de.be4.classicalb.core.parser.lexer.LexerException)1 ParserException (de.be4.classicalb.core.parser.parser.ParserException)1 ASTDisplay (de.be4.classicalb.core.parser.visualisation.ASTDisplay)1 ASTDisplay (de.be4.eventb.core.parser.analysis.ASTDisplay)1 ASTPrinter (de.be4.eventb.core.parser.analysis.ASTPrinter)1