

def Compile(self, filter_implemention):
    'Compile the binary expression into a filter object.'
    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)

dataset/ETHPy150Open google/grr/grr/lib/lexer.py BinaryExpression.Compile/original