(node)
| 72 | |
| 73 | print("Example 3") |
| 74 | def evaluate(node): |
| 75 | if isinstance(node, Integer): |
| 76 | return node.value |
| 77 | elif isinstance(node, Add): |
| 78 | return evaluate(node.left) + evaluate(node.right) |
| 79 | elif isinstance(node, Multiply): |
| 80 | return evaluate(node.left) * evaluate(node.right) |
| 81 | else: |
| 82 | raise NotImplementedError |
| 83 | |
| 84 | |
| 85 | print("Example 4") |