Example #1
0
        public Operand AssignValue(Operand left, object right)
        {
            var operand = new AssignValueOperand(this.TypeLambda, this.IL, left, right);
            operand.WriteEmit(this);

            return operand;
        }
Example #2
0
        public Operand Assign(Operand left, Operand right)
        {
            var operand = new AssignOperand(this.TypeLambda, this.IL, left, right);
            operand.WriteEmit(this);

            return operand;
        }
Example #3
0
        public AssignValueOperand(ITypeLambda typeLambda, ILGenerator ilGenerator, Operand left, object right)
            : base(typeLambda, ilGenerator)
        {
            this.typeLambda = typeLambda;

            this.left  = left;
            this.right = right;
        }
Example #4
0
 /// <summary>	
 /// 	Emit Byte 코드를 씁니다. 
 /// </summary>
 /// <param name="codeLambda">	구현부 코드에 쓸 <see cref="ICodeLambda"/> 인터페이스를 구현하는 객체입니다. </param>
 /// <param name="operand">	The operand. </param>
 public virtual void WriteEmit(ICodeLambda codeLambda, Operand operand)
 {
     throw new NotSupportedException();
 }
Example #5
0
        public ICodeLambda Call(Operand operand)
        {
            operand.WriteEmit(this);

            return this;
        }
Example #6
0
 public Operand AssignValueToProperty(Operand left)
 {
     throw new NotImplementedException();
 }
Example #7
0
        public ICodeLambda Return(Operand operand)
        {
            operand.ReadEmit(this);
            this.IL.Emit(OpCodes.Ret);

            return this;
        }