class_docstr: The parser for Python grammar files.
class_docstr_tok: ["The","parser","for","Python","grammar","files","."]
code: def _parse_item(self):
      # item: '[' rhs ']' | atom ['+' | '*']
      if self.value == "[":
          self._gettoken()
          a, z = self._parse_rhs()
          self._expect(PythonTokenTypes.OP, "]")
          # Make it also possible that there is no token and change the
          # state.
          a.add_arc(z)
          return a, z
      else:
          a, z = self._parse_atom()
          value = self.value
          if value not in ("+", "*"):
              return a, z
          self._gettoken()
          # Make it clear that we can go back to the old state and repeat.
          z.add_arc(a)
          if value == "+":
              return a, z
          else:
              # The end state is the same as the beginning, nothing must
              # change.
              return a, a
  
imports: from typing import Optional, Iterator, Tuple, List
  from parso.python.tokenize import tokenize
  from parso.utils import parse_version_string
  from parso.python.token import PythonTokenTypes
label_desc: Use image node_id 5 for calling the GrammarParser obj's underlying member method code with example usage: obj._parse_item() and returns: a,  z, a,  z, a,  z, a,  a