File Coverage

srcout/tuba_dispatch_getmeth.h
Criterion Covered Total %
statement 40 112 35.7
branch n/a
condition n/a
subroutine n/a
pod n/a
total 40 112 35.7


line stmt bran cond sub pod time code
1              
2             /**
3             * This file was automatically generated by running the './srcutil/method_dispatch.pl'
4             * script. Do not modify this file directly.
5             *
6             * There are various macros in this header and they can be
7             * enabled within various sections of code by doing the following
8             *
9             * #define PLTUBA_METGHV_STRUCT
10             * #include "this_header_name"
11             * #undef PLTUBA_METHGV_STRUCT
12             *
13             * which will paste the definition of the methgv struct
14             */
15              
16             /** Structure defining GVs for all our callback methods */
17             #ifdef PLTUBA_METHGV_STRUCT
18             struct {
19             GV* on_string;
20             GV* on_key;
21             GV* on_number;
22             GV* on_object;
23             GV* on_list;
24             GV* on_data;
25             GV* on_json;
26             GV* on_special;
27             GV* on_boolean;
28             GV* on_null;
29             GV* on_any;
30             GV* start_string;
31             GV* start_key;
32             GV* start_number;
33             GV* start_object;
34             GV* start_list;
35             GV* start_data;
36             GV* start_json;
37             GV* start_special;
38             GV* start_boolean;
39             GV* start_null;
40             GV* start_any;
41             GV* end_string;
42             GV* end_key;
43             GV* end_number;
44             GV* end_object;
45             GV* end_list;
46             GV* end_data;
47             GV* end_json;
48             GV* end_special;
49             GV* end_boolean;
50             GV* end_null;
51             GV* end_any;
52             } methgv;
53              
54             #endif /* PLTUBA_METHGV_STRUCT */
55              
56             /** X-Macro for method names */
57             #ifdef PLTUBA_DEFINE_XMETHGV
58             #define PLTUBA_XMETHGV \
59             X(on, string) \
60             X(on, key) \
61             X(on, number) \
62             X(on, object) \
63             X(on, list) \
64             X(on, data) \
65             X(on, json) \
66             X(on, special) \
67             X(on, boolean) \
68             X(on, null) \
69             X(on, any) \
70             X(start, string) \
71             X(start, key) \
72             X(start, number) \
73             X(start, object) \
74             X(start, list) \
75             X(start, data) \
76             X(start, json) \
77             X(start, special) \
78             X(start, boolean) \
79             X(start, null) \
80             X(start, any) \
81             X(end, string) \
82             X(end, key) \
83             X(end, number) \
84             X(end, object) \
85             X(end, list) \
86             X(end, data) \
87             X(end, json) \
88             X(end, special) \
89             X(end, boolean) \
90             X(end, null) \
91             X(end, any) \
92              
93             #endif /* PLTUBA_DEFINE_XMETHGV */
94              
95             /**
96             * This generates a large switch statement which will
97             * return the proper method name and the pointer to the GV
98             * slot in the methgv structure
99             */
100             #ifdef PLTUBA_METH_GETMETH
101 57           switch(action) {
102            
103             /* on */
104             case '>': {
105 45           switch(cbtype) {
106             case '"':
107             /* string */
108 8           methname = "on_string";
109 8           methgvp = &tuba->methgv.on_string;
110 8           break;
111             case '#':
112             /* key */
113 0           methname = "on_key";
114 0           methgvp = &tuba->methgv.on_key;
115 0           break;
116             case '=':
117             /* number */
118 3           methname = "on_number";
119 3           methgvp = &tuba->methgv.on_number;
120 3           break;
121             case '{':
122             /* object */
123 0           methname = "on_object";
124 0           methgvp = &tuba->methgv.on_object;
125 0           break;
126             case '[':
127             /* list */
128 0           methname = "on_list";
129 0           methgvp = &tuba->methgv.on_list;
130 0           break;
131             case 'c':
132             /* data */
133 0           methname = "on_data";
134 0           methgvp = &tuba->methgv.on_data;
135 0           break;
136             case 'D':
137             /* json */
138 0           methname = "on_json";
139 0           methgvp = &tuba->methgv.on_json;
140 0           break;
141             case '^':
142             /* special */
143 0           methname = "on_special";
144 0           methgvp = &tuba->methgv.on_special;
145 0           break;
146             case '?':
147             /* boolean */
148 2           methname = "on_boolean";
149 2           methgvp = &tuba->methgv.on_boolean;
150 2           break;
151             case '~':
152             /* null */
153 1           methname = "on_null";
154 1           methgvp = &tuba->methgv.on_null;
155 1           break;
156             case '.':
157             /* any */
158 31           methname = "on_any";
159 31           methgvp = &tuba->methgv.on_any;
160 31           break;
161             default:
162 0           break;
163             }
164 45           break;
165             }
166            
167             /* start */
168             case '+': {
169 6           switch(cbtype) {
170             case '"':
171             /* string */
172 0           methname = "start_string";
173 0           methgvp = &tuba->methgv.start_string;
174 0           break;
175             case '#':
176             /* key */
177 0           methname = "start_key";
178 0           methgvp = &tuba->methgv.start_key;
179 0           break;
180             case '=':
181             /* number */
182 0           methname = "start_number";
183 0           methgvp = &tuba->methgv.start_number;
184 0           break;
185             case '{':
186             /* object */
187 2           methname = "start_object";
188 2           methgvp = &tuba->methgv.start_object;
189 2           break;
190             case '[':
191             /* list */
192 2           methname = "start_list";
193 2           methgvp = &tuba->methgv.start_list;
194 2           break;
195             case 'c':
196             /* data */
197 0           methname = "start_data";
198 0           methgvp = &tuba->methgv.start_data;
199 0           break;
200             case 'D':
201             /* json */
202 2           methname = "start_json";
203 2           methgvp = &tuba->methgv.start_json;
204 2           break;
205             case '^':
206             /* special */
207 0           methname = "start_special";
208 0           methgvp = &tuba->methgv.start_special;
209 0           break;
210             case '?':
211             /* boolean */
212 0           methname = "start_boolean";
213 0           methgvp = &tuba->methgv.start_boolean;
214 0           break;
215             case '~':
216             /* null */
217 0           methname = "start_null";
218 0           methgvp = &tuba->methgv.start_null;
219 0           break;
220             case '.':
221             /* any */
222 0           methname = "start_any";
223 0           methgvp = &tuba->methgv.start_any;
224 0           break;
225             default:
226 0           break;
227             }
228 6           break;
229             }
230            
231             /* end */
232             case '-': {
233 6           switch(cbtype) {
234             case '"':
235             /* string */
236 0           methname = "end_string";
237 0           methgvp = &tuba->methgv.end_string;
238 0           break;
239             case '#':
240             /* key */
241 0           methname = "end_key";
242 0           methgvp = &tuba->methgv.end_key;
243 0           break;
244             case '=':
245             /* number */
246 0           methname = "end_number";
247 0           methgvp = &tuba->methgv.end_number;
248 0           break;
249             case '{':
250             /* object */
251 2           methname = "end_object";
252 2           methgvp = &tuba->methgv.end_object;
253 2           break;
254             case '[':
255             /* list */
256 2           methname = "end_list";
257 2           methgvp = &tuba->methgv.end_list;
258 2           break;
259             case 'c':
260             /* data */
261 0           methname = "end_data";
262 0           methgvp = &tuba->methgv.end_data;
263 0           break;
264             case 'D':
265             /* json */
266 2           methname = "end_json";
267 2           methgvp = &tuba->methgv.end_json;
268 2           break;
269             case '^':
270             /* special */
271 0           methname = "end_special";
272 0           methgvp = &tuba->methgv.end_special;
273 0           break;
274             case '?':
275             /* boolean */
276 0           methname = "end_boolean";
277 0           methgvp = &tuba->methgv.end_boolean;
278 0           break;
279             case '~':
280             /* null */
281 0           methname = "end_null";
282 0           methgvp = &tuba->methgv.end_null;
283 0           break;
284             case '.':
285             /* any */
286 0           methname = "end_any";
287 0           methgvp = &tuba->methgv.end_any;
288 0           break;
289             default:
290 0           break;
291             }
292 6           break;
293             }
294             default:
295 0           methname = NULL;
296 0           methgvp = NULL;
297 0           break;
298             }
299              
300             #endif /* PLTUBA_METH_GETMETH */