예제 #1
0
 /// <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("");
 }
예제 #2
0
        /// <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);
        }