anchor.diff:    ;
   
   method_mod_list
  -  : method_mod+ -> ^(MODIFIERS method_mod+)
  +  : method_mod+ -> ^(Modifiers method_mod+)
     |
     ;
   
  
positive.code:   | L_STRING
    | KW_TRUE
    | KW_FALSE
    | (ID LPAREN) => call_tail -> ^(SimpleCall call_tail)
    | indexed_variable
    ;
  
  call_tail
    : ID LPAREN (expr (COMMA expr)*)? RPAREN ->
      ^(Name ID) ^(LPAREN (expr+)?) ;
  
  indexed_variable
    : variable_name variable_index* -> ^(VARIABLE variable_name variable_index*)
    ;
  
  variable_index
    : LBRACKET expr RBRACKET -> expr
    | LBRACKET RBRACKET -> ARRAY_END
    | LBRACE expr RBRACE -> expr
    ;
  
  variable_name
  
negative.code:   ;
  
  expr_incdec
    : op=(INCR | DECR) atom -> ^(Pre atom $op)
    | (atom (INCR | DECR)) =>
        atom op=(INCR | DECR) -> ^(Post atom $op)
    | atom
    ;
  
  atom
  