code: def named_item(self) -> Optional[NamedItem]:
      # named_item: NAME annotation '=' ~ item | NAME '=' ~ item | item | forced_atom | lookahead
      mark = self._mark()
      cut = False
      if (
          (name := self.name())
          and (annotation := self.annotation())
          and (literal := self.expect("="))
          and (cut := True)
          and (item := self.item())
      ):
          return NamedItem(name.string, item, annotation)
      self._reset(mark)
      if cut:
          return None
      cut = False
      if (
          (name := self.name())
          and (literal := self.expect("="))
          and (cut := True)
          and (item := self.item())
      ):
          return NamedItem(name.string, item)
      self._reset(mark)
      if cut:
          return None
      if item := self.item():
          return NamedItem(None, item)
      self._reset(mark)
      if forced := self.forced_atom():
          return NamedItem(None, forced)
      self._reset(mark)
      if it := self.lookahead():
          return NamedItem(None, it)
      self._reset(mark)
      return None
  
imports: import ast
  import sys
  import tokenize
  from typing import Any, Optional
  from pegen.parser import memoize, memoize_left_rec, logger, Parser
  from ast import literal_eval
  from pegen.grammar import Alt, Cut, Forced, Gather, Group, Item, Lookahead, LookaheadOrCut, MetaTuple, MetaList, NameLeaf, NamedItem, NamedItemList, NegativeLookahead, Opt, Plain, PositiveLookahead, Repeat0, Repeat1, Rhs, Rule, RuleList, RuleName, Grammar, StringLeaf
label_desc: Use image node_id 13 for calling the GeneratedParser obj's underlying member method code with example usage: obj.named_item() and returns: None, NamedItem, None, NamedItem, None, NamedItem, NamedItem, NamedItem