INGOR
Loading...
Searching...
No Matches
ytParseArgs.h
1/*
2 util/ytParseArgs.{h,c} : Parsing command line arguments
3 Copyright (C) 2018, Yoshinori Tamada <tamada A T ytlab.jp>
4 All rights reserved.
5
6 See LICENSE.txt for details of the licensing agreement.
7*/
8
9#ifndef __YTLIB_PARSE_ARGS_H
10#define __YTLIB_PARSE_ARGS_H
11
12#include "lang/ytType.h"
13#include "lang/ytObject.h"
14#include "util/ytKeyValues.h"
15
16typedef struct ytParseArgs_t ytParseArgs;
17extern char * ytParseArgs_defaultStringValue;
18
19#ifdef DOXY
23#define ytParseArgs_DEFAULT_KEY
26#define ytParseArgs_OPT_ERROR
29#define ytParseArgs_OPT_WARNING
32#define ytParseArgs_OPT_IGNORE
33#else /* ifdef DOXY */
34#define ytParseArgs_DEFAULT_KEY "__ARGS_WITHOUT_KEY__"
35#define ytParseArgs_OPT_ERROR 0
36#define ytParseArgs_OPT_WARNING 1
37#define ytParseArgs_OPT_IGNORE 2
38#endif /* else of ifdef DOXY */
39
40ytParseArgs * ytParseArgs_new();
41void ytParseArgs_delete(ytParseArgs * this);
42
43void ytParseArgs_addString(ytParseArgs * this, const char * key, char ** arg);
44void ytParseArgs_addStringOpt(ytParseArgs * this, const char * key, char ** arg);
45void ytParseArgs_addInt(ytParseArgs * this, const char * key, int * arg);
46void ytParseArgs_addDouble(ytParseArgs * this, const char * key, double * arg);
47void ytParseArgs_addIntArray(ytParseArgs * this, const char * key, ytIntArray ** arg);
48void ytParseArgs_addStrArray(ytParseArgs * this, const char * key, ytStrArray ** arg);
49void ytParseArgs_addStrArrayAdd(ytParseArgs * this, const char * key, ytStrArray ** arg);
50void ytParseArgs_addDoubleArray(ytParseArgs * this, const char * key, ytDoubleArray ** arg);
51void ytParseArgs_addKeyValues(ytParseArgs * this, const char * key, ytKeyValues ** arg);
52void ytParseArgs_addKeyValuesArray(ytParseArgs * this, const char * key, ytArray ** arg);
53void ytParseArgs_addOn(ytParseArgs * this, const char * key, int * arg);
54void ytParseArgs_addOff(ytParseArgs * this, const char * key, int * arg);
55void ytParseArgs_addOnOff(ytParseArgs * this, const char * key, int * arg);
56void ytParseArgs_addFunc(ytParseArgs * this, const char * key, void (*arg)());
57void ytParseArgs_addFunc3(ytParseArgs * this, const char * key,
58 void (*f)(const char *, const char *, void *), void * arg);
59void ytParseArgs_addNone(ytParseArgs * this, const char * key);
60int ytParseArgs_set(ytParseArgs * argset, int argc, char ** argv);
61int ytParseArgs_setKV(ytParseArgs * argset, const ytKeyValues * kv, int opt);
62ytKeyValues * ytParseArgs_genKV(int argc, char ** argv, const char * defKey);
63
64void ytParseArgs_verbose(ytParseArgs * this, int e);
65int ytParseArgs_debug(int argc, char ** argv);
66
69#define ytPA_int(this,key,arg) ytParseArgs_addInt(this, key, arg)
72#define ytPA_double(this,key,arg) ytParseArgs_addDouble(this, key, arg)
75#define ytPA_str(this,key,arg) ytParseArgs_addString(this, key, arg)
76#define ytPA_IntArray(this,key,arg) ytParseArgs_addIntArray(this, key, arg)
77#define ytPA_DoubleArray(this,key,arg) ytParseArgs_addDoubleArray(this, key, arg)
78#define ytPA_StrArray(this,key,arg) ytParseArgs_addStrArray(this, key, arg)
79#define ytPA_StrArrayAdd(this,key,arg) ytParseArgs_addStrArrayAdd(this, key, arg)
80#define ytPA_KeyValues(this,key,arg) ytParseArgs_addKeyValues(this, key, arg)
81#define ytPA_KV(this,key,arg) ytParseArgs_addKeyValues(this, key, arg)
82#define ytPA_KVArray(this,key,arg) ytParseArgs_addKeyValuesArray(this, key, arg)
83#define ytPA_on(this,key,arg) ytParseArgs_addOn(this, key, arg)
84#define ytPA_OnOff(this,key,arg) ytParseArgs_addOnOff(this, key, arg)
85#define ytPA_onoff(this,key,arg) ytParseArgs_addOnOff(this, key, arg)
86#define ytPA_off(this,key,arg) ytParseArgs_addOff(this, key, arg)
87#define ytPA_StrArrayAdd(this,key,arg) ytParseArgs_addStrArrayAdd(this, key, arg)
88#define ytPA_none(this,key) ytParseArgs_addNone(this, key)
89
90#endif /* __YTLIB_PARSE_ARGS_H */
91
92/* End of file. */
Expandable array.
Expandable array.
Expandable array.
key-value pairs.
Structure for parsing command line arguments.
Expandable array.