Beispiel #1
0
 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();
 }
Beispiel #2
0
 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));
 }