anchor.diff:      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(<<";",Rest/binary>>, Pos, [{op,_}=Exp,#if_block{}=If]) ->
  -    IfBlock = If#if_block{
  -        true_block = add_op('end', [Exp])
  -    },
  -    {Rest, add_pos(Pos,1), IfBlock};
   expression(<<A:8,_/binary>> = Rest, {arg,_,_}=Pos, Parsed)
           when A =:= $, orelse A =:= $) ->
       {Rest, add_pos(Pos,1), add_op('end', 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: precedence(<<"&&">>) -> {left, 15}; %% logic
  precedence(<<"||">>) -> {left, 16}; %% logic
  precedence(<<"??">>) -> {right, 17}; %% comparison
  %precedence(<<"?:">>) -> {left, 18}; %% ternary
  precedence(<<"=">>) -> {right, 19}; %% assign
  precedence(<<"+=">>) -> {right, 19};
  precedence(<<"-=">>) -> {right, 19};
  