increase benchmark duration
[rofl0r-stringswitch.git] / example / stringswitch_impl_argv0_manual.c
blob59844d6bb13d17db9037b1ed521831b682b89e7d
1 int stringswitch_enumerator_eval_func(argv0) (char* str, size_t l) {
2 switch(l) {
3 case 2:
4 switch(str[0]) {
5 case 'h':
6 if(memcmp(str + 1, "i", 1) == 0)
7 return stringswitch_enumerator_member_name(argv0, hi);
8 else
9 goto main_default;
10 case 'l':
11 if(memcmp(str + 1, "o", 1) == 0)
12 return stringswitch_enumerator_member_name(argv0, lo);
13 else
14 goto main_default;
15 default:
16 goto main_default;
18 case 3: if(memcmp(str + 0, "bye", 3) == 0)
19 return stringswitch_enumerator_member_name(argv0, bye);
20 else
21 goto main_default;
22 case 5: if(str[0] != 'h')
23 goto main_default;
24 switch(str[1]) {
25 case 'e':
26 if(memcmp(str + 2, "hello" + 2, 5 - 2) == 0)
27 return stringswitch_enumerator_member_name(argv0, hello);
28 else
29 goto main_default;
30 case 'o':
31 switch(str[2]) {
32 case 'l':
33 if(str[3] != 'l')
34 goto main_default;
35 switch(str[4]) {
36 case 'a':
37 return stringswitch_enumerator_member_name(argv0, holla);
38 case 'u':
39 return stringswitch_enumerator_member_name(argv0, hollu);
40 default:
41 goto main_default;
43 case 'd':
44 if(memcmp(str + 3, "hodlu" + 3, 5 - 3) == 0)
45 return stringswitch_enumerator_member_name(argv0, hodlu);
46 else
47 goto main_default;
49 default:
50 goto main_default;
52 default:
53 goto main_default;
56 default:
57 main_default:
58 return stringswitch_enumerator_default_member_name(argv0);