code: func yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool {
  	// Consume the directive name.
  	if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {
  		return false
  	}
  
  	var s []byte
  	for is_alpha(parser.buffer, parser.buffer_pos) {
  		s = read(parser, s)
  		if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {
  			return false
  		}
  	}
  
  	// Check if the name is empty.
  	if len(s) == 0 {
  		yaml_parser_set_scanner_error(parser, "while scanning a directive",
  			start_mark, "could not find expected directive name")
  		return false
  	}
  
  	// Check for an blank character after the name.
  	if !is_blankz(parser.buffer, parser.buffer_pos) {
  		yaml_parser_set_scanner_error(parser, "while scanning a directive",
  			start_mark, "found unexpected non-alphabetical character")
  		return false
  	}
  	*name = s
  	return true
  }
docs: // Scan the directive name.
  //
  // Scope:
  //      %YAML   1.1     # a comment \n
  //       ^^^^
  //      %TAG    !yaml!  tag:yaml.org,2002:  \n
  //       ^^^
  //