class_docstr: Parser for ASDL files.
  
  Create, then call the parse method on a buffer containing ASDL.
  This is a simple recursive descent parser that uses tokenize_asdl for the
  lexing.
class_docstr_tok: ["Parser","for","ASDL","files",".","Create",",","then","call","the","parse","method","on","a","buffer","containing","ASDL",".","This","is","a","simple","recursive","descent","parser","that","uses","tokenize_asdl","for","the","lexing","."]
code: def _parse_module(self):
      if self._at_keyword("module"):
          self._advance()
      else:
          raise ASDLSyntaxError(
              'Expected "module" (found {})'.format(
                  self.cur_token.value
              ),
              self.cur_token.lineno,
          )
      name = self._match(self._id_kinds)
      self._match(TokenKind.LBrace)
      defs = self._parse_definitions()
      self._match(TokenKind.RBrace)
      return Module(name, defs)
  
imports: from collections import namedtuple
  import re
label_desc: Use image node_id 3 for calling the ASDLParser obj's underlying member method code with example usage: obj._parse_module() and returns: Module