public void PascalInput_Should_CreateOutput(string input, string output) { var tokens = lexer.Tokenize(input.Trim()); var node = ast.Evaluate(tokens); table.CheckSyntax(node); var result = cSharp.VisitNode(node).Trim(); //result.Should().Be(output.Trim()); CompileCSharp.CompileExecutable2(output, "test").Should().BeTrue(); }
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(); }