public void Kleins_ShouldProduceTextRepresentation_OfTheTokensOfAProgram() { var result = ScriptRunner.Execute(TestContext.CurrentContext.TestDirectory, @".\kleins.ps1 ..\..\Programs\scanner\reserved-words-and-symbols.kln"); ConsoleWriteLine.If(result.HasErrors, result.ToString()); Assert.That(result.HasErrors, Is.False); Assert.That(result.Output.Count, Is.EqualTo(23)); Assert.That(result.Output[0].ToString(), Is.EqualTo("IntegerType 'integer'")); }
public void Compiler_ShouldCompile_AllOfMyPrograms() { var folder = Path.Combine(TestContext.CurrentContext.TestDirectory, @"..\..\..\KleinPrograms"); var files = Directory.GetFiles(folder, "*.kln"); bool allPass = true; var result = new StringBuilder(); foreach (var file in files) { var input = File.ReadAllText(file); var frontEnd = new FrontEnd(); if (frontEnd.Compile(input) == null) { allPass = false; result.AppendLine($"{Path.GetFileName(file)}{frontEnd.ErrorRecord.FilePosition} {frontEnd.ErrorRecord}"); } } ConsoleWriteLine.If(allPass != true, result.ToString()); Assert.That(allPass, Is.True); }