anchor.diff:          (?IS_SPACE(SP) orelse SP =:= ${) ->
       {Rest0, Pos0, [DoWhile]} = st_do_while(Rest, add_pos(Pos,3), []),
       code(Rest0, copy_level(Pos,Pos0), [DoWhile|Parsed]);
  +code(<<F:8,O:8,R:8,E:8,A:8,C:8,H:8,SP:8,Rest/binary>>, Pos, Parsed)
  +        when ?OR(F,$f,$F) andalso ?OR(O,$o,$O) andalso ?OR(R,$r,$R)
  +        andalso ?OR(E,$e,$E) andalso ?OR(A,$a,$A) andalso ?OR(C,$c,$C)
  +        andalso ?OR(H,$h,$H)
  +        andalso (?IS_SPACE(SP) orelse ?IS_NEWLINE(SP) orelse SP =:= $() ->
  +    {Rest0, Pos0} = remove_spaces(<<SP:8,Rest/binary>>,Pos),
  +    {Rest1, Pos1, NewParsed} = st_foreach(Rest0, Pos0, Parsed),
  +    code(Rest1, copy_level(Pos, Pos1), NewParsed);
   code(<<F:8,O:8,R:8,SP:8,Rest/binary>>, Pos, Parsed)
           when ?OR(F,$f,$F) andalso ?OR(O,$o,$O) andalso ?OR(R,$r,$R)
           andalso (?IS_SPACE(SP) orelse ?IS_NEWLINE(SP) orelse SP =:= $() ->
  
positive.code:             args(Rest0, Pos0, Args ++ [Arg])
      end.
  
  st_for(<<SP:8,Rest/binary>>, Pos, Parsed) when ?IS_SPACE(SP) ->
      st_for(Rest, add_pos(Pos,1), Parsed);
  st_for(<<SP:8,Rest/binary>>, Pos, Parsed) when ?IS_NEWLINE(SP) ->
  
negative.code: expression(<<>>, Pos, _Parsed) ->
      throw_error(eparse, Pos, <<>>).
  
  variable(<<SP:8,Rest/binary>>, Pos, []) when ?IS_SPACE(SP) ->
      variable(Rest, add_pos(Pos,1), []);
  variable(<<SP:8,Rest/binary>>, Pos, []) when ?IS_NEWLINE(SP) ->
      variable(Rest, new_line(Pos), []);
  variable(<<"$",Rest/binary>>, Pos, []) ->
      variable(Rest, add_pos(Pos,1), []);
  variable(<<A:8,Rest/binary>>, Pos, [])
          when ?IS_ALPHA(A) orelse A =:= $_ orelse A >= 16#7f ->
      Var = add_line(#variable{name = <<A:8>>}, Pos),
  