anchor.diff:              COMMA
               { require(!$empty, "Empty list constructor should not contain any comma(,)", -1); }
           )?
  -        RBRACK
  +        rbrack
       ;
   
   map
  
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: rparen
      :   RPAREN
      |
          // !!!Error Alternative
          ~LPAREN
          { require(false, "Missing ')'", -1); }
      ;
  
  rbrack
      :   RBRACK
      |
          // !!!Error Alternative
          ~LBRACK
          { require(false, "Missing ']'", -1); }
      ;
  
  nls
      :   NL*
      ;
  