code: def logical_not_expr(self):
          
          if self.token.nature == Nature.NOT:
              token = self.token
              self._process(Nature.NOT)
              return UnaryOperation(op=token, right=self.logical_not_expr())
          else:
              return self.comparison()
docs: logical_not_expr: 'not' logical_not_expr
                          | comparison