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