static void Main(string[] args) { while (true) { Console.Write("> "); var line = Console.ReadLine(); if (string.IsNullOrWhiteSpace(line)) { return; } var parser = new ParserImplementation(line); var syntaxTree = parser.Parse(); var color = Console.ForegroundColor; PrettyPrint(syntaxTree.Root); if (!parser.Diagnostics.Any()) { var e = new Evaluator(syntaxTree.Root); float result = e.Evaluate(); Console.WriteLine(syntaxTree.Root); Console.WriteLine(result); } else { Console.ForegroundColor = ConsoleColor.Red; foreach (var diagnostic in parser.Diagnostics) { Console.Write(diagnostic); } Console.ForegroundColor = color; } var lexer = new Lexer(line); while (true) { var token = lexer.NextToken(); if (token.Kind == SyntaxKind.EndOfFileToken) { break; } Console.Write($"{token.Kind}: '{token.Text}' "); if (token.Value != null) { Console.WriteLine($" {token.Value}"); } Console.WriteLine(); } } }
public ClientEventHandler(ClientCommunicationHandler handler) { _handler = handler; _xmlParser = new ParserImplementation(); _shouldClose = false; }