anchor.diff:  tz(nil,?d(_,Str))                         -> {nil,Str};
   tz(nil, <<>>)                         	  -> throw(incorrect_sgml);
   
  -tz({tag,""},?m("!--",Str))                -> {{comm,""},Str};
  +tz({tag,""},?m("!--",Str))                -> {{'!--',""},Str};
   tz({tag,""},?m("!",Str))                  -> {{'!',""},ws(Str)};
   tz({tag,""},?m("?",Str))                  -> {{que,""},ws(Str)};
   tz({tag,""},?m("/",Str))                  -> {{end_tag,""},ws(Str)};
  
positive.code:      | Acc]);
  fold_ast([{'!', Params}| T], Acc) ->
      fold_ast(T, [list_to_binary([<<"<">>, <<"!">>, Params, <<">">>])
       | Acc]);
  fold_ast([{open, Tag, Params} | T], Acc) ->
      fold_ast(T, [list_to_binary([<<"<">>, Tag, fold_params(Params, []), <<">">>]) | Acc]);
  
negative.code: build_ast2([{'!', Params}|T], Ast, Tags, {N, NT}) ->
      %io:format("! ~w, ~w, ~w, +1~n", [Params, Ast, Tags]),
      build_ast2(T, [{'!', Params}|Ast], Tags, {N + 1, NT});
  build_ast2([{'!--', Params}|T], Ast, Tags, {N, NT}) ->
      %io:format("! ~w, ~w, ~w, +1~n", [Params, Ast, Tags]),
      build_ast2(T, [{'!--', Params}|Ast], Tags, {N + 1, NT});
  build_ast2([{que, Params}|T], Ast, Tags, {N, NT}) ->
      %io:format("! ~w, ~w, ~w, +1~n", [Params, Ast, Tags]),
      build_ast2(T, [{que, Params}|Ast], Tags, {N + 1, NT});
  