code: def comparison(self):
          
          node = self.expr()
  
          while self.token.nature in (
              Nature.EQ,
              Nature.NE,
              Nature.LE,
              Nature.GE,
              Nature.LT,
              Nature.GT,
          ):
              token = self.token
              if token.nature == Nature.EQ:
                  self._process(Nature.EQ)
              elif token.nature == Nature.NE:
                  self._process(Nature.NE)
              elif token.nature == Nature.LE:
                  self._process(Nature.LE)
              elif token.nature == Nature.GE:
                  self._process(Nature.GE)
              elif token.nature == Nature.LT:
                  self._process(Nature.LT)
              elif token.nature == Nature.GT:
                  self._process(Nature.GT)
              else:
                  self.error()
  
              node = BinaryOperation(left=node, op=token, right=self.expr())
  
          return node
docs: comparison: expr (('==' | '!=' | '<=' | '>=' | '<' | '>') expr)*