anchor.diff:              array_def(Rest0, add_pos(Pos0, 1), Args ++ [NewArg]);
           {<<",",Rest0/binary>>, Pos0, Arg} ->
               NewArg = add_line(#array_element{element=Arg}, Pos),
  -            array_def(Rest0, add_pos(Pos0, 1), Args ++ [NewArg]);
  -        {Rest0, Pos0, []} ->
  -            array_def(Rest0, Pos0, Args);
  -        {Rest0, Pos0, Arg} ->
  -            array_def(Rest0, Pos0, Args ++ [Arg])
  +            array_def(Rest0, add_pos(Pos0, 1), Args ++ [NewArg])
       end.
   
   expression(<<A:8,R:8,R:8,A:8,Y:8,SP:8,Rest/binary>>, Pos, Parsed)
  
positive.code:     [];
  add_op('end', [{op,Content}]) ->
      solve(process_incr_decr(Content));
  add_op('end', Parsed) ->
      Parsed;
  add_op(Add, [{op,Content}|Parsed]) ->
      [{op, Content ++ [Add]}|Parsed];
  add_op(Add, Parsed) ->
  
negative.code:     expression(Rest0, copy_level(Pos, Pos0), add_op(Op, Parsed));
  expression(<<A:8,_/binary>> = Rest, Pos, [{op,_},#if_block{}|_]) when A =/= $: ->
      throw_error(eparse, Pos, Rest);
  expression(<<A:8,_/binary>> = Rest, {arg,_,_}=Pos, Parsed)
          when A =:= $, orelse A =:= $) ->
      {Rest, add_pos(Pos,1), add_op('end', Parsed)};
  