code: def parse(self):
      statements = self.doc_.statements
      while self.next_token_type_ is not None:
          self.advance_lexer_()
          if self.cur_token_ in PARSE_FUNCS.keys():
              func = getattr(self, PARSE_FUNCS[self.cur_token_])
              statements.append(func())
          elif self.is_cur_keyword_("END"):
              break
          else:
              raise VoltLibError(
                  "Expected " + ", ".join(sorted(PARSE_FUNCS.keys())),
                  self.cur_token_location_,
              )
      return self.doc_
  
imports: import fontTools.voltLib.ast
  from fontTools.voltLib.lexer import Lexer
  from fontTools.voltLib.error import VoltLibError
  from io import open
label_desc: Use image node_id 3 for calling the Parser obj's underlying member method code with example usage: obj.parse() and returns: self