docs: public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws RecognitionException {
          AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
  
          Token kw=null;
          AntlrDatatypeRuleToken this_ValidID_0 = null;
  
  
  
          	enterRule();
  
          try {
              // InternalSARL.g:16878:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
              // InternalSARL.g:16879:2: (this_ValidID_0= ruleValidID kw= '.' )+
              {
              // InternalSARL.g:16879:2: (this_ValidID_0= ruleValidID kw= '.' )+
              int cnt386=0;
              loop386:
              do {
                  int alt386=2;
                  switch ( input.LA(1) ) {
                  case RULE_ID:
                      {
                      int LA386_2 = input.LA(2);
  
                      if ( (LA386_2==77) ) {
                          alt386=1;
                      }
  
  
                      }
                      break;
                  case 92:
                      {
                      int LA386_3 = input.LA(2);
  
                      if ( (LA386_3==77) ) {
                          alt386=1;
                      }
  
  
                      }
                      break;
                  case 44:
                      {
                      int LA386_4 = input.LA(2);
  
                      if ( (LA386_4==77) ) {
                          alt386=1;
                      }
  
  
                      }
                      break;
                  case 93:
                      {
                      int LA386_5 = input.LA(2);
  
                      if ( (LA386_5==77) ) {
                          alt386=1;
                      }
  
  
                      }
                      break;
                  case 94:
                      {
                      int LA386_6 = input.LA(2);
  
                      if ( (LA386_6==77) ) {
                          alt386=1;
                      }
  
  
                      }
                      break;
                  case 95:
                      {
                      int LA386_7 = input.LA(2);
  
                      if ( (LA386_7==77) ) {
                          alt386=1;
                      }
  
  
                      }
                      break;
  
                  }
  
                  switch (alt386) {
              	case 1 :
              	    // InternalSARL.g:16880:3: this_ValidID_0= ruleValidID kw= '.'
              	    {
              	    if ( state.backtracking==0 ) {
  
              	      			newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0());
              	      		
              	    }
              	    pushFollow(FOLLOW_156);
              	    this_ValidID_0=ruleValidID();
  
              	    state._fsp--;
              	    if (state.failed) return current;
              	    if ( state.backtracking==0 ) {
  
              	      			current.merge(this_ValidID_0);
              	      		
              	    }
              	    if ( state.backtracking==0 ) {
  
              	      			afterParserOrEnumRuleCall();
              	      		
              	    }
              	    kw=(Token)match(input,77,FOLLOW_161); if (state.failed) return current;
              	    if ( state.backtracking==0 ) {
  
              	      			current.merge(kw);
              	      			newLeafNode(kw, grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1());
              	      		
              	    }
  
              	    }
              	    break;
  
              	default :
              	    if ( cnt386 >= 1 ) break loop386;
              	    if (state.backtracking>0) {state.failed=true; return current;}
                          EarlyExitException eee =
                              new EarlyExitException(386, input);
                          throw eee;
                  }
                  cnt386++;
              } while (true);
  
  
              }
  
              if ( state.backtracking==0 ) {
  
                	leaveRule();
  
              }
          }
  
              catch (RecognitionException re) {
                  recover(input,re);
                  appendSkippedTokens();
              }
          finally {
          }
          return current;
      }