+ // binary operators: overloading is possible [ECMA-335 §10.3.2]
+ case "op_Addition": // static R operator+ (T1, T2)
+ case "op_Subtraction": // static R operator- (T1, T2)
+ case "op_Multiply": // static R operator* (T1, T2)
+ case "op_Division": // static R operator/ (T1, T2)
+ case "op_Modulus": // static R operator% (T1, T2)
+ case "op_ExclusiveOr": // static R operator^ (T1, T2)
+ case "op_BitwiseAnd": // static R operator& (T1, T2)
+ case "op_BitwiseOr": // static R operator| (T1, T2)
+ case "op_LogicalAnd": // static R operator&& (T1, T2)
+ case "op_LogicalOr": // static R operator|| (T1, T2)
+ case "op_Assign": // static R operator= (T1, T2)
+ case "op_LeftShift": // static R operator<< (T1, T2)
+ case "op_RightShift": // static R operator>> (T1, T2)
+ case "op_SignedRightShift": // static R operator>> (T1, T2)
+ case "op_UnsignedRightShift": // static R operator>>> (T1, T2)
+ case "op_Equality": // static bool operator== (T1, T2)
+ case "op_GreaterThan": // static bool operator> (T1, T2)
+ case "op_LessThan": // static bool operator< (T1, T2)
+ case "op_Inequality": // static bool operator!= (T1, T2)
+ case "op_GreaterThanOrEqual": // static bool operator>= (T1, T2)
+ case "op_LessThanOrEqual": // static bool operator<= (T1, T2)
+ case "op_UnsignedRightShiftAssignment": // static R operator>>>= (T1, T2)
+ case "op_MemberSelection": // static R operator-> (T1, T2)
+ case "op_RightShiftAssignment": // static R operator>>= (T1, T2)
+ case "op_MultiplicationAssignment": // static R operator*= (T1, T2)
+ case "op_PointerToMemberSelection": // static R operator->* (T1, T2)
+ case "op_SubtractionAssignment": // static R operator-= (T1, T2)
+ case "op_ExclusiveOrAssignment": // static R operator^= (T1, T2)
+ case "op_LeftShiftAssignment": // static R operator<<= (T1, T2)
+ case "op_ModulusAssignment": // static R operator%= (T1, T2)
+ case "op_AdditionAssignment": // static R operator+= (T1, T2)
+ case "op_BitwiseAndAssignment": // static R operator&= (T1, T2)
+ case "op_BitwiseOrAssignment": // static R operator|= (T1, T2)
+ case "op_Comma": // static R operator, (T1, T2)
+ case "op_DivisionAssignment": // static R operator/= (T1, T2)
+ default: // If all else fails, assume it can be overridden...whatever it is.