anchor.diff:                             "<head></head></body></html>")),
       ok.
   
  +dumb_br_test() ->
  +    %% http://code.google.com/p/mochiweb/issues/detail?id=71
  +    ?assertEqual(
  +       {<<"div">>,[],[{<<"br">>, [], []}, {<<"br">>, [], []}, <<"z">>]},
  +       mochiweb_html:parse("<div><br/><br/>z</br/></br/></div>")),
  +    ?assertEqual(
  +       {<<"div">>,[],[{<<"br">>, [], []}, {<<"br">>, [], []}, <<"z">>]},
  +       mochiweb_html:parse("<div><br><br>z</br/></br/></div>")),
  +    ?assertEqual(
  +       {<<"div">>,[],[{<<"br">>, [], []}, {<<"br">>, [], []}, <<"z">>]},
  +       mochiweb_html:parse("<div><br><br>z</br></br></div>")).
  +
  +
  +php_test() ->
  +    %% http://code.google.com/p/mochiweb/issues/detail?id=71
  +    ?assertEqual(
  +       [{pi, <<"php\n">>}],
  +       mochiweb_html:tokens(
  +         "<?php\n?>")),
  +    ?assertEqual(
  +       {<<"div">>, [], [{pi, <<"php\n">>}]},
  +       mochiweb_html:parse(
  +         "<div><?php\n?></div>")),
  +    ok.
  +
   -endif.
  
positive.code:             tokenize_literal(Bin, ?INC_COL(S), [C | Acc]);
          _ ->
              {iolist_to_binary(lists:reverse(Acc)), S}
      end.
  
  find_qgt(Bin, S=#decoder{offset=O}) ->
  
negative.code: append_stack_child(StartTag, [{Name, Attrs, Acc} | Stack]) ->
      [{Name, Attrs, [StartTag | Acc]} | Stack].
  
  destack(<<"br">>, Stack) ->
      %% This is an ugly hack to make dumb_br_test() pass,
      %% this makes it such that br can never have children.
      Stack;
  destack(TagName, Stack) when is_list(Stack) ->
      F = fun (X) ->
                  case X of
  