| 17609 | throw new python.Error(`Unknown kind '${kind.__class__.__name__}'.`); |
| 17610 | } |
| 17611 | getOperatorOverload(kind /*, ninputs */) { |
| 17612 | if (kind instanceof ast.Add) { |
| 17613 | return '__add__'; |
| 17614 | } else if (kind instanceof ast.Sub) { |
| 17615 | return '__sub__'; |
| 17616 | } else if (kind instanceof ast.Mult) { |
| 17617 | return '__mul__'; |
| 17618 | } |
| 17619 | /* |
| 17620 | case TK_UNARY_MINUS: return "__neg__"; |
| 17621 | case '~': return "__invert__"; |
| 17622 | case TK_POW: return "__pow__"; |
| 17623 | case '/': return "__truediv__"; |
| 17624 | case '%': return "__mod__"; |
| 17625 | case TK_NE: return "__ne__"; |
| 17626 | case TK_EQ: return "__eq__"; |
| 17627 | case '<': return "__lt__"; |
| 17628 | case '>': return "__gt__"; |
| 17629 | case TK_LE: return "__le__"; |
| 17630 | case TK_GE: return "__ge__"; |
| 17631 | case '&': return "__and__"; |
| 17632 | case '|': return "__or__"; |
| 17633 | case '^': return "__xor__"; |
| 17634 | case TK_IN: return "__contains__"; |
| 17635 | case TK_LSHIFT: return "__lshift__"; |
| 17636 | case TK_RSHIFT: return "__rshift__"; |
| 17637 | */ |
| 17638 | throw new python.Error(`Unknown kind '${kind.__class__.__name__}'.`); |
| 17639 | } |
| 17640 | emitBinaryOp(tree) { |
| 17641 | const inputs = [tree.left, tree.right]; |
| 17642 | const kind = this.getNodeKind(tree.op, inputs.length); |