def METHOD_NAME(self, node: ASTExpressionNode) -> str:
    """
    Prints a logical operator.
    :param op: a logical operator object
    :return: a string representation
    """
    op = node.get_binary_operator()
    lhs = self.print(node.get_lhs())
    rhs = self.print(node.get_rhs())
    if op.is_logical_and:
        return lhs + " && " + rhs
    if op.is_logical_or:
        return lhs + " || " + rhs
    raise RuntimeError("Cannot determine logical operator!")