Skip to content

argparse-c API 機械可読仕様

このドキュメントは scripts/sync_api_spec.pyinclude/argparse-c.h から生成します。

読み方ガイド

  • シグネチャ: C 宣言レベルの関数シグネチャ。
  • 成功/失敗: 戻り値型ごとの標準契約(0/-1true/falsenon-NULL/NULL)。
  • 所有権 / 解放責務: 返却メモリの所有者と必要な free 関数。
  • API は用途ごとにグルーピングしているため、関連操作をまとめて確認できます。

Parser の生成・設定・解放

ap_parser_new

  • シグネチャ: ap_parser * ap_parser_new(const char * prog, const char * description)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free: ap_parser_free。新しい parser を返します。所有権は呼び出し側です。

ap_parser_new_with_options

  • シグネチャ: ap_parser * ap_parser_new_with_options(const char * prog, const char * description, ap_parser_options options)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free: ap_parser_free。新しい parser を返します。所有権は呼び出し側です。

ap_parser_set_completion

  • シグネチャ: int ap_parser_set_completion(ap_parser * parser, bool enabled, const char * entrypoint, ap_error * err)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_parser_completion_enabled

  • シグネチャ: bool ap_parser_completion_enabled(const ap_parser * parser)
  • 成功/失敗: 成功: true / 失敗: false。bool 戻り値 API は true が成功/存在、false が失敗/未存在を表します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_parser_completion_entrypoint

  • シグネチャ: const char * ap_parser_completion_entrypoint(const ap_parser * parser)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_parser_free

  • シグネチャ: void ap_parser_free(ap_parser * parser)
  • 成功/失敗: 成功: n/a / 失敗: n/a。戻り値型ごとの意味に従います。
  • 所有権 / 解放責務: free 関数指定なし。ライフサイクル補助 API です。解放責務は関数名の規約に従います。

引数・サブコマンド定義

ap_add_subcommand

  • シグネチャ: ap_parser * ap_add_subcommand(ap_parser * parser, const char * name, const char * description, ap_error * err)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free 関数指定なし。返される parser ポインタの所有権は親 parser ツリー側にあります。

ap_add_mutually_exclusive_group

  • シグネチャ: ap_mutually_exclusive_group * ap_add_mutually_exclusive_group(ap_parser * parser, bool required, ap_error * err)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_add_argument

  • シグネチャ: int ap_add_argument(ap_parser * parser, const char * name_or_flags, ap_arg_options options, ap_error * err)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_group_add_argument

  • シグネチャ: int ap_group_add_argument(ap_mutually_exclusive_group * group, const char * name_or_flags, ap_arg_options options, ap_error * err)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

パース実行と結果メモリ管理

ap_parse_args

  • シグネチャ: int ap_parse_args(ap_parser * parser, int argc, char ** argv, ap_namespace ** out_ns, ap_error * err)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。成功時は out_ns を ap_namespace_free で解放します。parse_known_args では unknown 配列を ap_free_tokens で解放します。

ap_parse_known_args

  • シグネチャ: int ap_parse_known_args(ap_parser * parser, int argc, char ** argv, ap_namespace ** out_ns, char *** out_unknown_args, int * out_unknown_count, ap_error * err)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。成功時は out_ns を ap_namespace_free で解放します。parse_known_args では unknown 配列を ap_free_tokens で解放します。

ap_namespace_free

  • シグネチャ: void ap_namespace_free(ap_namespace * ns)
  • 成功/失敗: 成功: n/a / 失敗: n/a。戻り値型ごとの意味に従います。
  • 所有権 / 解放責務: free 関数指定なし。ライフサイクル補助 API です。解放責務は関数名の規約に従います。

ap_free_tokens

  • シグネチャ: void ap_free_tokens(char ** tokens, int count)
  • 成功/失敗: 成功: n/a / 失敗: n/a。戻り値型ごとの意味に従います。
  • 所有権 / 解放責務: free 関数指定なし。ライフサイクル補助 API です。解放責務は関数名の規約に従います。

フォーマッタ API

