anchor.diff:      NewPos = add_pos(Pos,1),
       {<<")",Rest1/binary>>, Pos1, Conditions} =
           expression(Rest, arg_level(NewPos), []),
  -    {Rest2, Pos2, CodeBlock} = code_block(Rest1, Pos1, []),
  +    {Rest2, Pos2, CodeBlock} = code_block(Rest1, if_block_level(Pos1), []),
       If = add_line(#if_block{
           conditions=Conditions,
           true_block=CodeBlock
  
positive.code:     code(Rest1, copy_level(Pos,Pos1), NewParsed);
  code(<<D:8,O:8,SP:8,Rest/binary>>, Pos, Parsed)
          when ?OR(D,$d,$D) andalso ?OR(O,$o,$O) andalso
          (?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)
  
negative.code:     {<<";",Rest0/binary>>, Pos0, Init} = args(Rest, add_pos(Pos,1), []),
      {<<";",Rest1/binary>>, Pos1, [Cond]} = args(Rest0, add_pos(Pos0,1), []),
      {<<")",Rest2/binary>>, Pos2, Upda} = args(Rest1, add_pos(Pos1,1), []),
      {Rest3, Pos3, CodeBlock} = code_block(Rest2,
                                            for_block_level(add_pos(Pos2,1)), []),
      For = add_line(#for{
          init=Init, conditions=Cond, update=Upda, loop_block=CodeBlock
      }, Pos),
  