예제 #1
0
        public static void TranspileToDataSaveFileCheck(string input, string expectedOutput)
        {
            var definitionsRepository = new DefinitionsRepository();
            var parser = new SphereSharp.Sphere99.Parser();
            var parsingOutput = parser.ParseSaveFile(input);

            if (parsingOutput.Errors.Any())
            {
                Assert.Fail(parsingOutput.GetErrorsText());
            }

            new DefinitionsCollector(definitionsRepository).Visit(parsingOutput.Tree);

            var transpiler = new SphereSharp.Sphere99.Sphere56Transpiler.WorldTranspiler(definitionsRepository);
            var result = transpiler.Transpile(parsingOutput.Tree);

            result.Data.Trim().Should().Be(expectedOutput.Trim());
        }
예제 #2
0
        private static void TranspileCheck(string input, string expectedOutput, Func<string, SphereSharp.Sphere99.Parser, ParsingResult> parseFunc)
        {
            var definitionsRepository = new DefinitionsRepository();
            var parser = new SphereSharp.Sphere99.Parser();
            var parsingOutput = parseFunc(input, parser);

            if (parsingOutput.Errors.Any())
            {
                Assert.Fail(parsingOutput.GetErrorsText());
            }

            new DefinitionsCollector(definitionsRepository).Visit(parsingOutput.Tree);

            var transpiler = new SphereSharp.Sphere99.Sphere56TranspilerVisitor(definitionsRepository);
            transpiler.Visit(parsingOutput.Tree);


            transpiler.Output.Trim().Should().Be(expectedOutput.Trim());
        }