def evaluate(self, task, expression):
if isinstance(expression, Operator):<EOL><INDENT>return expression._matches(task)<EOL><DEDENT>else:<EOL><INDENT>return self._eval(task, expression, **task.data)<EOL><DEDENT>
Evaluate the given expression, within the context of the given task and
return the result.