ArgsParse
Простой парсер аргументов на C и макросах.
Использование
Функция main изменяется. Пример:
#include "argsparse.h"
/* Параметры */
arg_property_t config[] = {
"--hello",
"-h/--help",
"-o/--out=filename"
};
/* Их количество */
size_t conf_size = 3;
/*
* main принимает:
* args_t - переменная для парсинга аргументов
* args_config_t - массив типа arg_property_t
* args_config_size_t - размер конфигурации
*/
int main(args_t argv, args_config_t config, args_config_size_t conf_size) {
if (argv->ArgsGetSimpleSize()) {
if (argv->ArgsGetSimpleNumbers()[0] == 0) {
puts("Hello, world!");
}
if (argv->ArgsGetSimpleNumbers()[0] == 1) {
puts(
"Options:" "\n"
" " "--hello " " - " "print \"Hello, world!\"" "\n"
" " "-h / --help" " - " "print this help" "\0"
);
}
} else {
puts("Unknown option!");
}
return EXIT_SUCCESS;
}
Методы обьекта типа args_t
args_t->ArgsGetSimpleFlags(); /* Получить массив обычных флагов */
args_t->ArgsGetNamesVals(); /* Получить массив значений именнованых флагов */
args_t->ArgsGetNamesFlags(); /* Получить массив именнованых флагов */
args_t->ArgsGetDefault(); /* Получить стандартный параметр */
args_t->ArgsGetSimpleSize(); /* Получить количество обычных флагов */
args_t->ArgsGetNamesSize(); /* Получить количество именнованых флагов */
args_t->ArgsGetSimpleNumbers(); /* Получить массив номеров обычных флагов в конфигурации */
args_t->ArgsGetNamesNumbers(); /* Получить массив номеров именнованых флагов в конфигурации */
Description