code: def statement(self):
          
          if self.token.nature == Nature.DEF:
              node = self.function_declaration()
          elif self.token.nature == Nature.LET:
              node = self.variable_declaration()
          elif self.token.nature in (Nature.MUT, Nature.ID):
              node = self.expression_statement()
          elif self.token.nature == Nature.IF:
              node = self.if_statement()
          elif self.token.nature == Nature.WHILE:
              node = self.while_statement()
          elif self.token.nature == Nature.RETURN:
              node = self.jump_statement()
          else:
              node = self._error()
  
          return node
docs: statement: function_declaration
                   | variable_declaration
                   | expression_statement
                   | if_statement
                   | while_statement
                   | jump_statement