anchor.diff:              {error, {Row, ?MODULE, lists:concat(["Illegal character in column ", Column])}}
       end.
   
  -% internal functions
  +						% internal functions
   
   append_char([{Type, Pos, Chars}|Scanned], Char) ->
       [{Type, Pos, [Char | Chars]} | Scanned].
  
positive.code: 
  scan("<!--{%" ++ T, Scanned, {Row, Column}, in_text) ->
      scan(T, [{open_tag, {Row, Column}, '<!--{%'} | Scanned], 
          {Row, Column + length("<!--{%")}, {in_code, "%}-->"});
  
  scan("{%" ++ T, Scanned, {Row, Column}, in_text) ->
      scan(T, [{open_tag, {Row, Column}, '{%'} | Scanned], 
          {Row, Column + length("{%")}, {in_code, "%}"});
  
  scan([_ | T], Scanned, {Row, Column}, {in_comment, Closer}) ->
      scan(T, Scanned, {Row, Column + 1}, {in_comment, Closer});
  
negative.code: 
  scan("endverbatim " ++ T, Scanned, {Row, Column}, {in_verbatim_code, BackTrack, Tag}) ->
      scan(T, Scanned, {Row, Column + length("endverbatim ")}, 
  	 {in_endverbatim_code, "", lists:reverse("endverbatim ", BackTrack), Tag});
  
  scan(" " ++ T, Scanned, {Row, Column}, {in_endverbatim_code, "", BackTrack, Tag}) ->
      scan(T, Scanned, {Row, Column + 1}, {in_endverbatim_code, "", [$\ |BackTrack], Tag});
  