def Compile(self, filter_implemention):
    operator = self.operator.lower()
    if operator == "and" or operator == "&&":
      method = "AndFilter"
    elif operator == "or" or operator == "||":
      method = "OrFilter"
    else:
      raise ParseError("Invalid binary operator %s" % operator)

    args = [x.Compile(filter_implemention) for x in self.args]
    return getattr(filter_implemention, method)(*args)
Compile the binary expression into a filter object.
dataset/ETHPy150Open google/grr/grr/lib/lexer.py/BinaryExpression.Compile