Skip to content

Commit 1db0a57

Browse files
tt
1 parent 925d083 commit 1db0a57

19 files changed

+367
-39
lines changed

docs/basic.md

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,30 @@ for use the lib , you just need to start the main struct with the `newCArgvParse
55
```c
66
#include "CArgvParseOne.c"
77
#include <stdio.h>
8+
#include <stdbool.h>
89

910

10-
CArgvParseNamespace argv_namespace;
1111
int main(int argc, char *argv[]){
12-
argv_namespace = newCArgvParseNamespace();
13-
CArgvParse args = argv_namespace.newCArgvParse(argc,argv);
14-
12+
CArgvParse args = newCArgvParse(argc,argv);
13+
14+
const char *arg_str = CArgvParse_get_arg(&args, 0);
15+
long arg_number = CArgvParse_get_arg_number(&args, 1);
16+
bool arg_bool = CArgvParse_get_arg_bool(&args, 2);
17+
18+
printf("\n\t%s\n\t%ld\n\t%d\n", arg_str, arg_number, arg_bool?1:0);
19+
20+
return 0;
1521
}
1622
```
1723
24+
Making it clear that all functions in 'lib' that return the value of 'flag' are converted to number and 'bool', with 'bool' being true only when it contains the value: [TRUE, True, true]
25+
All functions follow this rule, with the normal name returning a string, with '_number' returning a number and with '_bool' returning a boolean value.
26+
1827
#### Getting a argument
1928
2029
you can get the arguments by using the function `CArgvParse_get_arg` and specifing the index of the argument you want to get.
30+
In the library there is also the possibility of using namespaces.
31+
As in the following examples:
2132
2233
```c
2334
#include "CArgvParseOne.c"
@@ -57,4 +68,4 @@ int main(int argc, char *argv[]){
5768
}
5869

5970
}
60-
```
71+
```

src/config/globals.flag_identifiers.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
//silver_chain_scope_start
2+
//DONT MODIFY THIS COMMENT
3+
//this import is computationally generated
4+
//mannaged by SilverChain: https://github.com/OUIsolutions/SilverChain
5+
#include "../imports/imports.fdeclare.h"
6+
//silver_chain_scope_end
17

28

39
const char *CArgvPars_defult_identifiers[] = {"--","-"};

src/parser/basic/fdeclare.parser.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
//silver_chain_scope_start
2+
//DONT MODIFY THIS COMMENT
3+
//this import is computationally generated
4+
//mannaged by SilverChain: https://github.com/OUIsolutions/SilverChain
5+
#include "../../imports/imports.typesB.h"
6+
//silver_chain_scope_end
17

28

39

@@ -7,6 +13,10 @@ CArgvParse newCArgvParse(int argc, char **argv);
713

814
const char *CArgvParse_get_arg(CArgvParse *self,int index);
915

16+
long long CArgvParse_get_arg_number(CArgvParse *self, int index);
17+
18+
short CArgvParse_get_arg_bool(CArgvParse *self, int index);
19+
1020
int privateCArgv_parser_get_flag_identifier_start_size(CArgvParse *self,const char *flag,int flag_size);
1121

1222
c_argv_bool CArgvParse_is_flags_present(CArgvParse *self,const char **flags,int flags_size);

src/parser/basic/fdefine.parser.c

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
//silver_chain_scope_start
2+
//DONT MODIFY THIS COMMENT
3+
//this import is computationally generated
4+
//mannaged by SilverChain: https://github.com/OUIsolutions/SilverChain
5+
#include "../../imports/imports.globals.h"
6+
//silver_chain_scope_end
17

28

39

@@ -21,6 +27,23 @@ const char *CArgvParse_get_arg(CArgvParse *self,int index){
2127
return C_ARGV_PARSER_NULL;
2228
}
2329

30+
long long CArgvParse_get_arg_number(CArgvParse *self, int index){
31+
return privateArgv_parser_string_to_long_long(CArgvParse_get_arg(self, index));
32+
}
33+
34+
short CArgvParse_get_arg_bool(CArgvParse *self, int index){
35+
const char *response = CArgvParse_get_arg(self, index);
36+
short true_bool = privateArgv_parser_string_cmp(response, "true");
37+
short True_bool = privateArgv_parser_string_cmp(response, "True");
38+
short TRUE_bool = privateArgv_parser_string_cmp(response, "TRUE");
39+
40+
if(true_bool || True_bool || TRUE_bool){
41+
return 1;
42+
}
43+
44+
return 0;
45+
}
46+
2447
c_argv_bool CArgvParse_is_flags_present(CArgvParse *self,const char **flags,int flags_size){
2548

2649
for(int i = 0; i < self->total_args; i++){
@@ -92,4 +115,4 @@ c_argv_bool CArgvParse_is_one_of_args_present(CArgvParse *self,const char **args
92115
}
93116
}
94117
return C_ARGV_PARSER_FALSE;
95-
}
118+
}

