Example #1
0
        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);
        }
Example #2
0
        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");
        }