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); } }
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); } }