docs: public final void mFULL_ID() throws RecognitionException {
          try {
              int _type = FULL_ID;
              int _channel = DEFAULT_TOKEN_CHANNEL;
              // com/dyuproject/protostuff/parser/ProtoLexer.g:227:5: ( ID ( '.' ID )+ )
              // com/dyuproject/protostuff/parser/ProtoLexer.g:227:7: ID ( '.' ID )+
              {
              mID(); 
              // com/dyuproject/protostuff/parser/ProtoLexer.g:227:10: ( '.' ID )+
              int cnt1=0;
              loop1:
              do {
                  int alt1=2;
                  switch ( input.LA(1) ) {
                  case '.':
                      {
                      alt1=1;
                      }
                      break;
  
                  }
  
                  switch (alt1) {
              	case 1 :
              	    // com/dyuproject/protostuff/parser/ProtoLexer.g:227:11: '.' ID
              	    {
              	    match('.'); 
              	    mID(); 
  
              	    }
              	    break;
  
              	default :
              	    if ( cnt1 >= 1 ) break loop1;
                          EarlyExitException eee =
                              new EarlyExitException(1, input);
                          throw eee;
                  }
                  cnt1++;
              } while (true);
  
  
              }
  
              state.type = _type;
              state.channel = _channel;
          }
          finally {
          }
      }