ap_format_usage

  • シグネチャ: char * ap_format_usage(const ap_parser * parser)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free: free。返される文字列はヒープ確保です。

ap_format_help

  • シグネチャ: char * ap_format_help(const ap_parser * parser)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free: free。返される文字列はヒープ確保です。

ap_format_manpage

  • シグネチャ: char * ap_format_manpage(const ap_parser * parser)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free: free。返される文字列はヒープ確保です。

ap_format_bash_completion

  • シグネチャ: char * ap_format_bash_completion(const ap_parser * parser)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free: free。返される文字列はヒープ確保です。

ap_format_fish_completion

  • シグネチャ: char * ap_format_fish_completion(const ap_parser * parser)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free: free。返される文字列はヒープ確保です。

ap_format_zsh_completion

  • シグネチャ: char * ap_format_zsh_completion(const ap_parser * parser)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free: free。返される文字列はヒープ確保です。

ap_format_error

  • シグネチャ: char * ap_format_error(const ap_parser * parser, const ap_error * err)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free: free。返される文字列はヒープ確保です。

補完 API

ap_complete

  • シグネチャ: int ap_complete(const ap_parser * parser, int argc, char ** argv, const char * shell, ap_completion_result * out_result, ap_error * err)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_try_handle_completion

  • シグネチャ: int ap_try_handle_completion(const ap_parser * parser, int argc, char ** argv, const char * default_shell, int * out_handled, ap_completion_result * out_result, ap_error * err)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_completion_result_init

  • シグネチャ: void ap_completion_result_init(ap_completion_result * result)
  • 成功/失敗: 成功: n/a / 失敗: n/a。戻り値型ごとの意味に従います。
  • 所有権 / 解放責務: free 関数指定なし。ライフサイクル補助 API です。解放責務は関数名の規約に従います。

ap_completion_result_free

  • シグネチャ: void ap_completion_result_free(ap_completion_result * result)
  • 成功/失敗: 成功: n/a / 失敗: n/a。戻り値型ごとの意味に従います。
  • 所有権 / 解放責務: free 関数指定なし。ライフサイクル補助 API です。解放責務は関数名の規約に従います。

ap_completion_result_add

  • シグネチャ: int ap_completion_result_add(ap_completion_result * result, const char * value, const char * help, ap_error * err)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。候補メモリは ap_completion_result_free で管理されます。

Parser/引数のイントロスペクション API

ap_parser_get_info

  • シグネチャ: int ap_parser_get_info(const ap_parser * parser, ap_parser_info * out_info)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_parser_get_argument

  • シグネチャ: int ap_parser_get_argument(const ap_parser * parser, int index, ap_arg_info * out_info)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_parser_get_subcommand

  • シグネチャ: int ap_parser_get_subcommand(const ap_parser * parser, int index, ap_subcommand_info * out_info)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_arg_short_flag_count

  • シグネチャ: int ap_arg_short_flag_count(const ap_arg_info * info)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_arg_short_flag_at

  • シグネチャ: const char * ap_arg_short_flag_at(const ap_arg_info * info, int index)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_arg_long_flag_count

  • シグネチャ: int ap_arg_long_flag_count(const ap_arg_info * info)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_arg_long_flag_at

  • シグネチャ: const char * ap_arg_long_flag_at(const ap_arg_info * info, int index)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

Namespace 取得 API

