code: def uop(self) -> UOp | None:
      if tkn := self.expect(lx.IDENTIFIER):
          if self.expect(lx.DIVIDE):
              if num := self.expect(lx.NUMBER):
                  try:
                      size = int(num.text)
                  except ValueError:
                      raise self.make_syntax_error(
                          f"Expected integer, got {num.text!r}"
                      )
                  else:
                      return CacheEffect(tkn.text, size)
              raise self.make_syntax_error("Expected integer")
          else:
              return OpName(tkn.text)
      return None
  
imports: from dataclasses import dataclass, field
  from typing import NamedTuple, Callable, TypeVar, Literal, cast
  import lexer
  from plexer import PLexer
label_desc: Use image node_id 15 for calling the Parser obj's underlying member method code with example usage: obj.uop() and returns: None, OpName, CacheEffect