anchor.diff:    {_Comment, Remaining} = pull_inner(T, fun line_pull_in_ign/1),
     line_tokens(Remaining, none, [], ?SFLUSH, State);
   
  +% Starting an attribute
  +line_tokens([?T_ATTR_ST | T], _, [], AllTAcc, _State) ->
  +  line_tokens(T, ?T_ATTR_ST, [], [{start_attrib, ?LN} | AllTAcc], {true});
  +line_tokens([?T_ATTR_ST | T], $ , CurrTAcc, AllTAcc, _State) ->
  +  line_tokens(T, ?T_ATTR_ST, [], ?FLUSH({start_attrib, ?LN}), {true});
  +
  +% Parent separator
  +line_tokens([?T_PAR_SEP | T], _, CurrTAcc, AllTAcc, {false}) ->
  +  line_tokens(T, ?T_PAR_SEP, [], ?FLUSH({parent_sep, ?LN}), {false});
  +
   % Whitespace.  Flush token.
  -line_tokens([H | T], _Last, CurrTAcc, AllTAcc, State) when
  +line_tokens([$\n | T], _, CurrTAcc, AllTAcc, State) ->
  +  line_tokens(T, $\n, [], ?SFLUSH, State);
  +line_tokens([H | T], _Last, CurrTAcc, AllTAcc, {false}) when
       ((H >= $\x{0009}) and (H =< $\x{000D}))
       or (H == $\x{0020}) or (H == $\x{00A0}) ->
  -  line_tokens(T, H, [], ?SFLUSH, State);
  +  line_tokens(T, H, [], ?SFLUSH, {false});
   
   line_tokens([H | T], _Last, CurrTAcc, AllTAcc, State) ->
     line_tokens(T, H, [H | CurrTAcc], AllTAcc, State).
  
positive.code:   line_tokens(Line, none, [], [], State).
    %{[{general, Line}], State}.
  
  % Line is finished- move current-token to all, and return
  line_tokens([], _, CurrTAcc, AllTAcc, State) ->
    {?SFLUSH, State};
  
  % Escaped character.  Pops the escape char off current token, adds this
  % character to the token no matter what it is, and sends 'none' as last token
  
negative.code:     [] ->
        {IStack, [], State2};
      _ ->
        %LineTokens2 = [{newline, ?LN} | LineTokens],
        {IStack2, LineTokens3} = process_dents(Dents, IStack, LineTokens),
        {IStack2, LineTokens3, State2}
    end.
  
  