MCPcopy Create free account
hub / github.com/dabeaz/python-cookbook / Evaluator

Class Evaluator

src/8/implementing_the_visitor_pattern/example.py:50–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48# --- Example 1: An expression evaluator
49
50class Evaluator(NodeVisitor):
51 def visit_Number(self, node):
52 return node.value
53
54 def visit_Add(self, node):
55 return self.visit(node.left) + self.visit(node.right)
56
57 def visit_Sub(self, node):
58 return self.visit(node.left) - self.visit(node.right)
59
60 def visit_Mul(self, node):
61 return self.visit(node.left) * self.visit(node.right)
62
63 def visit_Div(self, node):
64 return self.visit(node.left) / self.visit(node.right)
65
66 def visit_Negate(self, node):
67 return -node.operand
68
69# --- Example 2: Generate stack instructions
70

Callers 1

example.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected