anchor.diff:  
   IMPORT       : 'import'               ;
   FRAGMENT     : 'fragment'             ;
  -LEXER        : 'lexer'                ;
  +LEXER        : 'lexer'     {isLexer=true;} ;
   PARSER       : 'parser'               ;
   GRAMMAR      : 'grammar'              ;
   PROTECTED    : 'protected'            ;
  
positive.code: 
  
  @members {
      public Token prevToken;
      @Override
      public void emit(Token token) {
          super.emit(token);
          if ( token.getChannel()==Token.DEFAULT_CHANNEL ) prevToken = token;
      }
  }
  
  // --------
  
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
      :   '[' ('\\]'|'\\'|~('\\'|']'))* ']'
  