private PythonOperator GetBinaryOperator(OperatorToken token) {
switch (token.Kind) {
case TokenKind.Add: return PythonOperator.Add;
case TokenKind.Subtract: return PythonOperator.Subtract;
case TokenKind.Multiply: return PythonOperator.Multiply;
case TokenKind.Divide: return TrueDivision ? PythonOperator.TrueDivide : PythonOperator.Divide;
case TokenKind.Mod: return PythonOperator.Mod;
case TokenKind.BitwiseAnd: return PythonOperator.BitwiseAnd;
case TokenKind.BitwiseOr: return PythonOperator.BitwiseOr;
case TokenKind.ExclusiveOr: return PythonOperator.Xor;
case TokenKind.LeftShift: return PythonOperator.LeftShift;
case TokenKind.RightShift: return PythonOperator.RightShift;
case TokenKind.Power: return PythonOperator.Power;
case TokenKind.FloorDivide: return PythonOperator.FloorDivide;
default:
string message = String.Format(
System.Globalization.CultureInfo.InvariantCulture,
Resources.UnexpectedToken,
token.Kind);
Debug.Assert(false, message);
throw new ValueErrorException(message);
}
}