Files
cworker/clparser_test.c
2023-08-15 08:35:06 +02:00

49 lines
918 B
C

/*
* Copyright 2023 Oleg Borodin <borodin@unix7.org>
*/
#include <stdint.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <cllexer.h>
#include <clparser.h>
int main(void) {
//(void)argc;
//(void)argv;
char* argv[] = { "main", "--id=-123", "--name=qwerty12234" };
int argc = 3;
cllexer_t lexer;
clparser_t parser;
cllexer_init(&lexer);
clparser_init(&parser, &lexer);
int id = 0;
char* name = "";
clparser_bind(&parser, CLVALTYPE_INT, "id", (void *)&id);
clparser_bind(&parser, CLVALTYPE_STR, "name", (void *)&name);
if (clparser_parse(&parser, &argv[1], argc - 1) < 0) {
printf("parse args error\n");
return 1;
}
printf("id = %d\n", id);
printf("name = %s\n", name);
clparser_destroy(&parser);
cllexer_destroy(&lexer);
free(name);
return 0;
}