mirror of
https://github.com/johnkerl/miller.git
synced 2026-01-23 02:14:13 +00:00
33 lines
1.5 KiB
C
33 lines
1.5 KiB
C
// ================================================================
|
|
// Argument-parsing library, with non-getopt semantics.
|
|
// ================================================================
|
|
|
|
#ifndef ARGPARSE_H
|
|
#define ARGPARSE_H
|
|
#include "containers/slls.h"
|
|
#include "containers/sllv.h"
|
|
#include "lib/string_array.h"
|
|
|
|
typedef struct _ap_state_t {
|
|
sllv_t* pflag_defs;
|
|
} ap_state_t;
|
|
|
|
ap_state_t* ap_alloc();
|
|
void ap_free(ap_state_t* pstate);
|
|
|
|
void ap_define_true_flag(ap_state_t* pstate, char* flag_name, int* pintval);
|
|
void ap_define_false_flag(ap_state_t* pstate, char* flag_name, int* pintval);
|
|
void ap_define_int_value_flag(ap_state_t* pstate, char* flag_name, int value, int* pintval);
|
|
void ap_define_int_flag(ap_state_t* pstate, char* flag_name, int* pintval);
|
|
void ap_define_long_long_flag(ap_state_t* pstate, char* flag_name, long long* pintval);
|
|
void ap_define_float_flag(ap_state_t* pstate, char* flag_name, double* pdoubleval);
|
|
void ap_define_string_flag(ap_state_t* pstate, char* flag_name, char** pstring);
|
|
void ap_define_string_build_list_flag(ap_state_t* pstate, char* flag_name, slls_t** pplist);
|
|
void ap_define_string_list_flag(ap_state_t* pstate, char* flag_name, slls_t** pplist);
|
|
void ap_define_string_array_flag(ap_state_t* pstate, char* flag_name, string_array_t** pparray);
|
|
|
|
int ap_parse(ap_state_t* pstate, char* verb, int* pargi, int argc, char** argv);
|
|
int ap_parse_aux(ap_state_t* pstate, char* verb, int* pargi, int argc, char** argv,
|
|
int error_on_unrecognized);
|
|
|
|
#endif // ARGPARSE_H
|