コード例 #1
0
        public ScriptTreeWalker(ScriptBuilder scriptBuilder, ScriptTutorialParser parser)
        {
            builder = scriptBuilder;

            var data = parser.scriptfile();

            if (data.IDENTIFIER().GetText() != "main")
            {
                throw new Exception("Top level function is not named main as expected.");
            }

            foreach (var statement in data.statement())
            {
                VisitStatement(statement);
            }
        }
コード例 #2
0
        public static void CompileScript(string inputpath, string outputpath)
        {
            using (var fs = new StreamReader(inputpath))
            {
                var input = new AntlrInputStream(fs);

                var lexer       = new ScriptTutorialLexer(input);
                var tokenStream = new CommonTokenStream(lexer);
                var parser      = new ScriptTutorialParser(tokenStream);

                var builder = new ScriptBuilder();
                var walker  = new ScriptTreeWalker(builder, parser);

                builder.OutputScriptFile(outputpath, true);
            }
        }