diff --git a/interp.py b/interp.py index 9cb2b38..94f56e0 100644 --- a/interp.py +++ b/interp.py @@ -50,7 +50,11 @@ args = [] for arg in ast.arguments: args.append(self.resolve_value(arg)) - return getattr(subject, "verb_" + ast.verb)(args) + verb = getattr(subject, "verb_" + ast.verb, None) + if verb: + return verb(args) + else: + raise InterpreterError("Unknown verb %s for subject %s" % (ast.verb, subject.__class__.__name__)) def run_set(self, ast): self.env[ast.subject] = self.run_statement(ast.statement)