...
def interpret(self, expression):
possible_parameters = {'commands': self.commands,
'expression': expression, 'variables': self.variables}
try:
command = self.commands.match(expression)
args = self._get_args(command.execute)
params = self._find_parameters(possible_parameters, args)
return command.execute(**params)
except Exception, e:
return e
return 'null'
...