docs: def block(self):
          """
          block      : { (newline) statements } (newline)
          """
          statements = []
          self.eat(TokenTypes.LBRACE)
          if self.cur_token.type == TokenTypes.NEW_LINE:
              self.eat(TokenTypes.NEW_LINE)
          while self.cur_token.type != TokenTypes.RBRACE:
              statements.append(self.statement())
          self.eat(TokenTypes.RBRACE)
          if self.cur_token.type == TokenTypes.NEW_LINE:
              self.eat(TokenTypes.NEW_LINE)
          return Block(statements)