anchor.diff:  
   
   @members {
  -    public Token prevToken;
  -    @Override
  -    public void emit(Token token) {
  -        super.emit(token);
  -        if ( token.getChannel()==Token.DEFAULT_CHANNEL ) prevToken = token;
  -    }
  +    public boolean isLexer = false;
   }
   
   // --------
  
positive.code: 
  IMPORT       : 'import'               ;
  FRAGMENT     : 'fragment'             ;
  LEXER        : 'lexer'                ;
  PARSER       : 'parser'               ;
  GRAMMAR      : 'grammar'              ;
  PROTECTED    : 'protected'            ;
  
negative.code: 
  ARG_OR_CHARSET
  options {k=1;}
      :   {isLexer}?=> LEXER_CHAR_SET {$type=LEXER_CHAR_SET;}
      |   {!isLexer}?=> ARG_ACTION    {$type=ARG_ACTION;}
      ;
  
  fragment
  LEXER_CHAR_SET
      :   '[' ('\\]'|'\\'|~('\\'|']'))* ']'
  