Beispiel #1
0
        public ForLoopILCode(ILCodeParameter initialValue, ILGenerationMethodHandler<ILCodeParameter> conditionHandler,
            ILGenerationMethodHandler<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);
        }
Beispiel #2
0
        public ILForLoopSnippet(ILPointer initialValue, ILGenerationMethodHandler <ILPointer> conditionHandler,
                                ILGenerationMethodHandler <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);
        }
Beispiel #3
0
 public ILEnumerateSnippet(ILPointer enumerable, ILGenerationMethodHandler <ILPointer> iterateBody)
 {
     _enumerable  = enumerable;
     _iterateBody = new DelegatedILHandler <ILPointer>(iterateBody);
 }
Beispiel #4
0
 public ILDelegatedPointer(Type parameterType, ILGenerationMethodHandler valueLoader, ILGenerationMethodHandler valueAddressLoader)
 {
     Type                = parameterType;
     _valueLoader        = valueLoader;
     _valueAddressLoader = valueAddressLoader;
 }
Beispiel #5
0
 public ILDelegatedPointer(Type parameterType, ILGenerationMethodHandler valueLoader) : this(parameterType, valueLoader, null)
 {
 }
Beispiel #6
0
 public void WhileLoop(ILGenerationMethodHandler conditionHandler, ILGenerationMethodHandler bodyHandler)
 {
     _il.Generate(new WhileLoopILCode(conditionHandler,  bodyHandler));
 }
Beispiel #7
0
 public WhileLoopILCode(ILGenerationMethodHandler conditionHandler, ILGenerationMethodHandler bodyHandler)
 {
     _conditionHandler = new DelegatedILHandler(conditionHandler);
     _bodyHandler = new DelegatedILHandler(bodyHandler);
 }
Beispiel #8
0
 public ILWhileLoopSnippet(ILGenerationMethodHandler conditionHandler, ILGenerationMethodHandler bodyHandler)
 {
     _conditionHandler = new DelegatedILHandler(conditionHandler);
     _bodyHandler      = new DelegatedILHandler(bodyHandler);
 }
Beispiel #9
0
 public DelegatedILHandler(ILGenerationMethodHandler <T> handler, ILGenerationHandler <T> parameterlessHandler)
 {
     _handler = handler;
     _parameterlessHandler = parameterlessHandler;
 }
Beispiel #10
0
 public DelegatedILHandler(ILGenerationMethodHandler <T> handler)
     : this(handler, null)
 {
 }
 public static void WhileLoop(this ILGenerator il, ILGenerationMethodHandler conditionHandler, ILGenerationMethodHandler bodyHandler)
 {
     il.Generate(new ILWhileLoopSnippet(conditionHandler, bodyHandler));
 }
 public static void Enumerate(this ILGenerator il, ILPointer enumerable, ILGenerationMethodHandler <ILPointer> iterateBody)
 {
     il.Generate(new ILEnumerateSnippet(enumerable, iterateBody));
 }
 public ILCodeParameterDelegatable(Type parameterType, ILGenerationMethodHandler valueLoader, ILGenerationMethodHandler valueAddressLoader)
 {
     _parameterType = parameterType;
     _valueLoader = valueLoader;
     _valueAddressLoader = valueAddressLoader;
 }
 public ILCodeParameterDelegatable(Type parameterType, ILGenerationMethodHandler valueLoader)
     : this(parameterType, valueLoader, null)
 {
 }