code: def expr(self):
          
          node = self.term()
  
          while self.token.nature in (Nature.PLUS, Nature.MINUS):
              token = self.token
              if token.nature == Nature.PLUS:
                  self._process(Nature.PLUS)
              elif token.nature == Nature.MINUS:
                  self._process(Nature.MINUS)
              else:
                  self._error()
  
              node = BinaryOperation(left=node, op=token, right=self.term())
  
          return node
docs: expr: term (('+' | '-') term)*