Esempio n. 1
0
        public void CompilePushToSystemObject(ILValue obj, TyonCompiler compiler)
        {
            Variable variable;

            if (compiler.TryGetDesignatedVariable(obj.GetValueType(), GetId(), out variable))
            {
                compiler.AddStatement(variable.CompileSetContents(obj, GetTyonValue().CompileValue(compiler)));
            }
            else
            {
                compiler.LogMissingField(obj.GetValueType(), GetId());
            }
        }
Esempio n. 2
0
        public ILValue CompileValue(TyonCompiler compiler)
        {
            List <ILValue> values = GetTyonValueList()
                                    .IfNotNull(l => l.CompileValues(compiler))
                                    .ToList();

            Type element_type = IsExplicitlyTyped().ConvertBool(
                () => GetTyonType().GetSystemType(compiler),
                () => values.Convert(v => v.GetValueType()).GetCommonAncestor()
                );

            return(new ILNewPopulatedArray(element_type, values));
        }
Esempio n. 3
0
        public void CompileInitialize(TyonCompiler compiler)
        {
            ILLocal local = compiler.ResolveObject(this);

            if (local == null && GetTyonValueList() == null)
            {
                local = compiler.DefineLocal(
                    this,
                    GetTyonType().CompileInstanceSystemObject(compiler)
                    );
            }

            GetTyonValueList().IfNotNull(l => l.CompileInitialization(compiler));
            GetTyonVariables().Process(v => v.CompileInitialize(compiler));
        }
Esempio n. 4
0
        public ILLocal CompileLocal(TyonCompiler compiler)
        {
            ILLocal local = compiler.ResolveObject(this);

            if (local == null)
            {
                local = compiler.DefineLocal(
                    this,
                    GetTyonType().CompileInstanceSystemObject(compiler, GetTyonValueList().CompileValues(compiler))
                    );
            }

            CompilePushToSystemObject(local, compiler);
            return(local);
        }
Esempio n. 5
0
 public IEnumerable <ILValue> CompileValues(TyonCompiler compiler)
 {
     return(GetTyonValues().Convert(v => v.CompileValue(compiler)));
 }
Esempio n. 6
0
 public override ILValue CompileValue(TyonCompiler compiler)
 {
     return(GetTyonObject().CompileLocal(compiler));
 }
Esempio n. 7
0
 public override ILValue CompileValue(TyonCompiler compiler)
 {
     return(GetTyonType().GetSystemType(compiler));
 }
Esempio n. 8
0
 public override ILValue CompileValue(TyonCompiler compiler)
 {
     return(GetTyonArray().CompileValue(compiler));
 }
Esempio n. 9
0
 public ILValue CompileValue(TyonCompiler compiler)
 {
     return(GetTyonValue().CompileValue(compiler)
            .GetILConvertEX(GetTyonType().GetSystemType(compiler)));
 }
Esempio n. 10
0
 public override ILValue CompileValue(TyonCompiler compiler)
 {
     return(GetTyonSurrogate().CompileValue(compiler));
 }
Esempio n. 11
0
 public abstract ILValue CompileValue(TyonCompiler compiler);
Esempio n. 12
0
 public void CompileInitialize(TyonCompiler compiler)
 {
     GetTyonValueList().IfNotNull(l => l.CompileInitialization(compiler));
 }
Esempio n. 13
0
 public ILValue CompileInstanceSystemObject(TyonCompiler compiler)
 {
     return(CompileInstanceSystemObject(compiler, Empty.IEnumerable <ILValue>()));
 }
Esempio n. 14
0
 public abstract ILValue CompileInstanceSystemObject(TyonCompiler compiler, IEnumerable <ILValue> arguments);
Esempio n. 15
0
 public override ILValue CompileInstanceSystemObject(TyonCompiler compiler, IEnumerable <ILValue> arguments)
 {
     return(ILNull.INSTANCE);
 }
Esempio n. 16
0
 public virtual void CompileInitialize(TyonCompiler compiler)
 {
 }
Esempio n. 17
0
 public void CompilePushToSystemObject(ILLocal obj, TyonCompiler compiler)
 {
     GetTyonVariables().Process(v => v.CompilePushToSystemObject(obj, compiler));
 }
Esempio n. 18
0
 public override void CompileInitialize(TyonCompiler compiler)
 {
     GetTyonSurrogate().CompileInitialize(compiler);
 }
Esempio n. 19
0
 public override ILValue CompileValue(TyonCompiler compiler)
 {
     return(ILNull.INSTANCE);
 }
Esempio n. 20
0
 public void CompileInitialize(TyonCompiler compiler)
 {
     GetTyonValue().CompileInitialize(compiler);
 }
Esempio n. 21
0
 public override ILValue CompileValue(TyonCompiler compiler)
 {
     return(compiler.ResolveInternalAddress(GetTyonAddress()));
 }
Esempio n. 22
0
 public override void CompileInitialize(TyonCompiler compiler)
 {
     GetTyonArray().CompileInitialize(compiler);
 }
Esempio n. 23
0
 public override ILValue CompileInstanceSystemObject(TyonCompiler compiler, IEnumerable <ILValue> arguments)
 {
     return(GetSystemType(compiler).IfNotNull(t => t.GetILNew(arguments)));
 }
Esempio n. 24
0
 public override ILValue CompileValue(TyonCompiler compiler)
 {
     return(GetDecimal().CreateILLiteral());
 }
Esempio n. 25
0
 public void CompileInitialization(TyonCompiler compiler)
 {
     GetTyonValues().Process(v => v.CompileInitialize(compiler));
 }
Esempio n. 26
0
 public override ILValue CompileValue(TyonCompiler compiler)
 {
     return(GetInt());
 }
Esempio n. 27
0
 public override void CompileInitialize(TyonCompiler compiler)
 {
     GetTyonObject().CompileInitialize(compiler);
 }