anchor.diff:      ;
       
   positionalArguments
  -    : '(' positionalArgumentList ')'
  -   -> ^(ARG_LIST positionalArgumentList?)
  -    ;
  -
  -positionalArgumentList
  -    :
  -    ( positionalArgument (',' positionalArgument)* )? 
  -    -> positionalArgument*
  +    : '(' ( positionalArgument (',' positionalArgument)* )? ')'
  +    -> ^(ARG_LIST positionalArgument*)
       ;
   
   positionalArgument
  
positive.code:     : '(' (declarationStart | ')')
      ;
      
  formalParameter
      :
       formalParameter_ -> ^(FORMAL_PARAMETER formalParameter_)
      ;
      
  // FIXME: This accepts more than the language spec: named arguments
  // and varargs arguments can appear in any order.  We'll have to
  // enforce the rule that the ... appears at the end of the parapmeter
  // list in a later pass of the compiler.
  formalParameter_
      : annotations?
        memberType ('...')? memberName
        memberParameters? 
  
negative.code: //    : base selector+ -> ^(SELECTOR_LIST base selector+)
  //    | base
      :    
      base selector+
      -> ^(EXPR base selector*)
      | base
      ;
  
  getterSetterMethodReference
      : 'set' prim -> ^(SET_EXPR prim)
      | 'get' prim -> ^(GET_EXPR prim)
      ;
  
  postfixOperator
      : '--' | '++'
      ;	
  
  base 
  