anchor.diff:          (   mapEntryList COMMA?
           |   COLON
           )
  -        RBRACK
  +        rbrack
       ;
   
   mapEntryList
  
positive.code:  *  The brackets may also be empty, as in T[].  This is how Groovy names array types.
   */
  indexPropertyArgs
      :   QUESTION? LBRACK expressionList[true]? RBRACK
      ;
  
  namedPropertyArgs
      :   LBRACK mapEntryList RBRACK
      ;
  
  primary
  
negative.code: 
  statement
      :   block                                                                                               #blockStmtAlt
      |   IF expressionInPar nls tb=statement ((nls | sep) ELSE nls fb=statement)?                            #ifElseStmtAlt
      |   loopStatement                                                                                       #loopStmtAlt
  
      |   tryCatchStatement                                                                                   #tryCatchStmtAlt
  
      |   switchStatement                                                                                     #switchStmtAlt
      |   SYNCHRONIZED expressionInPar nls block                                                              #synchronizedStmtAlt
      |   RETURN expression?                                                                                  #returnStmtAlt
      |   THROW expression                                                                                    #throwStmtAlt
  
  