public override void LoadValue( TracingILGenerator il, bool shouldBeAddress ) { il.TraceWriteLine( "// Load->: {0}", this ); this.DoConditionalInstruction( il, () => this._thenExpression.LoadValue( il, shouldBeAddress ), () => this._elseExpression.LoadValue( il, shouldBeAddress ) ); il.TraceWriteLine( "// ->Load: {0}", this ); }
public override void StoreValue( TracingILGenerator il ) { il.TraceWriteLine( "// Stor->: {0}", this ); this.DoConditionalInstruction( il, () => this._thenExpression.StoreValue( il ), () => this._elseExpression.StoreValue( il ) ); il.TraceWriteLine( "// ->Stor: {0}", this ); }
public override void Evaluate( TracingILGenerator il ) { il.TraceWriteLine( "// Eval->: {0}", this ); this.DoConditionalInstruction( il, () => this._thenExpression.Evaluate( il ), () => this._elseExpression.Evaluate( il ) ); il.TraceWriteLine( "// ->Eval: {0}", this ); }
public override void Evaluate( TracingILGenerator il ) { il.TraceWriteLine( "// Eval->: {0}", this ); foreach ( var statement in this._statements ) { statement.Evaluate( il ); } il.TraceWriteLine( "// ->Eval: {0}", this ); }
public override void Evaluate( TracingILGenerator il ) { if ( this._isLocal && this._index < 0 ) { il.TraceWriteLine( "// Eval->: {0}", this ); this._index = il.DeclareLocal( this.ContextType.ResolveRuntimeType(), this._name ).LocalIndex; il.TraceWriteLine( "// ->Eval: {0}", this ); } }
public sealed override void Branch( TracingILGenerator il, Label @else ) { il.TraceWriteLine( "// Brnc->: {0}", this ); if ( this.ContextType != typeof( bool ) ) { throw new InvalidOperationException( String.Format( CultureInfo.CurrentCulture, "Cannot branch with non boolean type '{0}'.", this.ContextType ) ); } this.BranchCore( il, @else ); il.TraceWriteLine( "// ->Brnc: {0}", this ); }
public override void StoreValue( TracingILGenerator il ) { il.TraceWriteLine( "// Stor->: {0}", this ); if ( this._instance != null ) { this._instance.LoadValue( il, this._instance.ContextType.GetIsValueType() ); } this._value.LoadValue( il, false ); il.EmitStfld( this._field ); il.TraceWriteLine( "// ->Stor: {0}", this ); }
public override void LoadValue( TracingILGenerator il, bool shouldBeAddress ) { this.Evaluate( il ); il.TraceWriteLine( "// Load->: {0}", this ); if ( this.ContextType.ResolveRuntimeType().GetIsValueType() && shouldBeAddress ) { if ( this._isLocal ) { il.EmitAnyLdloca( this._index ); } else { il.EmitAnyLdarga( this._index ); } } else { if ( this._isLocal ) { il.EmitAnyLdloc( this._index ); } else { il.EmitAnyLdarg( this._index ); } } il.TraceWriteLine( "// ->Load: {0}", this ); }
public override void LoadValue( TracingILGenerator il, bool shouldBeAddress ) { il.TraceWriteLine( "// Load->: {0}", this ); if ( this._instance != null ) { this._instance.LoadValue( il, this._instance.ContextType.GetIsValueType() ); } if ( shouldBeAddress ) { il.EmitLdflda( this._field ); } else { il.EmitLdfld( this._field ); } il.TraceWriteLine( "// ->Load: {0}", this ); }
public override void LoadValue( TracingILGenerator il, bool shouldBeAddress ) { if ( this._statements.Length == 0 ) { base.LoadValue( il, shouldBeAddress ); return; } il.TraceWriteLine( "// Eval(Load)->: {0}", this ); for ( var i = 0; i < this._statements.Length - 1; i++ ) { this._statements[ i ].Evaluate( il ); } this._statements.Last().LoadValue( il, shouldBeAddress ); il.TraceWriteLine( "// ->Eval(Load): {0}", this ); }
public override void Branch( TracingILGenerator il, Label @else ) { il.TraceWriteLine( "// Brnc->: {0}", this ); foreach ( var expression in this._expressions ) { expression.LoadValue( il, false ); il.EmitBrfalse( @else ); } il.TraceWriteLine( "// ->Brnc: {0}", this ); }
public override void LoadValue( TracingILGenerator il, bool shouldBeAddress ) { il.TraceWriteLine( "// Load->: {0}", this ); this.Evaluate( il, shouldBeAddress ); il.TraceWriteLine( "// ->Load: {0}", this ); }
public override void Evaluate( TracingILGenerator il ) { il.TraceWriteLine( "// Eval->: {0}", this ); this.Evaluate( il, false ); il.TraceWriteLine( "// ->Eval: {0}", this ); }
public override void LoadValue( TracingILGenerator il, bool shouldBeAddress ) { il.TraceWriteLine( "// Load->: {0}", this ); this._operation( il, this._left, this._right ); il.TraceWriteLine( "// ->Load: {0}", this ); }
public override void Evaluate( TracingILGenerator il ) { il.TraceWriteLine( "// Eval->: {0}", this ); this._operation( il, this._left, this._right ); il.TraceWriteLine( "// ->Eval: {0}", this ); }
public override void StoreValue( TracingILGenerator il ) { il.TraceWriteLine( "// Stor->: {0}", this ); if ( !this._isLocal ) { throw new InvalidOperationException( "Cannot overwrite argument." ); } il.EmitAnyStloc( this._index ); il.TraceWriteLine( "// ->Stor: {0}", this ); }
public override void LoadValue( TracingILGenerator il, bool shouldBeAddress ) { il.TraceWriteLine( "// Stor->: {0}", this ); this._operation( il, this._input ); il.TraceWriteLine( "// ->Stor: {0}", this ); }
public override void Evaluate( TracingILGenerator il ) { il.TraceWriteLine( "// Eval->: {0}", this ); this._instruction( il ); il.TraceWriteLine( "// ->Eval: {0}", this ); }
public override void StoreValue( TracingILGenerator il ) { il.TraceWriteLine( "// Stor->: {0}", this ); this._instruction( il ); il.TraceWriteLine( "// ->Stor: {0}", this ); }