public static void Run(string input, int expectedNumberOfWarnings, int expectedNumberOfErrors) { var AST = SimpleBuilder.Build(input); BiPaGe.SemanticAnalysis.SemanticAnalyzer analyzer = new BiPaGe.SemanticAnalysis.SemanticAnalyzer(); var events = analyzer.CheckSemantics(AST); int numberOfWarnings = 0; int numberOfErrors = 0; foreach (var e in events) { if (e is Warning) { numberOfWarnings++; } else if (e is Error) { numberOfErrors++; } } Assert.AreEqual(expectedNumberOfWarnings, numberOfWarnings); Assert.AreEqual(expectedNumberOfErrors, numberOfErrors); }
public SimpleOrder(SimpleBuilder builder) { CustomerName = builder.CustomerName; StoreName = builder.StoreName; CollectionType = builder.CollectionType; CustomerTelephoneNumber = builder.CustomerTelephoneNumber; }
public void SingleLevelMultipleValue() { var input = @" Object1 { field1 : i32; field2 : SomeOtherObject(field1 = 5, field2 = 1.23, field3 = ""Some string"", field4 = {1,2,3,4,5}, field5 = false); }"; var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Signed(null, 32), null, null)); object1.Fields.Add(("field2", new Identifier(null, "SomeOtherObject"), null, new BiPaGe.AST.Constants.ObjectConstant(null, new List <ObjectField> { new ObjectField("field1", new BiPaGe.AST.Literals.Integer(null, "5")), new ObjectField("field2", new BiPaGe.AST.Literals.Float(null, "1.23")), new ObjectField("field3", new BiPaGe.AST.Literals.StringLiteral(null, "Some string")), new ObjectField("field4", new LiteralCollection(null, new List <BiPaGe.AST.Literals.Literal> { new BiPaGe.AST.Literals.Integer(null, "1"), new BiPaGe.AST.Literals.Integer(null, "2"), new BiPaGe.AST.Literals.Integer(null, "3"), new BiPaGe.AST.Literals.Integer(null, "4"), new BiPaGe.AST.Literals.Integer(null, "5") })), new ObjectField("field5", new BiPaGe.AST.Literals.Boolean(null, "false")) }))); expected.Validate(SimpleBuilder.Build(input)); }
public void CollectionSizedByExpression() { var input = @" Object1 { size : int32; field2 : u32[(size - this) / 4]; }"; var expected = new ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("size", new Signed(null, 32), null, null)); var field2_size = new Division( null, new Subtraction( null, new FieldIdentifier(null, "size"), new This(null) ), new BiPaGe.AST.Literals.Integer(null, "4")); object1.Fields.Add(("field2", new Unsigned(null, 32), field2_size, null)); expected.Validate(SimpleBuilder.Build(input)); }
public void Signed() { var input = @" SomeEnumeration : i16 { value1 = -2, value2 = -1, value3 = 0, value4 = 1, value5 = 2 } Object1 { enum_field : SomeEnumeration; }"; var expected = new ProgramBuilder(); var enum1 = expected.AddEnumeration(); enum1.Name = "SomeEnumeration"; enum1.Type = new Signed(null, 16); enum1.Enumerators.Add(("value1", -2)); enum1.Enumerators.Add(("value2", -1)); enum1.Enumerators.Add(("value3", 0)); enum1.Enumerators.Add(("value4", 1)); enum1.Enumerators.Add(("value5", 2)); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("enum_field", new Identifier(null, "SomeEnumeration"), null, null)); expected.Validate(SimpleBuilder.Build(input)); }
public void DoubleEmbedded() { ; var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Signed(null, 16), null, null)); object1.Fields.Add(("field2", new Unsigned(null, 32), null, null)); var superembedded = new BiPaGe.AST.FieldTypes.InlineObject(null, new List <BiPaGe.AST.Field> { new Field(null, "nestnest1", new Utf8String(null), new BiPaGe.AST.Literals.Integer(null, "64"), null), new Field(null, "nestnest2", new Identifier(null, "SomeOtherObject"), null, null), new Field(null, "nestnest3", new Unsigned(null, 12), null, null), }); var embedded = new BiPaGe.AST.FieldTypes.InlineObject(null, new List <BiPaGe.AST.Field> { new Field(null, "embedded1", new Float(null, 32), null, null), new Field(null, "embedded2", new BiPaGe.AST.FieldTypes.Boolean(null), new BiPaGe.AST.Literals.Integer(null, "3"), null), new Field(null, "embedded_embedded", superembedded, null, null) }); object1.Fields.Add(("embedded_object", embedded, null, null)); expected.Validate(SimpleBuilder.Build("Object1{field1:int16;field2:u32;embedded_object:{embedded1:f32;embedded2:bool[3];embedded_embedded:{nestnest1:utf8_string[64];nestnest2:SomeOtherObject;nestnest3:u12;}};}")); }
public void SingleEmbedded() { var input = @" Object1 { field1 : int16; field2 : u32; embedded_object : { embedded1 : f32 ; embedded2 : bool[3] ; embedded3 : ascii_string[8]; }; }"; var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Signed(null, 16), null, null)); object1.Fields.Add(("field2", new Unsigned(null, 32), null, null)); var embedded = new BiPaGe.AST.FieldTypes.InlineObject(null, new List <BiPaGe.AST.Field> { new Field(null, "embedded1", new Float(null, 32), null, null), new Field(null, "embedded2", new BiPaGe.AST.FieldTypes.Boolean(null), new BiPaGe.AST.Literals.Integer(null, "3"), null), new Field(null, "embedded3", new AsciiString(null), new BiPaGe.AST.Literals.Integer(null, "8"), null), }); object1.Fields.Add(("embedded_object", embedded, null, null)); expected.Validate(SimpleBuilder.Build(input)); }
public void CollectionSizedByExpression2() { var input = @" Object1 { size : int32; size2 : int16; collection : bool[size + size2 - 10 * 5]; }"; var expected = new ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("size", new Signed(null, 32), null, null)); object1.Fields.Add(("size2", new Signed(null, 16), null, null)); var field3_size = new Subtraction( null, new Addition( null, new FieldIdentifier(null, "size"), new FieldIdentifier(null, "size2") ), new Multiplication( null, new BiPaGe.AST.Literals.Integer(null, "10"), new BiPaGe.AST.Literals.Integer(null, "5") )); object1.Fields.Add(("collection", new BiPaGe.AST.FieldTypes.Boolean(null), field3_size, null)); expected.Validate(SimpleBuilder.Build(input)); }
public void Standard() { var input = @" Object1 { enum_field : u8 { value1 = 1, value2 = 2, value3 = 0 }; }"; var expected = new ProgramBuilder(); var inline_enum = new BiPaGe.AST.FieldTypes.InlineEnumeration(null, new Unsigned(null, 8), new List <BiPaGe.AST.Enumerator> { new BiPaGe.AST.Enumerator(null, "value1", "1"), new BiPaGe.AST.Enumerator(null, "value2", "2"), new BiPaGe.AST.Enumerator(null, "value3", "0") }); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("enum_field", inline_enum, null, null)); expected.Validate(SimpleBuilder.Build(input)); }
private static void Main() { SimpleBuilder.Create().Id(1).Name("Riku").Age(17).Build().Show(); SimpleBuilder.Create().Id(2).Build().Show(); // (no name, no id) SimpleBuilder.Create().Id(3).Name("Kimi").Name("Maria").Build().Show(); // (no id, two names) Builder.Create().Id(4).Name("Aki").Build().Show(); Builder.Create().Name("Anna").Id(5).Build().Show(); Builder.Create().Name("Mika").Age(24).Id(6).Build().Show(); // Builder.Create().Id(7).Name("Masa").Name("Jarkko").Build(); // type error. (two names) // Builder.Create().Id(8).Build(); // type error. (no name) }
public void Basic() { var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Signed(null, 16), null, null)); object1.Fields.Add(("field2", new Unsigned(null, 32), null, null)); object1.Fields.Add(("field3", new Float(null, 32), null, null)); object1.Fields.Add(("field4", new Float(null, 64), null, null)); object1.Fields.Add(("field5", new BiPaGe.AST.FieldTypes.Boolean(null), null, null)); expected.Validate(SimpleBuilder.Build("Object1{field1:int16;field2:u32;field3:float32;field4:f64;field5:bool;}")); }
public void BasicTypes() { var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Unsigned(null, 32), null, new BiPaGe.AST.Literals.Integer(null, "500"))); object1.Fields.Add(("field2", new Signed(null, 16), null, new BiPaGe.AST.Literals.Integer(null, "-5"))); object1.Fields.Add(("field3", new Float(null, 32), null, new BiPaGe.AST.Literals.Float(null, "123.456"))); object1.Fields.Add(("field4", new Float(null, 64), null, new BiPaGe.AST.Literals.Float(null, "-3.14"))); object1.Fields.Add(("field5", new BiPaGe.AST.FieldTypes.Boolean(null), null, new BiPaGe.AST.Literals.Boolean(null, "true"))); object1.Fields.Add(("field6", new BiPaGe.AST.FieldTypes.Boolean(null), null, new BiPaGe.AST.Literals.Boolean(null, "false"))); expected.Validate(SimpleBuilder.Build("Object1{field1:uint32=500;field2:int16=-5;field3:float32=123.456;field4:float64=-3.14;field5:bool=true;field6:bool=false;}")); }
public void FloatPositive() { var input = @" Object1 { field1 : float32 = 123.456; }"; var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Float(null, 32), null, new BiPaGe.AST.Literals.Float(null, "123.456"))); expected.Validate(SimpleBuilder.Build(input)); }
public void Unsigned() { var input = @" Object1 { field1 : uint32 = 500; }"; var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Unsigned(null, 32), null, new BiPaGe.AST.Literals.Integer(null, "500"))); expected.Validate(SimpleBuilder.Build(input)); }
public void AsciiString() { var input = @" Object1 { field1 : ascii_string[64] = ""This is a string initializer""; }"; var expected = new ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new AsciiString(null), new BiPaGe.AST.Literals.Integer(null, "64"), new BiPaGe.AST.Literals.StringLiteral(null, "This is a string initializer"))); expected.Validate(SimpleBuilder.Build(input)); }
public void SignedPositive() { var input = @" Object1 { field1 : int16 = 5; }"; var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Signed(null, 16), null, new BiPaGe.AST.Literals.Integer(null, "5"))); expected.Validate(SimpleBuilder.Build(input)); }
public void FloatNegative() { var input = @" Object1 { field1 : float64 = -3.14; }"; var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Float(null, 64), null, new BiPaGe.AST.Literals.Float(null, "-3.14"))); expected.Validate(SimpleBuilder.Build(input)); }
public void CollectionSizedByField() { var input = @" Object1 { size : int32; field2 : ascii_string[size]; }"; var expected = new ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("size", new Signed(null, 32), null, null)); object1.Fields.Add(("field2", new AsciiString(null), new BiPaGe.AST.Identifiers.FieldIdentifier(null, "size"), null)); expected.Validate(SimpleBuilder.Build(input)); }
public void Bool() { var input = @" Object1 { field1 : bool = true; field2 : bool = false; }"; var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new BiPaGe.AST.FieldTypes.Boolean(null), null, new BiPaGe.AST.Literals.Boolean(null, "true"))); object1.Fields.Add(("field2", new BiPaGe.AST.FieldTypes.Boolean(null), null, new BiPaGe.AST.Literals.Boolean(null, "false"))); expected.Validate(SimpleBuilder.Build(input)); }
public void SingleEmbedded() { var input = @" Object1 { field1 : i32; field2 : SomeOtherObject; } "; var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Signed(null, 32), null, null)); object1.Fields.Add(("field2", new Identifier(null, "SomeOtherObject"), null, null)); expected.Validate(SimpleBuilder.Build(input)); }
public void ListOfIntegersSizedByExpression2() { var input = @" Object1 { size : int32; size2 : int16; collection : i32[size + size2 - 10 * 5] = {1,1,2,3,5,8,13,21,34,55}; }"; var expected = new ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("size", new Signed(null, 32), null, null)); object1.Fields.Add(("size2", new Signed(null, 16), null, null)); var field3_size = new Subtraction( null, new Addition( null, new FieldIdentifier(null, "size"), new FieldIdentifier(null, "size2") ), new Multiplication( null, new BiPaGe.AST.Literals.Integer(null, "10"), new BiPaGe.AST.Literals.Integer(null, "5") )); object1.Fields.Add(("collection", new BiPaGe.AST.FieldTypes.Signed(null, 32), field3_size, new LiteralCollection(null, new List <BiPaGe.AST.Literals.Literal>() { new BiPaGe.AST.Literals.Integer(null, "1"), new BiPaGe.AST.Literals.Integer(null, "1"), new BiPaGe.AST.Literals.Integer(null, "2"), new BiPaGe.AST.Literals.Integer(null, "3"), new BiPaGe.AST.Literals.Integer(null, "5"), new BiPaGe.AST.Literals.Integer(null, "8"), new BiPaGe.AST.Literals.Integer(null, "13"), new BiPaGe.AST.Literals.Integer(null, "21"), new BiPaGe.AST.Literals.Integer(null, "34"), new BiPaGe.AST.Literals.Integer(null, "55") }))); expected.Validate(SimpleBuilder.Build(input)); }
public void Reserved() { var input = @" Object1 { int32[5]; ascii_string[32]; utf8_string[255]; ascii_string[size]; u32[(size - this) / 4]; bool[size + size2 - 10 * 5]; }"; var expected = new ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add((null, new Signed(null, 32), new BiPaGe.AST.Literals.Integer(null, "5"), null)); object1.Fields.Add((null, new AsciiString(null), new BiPaGe.AST.Literals.Integer(null, "32"), null)); object1.Fields.Add((null, new Utf8String(null), new BiPaGe.AST.Literals.Integer(null, "255"), null)); object1.Fields.Add((null, new AsciiString(null), new BiPaGe.AST.Identifiers.FieldIdentifier(null, "size"), null)); var field5_size = new Division( null, new Subtraction( null, new FieldIdentifier(null, "size"), new This(null) ), new BiPaGe.AST.Literals.Integer(null, "4")); object1.Fields.Add((null, new Unsigned(null, 32), field5_size, null)); var field6_size = new Subtraction( null, new Addition( null, new FieldIdentifier(null, "size"), new FieldIdentifier(null, "size2") ), new Multiplication( null, new BiPaGe.AST.Literals.Integer(null, "10"), new BiPaGe.AST.Literals.Integer(null, "5") )); object1.Fields.Add((null, new BiPaGe.AST.FieldTypes.Boolean(null), field6_size, null)); expected.Validate(SimpleBuilder.Build(input)); }
public void Build_ReturnsANewInstanceOfTheTargetClass() { //---------------Set up test pack------------------- var builder = SimpleBuilder.Create(); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var simple1 = builder.Build(); var simple2 = builder.Build(); //---------------Test Result ----------------------- Expect(simple1).Not.To.Be.Null(); Expect(simple2).Not.To.Be.Null(); Expect(simple1).To.Be.An.Instance.Of <SimpleClass>(); Expect(simple2).To.Be.An.Instance.Of <SimpleClass>(); Expect(simple1).Not.To.Be(simple2); }
public void StaticallySizedCollection() { var input = @" Object1 { field1 : int32[5]; field2 : ascii_string[32]; field3 : utf8_string[255]; }"; var expected = new ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Signed(null, 32), new BiPaGe.AST.Literals.Integer(null, "5"), null)); object1.Fields.Add(("field2", new AsciiString(null), new BiPaGe.AST.Literals.Integer(null, "32"), null)); object1.Fields.Add(("field3", new Utf8String(null), new BiPaGe.AST.Literals.Integer(null, "255"), null)); expected.Validate(SimpleBuilder.Build(input)); }
public void Create_ReturnsANewInstanceOfTheBuilder() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var b1 = SimpleBuilder.Create(); var b2 = SimpleBuilder.Create(); //---------------Test Result ----------------------- Expect(b1).Not.To.Be.Null(); Expect(b2).Not.To.Be.Null(); Expect(b1).To.Be.An.Instance.Of <SimpleBuilder>(); Expect(b2).To.Be.An.Instance.Of <SimpleBuilder>(); Expect(b1).Not.To.Be(b2); }
public void Enumeration() { var expected = new ProgramBuilder(); var enum1 = expected.AddEnumeration(); enum1.Name = "SomeEnumeration"; enum1.Type = new Unsigned(null, 8); enum1.Enumerators.Add(("value1", 1)); enum1.Enumerators.Add(("value2", 2)); enum1.Enumerators.Add(("value3", 0)); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("enum_field", new Identifier(null, "SomeEnumeration"), null, null)); expected.Validate(SimpleBuilder.Build("SomeEnumeration : u8{value1=1,value2=2,value3=0}Object1{enum_field:SomeEnumeration;}")); }
public void TrippleLevelSingleValue() { var input = @" Object1 { field1 : i32; field2 : SomeOtherObject(parent.parent.field1 = 5); }"; var expected = new Helpers.ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new Signed(null, 32), null, null)); object1.Fields.Add(("field2", new Identifier(null, "SomeOtherObject"), null, new BiPaGe.AST.Constants.ObjectConstant(null, new List <ObjectField> { new ObjectField("parent.paernt.field1", new BiPaGe.AST.Literals.Integer(null, "5")) }))); expected.Validate(SimpleBuilder.Build(input)); }
public void SimpleBuilder_Create() { // Arrange var assemblerUnderTest = new SimpleBuilderAssembler(null); var builder = new SimpleBuilder() { Label = "test", Operator = "=" }; // Act var restored = assemblerUnderTest.Create(builder); // Assert Assert.IsNotNull(restored); Assert.IsInstanceOf<SimpleBuilderDTO>(restored); var dto = (SimpleBuilderDTO)restored; Assert.AreEqual(builder.Label, dto.Label); Assert.AreEqual(builder.Operator, dto.Operator); }
public void ListOfBooleans() { var input = @" Object1 { field1 : bool[3] = {true, false, true}; }"; var expected = new ProgramBuilder(); var object1 = expected.AddObject(); object1.Name = "Object1"; object1.Fields.Add(("field1", new BiPaGe.AST.FieldTypes.Boolean(null), new BiPaGe.AST.Literals.Integer(null, "3"), new LiteralCollection(null, new List <BiPaGe.AST.Literals.Literal>() { new BiPaGe.AST.Literals.Boolean(null, "true"), new BiPaGe.AST.Literals.Boolean(null, "false"), new BiPaGe.AST.Literals.Boolean(null, "true") }))); expected.Validate(SimpleBuilder.Build(input)); }
public static void BuildeAsset() { AssetDatabase.Refresh(); string buildFilter = "Assets/Prefabs/NewFolder/i/"; string[] directories = Directory.GetDirectories(buildFilter); List <GameObject> objs = new List <GameObject>(); for (int i = 0; i < directories.Length; i++) { GameObject go = AssetDatabase.LoadAssetAtPath <GameObject>(directories[i] + "/model.obj"); Texture2D texture = AssetDatabase.LoadAssetAtPath <Texture2D>(directories[i] + "/model.png"); MeshRenderer[] renders = go.GetComponentsInChildren <MeshRenderer>(true); for (int k = 0; k < renders.Length; k++) { renders[k].sharedMaterial.mainTexture = texture; } objs.Add(go); } Selection.objects = objs.ToArray(); Debug.LogWarning("SimpleBuilder.Start"); SimpleBuilder.SimpleBuildeSelectAsset(); Debug.LogWarning("SimpleBuilder.End"); //while (LoadedStack.Count > 0) //{ // ModelData data = LoadedStack.Pop(); // Texture2D texture = AssetDatabase.LoadAssetAtPath<Texture2D>(data.textureUrl); // GameObject prefab = AssetDatabase.LoadAssetAtPath<GameObject>(data.modelUrl); // Renderer[] renders = prefab.GetComponentsInChildren<Renderer>(); // for (int i = 0; i < renders.Length; i++) // { // renders[i].material.mainTexture = texture; // } // Debug.Log("加载完成" + data.modelUrl); // Selection.objects = new Object[] { prefab }; // SimpleBuilder.SimpleBuildeSelectAsset(); //} }