public void MetaHeader() { var parser = new InitFileParser("BveTs Vehicle Parameters", BVE5FileKind.VehicleParametersFile); var tree = parser.Parse(@"BveTs Vehicle Parameters 1.00 [Cab] Color = #ff0066 ;This is a comment! DayTimeImage = imgs\test.png ", "<string>", true); var expected = new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Tree, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.SectionStmt, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Identifier, null) }), TypeDescriber.Create(NodeType.Statement, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Definition, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Identifier, null), TypeDescriber.Create(NodeType.Literal, null) }) }), TypeDescriber.Create(NodeType.Statement, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Definition, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Identifier, null), TypeDescriber.Create(NodeType.Literal, null) }) }) }) }; Assert.IsFalse(parser.HasErrors); Helpers.TestStructualEqual(expected.GetEnumerator(), tree); }
public void InitFileParser() { var parser = new InitFileParser("BveTs Vehicle Parameters", BVE5FileKind.VehicleParametersFile); var stmt = parser.ParseOneStatement("[Cab]"); var expected1 = new List<TypeDescriber>{ TypeDescriber.Create(NodeType.SectionStmt, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Identifier, null) }) }; Helpers.TestStructualEqual(expected1.GetEnumerator(), stmt); var stmt2 = parser.ParseOneStatement("driver = 100\n"); var expected2 = new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Statement, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Definition, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Identifier, null), TypeDescriber.Create(NodeType.Literal, null) }) }) }; Helpers.TestStructualEqual(expected2.GetEnumerator(), stmt2); var tree = parser.Parse(@"color = #33ffbb ;This is a comment MotorcarCount = 4 DayTimeImage = imgs\test.png ", "<string>"); var expected3 = new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Tree, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Statement, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Definition, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Identifier, null), TypeDescriber.Create(NodeType.Literal, null) }) }), TypeDescriber.Create(NodeType.Statement, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Definition, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Identifier, null), TypeDescriber.Create(NodeType.Literal, null) }) }), TypeDescriber.Create(NodeType.Statement, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Definition, new List<TypeDescriber>{ TypeDescriber.Create(NodeType.Identifier, null), TypeDescriber.Create(NodeType.Literal, null) }) }) }) }; Assert.IsFalse(tree.Errors.Any()); Helpers.TestStructualEqual(expected3.GetEnumerator(), tree); }
public void Invalid() { var parser = new InitFileParser("BveTs Vehicle Parameters", BVE5FileKind.VehicleParametersFile); var tree = parser.Parse("bvets vihecle params 1.00\n", "<invalid header>", true); Assert.IsTrue(parser.HasErrors && parser.Errors.Count() == 1); Assert.IsNull(tree); var parser2 = new InitFileParser("BveTs Vehicle Parameters", BVE5FileKind.VehicleParametersFile); var stmt = parser2.ParseOneStatement("[Cab\n"); Assert.IsTrue(parser2.HasErrors && parser2.Errors.Count() == 1); }