anchor.diff:  %% 16#04: initial	(used by the reader; also allows #\@)
   %% 16#08: numeric
   %% 16#10: subsequent	(used by the reader)
  -%% 16#20: exponent	(used by the reader)
   
   char_is_type(Ch, Mask) ->
     ChTypeTab = % indexed by [-1, 255] + 1
  
positive.code:      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
       "\x03\x14\x02\x00\x14\x14\x14\x00\x02\x02\x14\x10\x00\x10\x10\x14"
       "\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x14\x02\x14\x14\x14\x14"
       "\x14\x14\x14\x14\x34\x34\x34\x14\x14\x14\x14\x14\x34\x14\x14\x14"
       "\x14\x14\x14\x34\x14\x14\x14\x14\x14\x14\x14\x02\x00\x02\x14\x14"
       "\x00\x14\x14\x14\x34\x34\x34\x14\x14\x14\x14\x14\x34\x14\x14\x14"
       "\x14\x14\x14\x34\x14\x14\x14\x14\x14\x14\x14\x00\x00\x00\x14\x00"
       "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
       "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
       "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  
negative.code: char_is_initial(Ch) -> char_is_type(Ch, 16#04).
  char_is_numeric(Ch) -> char_is_type(Ch, 16#08).
  char_is_subsequent(Ch) -> char_is_type(Ch, 16#10).
  char_is_eof(Ch) -> Ch =:= -1.
  
  char_value(Ch) ->
  