def logical_and_expr(self):
        """
        logical_and_expr: logical_not_expr ('and' logical_not_expr)*
        """
        node = self.logical_not_expr()

        while self.token.nature == Nature.AND:
            token = self.token
            self._process(Nature.AND)

            node = BinaryOperation(left=node, op=token, right=self.logical_not_expr())

        return node
logical_and_expr: logical_not_expr ('and' logical_not_expr)*