anchor.diff:    (H >= $\x{0009} andalso H =< $\x{000D})
       orelse H == $\x{0020} orelse H == $\x{00A0}).
   
  --define(IS_ATTR(H),    H == $# orelse H == $.).
  --define(IS_SPECIAL(H), H == $: orelse H == $* orelse ?IS_ATTR(H)).
  +-define(IS_ATTR(H), H == $# orelse H == $.).
  +-define(IS_TAG(H),  H == $: orelse H == $* orelse ?IS_ATTR(H)).
   
   tokenize_string(Str) ->
     Lines = string:tokens(Str, "\n"), % FIXME: removes empty lines
  
positive.code:         _ -> {IsRec, get_tag(H, Id), Rest}
        end
    end;
  
  get_tokenizer(Ln) -> {recursive, no_tokenizer, Ln}.
  
  
negative.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  get_tokenizer([H|T] = Ln) when ?IS_TAG(H) ->
    case parse_id(T) of
      {[], _   } -> {recursive, no_tokenizer, Ln};
      {Id, Rest} ->
  