private static IEnumerable<BinaryOperatorSignature> GetBuiltInSignatures(BinaryOperatorKind kind)
{
switch (kind)
{
case BinaryOperatorKind.Multiply:
return BuiltInMultiplySignatures;
case BinaryOperatorKind.Divide:
return BuiltInDivideSignatures;
case BinaryOperatorKind.Modulo:
return BuiltInModulusSignatures;
case BinaryOperatorKind.Add:
return BuiltInAddSignatures;
case BinaryOperatorKind.Subtract:
return BuiltInSubSignatures;
case BinaryOperatorKind.Equal:
return BuiltInEqualSignatures;
case BinaryOperatorKind.NotEqual:
return BuiltInNotEqualSignatures;
case BinaryOperatorKind.Less:
return BuiltInLessSignatures;
case BinaryOperatorKind.LessEqual:
return BuiltInLessOrEqualSignatures;
case BinaryOperatorKind.Greater:
return BuiltInGreaterSignatures;
case BinaryOperatorKind.GreaterEqual:
return BuiltInGreaterOrEqualSignatures;
case BinaryOperatorKind.BitwiseXor:
return BuiltInBitXorSignatures;
case BinaryOperatorKind.BitwiseAnd:
return BuiltInBitAndSignatures;
case BinaryOperatorKind.BitwiseOr:
return BuiltInBitOrSignatures;
case BinaryOperatorKind.LeftShift:
return BuiltInLeftShiftSignatures;
case BinaryOperatorKind.RightShift:
return BuiltInRightShiftSignatures;
case BinaryOperatorKind.LogicalAnd:
return BuiltInLogicalAndSignatures;
case BinaryOperatorKind.LogicalOr:
return BuiltInLogicalOrSignatures;
default:
throw new ArgumentOutOfRangeException(nameof(kind), kind.ToString());
}
}
}