Ancestry.QueryProcessor.Type.BaseIntegerType.EmitBinaryOperator C# (CSharp) Method

EmitBinaryOperator() protected method

protected EmitBinaryOperator ( MethodContext method, Compiler compiler, ExpressionContext left, ExpressionContext right, Parse expression ) : void
method Ancestry.QueryProcessor.Compile.MethodContext
compiler Compiler
left Ancestry.QueryProcessor.Compile.ExpressionContext
right Ancestry.QueryProcessor.Compile.ExpressionContext
expression Parse
return void
        protected override void EmitBinaryOperator(MethodContext method, Compiler compiler, ExpressionContext left, ExpressionContext right, Parse.BinaryExpression expression)
        {
            switch (expression.Operator)
            {
                case Parse.Operator.Power:
                    var intPower = typeof(Runtime.Runtime).GetMethod("IntPower", new[] { typeof(int), typeof(int) });
                    if (intPower == null)
                        throw new NotSupportedException();
                    left.EmitGet(method);
                    right.EmitGet(method);
                    method.IL.EmitCall(OpCodes.Call, intPower, null);
                    break;

                default:
                    base.EmitBinaryOperator(method, compiler, left, right, expression);
                    break;
            }
        }