public ILChainIfCondition(ILGenerator il, ILGenerationHandler condition) { _chain = new ILChainIf(il) { Condition = condition }; }
public void ForLoop(ILCodeParameter initialValue, ILCodeParameter lesserThan, ILCodeParameter increment, ILGenerationHandler<ILCodeParameter> body) { var loop = new ForLoopILCode(initialValue, value => { _il.Var.Load(value); _il.Var.Load(lesserThan); _il.Gen.Emit(OpCodes.Clt); }, body, increment); _il.Generate(loop); }
public ForLoopILCode(ILCodeParameter initialValue, ILGenerationHandler<ILCodeParameter> conditionHandler, ILGenerationHandler<ILCodeParameter> bodyHandler, ILCodeParameter increment) { if (initialValue.ParameterType != increment.ParameterType) throw new ArgumentException("The type of the initial value and the increment value must match"); _initialValue = initialValue; _increment = increment; _conditionHandler = new DelegatedILHandler<ILCodeParameter>(conditionHandler); _bodyHandler = new DelegatedILHandler<ILCodeParameter>(bodyHandler); }
public ILForLoopSnippet(ILPointer initialValue, ILGenerationHandler <ILPointer> conditionHandler, ILGenerationHandler <ILPointer> bodyHandler, ILPointer increment) { if (initialValue.Type != increment.Type) { throw new ArgumentException("The type of the initial value and the increment value must match"); } _initialValue = initialValue; _increment = increment; _conditionHandler = new DelegatedILHandler <ILPointer>(conditionHandler); _bodyHandler = new DelegatedILHandler <ILPointer>(bodyHandler); }
public ILEnumerateSnippet(ILPointer enumerable, ILGenerationHandler <ILPointer> iterateBody) { _enumerable = enumerable; _iterateBody = new DelegatedILHandler <ILPointer>(iterateBody); }
public ILChainIfElse Else(ILGenerationHandler body) { _chain.ElseBody = body; return new ILChainIfElse(_chain); }
public WhileLoopILCode(ILGenerationHandler conditionHandler, ILGenerationHandler bodyHandler) { _conditionHandler = new DelegatedILHandler(conditionHandler); _bodyHandler = new DelegatedILHandler(bodyHandler); }
public ILChainIfThen Then(ILGenerationHandler body) { _chain.Body = body; return new ILChainIfThen(_chain); }
public static void WhileLoop(this ILGenerator il, ILGenerationHandler conditionHandler, ILGenerationHandler bodyHandler) { il.Generate(new ILWhileLoopSnippet(conditionHandler, bodyHandler)); }
public ILWhileLoopSnippet(ILGenerationHandler conditionHandler, ILGenerationHandler bodyHandler) { _conditionHandler = new DelegatedILHandler(conditionHandler); _bodyHandler = new DelegatedILHandler(bodyHandler); }
public ILChainIfElse Else(ILGenerationHandler body) { _chain.ElseBody = body; return(new ILChainIfElse(_chain)); }
public DelegatedILHandler(ILGenerationMethodHandler <T> handler, ILGenerationHandler <T> parameterlessHandler) { _handler = handler; _parameterlessHandler = parameterlessHandler; }
public DelegatedILHandler(ILGenerationHandler <T> parameterlessHandler) : this(null, parameterlessHandler) { }
public static void ForLoop(this ILGenerator il, ILPointer initialValue, ILPointer lesserThan, ILPointer increment, ILGenerationHandler <ILPointer> body) { var loop = new ILForLoopSnippet(initialValue, value => { il.Load(value); il.Load(lesserThan); il.Emit(OpCodes.Clt); }, body, increment); il.Generate(loop); }
public ILChainIfCondition(ILExpressed il, ILGenerationHandler condition) { _chain = new ILChainIf(il) { Condition = condition }; }
public ILChainIfThen Then(ILGenerationHandler body) { _chain.Body = body; return(new ILChainIfThen(_chain)); }
public static void Enumerate(this ILGenerator il, ILPointer enumerable, ILGenerationHandler <ILPointer> iterateBody) { il.Generate(new ILEnumerateSnippet(enumerable, iterateBody)); }