public void Compile(string PascalCode) { Build = ""; con.Clear(); ErrorMessage.Clear(); var tokens = lexer.TokenizeResult(PascalCode); ErrorMessage.AddRange(tokens.Errors.Select(p => p.Message)); var tree = ast.EvaluateResult(tokens.Result); Tree = tree.Result; ErrorMessage.AddRange(tree.Errors.Select(p => p.Message)); var symbols = analyzer.CheckSyntaxResult(tree.Result); ErrorMessage.AddRange(symbols.Errors.Select(p => p.Message)); if (ErrorMessage.Any()) { StateHasChanged(); return; } CSharpCode = csharp.VisitNode(tree.Result); interpreter.Interpret(tree.Result); Output = con.Output; this.StateHasChanged(); }