Esempio n. 1
0
 public ILChainIfCondition(ILGenerator il, ILGenerationHandler condition)
 {
     _chain = new ILChainIf(il)
     {
         Condition = condition
     };
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 public ILEnumerateSnippet(ILPointer enumerable, ILGenerationHandler <ILPointer> iterateBody)
 {
     _enumerable  = enumerable;
     _iterateBody = new DelegatedILHandler <ILPointer>(iterateBody);
 }
Esempio n. 6
0
 public ILChainIfElse Else(ILGenerationHandler body)
 {
     _chain.ElseBody = body;
     return new ILChainIfElse(_chain);
 }
Esempio n. 7
0
 public WhileLoopILCode(ILGenerationHandler conditionHandler, ILGenerationHandler bodyHandler)
 {
     _conditionHandler = new DelegatedILHandler(conditionHandler);
     _bodyHandler = new DelegatedILHandler(bodyHandler);
 }
Esempio n. 8
0
 public ILChainIfThen Then(ILGenerationHandler body)
 {
     _chain.Body = body;
     return new ILChainIfThen(_chain);
 }
Esempio n. 9
0
 public static void WhileLoop(this ILGenerator il, ILGenerationHandler conditionHandler, ILGenerationHandler bodyHandler)
 {
     il.Generate(new ILWhileLoopSnippet(conditionHandler, bodyHandler));
 }
Esempio n. 10
0
 public ILWhileLoopSnippet(ILGenerationHandler conditionHandler, ILGenerationHandler bodyHandler)
 {
     _conditionHandler = new DelegatedILHandler(conditionHandler);
     _bodyHandler      = new DelegatedILHandler(bodyHandler);
 }
Esempio n. 11
0
 public ILChainIfElse Else(ILGenerationHandler body)
 {
     _chain.ElseBody = body;
     return(new ILChainIfElse(_chain));
 }
Esempio n. 12
0
 public DelegatedILHandler(ILGenerationMethodHandler <T> handler, ILGenerationHandler <T> parameterlessHandler)
 {
     _handler = handler;
     _parameterlessHandler = parameterlessHandler;
 }
Esempio n. 13
0
 public DelegatedILHandler(ILGenerationHandler <T> parameterlessHandler)
     : this(null, parameterlessHandler)
 {
 }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
 public ILChainIfCondition(ILExpressed il, ILGenerationHandler condition)
 {
     _chain = new ILChainIf(il) {
         Condition = condition
     };
 }
Esempio n. 16
0
 public ILChainIfThen Then(ILGenerationHandler body)
 {
     _chain.Body = body;
     return(new ILChainIfThen(_chain));
 }
Esempio n. 17
0
 public static void Enumerate(this ILGenerator il, ILPointer enumerable, ILGenerationHandler <ILPointer> iterateBody)
 {
     il.Generate(new ILEnumerateSnippet(enumerable, iterateBody));
 }