ap_ns_get_bool

  • シグネチャ: bool ap_ns_get_bool(const ap_namespace * ns, const char * dest, bool * out_value)
  • 成功/失敗: 成功: true / 失敗: false。bool 戻り値 API は true が成功/存在、false が失敗/未存在を表します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_ns_get_string

  • シグネチャ: bool ap_ns_get_string(const ap_namespace * ns, const char * dest, const char ** out_value)
  • 成功/失敗: 成功: true / 失敗: false。bool 戻り値 API は true が成功/存在、false が失敗/未存在を表します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_ns_get_int32

  • シグネチャ: bool ap_ns_get_int32(const ap_namespace * ns, const char * dest, int32_t * out_value)
  • 成功/失敗: 成功: true / 失敗: false。bool 戻り値 API は true が成功/存在、false が失敗/未存在を表します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_ns_get_int64

  • シグネチャ: bool ap_ns_get_int64(const ap_namespace * ns, const char * dest, int64_t * out_value)
  • 成功/失敗: 成功: true / 失敗: false。bool 戻り値 API は true が成功/存在、false が失敗/未存在を表します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_ns_get_uint64

  • シグネチャ: bool ap_ns_get_uint64(const ap_namespace * ns, const char * dest, uint64_t * out_value)
  • 成功/失敗: 成功: true / 失敗: false。bool 戻り値 API は true が成功/存在、false が失敗/未存在を表します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_ns_get_double

  • シグネチャ: bool ap_ns_get_double(const ap_namespace * ns, const char * dest, double * out_value)
  • 成功/失敗: 成功: true / 失敗: false。bool 戻り値 API は true が成功/存在、false が失敗/未存在を表します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_ns_get_count

  • シグネチャ: int ap_ns_get_count(const ap_namespace * ns, const char * dest)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_ns_get_string_at

  • シグネチャ: const char * ap_ns_get_string_at(const ap_namespace * ns, const char * dest, int index)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_ns_get_int32_at

  • シグネチャ: bool ap_ns_get_int32_at(const ap_namespace * ns, const char * dest, int index, int32_t * out_value)
  • 成功/失敗: 成功: true / 失敗: false。bool 戻り値 API は true が成功/存在、false が失敗/未存在を表します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_ns_get_int64_at

  • シグネチャ: bool ap_ns_get_int64_at(const ap_namespace * ns, const char * dest, int index, int64_t * out_value)
  • 成功/失敗: 成功: true / 失敗: false。bool 戻り値 API は true が成功/存在、false が失敗/未存在を表します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_ns_get_uint64_at

  • シグネチャ: bool ap_ns_get_uint64_at(const ap_namespace * ns, const char * dest, int index, uint64_t * out_value)
  • 成功/失敗: 成功: true / 失敗: false。bool 戻り値 API は true が成功/存在、false が失敗/未存在を表します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_ns_get_double_at

  • シグネチャ: bool ap_ns_get_double_at(const ap_namespace * ns, const char * dest, int index, double * out_value)
  • 成功/失敗: 成功: true / 失敗: false。bool 戻り値 API は true が成功/存在、false が失敗/未存在を表します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

デフォルトオプション生成 API

ap_arg_options_default

  • シグネチャ: ap_arg_options ap_arg_options_default(void)
  • 成功/失敗: 成功: n/a / 失敗: n/a。戻り値型ごとの意味に従います。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_parser_options_default

  • シグネチャ: ap_parser_options ap_parser_options_default(void)
  • 成功/失敗: 成功: n/a / 失敗: n/a。戻り値型ごとの意味に従います。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

その他の API

ap_add_argument_group

  • シグネチャ: ap_argument_group * ap_add_argument_group(ap_parser * parser, const char * title, const char * description, ap_error * err)
  • 成功/失敗: 成功: non-NULL / 失敗: NULL。ポインタ戻り値 API は NULL を失敗値として使います。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_argument_group_add_argument

  • シグネチャ: int ap_argument_group_add_argument(ap_argument_group * group, const char * name_or_flags, ap_arg_options options, ap_error * err)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_parse_intermixed_args

  • シグネチャ: int ap_parse_intermixed_args(ap_parser * parser, int argc, char ** argv, ap_namespace ** out_ns, ap_error * err)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。

ap_parse_known_intermixed_args

  • シグネチャ: int ap_parse_known_intermixed_args(ap_parser * parser, int argc, char ** argv, ap_namespace ** out_ns, char *** out_unknown_args, int * out_unknown_count, ap_error * err)
  • 成功/失敗: 成功: 0 / 失敗: -1。int 戻り値 API は成功 0 / 失敗 -1 を返します。
  • 所有権 / 解放責務: free 関数指定なし。戻り値で新規所有権の移譲はありません。