code: def _prodterm_prime(lexer):
      
      tok = next(lexer)
      # '&' FACTOR PRODTERM'
      if isinstance(tok, OP_and):
          factor = _factor(lexer)
          prodterm_prime = _prodterm_prime(lexer)
          if prodterm_prime is None:
              return factor
          else:
              return ('and', factor, prodterm_prime)
      # null
      else:
          lexer.unpop_token(tok)
          return None
docs: Return a product term' expression, eliminates left recursion.