src/parser/compact_flags/fdeclare.compact_flag.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
//silver_chain_scope_start
2+
//DONT MODIFY THIS COMMENT
3+
//this import is computationally generated
4+
//mannaged by SilverChain: https://github.com/OUIsolutions/SilverChain
5+
#include "../../imports/imports.typesB.h"
6+
//silver_chain_scope_end
17

28

39

@@ -7,3 +13,7 @@
713
int CArgvParse_get_compact_flag_size(CArgvParse *self,const char **flags,int flags_size);
814

915
const char * CArgvParse_get_compact_flag(CArgvParse *self ,const char **flags,int flags_size, int index);
16+
17+
long long CArgvParse_get_compact_flag_number(CArgvParse *self ,const char **flags,int flags_size, int index);
18+
19+
short CArgvParse_get_compact_flag_bool(CArgvParse *self ,const char **flags,int flags_size, int index);

src/parser/compact_flags/fdefine.compact_flag.c

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
//silver_chain_scope_start
2+
//DONT MODIFY THIS COMMENT
3+
//this import is computationally generated
4+
//mannaged by SilverChain: https://github.com/OUIsolutions/SilverChain
5+
#include "../../imports/imports.globals.h"
6+
//silver_chain_scope_end
17

28

39

@@ -39,4 +45,21 @@ const char * CArgvParse_get_compact_flag(CArgvParse *self ,const char **flags,in
3945
}
4046
}
4147
return C_ARGV_PARSER_NULL;
42-
}
48+
}
49+
50+
long long CArgvParse_get_compact_flag_number(CArgvParse *self ,const char **flags,int flags_size, int index){
51+
return privateArgv_parser_string_to_long_long(CArgvParse_get_compact_flag(self, flags, flags_size, index));
52+
}
53+
54+
short CArgvParse_get_compact_flag_bool(CArgvParse *self ,const char **flags,int flags_size, int index){
55+
const char *response = CArgvParse_get_compact_flag(self ,flags, flags_size, index);
56+
short true_bool = privateArgv_parser_string_cmp(response, "true");
57+
short True_bool = privateArgv_parser_string_cmp(response, "True");
58+
short TRUE_bool = privateArgv_parser_string_cmp(response, "TRUE");
59+
60+
if(true_bool || True_bool || TRUE_bool){
61+
return 1;
62+
}
63+
64+
return 0;
65+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
1+
//silver_chain_scope_start
2+
//DONT MODIFY THIS COMMENT
3+
//this import is computationally generated
4+
//mannaged by SilverChain: https://github.com/OUIsolutions/SilverChain
5+
#include "../../imports/imports.typesB.h"
6+
//silver_chain_scope_end
17

28

39
int CArgvParse_get_infinity_flag_size(CArgvParse *self,const char **flags,int flags_size);
410

511
const char * CArgvParse_get_infinty_flag(CArgvParse *self ,const char **flags,int flags_size, int index);
12+
13+
long long CArgvParse_get_infinty_flag_number(CArgvParse *self ,const char **flags,int flags_size, int index);
14+
15+
short CArgvParse_get_infinty_flag_bool(CArgvParse *self ,const char **flags,int flags_size, int index);

src/parser/infinity_flags/fdefine.infinity_flag.c

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
//silver_chain_scope_start
2+
//DONT MODIFY THIS COMMENT
3+
//this import is computationally generated
4+
//mannaged by SilverChain: https://github.com/OUIsolutions/SilverChain
5+
#include "../../imports/imports.globals.h"
6+
//silver_chain_scope_end
17

28

39
int CArgvParse_get_infinity_flag_size(CArgvParse *self,const char **flags,int flags_size){
@@ -104,4 +110,22 @@ const char * CArgvParse_get_infinty_flag(CArgvParse *self ,const char **flags,in
104110

105111
}
106112
return C_ARGV_PARSER_NULL;
107-
}
113+
}
114+
115+
long long CArgvParse_get_infinty_flag_number(CArgvParse *self ,const char **flags,int flags_size, int index){
116+
return privateArgv_parser_string_to_long_long(CArgvParse_get_infinty_flag(self ,flags, flags_size, index));
117+
}
118+
119+
short CArgvParse_get_infinty_flag_bool(CArgvParse *self ,const char **flags,int flags_size, int index){
120+
const char *response = CArgvParse_get_infinty_flag(self ,flags, flags_size, index);
121+
short true_bool = privateArgv_parser_string_cmp(response, "true");
122+
short True_bool = privateArgv_parser_string_cmp(response, "True");
123+
short TRUE_bool = privateArgv_parser_string_cmp(response, "TRUE");
124+
125+
if(true_bool || True_bool || TRUE_bool){
126+
return 1;
127+
}
128+
129+
return 0;
130+
}
131+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
1+
//silver_chain_scope_start
2+
//DONT MODIFY THIS COMMENT
3+
//this import is computationally generated
4+
//mannaged by SilverChain: https://github.com/OUIsolutions/SilverChain
5+
#include "../../imports/imports.typesB.h"
6+
//silver_chain_scope_end
17

