anchor.diff:  translate_ast_code([Code]) ->
     ["with" | Vars] = string:tokens(Code, " "),
     Vars.
  -
  -compact_ast([], Acc) -> Acc;
  -compact_ast([H|T], Acc) when is_tuple(H) -> compact_ast(T, [H|Acc]);
  -compact_ast([H|T], Acc) -> compact_ast(T, append_ast_elem(H, Acc)).
  -
  -append_ast_elem([], Acc) -> Acc;
  -
  -append_ast_elem([Ch1|_] = Elem, [[Ch2|_] = H | Acc])
  -    when is_integer(Ch1) andalso is_integer(Ch2) -> [Elem ++ H | Acc];
  -
  -append_ast_elem([Ch1|_] = Elem, Acc) when is_integer(Ch1) -> [Elem | Acc];
  -
  -append_ast_elem([H|T], Acc) when is_list(H) ->
  -  append_ast_elem(H, append_ast_elem(T, Acc));
  -
  -append_ast_elem([_|_] = Elem, Acc) -> Elem ++ Acc;
  -
  -append_ast_elem(Elem, Acc) -> [Elem | Acc].
   
   %% -------------------- Utilities for special handlers -----------------------
   
  
positive.code:     translate_attributes(Attributes), ">",
      translate_ast_item(Children, []),
      "</", Name, ">"],
    translate_ast_item(T, [ToAppend | Acc]).
  
  
  translate_attributes([]) -> "";
  
negative.code:   {ok, Bin} = file:read_file(InFile),
    compile_string(binary_to_list(Bin), Options2).
  
  compile_stream(Stream) -> compile_stream(Stream, []).
  
  compile_stream(Stream, Options) ->
    Str = io:get_chars(Stream, "", 1024000),
    compile_string(Str, Options).
  
  compile_string(Str) -> compile_string(Str, []).
  
  