code: public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException {
          AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
  
          Token this_ID_0=null;
  
  
          	enterRule();
  
          try {
              // InternalXbaseWithAnnotations.g:6655:2: (this_ID_0= RULE_ID )
              // InternalXbaseWithAnnotations.g:6656:2: this_ID_0= RULE_ID
              {
              this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
              if ( state.backtracking==0 ) {
  
                		current.merge(this_ID_0);
                	
              }
              if ( state.backtracking==0 ) {
  
                		newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall());
                	
              }
  
              }
  
              if ( state.backtracking==0 ) {
  
                	leaveRule();
  
              }
          }
  
              catch (RecognitionException re) {
                  recover(input,re);
                  appendSkippedTokens();
              }
          finally {
          }
          return current;
      }
docs: InternalXbaseWithAnnotations.g:6649:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;