Ejemplo n.º 1
0
        public void Group(TestData data)
        {
            var grouping = new BlockLineGrouping();
            var result   = grouping.Group(data.Input);

            AssertBlock(data.Output, result, label: "result");
        }
Ejemplo n.º 2
0
        public void CompileFile(TextFile file)
        {
            var raw      = Scanner.Scanner.ScanFile(file);
            var prepared = TokenPreparation.Apply(raw);
            var block    = new BlockLineGrouping().Group(prepared);
            var ast      = Parser.Parser.ParseBlock(block, InjectedContext);
            //var cppFileName = GetTempFileName(Path.GetFileNameWithoutExtension(file.Filename), extension: "cpp");
            var cppFileName = Path.ChangeExtension(file.Filename, extension: "cpp") ?? "test.cpp"; // use this for debugging cpp output

            using (var writer = File.CreateText(cppFileName)) {
                CppGenerator.Generate(writer, ast);
            }
            RunCppCompiler(cppFileName, Path.ChangeExtension(file.Filename, extension: "exe"));
        }