code: func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {
  	// While we need more tokens to fetch, do it.
  	for {
  		// Check if we really need to fetch more tokens.
  		need_more_tokens := false
  
  		if parser.tokens_head == len(parser.tokens) {
  			// Queue is empty.
  			need_more_tokens = true
  		} else {
  			// Check if any potential simple key may occupy the head position.
  			if !yaml_parser_stale_simple_keys(parser) {
  				return false
  			}
  
  			for i := range parser.simple_keys {
  				simple_key := &parser.simple_keys[i]
  				if simple_key.possible && simple_key.token_number == parser.tokens_parsed {
  					need_more_tokens = true
  					break
  				}
  			}
  		}
  
  		// We are finished.
  		if !need_more_tokens {
  			break
  		}
  		// Fetch the next token.
  		if !yaml_parser_fetch_next_token(parser) {
  			return false
  		}
  	}
  
  	parser.token_available = true
  	return true
  }
docs: // Ensure that the tokens queue contains at least one token which can be
  // returned to the Parser.