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()); } }
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)); }
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)); }
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); }
public IEnumerable <ILValue> CompileValues(TyonCompiler compiler) { return(GetTyonValues().Convert(v => v.CompileValue(compiler))); }
public override ILValue CompileValue(TyonCompiler compiler) { return(GetTyonObject().CompileLocal(compiler)); }
public override ILValue CompileValue(TyonCompiler compiler) { return(GetTyonType().GetSystemType(compiler)); }
public override ILValue CompileValue(TyonCompiler compiler) { return(GetTyonArray().CompileValue(compiler)); }
public ILValue CompileValue(TyonCompiler compiler) { return(GetTyonValue().CompileValue(compiler) .GetILConvertEX(GetTyonType().GetSystemType(compiler))); }
public override ILValue CompileValue(TyonCompiler compiler) { return(GetTyonSurrogate().CompileValue(compiler)); }
public abstract ILValue CompileValue(TyonCompiler compiler);
public void CompileInitialize(TyonCompiler compiler) { GetTyonValueList().IfNotNull(l => l.CompileInitialization(compiler)); }
public ILValue CompileInstanceSystemObject(TyonCompiler compiler) { return(CompileInstanceSystemObject(compiler, Empty.IEnumerable <ILValue>())); }
public abstract ILValue CompileInstanceSystemObject(TyonCompiler compiler, IEnumerable <ILValue> arguments);
public override ILValue CompileInstanceSystemObject(TyonCompiler compiler, IEnumerable <ILValue> arguments) { return(ILNull.INSTANCE); }
public virtual void CompileInitialize(TyonCompiler compiler) { }
public void CompilePushToSystemObject(ILLocal obj, TyonCompiler compiler) { GetTyonVariables().Process(v => v.CompilePushToSystemObject(obj, compiler)); }
public override void CompileInitialize(TyonCompiler compiler) { GetTyonSurrogate().CompileInitialize(compiler); }
public override ILValue CompileValue(TyonCompiler compiler) { return(ILNull.INSTANCE); }
public void CompileInitialize(TyonCompiler compiler) { GetTyonValue().CompileInitialize(compiler); }
public override ILValue CompileValue(TyonCompiler compiler) { return(compiler.ResolveInternalAddress(GetTyonAddress())); }
public override void CompileInitialize(TyonCompiler compiler) { GetTyonArray().CompileInitialize(compiler); }
public override ILValue CompileInstanceSystemObject(TyonCompiler compiler, IEnumerable <ILValue> arguments) { return(GetSystemType(compiler).IfNotNull(t => t.GetILNew(arguments))); }
public override ILValue CompileValue(TyonCompiler compiler) { return(GetDecimal().CreateILLiteral()); }
public void CompileInitialization(TyonCompiler compiler) { GetTyonValues().Process(v => v.CompileInitialize(compiler)); }
public override ILValue CompileValue(TyonCompiler compiler) { return(GetInt()); }
public override void CompileInitialize(TyonCompiler compiler) { GetTyonObject().CompileInitialize(compiler); }