static void Main(string[] args) { // в зависимости от наличия параметров командной строки разбираем // либо файл с именем, переданным первым параметром, либо стандартный ввод ICharStream input = args.Length == 1 ? (ICharStream) new ANTLRFileStream(args[0]) : (ICharStream) new ANTLRReaderStream(Console.In); MyGrammarLexer lexer = new MyGrammarLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); MyGrammarParser parser = new MyGrammarParser(tokens); ITree program = (ITree)parser.execute().Tree; //AstNodePrinter.Print(program); //AstNodePrinter.Print(program); Semantic semantic = new Semantic(program); AstNodePrinter.Print(program); Codegenerator gen = new Codegenerator(); dynamic root = program; string output = gen.Start(root, semantic.Context.MethodList, semantic.Context.Vars); Console.WriteLine(output); FileWorker file = new FileWorker(); file.WriteToFile(output); Console.Read(); }