anchor.diff:  
         exceptionGroup
   
  -      -> ^( RULE<RuleAST> RULE_REF DOC_COMMENT? ruleModifiers? ARG_ACTION<ActionAST>?
  +      -> ^( RULE<RuleAST> RULE_REF DOC_COMMENT? ARG_ACTION<ActionAST>?
         		ruleReturns? throwsSpec? localsSpec? rulePrequels? ruleBlock exceptionGroup*
         	  )
       ;
  
positive.code:     : // A rule may start with an optional documentation comment
        DOC_COMMENT?
  
        // Following the documentation, we can declare a rule to be
        // public, private and so on. This is only valid for some
        // language targets of course but the target will ignore these
        // modifiers if they make no sense in that language.
        ruleModifiers?
  
  	  // Next comes the rule name. Here we do not distinguish between
  	  // parser or lexer rules, the semantic verification phase will
  	  // reject any rules that make no sense, such as lexer rules in
  
negative.code: ruleAction
  	:	AT id ACTION -> ^(AT id ACTION<ActionAST>)
  	;
  
  // A set of alts, rewritten as a BLOCK for generic processing
  // in tree walkers. Used by the rule 'rule' so that the list of
  