public static XzaarType CreateTypeFromStructExpression(StructExpression typeExpression) { var newType = new XzaarTypeBuilder(typeExpression.Name, null, Any, Any, null); foreach (var f in typeExpression.Fields) { if (f is FieldExpression fn) { newType.AddField(fn.Type, fn.Name); } } return(newType); }
static XzaarBaseTypes() { _boolean = new XzaarTypeBuilder("bool", null, Any, Any); _void = new XzaarTypeBuilder("void", null, null, null); _any = new XzaarTypeBuilder("any", null, null, null); _number = new XzaarTypeBuilder("number", null, Any, Any); _i8 = new XzaarTypeBuilder("i8", null, Number, Number); _i16 = new XzaarTypeBuilder("i16", null, Number, Number); _i32 = new XzaarTypeBuilder("i32", null, Number, Number); _i64 = new XzaarTypeBuilder("i64", null, Number, Number); _u8 = new XzaarTypeBuilder("u8", null, Number, Number); _u16 = new XzaarTypeBuilder("u16", null, Number, Number); _u32 = new XzaarTypeBuilder("u32", null, Number, Number); _u64 = new XzaarTypeBuilder("u64", null, Number, Number); _f32 = new XzaarTypeBuilder("f32", null, Number, Number); _f64 = new XzaarTypeBuilder("f64", null, Number, Number); _string = new XzaarTypeBuilder("string", null, Any, Any); _char = new XzaarTypeBuilder("char", null, Any, Any); _date = new XzaarTypeBuilder("date", null, Any, Any); _array = new XzaarTypeBuilder("array", null, Any, Any, Any); _stringArray = new XzaarTypeBuilder("string[]", null, Any, Any, String); _numberArray = new XzaarTypeBuilder("number[]", null, Any, Any, Number); _booleanArray = new XzaarTypeBuilder("bool[]", null, Any, Any, Boolean); _charArray = new XzaarTypeBuilder("char[]", null, Any, Any, Char); _anyArray = new XzaarTypeBuilder("any[]", null, Any, Any, Any); _dateArray = new XzaarTypeBuilder("date[]", null, Any, Any, Date); BaseTypes = new List <XzaarType>(new[] { Void, Any, Boolean, Number, String, Char, Date, Array, StringArray, NumberArray, BooleanArray, CharArray, DateArray, AnyArray }); // add type fields _string.AddField(XzaarBaseTypes.Number, "Length"); _array.AddField(XzaarBaseTypes.Number, "Length"); _numberArray.AddField(XzaarBaseTypes.Number, "Length"); _booleanArray.AddField(XzaarBaseTypes.Number, "Length"); _charArray.AddField(XzaarBaseTypes.Number, "Length"); _anyArray.AddField(XzaarBaseTypes.Number, "Length"); _dateArray.AddField(XzaarBaseTypes.Number, "Length"); }