anchor.diff:  expression(<<A:8,R:8,R:8,A:8,Y:8,SP:8,Rest/binary>>, Pos, Parsed)
           when ?OR(A,$a,$A) andalso ?OR(R,$r,$R) andalso ?OR(Y,$y,$Y)
           andalso not (?IS_ALPHA(SP) orelse ?IS_NUMBER(SP) orelse SP =:= $_) ->
  -    {Rest1, Pos1, Content} = array_def(<<SP:8,Rest/binary>>, add_pos(Pos, 5), []),
  +    NewPos = array_def_level(add_pos(Pos, 5)),
  +    {Rest1, Pos1, Content} = array_def(<<SP:8,Rest/binary>>, NewPos, []),
       NewParsed = add_op(add_line(#array{elements=Content}, Pos), Parsed),
  +    expression(Rest1, copy_level(Pos, Pos1), NewParsed);
  +expression(<<"[",Rest/binary>>, Pos, []) ->
  +    NewPos = array_def_54_level(add_pos(Pos, 1)),
  +    {Rest1, Pos1, Content} = array_def(Rest, NewPos, []),
  +    NewParsed = add_op(add_line(#array{elements=Content}, Pos), []),
       expression(Rest1, copy_level(Pos, Pos1), NewParsed);
   expression(<<T:8,R:8,U:8,E:8,SP:8,Rest/binary>>, Pos, Parsed)
           when ?OR(T,$t,$T) andalso ?OR(R,$r,$R) andalso ?OR(U,$u,$U)
  
positive.code: code_statement_level({_,Row,Col}) -> {code_statement,Row,Col}.
  arg_level({_,Row,Col}) -> {arg,Row,Col}.
  array_level({_,Row,Col}) -> {array,Row,Col}.
  array_def_level({_,Row,Col}) -> {array_def,Row,Col}.
  
  add_op('end', []) ->
      [];
  
negative.code: 
  precedence(<<"clone">>) -> {no_assoc, 1};
  precedence(<<"new">>) -> {no_assoc, 1};
  %precedence(<<"[">>) -> {left, 2}; %% array
  precedence(<<"**">>) -> {right, 3}; %% arith
  precedence(<<"++">>) -> {right, 4};
  precedence(<<"--">>) -> {right, 4};
  