code: func yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool {
  
  	// Decode the required number of characters.
  	w := 1024
  	for w > 0 {
  		// Check for a URI-escaped octet.
  		if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {
  			return false
  		}
  
  		if !(parser.buffer[parser.buffer_pos] == '%' &&
  			is_hex(parser.buffer, parser.buffer_pos+1) &&
  			is_hex(parser.buffer, parser.buffer_pos+2)) {
  			return yaml_parser_set_scanner_tag_error(parser, directive,
  				start_mark, "did not find URI escaped octet")
  		}
  
  		// Get the octet.
  		octet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2))
  
  		// If it is the leading octet, determine the length of the UTF-8 sequence.
  		if w == 1024 {
  			w = width(octet)
  			if w == 0 {
  				return yaml_parser_set_scanner_tag_error(parser, directive,
  					start_mark, "found an incorrect leading UTF-8 octet")
  			}
  		} else {
  			// Check if the trailing octet is correct.
  			if octet&0xC0 != 0x80 {
  				return yaml_parser_set_scanner_tag_error(parser, directive,
  					start_mark, "found an incorrect trailing UTF-8 octet")
  			}
  		}
  
  		// Copy the octet and move the pointers.
  		*s = append(*s, octet)
  		skip(parser)
  		skip(parser)
  		skip(parser)
  		w--
  	}
  	return true
  }
docs: // Decode an URI-escape sequence corresponding to a single UTF-8 character.