28
CArgvParseNamespace newCArgvParseNamespace();
Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,42 @@
1+
//silver_chain_scope_start
2+
//DONT MODIFY THIS COMMENT
3+
//this import is computationally generated
4+
//mannaged by SilverChain: https://github.com/OUIsolutions/SilverChain
5+
#include "../../imports/imports.globals.h"
6+
//silver_chain_scope_end
17

28

39
CArgvParseNamespace newCArgvParseNamespace(){
4-
CArgvParseNamespace self ={0};
5-
self.newCArgvParse = newCArgvParse;
6-
self.get_arg = CArgvParse_get_arg;
7-
self.get_flag_size = CArgvParse_get_flag_size;
8-
self.get_flag = CArgvParse_get_flag;
9-
self.get_next_unused_arg = CArgvParse_get_next_unused_arg;
10-
self.is_flags_present = CArgvParse_is_flags_present;
11-
self.is_one_of_args_present = CArgvParse_is_one_of_args_present;
12-
self.get_infinity_flag_size = CArgvParse_get_infinity_flag_size;
13-
self.get_infinty_flag = CArgvParse_get_infinty_flag;
14-
self.get_compact_flag_size = CArgvParse_get_compact_flag_size;
15-
self.get_compact_flag = CArgvParse_get_compact_flag;
16-
return self;
17-
}
10+
CArgvParseNamespace self ={0};
11+
self.newCArgvParse = newCArgvParse;
12+
13+
self.get_arg = CArgvParse_get_arg;
14+
self.get_arg_number = CArgvParse_get_arg_number;
15+
self.get_arg_bool = CArgvParse_get_arg_bool;
16+
17+
self.get_flag_size = CArgvParse_get_flag_size;
18+
19+
self.get_flag = CArgvParse_get_flag;
20+
self.get_flag_number = CArgvParse_get_flag_number;
21+
self.get_flag_bool = CArgvParse_get_flag_bool;
22+
23+
self.get_next_unused_arg = CArgvParse_get_next_unused_arg;
24+
self.get_next_unused_arg_number = CArgvParse_get_next_unused_arg_number;
25+
self.get_next_unused_arg_bool = CArgvParse_get_next_unused_arg_bool;
26+
27+
self.is_flags_present = CArgvParse_is_flags_present;
28+
self.is_one_of_args_present = CArgvParse_is_one_of_args_present;
29+
self.get_infinity_flag_size = CArgvParse_get_infinity_flag_size;
30+
31+
self.get_infinty_flag = CArgvParse_get_infinty_flag;
32+
self.get_infinty_flag_number = CArgvParse_get_infinty_flag_number;
33+
self.get_infinty_flag_bool = CArgvParse_get_infinty_flag_bool;
34+
35+
self.get_compact_flag_size = CArgvParse_get_compact_flag_size;
36+
37+
self.get_compact_flag = CArgvParse_get_compact_flag;
38+
self.get_compact_flag_number = CArgvParse_get_compact_flag_number;
39+
self.get_compact_flag_bool = CArgvParse_get_compact_flag_bool;
40+
41+
return self;
42+
}

0 commit comments

Comments
 (0)