anchor.diff:  %%   - Template coding
   %%   - If possible- cognizant of whether () are really for attributes
   %%
  +%%   - Factor out all the ugly "case CurrTAcc of" stuff all over
  +%%   - Use macros or something to improve readability of the main tokenizing
  +%%     loops.
  +
  
positive.code: 			[{{word, lists:reverse(CurrTAcc)}, get(line_num)} | AllTAcc]
  	end;
  
  % Begin escaping a character
  parse_inner([?T_ESC | T], _, CurrTAcc, AllTAcc) ->
  	parse_inner(T, ?T_ESC, CurrTAcc, AllTAcc);
  
  % Escaped characters always get added to current token
  % Adding "nothing" as last character ensures you can do
  % "\|# this is not a comment #|" etc.
  parse_inner([Any | T], ?T_ESC, CurrTAcc, AllTAcc) ->
  	parse_inner(T, nothing, [Any | CurrTAcc], AllTAcc);
  
  % String started
  
  % Multi-line comment started
  
  % Inline comment started
  parse_inner([?T_IGN_INL_2 | _T], ?T_IGN_INL_1, CurrTAcc, AllTAcc) ->
  
negative.code: -define(T_IGN_INL_1, $|).
  -define(T_IGN_INL_2, $|).
  
  -define(T_IGN_MLT_ST_1, $|).
  -define(T_IGN_MLT_ST_2, $#).
  -define(T_IGN_MLT_EN_1, $#).
  -define(T_IGN_MLT_EN_2, $|).
  
  -define(T_STR_MLT_ST_1, $|).
  -define(T_STR_MLT_ST_2, 34). % dbl-quote
  -define(T_STR_MLT_EN_1, 34).
  -define(T_STR_MLT_EN_2, $|).
  
  
  parse_file(Filename) when is_list(Filename) ->
  