/// <summary> /// Prints the parse list for debugging information. /// </summary> public static void PrintParseList(iroParser.CompileUnitContext tree, iroParser parser) { //Printing parse tree. Console.WriteLine("ANTLR Parse Tree:"); Console.WriteLine(tree.ToStringTree(parser)); Console.WriteLine("-\nStatement Length: " + tree.block().Length); Console.WriteLine(""); }
/// <summary> /// Runs the Iro emulator with a given input. /// </summary> public static Dictionary <string, IroVariable> Run(string input) { //Create input stream & lexer. var s_chars = new AntlrInputStream(input); var s_lexer = new iroLexer(s_chars); //Make tokens and parser. var s_tokens = new CommonTokenStream(s_lexer); var s_parse = new iroParser(s_tokens); //Parse, execute the visitor. s_parse.BuildParseTree = true; var s_tree = s_parse.compileUnit(); var visitor = new IroVisitor(); visitor.VisitCompileUnit(s_tree); return(IroScope.Variables); }