static void Main() { try { // В качестве входного потока символов устанавливаем консольный ввод или содержимое файла // AntlrInputStream input = new AntlrInputStream(Console.In); AntlrFileStream input = new AntlrFileStream("Source.txt"); // Настраиваем лексер на этот поток CompilerLexer lexer = new CompilerLexer(input); // Создаем поток токенов на основе лексера tokens = new CommonTokenStream(lexer); // Создаем парсер CompilerParser parser = new CompilerParser(tokens); IParseTree tree = parser.compiler(); // Запускаем первое правило грамматики MyVisitor visitor = new MyVisitor(); // Запускаем обход дерева visitor.Visit(tree); } catch (Exception e) { Console.WriteLine(e.Message); } Console.ReadKey(); }
public static String compile() { var fileName = "C:\\temp\\code.txt"; StreamReader inputStream = new StreamReader(fileName); AntlrInputStream input = new AntlrInputStream(inputStream.ReadToEnd()); CompilerLexer lexer = new CompilerLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); CompilerParser parser = new CompilerParser(tokens); IParseTree tree = parser.program(); Console.WriteLine(tree.ToStringTree(parser)); var visitor = new MyVisitor(); return createJasminFile(visitor.Visit(tree)); }