docs: public final void mCOMMENT() throws RecognitionException {
          try {
              int _type = COMMENT;
              int _channel = DEFAULT_TOKEN_CHANNEL;
              // EventFilter.g:204:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' | '/*' ( options {greedy=false; } : . )* '*/' )
              int alt15=2;
              int LA15_0 = input.LA(1);
  
              if ( (LA15_0=='/') ) {
                  int LA15_1 = input.LA(2);
  
                  if ( (LA15_1=='/') ) {
                      alt15=1;
                  }
                  else if ( (LA15_1=='*') ) {
                      alt15=2;
                  }
                  else {
                      NoViableAltException nvae =
                          new NoViableAltException("", 15, 1, input);
  
                      throw nvae;
  
                  }
              }
              else {
                  NoViableAltException nvae =
                      new NoViableAltException("", 15, 0, input);
  
                  throw nvae;
  
              }
              switch (alt15) {
                  case 1 :
                      // EventFilter.g:204:9: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
                      {
                      match("//"); 
  
  
  
                      // EventFilter.g:204:14: (~ ( '\\n' | '\\r' ) )*
                      loop12:
                      do {
                          int alt12=2;
                          int LA12_0 = input.LA(1);
  
                          if ( ((LA12_0 >= '\u0000' && LA12_0 <= '\t')||(LA12_0 >= '\u000B' && LA12_0 <= '\f')||(LA12_0 >= '\u000E' && LA12_0 <= '\uFFFF')) ) {
                              alt12=1;
                          }
  
  
                          switch (alt12) {
                      	case 1 :
                      	    // EventFilter.g:
                      	    {
                      	    if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '\t')||(input.LA(1) >= '\u000B' && input.LA(1) <= '\f')||(input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF') ) {
                      	        input.consume();
                      	    }
                      	    else {
                      	        MismatchedSetException mse = new MismatchedSetException(null,input);
                      	        recover(mse);
                      	        throw mse;
                      	    }
  
  
                      	    }
                      	    break;
  
                      	default :
                      	    break loop12;
                          }
                      } while (true);
  
  
                      // EventFilter.g:204:28: ( '\\r' )?
                      int alt13=2;
                      int LA13_0 = input.LA(1);
  
                      if ( (LA13_0=='\r') ) {
                          alt13=1;
                      }
                      switch (alt13) {
                          case 1 :
                              // EventFilter.g:204:28: '\\r'
                              {
                              match('\r'); 
  
                              }
                              break;
  
                      }
  
  
                      match('\n'); 
  
                      _channel=HIDDEN;
  
                      }
                      break;
                  case 2 :
                      // EventFilter.g:205:9: '/*' ( options {greedy=false; } : . )* '*/'
                      {
                      match("/*"); 
  
  
  
                      // EventFilter.g:205:14: ( options {greedy=false; } : . )*
                      loop14:
                      do {
                          int alt14=2;
                          int LA14_0 = input.LA(1);
  
                          if ( (LA14_0=='*') ) {
                              int LA14_1 = input.LA(2);
  
                              if ( (LA14_1=='/') ) {
                                  alt14=2;
                              }
                              else if ( ((LA14_1 >= '\u0000' && LA14_1 <= '.')||(LA14_1 >= '0' && LA14_1 <= '\uFFFF')) ) {
                                  alt14=1;
                              }
  
  
                          }
                          else if ( ((LA14_0 >= '\u0000' && LA14_0 <= ')')||(LA14_0 >= '+' && LA14_0 <= '\uFFFF')) ) {
                              alt14=1;
                          }
  
  
                          switch (alt14) {
                      	case 1 :
                      	    // EventFilter.g:205:42: .
                      	    {
                      	    matchAny(); 
  
                      	    }
                      	    break;
  
                      	default :
                      	    break loop14;
                          }
                      } while (true);
  
  
                      match("*/"); 
  
  
  
                      _channel=HIDDEN;
  
                      }
                      break;
  
              }
              state.type = _type;
              state.channel = _channel;
          }
          finally {
          	// do for sure before leaving
          }
      }