code: def _radix_int_handler_factory(radix_indicators, charset, parse_func):
      
      def assertion(c, ctx):
          return c in radix_indicators and \
                 ((len(ctx.value) == 1 and ctx.value[0] == _ZERO) or
                  (len(ctx.value) == 2 and ctx.value[0] == _MINUS and ctx.value[1] == _ZERO)) and \
                 ctx.ion_type == IonType.INT
      return _numeric_handler_factory(charset, lambda prev, c, ctx, trans: _illegal_character(c, ctx),
                                      assertion, radix_indicators, parse_func, illegal_at_end=radix_indicators)
docs: Generates a handler co-routine which tokenizes a integer of a particular radix.
  
      Args:
          radix_indicators (sequence): The set of ordinals of characters that indicate the radix of this int.
          charset (sequence): Set of ordinals of legal characters for this radix.
          parse_func (callable): Called upon ending the numeric value. Accepts the current token value and returns a
              thunk that lazily parses the token.