/src/CMake/Utilities/cmllpkgc/llpkgc__internal.c
Line | Count | Source |
1 | | /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
2 | | file LICENSE.rst or https://cmake.org/licensing for details. */ |
3 | | |
4 | | /* This code was generated by llpkgc, do not edit it by hand |
5 | | See: https://gitlab.kitware.com/utils/llpkgc */ |
6 | | |
7 | | |
8 | | #include <stdlib.h> |
9 | | #include <stdint.h> |
10 | | #include <string.h> |
11 | | |
12 | | #ifdef __SSE4_2__ |
13 | | #ifdef _MSC_VER |
14 | | #include <nmmintrin.h> |
15 | | #else /* !_MSC_VER */ |
16 | | #include <x86intrin.h> |
17 | | #endif /* _MSC_VER */ |
18 | | #endif /* __SSE4_2__ */ |
19 | | |
20 | | #ifdef _MSC_VER |
21 | | #define ALIGN(n) _declspec(align(n)) |
22 | | #else /* !_MSC_VER */ |
23 | | #define ALIGN(n) __attribute__((aligned(n))) |
24 | | #endif /* _MSC_VER */ |
25 | | |
26 | | #include "llpkgc__internal.h" |
27 | | |
28 | | typedef int (*llpkgc__internal__span_cb)( |
29 | | llpkgc__internal_t*, const char*, const char*); |
30 | | |
31 | | enum llparse_state_e { |
32 | | s_error, |
33 | | s_n_llpkgc__internal__n_comment, |
34 | | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete, |
35 | | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_1, |
36 | | s_n_llpkgc__internal__n_literal_skip_dollar, |
37 | | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_2, |
38 | | s_n_llpkgc__internal__n_maybe_CR, |
39 | | s_n_llpkgc__internal__n_skip_escaped_LF, |
40 | | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_3, |
41 | | s_n_llpkgc__internal__n_maybe_LF, |
42 | | s_n_llpkgc__internal__n_skip_escaped_CR, |
43 | | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_4, |
44 | | s_n_llpkgc__internal__n_literal_skip_hash, |
45 | | s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_1, |
46 | | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_5, |
47 | | s_n_llpkgc__internal__n_maybe_escaped, |
48 | | s_n_llpkgc__internal__n_literal, |
49 | | s_n_llpkgc__internal__n_variable_skip_dollar, |
50 | | s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span, |
51 | | s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_2, |
52 | | s_n_llpkgc__internal__n_variable_close, |
53 | | s_n_llpkgc__internal__n_variable_skip_curly, |
54 | | s_n_llpkgc__internal__n_invoke_llpkgc__valvar_complete, |
55 | | s_n_llpkgc__internal__n_variable, |
56 | | s_n_llpkgc__internal__n_span_start_llpkgc__valvar_span, |
57 | | s_n_llpkgc__internal__n_maybe_variable, |
58 | | s_n_llpkgc__internal__n_expect_value, |
59 | | s_n_llpkgc__internal__n_expect_sep, |
60 | | s_n_llpkgc__internal__n_key, |
61 | | s_n_llpkgc__internal__n_span_start_llpkgc__key_span, |
62 | | s_n_llpkgc__internal__n_line_start, |
63 | | }; |
64 | | typedef enum llparse_state_e llparse_state_t; |
65 | | |
66 | | int llpkgc__key_span( |
67 | | llpkgc__internal_t* s, const unsigned char* p, |
68 | | const unsigned char* endp); |
69 | | |
70 | | int llpkgc__vallit_span( |
71 | | llpkgc__internal_t* s, const unsigned char* p, |
72 | | const unsigned char* endp); |
73 | | |
74 | | int llpkgc__valvar_span( |
75 | | llpkgc__internal_t* s, const unsigned char* p, |
76 | | const unsigned char* endp); |
77 | | |
78 | | int llpkgc__line_begin( |
79 | | llpkgc__internal_t* s, const unsigned char* p, |
80 | | const unsigned char* endp); |
81 | | |
82 | | int llpkgc__keyword_complete( |
83 | | llpkgc__internal_t* s, const unsigned char* p, |
84 | | const unsigned char* endp); |
85 | | |
86 | | int llpkgc__value_complete( |
87 | | llpkgc__internal_t* s, const unsigned char* p, |
88 | | const unsigned char* endp); |
89 | | |
90 | | int llpkgc__vallit_complete( |
91 | | llpkgc__internal_t* s, const unsigned char* p, |
92 | | const unsigned char* endp); |
93 | | |
94 | | int llpkgc__internal__c_update_escaped_( |
95 | | llpkgc__internal_t* state, |
96 | | const unsigned char* p, |
97 | 2.58k | const unsigned char* endp) { |
98 | 2.58k | state->escaped_ = 1; |
99 | 2.58k | return 0; |
100 | 2.58k | } |
101 | | |
102 | | int llpkgc__valvar_complete( |
103 | | llpkgc__internal_t* s, const unsigned char* p, |
104 | | const unsigned char* endp); |
105 | | |
106 | | int llpkgc__variable_complete( |
107 | | llpkgc__internal_t* s, const unsigned char* p, |
108 | | const unsigned char* endp); |
109 | | |
110 | 498 | int llpkgc__internal_init(llpkgc__internal_t* state) { |
111 | 498 | memset(state, 0, sizeof(*state)); |
112 | 498 | state->_current = (void*) (intptr_t) s_n_llpkgc__internal__n_line_start; |
113 | 498 | return 0; |
114 | 498 | } |
115 | | |
116 | | static llparse_state_t llpkgc__internal__run( |
117 | | llpkgc__internal_t* state, |
118 | | const unsigned char* p, |
119 | 498 | const unsigned char* endp) { |
120 | 498 | int match; |
121 | 498 | switch ((llparse_state_t) (intptr_t) state->_current) { |
122 | 0 | case s_n_llpkgc__internal__n_comment: |
123 | 118k | s_n_llpkgc__internal__n_comment: { |
124 | 118k | if (p == endp) { |
125 | 39 | return s_n_llpkgc__internal__n_comment; |
126 | 39 | } |
127 | 118k | switch (*p) { |
128 | 1.38k | case 10: { |
129 | 1.38k | p++; |
130 | 1.38k | goto s_n_llpkgc__internal__n_line_start; |
131 | 0 | } |
132 | 670 | case 13: { |
133 | 670 | p++; |
134 | 670 | goto s_n_llpkgc__internal__n_line_start; |
135 | 0 | } |
136 | 116k | default: { |
137 | 116k | p++; |
138 | 116k | goto s_n_llpkgc__internal__n_comment; |
139 | 0 | } |
140 | 118k | } |
141 | 0 | /* UNREACHABLE */; |
142 | 0 | abort(); |
143 | 118k | } |
144 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete: |
145 | 1.43k | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete: { |
146 | 1.43k | switch (llpkgc__vallit_complete(state, p, endp)) { |
147 | 1.43k | case 0: |
148 | 1.43k | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete_1; |
149 | 0 | default: |
150 | 0 | goto s_n_llpkgc__internal__n_error_3; |
151 | 1.43k | } |
152 | 0 | /* UNREACHABLE */; |
153 | 0 | abort(); |
154 | 1.43k | } |
155 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_1: |
156 | 539 | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_1: { |
157 | 539 | switch (llpkgc__vallit_complete(state, p, endp)) { |
158 | 539 | case 0: |
159 | 539 | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete_2; |
160 | 0 | default: |
161 | 0 | goto s_n_llpkgc__internal__n_error_5; |
162 | 539 | } |
163 | 0 | /* UNREACHABLE */; |
164 | 0 | abort(); |
165 | 539 | } |
166 | 0 | case s_n_llpkgc__internal__n_literal_skip_dollar: |
167 | 34.6k | s_n_llpkgc__internal__n_literal_skip_dollar: { |
168 | 34.6k | if (p == endp) { |
169 | 0 | return s_n_llpkgc__internal__n_literal_skip_dollar; |
170 | 0 | } |
171 | 34.6k | p++; |
172 | 34.6k | goto s_n_llpkgc__internal__n_maybe_variable; |
173 | 0 | /* UNREACHABLE */; |
174 | 0 | abort(); |
175 | 34.6k | } |
176 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_2: |
177 | 34.6k | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_2: { |
178 | 34.6k | switch (llpkgc__vallit_complete(state, p, endp)) { |
179 | 34.6k | case 0: |
180 | 34.6k | goto s_n_llpkgc__internal__n_literal_skip_dollar; |
181 | 0 | default: |
182 | 0 | goto s_n_llpkgc__internal__n_error_7; |
183 | 34.6k | } |
184 | 0 | /* UNREACHABLE */; |
185 | 0 | abort(); |
186 | 34.6k | } |
187 | 0 | case s_n_llpkgc__internal__n_maybe_CR: |
188 | 1.05k | s_n_llpkgc__internal__n_maybe_CR: { |
189 | 1.05k | if (p == endp) { |
190 | 9 | return s_n_llpkgc__internal__n_maybe_CR; |
191 | 9 | } |
192 | 1.04k | switch (*p) { |
193 | 194 | case 13: { |
194 | 194 | p++; |
195 | 194 | goto s_n_llpkgc__internal__n_expect_value; |
196 | 0 | } |
197 | 847 | default: { |
198 | 847 | goto s_n_llpkgc__internal__n_expect_value; |
199 | 0 | } |
200 | 1.04k | } |
201 | 0 | /* UNREACHABLE */; |
202 | 0 | abort(); |
203 | 1.04k | } |
204 | 0 | case s_n_llpkgc__internal__n_skip_escaped_LF: |
205 | 1.05k | s_n_llpkgc__internal__n_skip_escaped_LF: { |
206 | 1.05k | if (p == endp) { |
207 | 0 | return s_n_llpkgc__internal__n_skip_escaped_LF; |
208 | 0 | } |
209 | 1.05k | p++; |
210 | 1.05k | goto s_n_llpkgc__internal__n_maybe_CR; |
211 | 0 | /* UNREACHABLE */; |
212 | 0 | abort(); |
213 | 1.05k | } |
214 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_3: |
215 | 1.05k | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_3: { |
216 | 1.05k | switch (llpkgc__vallit_complete(state, p, endp)) { |
217 | 1.05k | case 0: |
218 | 1.05k | goto s_n_llpkgc__internal__n_skip_escaped_LF; |
219 | 0 | default: |
220 | 0 | goto s_n_llpkgc__internal__n_error_8; |
221 | 1.05k | } |
222 | 0 | /* UNREACHABLE */; |
223 | 0 | abort(); |
224 | 1.05k | } |
225 | 0 | case s_n_llpkgc__internal__n_maybe_LF: |
226 | 881 | s_n_llpkgc__internal__n_maybe_LF: { |
227 | 881 | if (p == endp) { |
228 | 8 | return s_n_llpkgc__internal__n_maybe_LF; |
229 | 8 | } |
230 | 873 | switch (*p) { |
231 | 196 | case 10: { |
232 | 196 | p++; |
233 | 196 | goto s_n_llpkgc__internal__n_expect_value; |
234 | 0 | } |
235 | 677 | default: { |
236 | 677 | goto s_n_llpkgc__internal__n_expect_value; |
237 | 0 | } |
238 | 873 | } |
239 | 0 | /* UNREACHABLE */; |
240 | 0 | abort(); |
241 | 873 | } |
242 | 0 | case s_n_llpkgc__internal__n_skip_escaped_CR: |
243 | 881 | s_n_llpkgc__internal__n_skip_escaped_CR: { |
244 | 881 | if (p == endp) { |
245 | 0 | return s_n_llpkgc__internal__n_skip_escaped_CR; |
246 | 0 | } |
247 | 881 | p++; |
248 | 881 | goto s_n_llpkgc__internal__n_maybe_LF; |
249 | 0 | /* UNREACHABLE */; |
250 | 0 | abort(); |
251 | 881 | } |
252 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_4: |
253 | 881 | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_4: { |
254 | 881 | switch (llpkgc__vallit_complete(state, p, endp)) { |
255 | 881 | case 0: |
256 | 881 | goto s_n_llpkgc__internal__n_skip_escaped_CR; |
257 | 0 | default: |
258 | 0 | goto s_n_llpkgc__internal__n_error_9; |
259 | 881 | } |
260 | 0 | /* UNREACHABLE */; |
261 | 0 | abort(); |
262 | 881 | } |
263 | 0 | case s_n_llpkgc__internal__n_literal_skip_hash: |
264 | 657 | s_n_llpkgc__internal__n_literal_skip_hash: { |
265 | 657 | if (p == endp) { |
266 | 0 | return s_n_llpkgc__internal__n_literal_skip_hash; |
267 | 0 | } |
268 | 657 | p++; |
269 | 657 | goto s_n_llpkgc__internal__n_literal; |
270 | 0 | /* UNREACHABLE */; |
271 | 0 | abort(); |
272 | 657 | } |
273 | 0 | case s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_1: |
274 | 657 | s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_1: { |
275 | 657 | if (p == endp) { |
276 | 0 | return s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_1; |
277 | 0 | } |
278 | 657 | state->_span_pos0 = (void*) p; |
279 | 657 | state->_span_cb0 = llpkgc__vallit_span; |
280 | 657 | goto s_n_llpkgc__internal__n_literal_skip_hash; |
281 | 0 | /* UNREACHABLE */; |
282 | 0 | abort(); |
283 | 657 | } |
284 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_5: |
285 | 657 | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_5: { |
286 | 657 | switch (llpkgc__vallit_complete(state, p, endp)) { |
287 | 657 | case 0: |
288 | 657 | goto s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_1; |
289 | 0 | default: |
290 | 0 | goto s_n_llpkgc__internal__n_error_10; |
291 | 657 | } |
292 | 0 | /* UNREACHABLE */; |
293 | 0 | abort(); |
294 | 657 | } |
295 | 0 | case s_n_llpkgc__internal__n_maybe_escaped: |
296 | 4.35k | s_n_llpkgc__internal__n_maybe_escaped: { |
297 | 4.35k | if (p == endp) { |
298 | 14 | return s_n_llpkgc__internal__n_maybe_escaped; |
299 | 14 | } |
300 | 4.34k | switch (*p) { |
301 | 1.05k | case 10: { |
302 | 1.05k | goto s_n_llpkgc__internal__n_invoke_update_escaped_; |
303 | 0 | } |
304 | 881 | case 13: { |
305 | 881 | goto s_n_llpkgc__internal__n_invoke_update_escaped__1; |
306 | 0 | } |
307 | 657 | case '#': { |
308 | 657 | goto s_n_llpkgc__internal__n_invoke_update_escaped__2; |
309 | 0 | } |
310 | 1.75k | default: { |
311 | 1.75k | goto s_n_llpkgc__internal__n_literal; |
312 | 0 | } |
313 | 4.34k | } |
314 | 0 | /* UNREACHABLE */; |
315 | 0 | abort(); |
316 | 4.34k | } |
317 | 0 | case s_n_llpkgc__internal__n_literal: |
318 | 302k | s_n_llpkgc__internal__n_literal: { |
319 | 302k | if (p == endp) { |
320 | 134 | return s_n_llpkgc__internal__n_literal; |
321 | 134 | } |
322 | 302k | switch (*p) { |
323 | 770 | case 10: { |
324 | 770 | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span; |
325 | 0 | } |
326 | 663 | case 13: { |
327 | 663 | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span; |
328 | 0 | } |
329 | 539 | case '#': { |
330 | 539 | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_1; |
331 | 0 | } |
332 | 34.6k | case '$': { |
333 | 34.6k | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_2; |
334 | 0 | } |
335 | 4.35k | case 92: { |
336 | 4.35k | p++; |
337 | 4.35k | goto s_n_llpkgc__internal__n_maybe_escaped; |
338 | 0 | } |
339 | 261k | default: { |
340 | 261k | p++; |
341 | 261k | goto s_n_llpkgc__internal__n_literal; |
342 | 0 | } |
343 | 302k | } |
344 | 0 | /* UNREACHABLE */; |
345 | 0 | abort(); |
346 | 302k | } |
347 | 0 | case s_n_llpkgc__internal__n_variable_skip_dollar: |
348 | 34.0k | s_n_llpkgc__internal__n_variable_skip_dollar: { |
349 | 34.0k | if (p == endp) { |
350 | 0 | return s_n_llpkgc__internal__n_variable_skip_dollar; |
351 | 0 | } |
352 | 34.0k | p++; |
353 | 34.0k | goto s_n_llpkgc__internal__n_literal; |
354 | 0 | /* UNREACHABLE */; |
355 | 0 | abort(); |
356 | 34.0k | } |
357 | 0 | case s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span: |
358 | 34.0k | s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span: { |
359 | 34.0k | if (p == endp) { |
360 | 0 | return s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span; |
361 | 0 | } |
362 | 34.0k | state->_span_pos0 = (void*) p; |
363 | 34.0k | state->_span_cb0 = llpkgc__vallit_span; |
364 | 34.0k | goto s_n_llpkgc__internal__n_variable_skip_dollar; |
365 | 0 | /* UNREACHABLE */; |
366 | 0 | abort(); |
367 | 34.0k | } |
368 | 0 | case s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_2: |
369 | 4.72k | s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_2: { |
370 | 4.72k | if (p == endp) { |
371 | 0 | return s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_2; |
372 | 0 | } |
373 | 4.72k | state->_span_pos0 = (void*) p; |
374 | 4.72k | state->_span_cb0 = llpkgc__vallit_span; |
375 | 4.72k | goto s_n_llpkgc__internal__n_literal; |
376 | 0 | /* UNREACHABLE */; |
377 | 0 | abort(); |
378 | 4.72k | } |
379 | 0 | case s_n_llpkgc__internal__n_variable_close: |
380 | 3.02k | s_n_llpkgc__internal__n_variable_close: { |
381 | 3.02k | if (p == endp) { |
382 | 22 | return s_n_llpkgc__internal__n_variable_close; |
383 | 22 | } |
384 | 3.00k | switch (*p) { |
385 | 574 | case 10: { |
386 | 574 | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
387 | 0 | } |
388 | 194 | case 13: { |
389 | 194 | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
390 | 0 | } |
391 | 531 | case '#': { |
392 | 531 | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
393 | 0 | } |
394 | 727 | case '$': { |
395 | 727 | p++; |
396 | 727 | goto s_n_llpkgc__internal__n_maybe_variable; |
397 | 0 | } |
398 | 980 | default: { |
399 | 980 | goto s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_2; |
400 | 0 | } |
401 | 3.00k | } |
402 | 0 | /* UNREACHABLE */; |
403 | 0 | abort(); |
404 | 3.00k | } |
405 | 0 | case s_n_llpkgc__internal__n_variable_skip_curly: |
406 | 3.02k | s_n_llpkgc__internal__n_variable_skip_curly: { |
407 | 3.02k | if (p == endp) { |
408 | 0 | return s_n_llpkgc__internal__n_variable_skip_curly; |
409 | 0 | } |
410 | 3.02k | p++; |
411 | 3.02k | goto s_n_llpkgc__internal__n_variable_close; |
412 | 0 | /* UNREACHABLE */; |
413 | 0 | abort(); |
414 | 3.02k | } |
415 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__valvar_complete: |
416 | 3.02k | s_n_llpkgc__internal__n_invoke_llpkgc__valvar_complete: { |
417 | 3.02k | switch (llpkgc__valvar_complete(state, p, endp)) { |
418 | 3.02k | case 0: |
419 | 3.02k | goto s_n_llpkgc__internal__n_variable_skip_curly; |
420 | 0 | default: |
421 | 0 | goto s_n_llpkgc__internal__n_error_11; |
422 | 3.02k | } |
423 | 0 | /* UNREACHABLE */; |
424 | 0 | abort(); |
425 | 3.02k | } |
426 | 0 | case s_n_llpkgc__internal__n_variable: |
427 | 3.33k | s_n_llpkgc__internal__n_variable: { |
428 | 3.33k | static uint8_t lookup_table[] = { |
429 | 3.33k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
430 | 3.33k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
431 | 3.33k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, |
432 | 3.33k | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, |
433 | 3.33k | 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
434 | 3.33k | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, |
435 | 3.33k | 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
436 | 3.33k | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 0, 0, |
437 | 3.33k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
438 | 3.33k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
439 | 3.33k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
440 | 3.33k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
441 | 3.33k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
442 | 3.33k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
443 | 3.33k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
444 | 3.33k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
445 | 3.33k | }; |
446 | 3.33k | if (p == endp) { |
447 | 5 | return s_n_llpkgc__internal__n_variable; |
448 | 5 | } |
449 | 3.33k | switch (lookup_table[(uint8_t) *p]) { |
450 | 301 | case 1: { |
451 | 301 | p++; |
452 | 301 | goto s_n_llpkgc__internal__n_variable; |
453 | 0 | } |
454 | 3.02k | case 2: { |
455 | 3.02k | goto s_n_llpkgc__internal__n_span_end_llpkgc__valvar_span; |
456 | 0 | } |
457 | 5 | default: { |
458 | 5 | goto s_n_llpkgc__internal__n_error_12; |
459 | 0 | } |
460 | 3.33k | } |
461 | 0 | /* UNREACHABLE */; |
462 | 0 | abort(); |
463 | 3.33k | } |
464 | 0 | case s_n_llpkgc__internal__n_span_start_llpkgc__valvar_span: |
465 | 3.04k | s_n_llpkgc__internal__n_span_start_llpkgc__valvar_span: { |
466 | 3.04k | if (p == endp) { |
467 | 7 | return s_n_llpkgc__internal__n_span_start_llpkgc__valvar_span; |
468 | 7 | } |
469 | 3.03k | state->_span_pos0 = (void*) p; |
470 | 3.03k | state->_span_cb0 = llpkgc__valvar_span; |
471 | 3.03k | goto s_n_llpkgc__internal__n_variable; |
472 | 0 | /* UNREACHABLE */; |
473 | 0 | abort(); |
474 | 3.04k | } |
475 | 0 | case s_n_llpkgc__internal__n_maybe_variable: |
476 | 37.1k | s_n_llpkgc__internal__n_maybe_variable: { |
477 | 37.1k | if (p == endp) { |
478 | 27 | return s_n_llpkgc__internal__n_maybe_variable; |
479 | 27 | } |
480 | 37.0k | switch (*p) { |
481 | 34.0k | case '$': { |
482 | 34.0k | goto s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span; |
483 | 0 | } |
484 | 3.04k | case '{': { |
485 | 3.04k | p++; |
486 | 3.04k | goto s_n_llpkgc__internal__n_span_start_llpkgc__valvar_span; |
487 | 0 | } |
488 | 3 | default: { |
489 | 3 | goto s_n_llpkgc__internal__n_error_13; |
490 | 0 | } |
491 | 37.0k | } |
492 | 0 | /* UNREACHABLE */; |
493 | 0 | abort(); |
494 | 37.0k | } |
495 | 0 | case s_n_llpkgc__internal__n_expect_value: |
496 | 80.0k | s_n_llpkgc__internal__n_expect_value: { |
497 | 80.0k | if (p == endp) { |
498 | 84 | return s_n_llpkgc__internal__n_expect_value; |
499 | 84 | } |
500 | 79.9k | switch (*p) { |
501 | 526 | case 9: { |
502 | 526 | p++; |
503 | 526 | goto s_n_llpkgc__internal__n_expect_value; |
504 | 0 | } |
505 | 33.5k | case 10: { |
506 | 33.5k | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
507 | 0 | } |
508 | 35.7k | case 13: { |
509 | 35.7k | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
510 | 0 | } |
511 | 4.28k | case ' ': { |
512 | 4.28k | p++; |
513 | 4.28k | goto s_n_llpkgc__internal__n_expect_value; |
514 | 0 | } |
515 | 423 | case '#': { |
516 | 423 | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
517 | 0 | } |
518 | 1.67k | case '$': { |
519 | 1.67k | p++; |
520 | 1.67k | goto s_n_llpkgc__internal__n_maybe_variable; |
521 | 0 | } |
522 | 3.74k | default: { |
523 | 3.74k | goto s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_2; |
524 | 0 | } |
525 | 79.9k | } |
526 | 0 | /* UNREACHABLE */; |
527 | 0 | abort(); |
528 | 79.9k | } |
529 | 0 | case s_n_llpkgc__internal__n_expect_sep: |
530 | 74.0k | s_n_llpkgc__internal__n_expect_sep: { |
531 | 74.0k | if (p == endp) { |
532 | 21 | return s_n_llpkgc__internal__n_expect_sep; |
533 | 21 | } |
534 | 73.9k | switch (*p) { |
535 | 258 | case 9: { |
536 | 258 | p++; |
537 | 258 | goto s_n_llpkgc__internal__n_expect_sep; |
538 | 0 | } |
539 | 404 | case ' ': { |
540 | 404 | p++; |
541 | 404 | goto s_n_llpkgc__internal__n_expect_sep; |
542 | 0 | } |
543 | 50.3k | case ':': { |
544 | 50.3k | p++; |
545 | 50.3k | goto s_n_llpkgc__internal__n_invoke_llpkgc__keyword_complete; |
546 | 0 | } |
547 | 23.0k | case '=': { |
548 | 23.0k | p++; |
549 | 23.0k | goto s_n_llpkgc__internal__n_invoke_llpkgc__variable_complete; |
550 | 0 | } |
551 | 5 | default: { |
552 | 5 | goto s_n_llpkgc__internal__n_error_15; |
553 | 0 | } |
554 | 73.9k | } |
555 | 0 | /* UNREACHABLE */; |
556 | 0 | abort(); |
557 | 73.9k | } |
558 | 0 | case s_n_llpkgc__internal__n_key: |
559 | 152k | s_n_llpkgc__internal__n_key: { |
560 | 152k | static uint8_t lookup_table[] = { |
561 | 152k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, |
562 | 152k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
563 | 152k | 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, |
564 | 152k | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 1, 0, 0, |
565 | 152k | 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
566 | 152k | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, |
567 | 152k | 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
568 | 152k | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, |
569 | 152k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
570 | 152k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
571 | 152k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
572 | 152k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
573 | 152k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
574 | 152k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
575 | 152k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
576 | 152k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
577 | 152k | }; |
578 | 152k | if (p == endp) { |
579 | 12 | return s_n_llpkgc__internal__n_key; |
580 | 12 | } |
581 | 152k | switch (lookup_table[(uint8_t) *p]) { |
582 | 73.3k | case 1: { |
583 | 73.3k | goto s_n_llpkgc__internal__n_span_end_llpkgc__key_span; |
584 | 0 | } |
585 | 79.3k | case 2: { |
586 | 79.3k | p++; |
587 | 79.3k | goto s_n_llpkgc__internal__n_key; |
588 | 0 | } |
589 | 12 | default: { |
590 | 12 | goto s_n_llpkgc__internal__n_error_16; |
591 | 0 | } |
592 | 152k | } |
593 | 0 | /* UNREACHABLE */; |
594 | 0 | abort(); |
595 | 152k | } |
596 | 0 | case s_n_llpkgc__internal__n_span_start_llpkgc__key_span: |
597 | 73.3k | s_n_llpkgc__internal__n_span_start_llpkgc__key_span: { |
598 | 73.3k | if (p == endp) { |
599 | 0 | return s_n_llpkgc__internal__n_span_start_llpkgc__key_span; |
600 | 0 | } |
601 | 73.3k | state->_span_pos0 = (void*) p; |
602 | 73.3k | state->_span_cb0 = llpkgc__key_span; |
603 | 73.3k | goto s_n_llpkgc__internal__n_key; |
604 | 0 | /* UNREACHABLE */; |
605 | 0 | abort(); |
606 | 73.3k | } |
607 | 498 | case s_n_llpkgc__internal__n_line_start: |
608 | 146k | s_n_llpkgc__internal__n_line_start: { |
609 | 146k | static uint8_t lookup_table[] = { |
610 | 146k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, |
611 | 146k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
612 | 146k | 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, |
613 | 146k | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, |
614 | 146k | 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
615 | 146k | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 3, |
616 | 146k | 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
617 | 146k | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, |
618 | 146k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
619 | 146k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
620 | 146k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
621 | 146k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
622 | 146k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
623 | 146k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
624 | 146k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
625 | 146k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
626 | 146k | }; |
627 | 146k | if (p == endp) { |
628 | 83 | return s_n_llpkgc__internal__n_line_start; |
629 | 83 | } |
630 | 146k | switch (lookup_table[(uint8_t) *p]) { |
631 | 71.9k | case 1: { |
632 | 71.9k | p++; |
633 | 71.9k | goto s_n_llpkgc__internal__n_line_start; |
634 | 0 | } |
635 | 1.55k | case 2: { |
636 | 1.55k | p++; |
637 | 1.55k | goto s_n_llpkgc__internal__n_comment; |
638 | 0 | } |
639 | 73.3k | case 3: { |
640 | 73.3k | goto s_n_llpkgc__internal__n_invoke_llpkgc__line_begin; |
641 | 0 | } |
642 | 8 | default: { |
643 | 8 | goto s_n_llpkgc__internal__n_error_17; |
644 | 0 | } |
645 | 146k | } |
646 | 0 | /* UNREACHABLE */; |
647 | 0 | abort(); |
648 | 146k | } |
649 | 0 | default: |
650 | | /* UNREACHABLE */ |
651 | 0 | abort(); |
652 | 498 | } |
653 | 0 | s_n_llpkgc__internal__n_error_2: { |
654 | 0 | state->error = 0xb; |
655 | 0 | state->reason = "Value complete error"; |
656 | 0 | state->error_pos = (const char*) p; |
657 | 0 | state->_current = (void*) (intptr_t) s_error; |
658 | 0 | return s_error; |
659 | 0 | /* UNREACHABLE */; |
660 | 0 | abort(); |
661 | 498 | } |
662 | 71.0k | s_n_llpkgc__internal__n_invoke_llpkgc__value_complete: { |
663 | 71.0k | switch (llpkgc__value_complete(state, p, endp)) { |
664 | 71.0k | case 0: |
665 | 71.0k | goto s_n_llpkgc__internal__n_line_start; |
666 | 0 | default: |
667 | 0 | goto s_n_llpkgc__internal__n_error_2; |
668 | 71.0k | } |
669 | 0 | /* UNREACHABLE */; |
670 | 0 | abort(); |
671 | 71.0k | } |
672 | 0 | s_n_llpkgc__internal__n_error_4: { |
673 | 0 | state->error = 0xb; |
674 | 0 | state->reason = "Value complete error"; |
675 | 0 | state->error_pos = (const char*) p; |
676 | 0 | state->_current = (void*) (intptr_t) s_error; |
677 | 0 | return s_error; |
678 | 0 | /* UNREACHABLE */; |
679 | 0 | abort(); |
680 | 71.0k | } |
681 | 1.43k | s_n_llpkgc__internal__n_invoke_llpkgc__value_complete_1: { |
682 | 1.43k | switch (llpkgc__value_complete(state, p, endp)) { |
683 | 1.43k | case 0: |
684 | 1.43k | goto s_n_llpkgc__internal__n_line_start; |
685 | 0 | default: |
686 | 0 | goto s_n_llpkgc__internal__n_error_4; |
687 | 1.43k | } |
688 | 0 | /* UNREACHABLE */; |
689 | 0 | abort(); |
690 | 1.43k | } |
691 | 0 | s_n_llpkgc__internal__n_error_3: { |
692 | 0 | state->error = 0xa; |
693 | 0 | state->reason = "Literal complete error"; |
694 | 0 | state->error_pos = (const char*) p; |
695 | 0 | state->_current = (void*) (intptr_t) s_error; |
696 | 0 | return s_error; |
697 | 0 | /* UNREACHABLE */; |
698 | 0 | abort(); |
699 | 1.43k | } |
700 | 1.43k | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span: { |
701 | 1.43k | const unsigned char* start; |
702 | 1.43k | int err; |
703 | | |
704 | 1.43k | start = state->_span_pos0; |
705 | 1.43k | state->_span_pos0 = NULL; |
706 | 1.43k | err = llpkgc__vallit_span(state, start, p); |
707 | 1.43k | if (err != 0) { |
708 | 0 | state->error = err; |
709 | 0 | state->error_pos = (const char*) p; |
710 | 0 | state->_current = (void*) (intptr_t) s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete; |
711 | 0 | return s_error; |
712 | 0 | } |
713 | 1.43k | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete; |
714 | 1.43k | /* UNREACHABLE */; |
715 | 0 | abort(); |
716 | 1.43k | } |
717 | 0 | s_n_llpkgc__internal__n_error_6: { |
718 | 0 | state->error = 0xb; |
719 | 0 | state->reason = "Value complete error"; |
720 | 0 | state->error_pos = (const char*) p; |
721 | 0 | state->_current = (void*) (intptr_t) s_error; |
722 | 0 | return s_error; |
723 | 0 | /* UNREACHABLE */; |
724 | 0 | abort(); |
725 | 1.43k | } |
726 | 539 | s_n_llpkgc__internal__n_invoke_llpkgc__value_complete_2: { |
727 | 539 | switch (llpkgc__value_complete(state, p, endp)) { |
728 | 539 | case 0: |
729 | 539 | goto s_n_llpkgc__internal__n_comment; |
730 | 0 | default: |
731 | 0 | goto s_n_llpkgc__internal__n_error_6; |
732 | 539 | } |
733 | 0 | /* UNREACHABLE */; |
734 | 0 | abort(); |
735 | 539 | } |
736 | 0 | s_n_llpkgc__internal__n_error_5: { |
737 | 0 | state->error = 0xa; |
738 | 0 | state->reason = "Literal complete error"; |
739 | 0 | state->error_pos = (const char*) p; |
740 | 0 | state->_current = (void*) (intptr_t) s_error; |
741 | 0 | return s_error; |
742 | 0 | /* UNREACHABLE */; |
743 | 0 | abort(); |
744 | 539 | } |
745 | 539 | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_1: { |
746 | 539 | const unsigned char* start; |
747 | 539 | int err; |
748 | | |
749 | 539 | start = state->_span_pos0; |
750 | 539 | state->_span_pos0 = NULL; |
751 | 539 | err = llpkgc__vallit_span(state, start, p); |
752 | 539 | if (err != 0) { |
753 | 0 | state->error = err; |
754 | 0 | state->error_pos = (const char*) p; |
755 | 0 | state->_current = (void*) (intptr_t) s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_1; |
756 | 0 | return s_error; |
757 | 0 | } |
758 | 539 | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_1; |
759 | 539 | /* UNREACHABLE */; |
760 | 0 | abort(); |
761 | 539 | } |
762 | 0 | s_n_llpkgc__internal__n_error_7: { |
763 | 0 | state->error = 0xa; |
764 | 0 | state->reason = "Literal complete error"; |
765 | 0 | state->error_pos = (const char*) p; |
766 | 0 | state->_current = (void*) (intptr_t) s_error; |
767 | 0 | return s_error; |
768 | 0 | /* UNREACHABLE */; |
769 | 0 | abort(); |
770 | 539 | } |
771 | 34.6k | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_2: { |
772 | 34.6k | const unsigned char* start; |
773 | 34.6k | int err; |
774 | | |
775 | 34.6k | start = state->_span_pos0; |
776 | 34.6k | state->_span_pos0 = NULL; |
777 | 34.6k | err = llpkgc__vallit_span(state, start, p); |
778 | 34.6k | if (err != 0) { |
779 | 0 | state->error = err; |
780 | 0 | state->error_pos = (const char*) p; |
781 | 0 | state->_current = (void*) (intptr_t) s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_2; |
782 | 0 | return s_error; |
783 | 0 | } |
784 | 34.6k | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_2; |
785 | 34.6k | /* UNREACHABLE */; |
786 | 0 | abort(); |
787 | 34.6k | } |
788 | 0 | s_n_llpkgc__internal__n_error_8: { |
789 | 0 | state->error = 0xa; |
790 | 0 | state->reason = "Literal complete error"; |
791 | 0 | state->error_pos = (const char*) p; |
792 | 0 | state->_current = (void*) (intptr_t) s_error; |
793 | 0 | return s_error; |
794 | 0 | /* UNREACHABLE */; |
795 | 0 | abort(); |
796 | 34.6k | } |
797 | 1.05k | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_3: { |
798 | 1.05k | const unsigned char* start; |
799 | 1.05k | int err; |
800 | | |
801 | 1.05k | start = state->_span_pos0; |
802 | 1.05k | state->_span_pos0 = NULL; |
803 | 1.05k | err = llpkgc__vallit_span(state, start, p); |
804 | 1.05k | if (err != 0) { |
805 | 0 | state->error = err; |
806 | 0 | state->error_pos = (const char*) p; |
807 | 0 | state->_current = (void*) (intptr_t) s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_3; |
808 | 0 | return s_error; |
809 | 0 | } |
810 | 1.05k | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_3; |
811 | 1.05k | /* UNREACHABLE */; |
812 | 0 | abort(); |
813 | 1.05k | } |
814 | 1.05k | s_n_llpkgc__internal__n_invoke_update_escaped_: { |
815 | 1.05k | switch (llpkgc__internal__c_update_escaped_(state, p, endp)) { |
816 | 1.05k | default: |
817 | 1.05k | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_3; |
818 | 1.05k | } |
819 | 0 | /* UNREACHABLE */; |
820 | 0 | abort(); |
821 | 1.05k | } |
822 | 0 | s_n_llpkgc__internal__n_error_9: { |
823 | 0 | state->error = 0xa; |
824 | 0 | state->reason = "Literal complete error"; |
825 | 0 | state->error_pos = (const char*) p; |
826 | 0 | state->_current = (void*) (intptr_t) s_error; |
827 | 0 | return s_error; |
828 | 0 | /* UNREACHABLE */; |
829 | 0 | abort(); |
830 | 1.05k | } |
831 | 881 | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_4: { |
832 | 881 | const unsigned char* start; |
833 | 881 | int err; |
834 | | |
835 | 881 | start = state->_span_pos0; |
836 | 881 | state->_span_pos0 = NULL; |
837 | 881 | err = llpkgc__vallit_span(state, start, p); |
838 | 881 | if (err != 0) { |
839 | 0 | state->error = err; |
840 | 0 | state->error_pos = (const char*) p; |
841 | 0 | state->_current = (void*) (intptr_t) s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_4; |
842 | 0 | return s_error; |
843 | 0 | } |
844 | 881 | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_4; |
845 | 881 | /* UNREACHABLE */; |
846 | 0 | abort(); |
847 | 881 | } |
848 | 881 | s_n_llpkgc__internal__n_invoke_update_escaped__1: { |
849 | 881 | switch (llpkgc__internal__c_update_escaped_(state, p, endp)) { |
850 | 881 | default: |
851 | 881 | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_4; |
852 | 881 | } |
853 | 0 | /* UNREACHABLE */; |
854 | 0 | abort(); |
855 | 881 | } |
856 | 0 | s_n_llpkgc__internal__n_error_10: { |
857 | 0 | state->error = 0xa; |
858 | 0 | state->reason = "Literal complete error"; |
859 | 0 | state->error_pos = (const char*) p; |
860 | 0 | state->_current = (void*) (intptr_t) s_error; |
861 | 0 | return s_error; |
862 | 0 | /* UNREACHABLE */; |
863 | 0 | abort(); |
864 | 881 | } |
865 | 657 | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_5: { |
866 | 657 | const unsigned char* start; |
867 | 657 | int err; |
868 | | |
869 | 657 | start = state->_span_pos0; |
870 | 657 | state->_span_pos0 = NULL; |
871 | 657 | err = llpkgc__vallit_span(state, start, p); |
872 | 657 | if (err != 0) { |
873 | 0 | state->error = err; |
874 | 0 | state->error_pos = (const char*) p; |
875 | 0 | state->_current = (void*) (intptr_t) s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_5; |
876 | 0 | return s_error; |
877 | 0 | } |
878 | 657 | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_5; |
879 | 657 | /* UNREACHABLE */; |
880 | 0 | abort(); |
881 | 657 | } |
882 | 657 | s_n_llpkgc__internal__n_invoke_update_escaped__2: { |
883 | 657 | switch (llpkgc__internal__c_update_escaped_(state, p, endp)) { |
884 | 657 | default: |
885 | 657 | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_5; |
886 | 657 | } |
887 | 0 | /* UNREACHABLE */; |
888 | 0 | abort(); |
889 | 657 | } |
890 | 0 | s_n_llpkgc__internal__n_error_11: { |
891 | 0 | state->error = 0xc; |
892 | 0 | state->reason = "Variable complete error"; |
893 | 0 | state->error_pos = (const char*) p; |
894 | 0 | state->_current = (void*) (intptr_t) s_error; |
895 | 0 | return s_error; |
896 | 0 | /* UNREACHABLE */; |
897 | 0 | abort(); |
898 | 657 | } |
899 | 3.02k | s_n_llpkgc__internal__n_span_end_llpkgc__valvar_span: { |
900 | 3.02k | const unsigned char* start; |
901 | 3.02k | int err; |
902 | | |
903 | 3.02k | start = state->_span_pos0; |
904 | 3.02k | state->_span_pos0 = NULL; |
905 | 3.02k | err = llpkgc__valvar_span(state, start, p); |
906 | 3.02k | if (err != 0) { |
907 | 0 | state->error = err; |
908 | 0 | state->error_pos = (const char*) p; |
909 | 0 | state->_current = (void*) (intptr_t) s_n_llpkgc__internal__n_invoke_llpkgc__valvar_complete; |
910 | 0 | return s_error; |
911 | 0 | } |
912 | 3.02k | goto s_n_llpkgc__internal__n_invoke_llpkgc__valvar_complete; |
913 | 3.02k | /* UNREACHABLE */; |
914 | 0 | abort(); |
915 | 3.02k | } |
916 | 5 | s_n_llpkgc__internal__n_error_12: { |
917 | 5 | state->error = 0xd; |
918 | 5 | state->reason = "Invalid variable character"; |
919 | 5 | state->error_pos = (const char*) p; |
920 | 5 | state->_current = (void*) (intptr_t) s_error; |
921 | 5 | return s_error; |
922 | 0 | /* UNREACHABLE */; |
923 | 0 | abort(); |
924 | 3.02k | } |
925 | 3 | s_n_llpkgc__internal__n_error_13: { |
926 | 3 | state->error = 0x9; |
927 | 3 | state->reason = "Unexpected `$`"; |
928 | 3 | state->error_pos = (const char*) p; |
929 | 3 | state->_current = (void*) (intptr_t) s_error; |
930 | 3 | return s_error; |
931 | 0 | /* UNREACHABLE */; |
932 | 0 | abort(); |
933 | 3.02k | } |
934 | 0 | s_n_llpkgc__internal__n_error_1: { |
935 | 0 | state->error = 0x5; |
936 | 0 | state->reason = "Keyword complete error"; |
937 | 0 | state->error_pos = (const char*) p; |
938 | 0 | state->_current = (void*) (intptr_t) s_error; |
939 | 0 | return s_error; |
940 | 0 | /* UNREACHABLE */; |
941 | 0 | abort(); |
942 | 3.02k | } |
943 | 50.3k | s_n_llpkgc__internal__n_invoke_llpkgc__keyword_complete: { |
944 | 50.3k | switch (llpkgc__keyword_complete(state, p, endp)) { |
945 | 50.3k | case 0: |
946 | 50.3k | goto s_n_llpkgc__internal__n_expect_value; |
947 | 0 | default: |
948 | 0 | goto s_n_llpkgc__internal__n_error_1; |
949 | 50.3k | } |
950 | 0 | /* UNREACHABLE */; |
951 | 0 | abort(); |
952 | 50.3k | } |
953 | 0 | s_n_llpkgc__internal__n_error_14: { |
954 | 0 | state->error = 0x6; |
955 | 0 | state->reason = "Variable complete error"; |
956 | 0 | state->error_pos = (const char*) p; |
957 | 0 | state->_current = (void*) (intptr_t) s_error; |
958 | 0 | return s_error; |
959 | 0 | /* UNREACHABLE */; |
960 | 0 | abort(); |
961 | 50.3k | } |
962 | 23.0k | s_n_llpkgc__internal__n_invoke_llpkgc__variable_complete: { |
963 | 23.0k | switch (llpkgc__variable_complete(state, p, endp)) { |
964 | 23.0k | case 0: |
965 | 23.0k | goto s_n_llpkgc__internal__n_expect_value; |
966 | 0 | default: |
967 | 0 | goto s_n_llpkgc__internal__n_error_14; |
968 | 23.0k | } |
969 | 0 | /* UNREACHABLE */; |
970 | 0 | abort(); |
971 | 23.0k | } |
972 | 5 | s_n_llpkgc__internal__n_error_15: { |
973 | 5 | state->error = 0x7; |
974 | 5 | state->reason = "Expected seperator"; |
975 | 5 | state->error_pos = (const char*) p; |
976 | 5 | state->_current = (void*) (intptr_t) s_error; |
977 | 5 | return s_error; |
978 | 0 | /* UNREACHABLE */; |
979 | 0 | abort(); |
980 | 23.0k | } |
981 | 73.3k | s_n_llpkgc__internal__n_span_end_llpkgc__key_span: { |
982 | 73.3k | const unsigned char* start; |
983 | 73.3k | int err; |
984 | | |
985 | 73.3k | start = state->_span_pos0; |
986 | 73.3k | state->_span_pos0 = NULL; |
987 | 73.3k | err = llpkgc__key_span(state, start, p); |
988 | 73.3k | if (err != 0) { |
989 | 0 | state->error = err; |
990 | 0 | state->error_pos = (const char*) p; |
991 | 0 | state->_current = (void*) (intptr_t) s_n_llpkgc__internal__n_expect_sep; |
992 | 0 | return s_error; |
993 | 0 | } |
994 | 73.3k | goto s_n_llpkgc__internal__n_expect_sep; |
995 | 73.3k | /* UNREACHABLE */; |
996 | 0 | abort(); |
997 | 73.3k | } |
998 | 12 | s_n_llpkgc__internal__n_error_16: { |
999 | 12 | state->error = 0x4; |
1000 | 12 | state->reason = "Invalid key character"; |
1001 | 12 | state->error_pos = (const char*) p; |
1002 | 12 | state->_current = (void*) (intptr_t) s_error; |
1003 | 12 | return s_error; |
1004 | 0 | /* UNREACHABLE */; |
1005 | 0 | abort(); |
1006 | 73.3k | } |
1007 | 0 | s_n_llpkgc__internal__n_error: { |
1008 | 0 | state->error = 0x63; |
1009 | 0 | state->reason = "Line start error"; |
1010 | 0 | state->error_pos = (const char*) p; |
1011 | 0 | state->_current = (void*) (intptr_t) s_error; |
1012 | 0 | return s_error; |
1013 | 0 | /* UNREACHABLE */; |
1014 | 0 | abort(); |
1015 | 73.3k | } |
1016 | 73.3k | s_n_llpkgc__internal__n_invoke_llpkgc__line_begin: { |
1017 | 73.3k | switch (llpkgc__line_begin(state, p, endp)) { |
1018 | 73.3k | case 0: |
1019 | 73.3k | goto s_n_llpkgc__internal__n_span_start_llpkgc__key_span; |
1020 | 0 | default: |
1021 | 0 | goto s_n_llpkgc__internal__n_error; |
1022 | 73.3k | } |
1023 | 0 | /* UNREACHABLE */; |
1024 | 0 | abort(); |
1025 | 73.3k | } |
1026 | 8 | s_n_llpkgc__internal__n_error_17: { |
1027 | 8 | state->error = 0x2; |
1028 | 8 | state->reason = "Expected key"; |
1029 | 8 | state->error_pos = (const char*) p; |
1030 | 8 | state->_current = (void*) (intptr_t) s_error; |
1031 | 8 | return s_error; |
1032 | 0 | /* UNREACHABLE */; |
1033 | 0 | abort(); |
1034 | 73.3k | } |
1035 | 73.3k | } |
1036 | | |
1037 | 498 | int llpkgc__internal_execute(llpkgc__internal_t* state, const char* p, const char* endp) { |
1038 | 498 | llparse_state_t next; |
1039 | | |
1040 | | /* check lingering errors */ |
1041 | 498 | if (state->error != 0) { |
1042 | 0 | return state->error; |
1043 | 0 | } |
1044 | | |
1045 | | /* restart spans */ |
1046 | 498 | if (state->_span_pos0 != NULL) { |
1047 | 0 | state->_span_pos0 = (void*) p; |
1048 | 0 | } |
1049 | | |
1050 | 498 | next = llpkgc__internal__run(state, (const unsigned char*) p, (const unsigned char*) endp); |
1051 | 498 | if (next == s_error) { |
1052 | 33 | return state->error; |
1053 | 33 | } |
1054 | 465 | state->_current = (void*) (intptr_t) next; |
1055 | | |
1056 | | /* execute spans */ |
1057 | 465 | if (state->_span_pos0 != NULL) { |
1058 | 165 | int error; |
1059 | | |
1060 | 165 | error = ((llpkgc__internal__span_cb) state->_span_cb0)(state, state->_span_pos0, (const char*) endp); |
1061 | 165 | if (error != 0) { |
1062 | 0 | state->error = error; |
1063 | 0 | state->error_pos = endp; |
1064 | 0 | return error; |
1065 | 0 | } |
1066 | 165 | } |
1067 | | |
1068 | 465 | return 0; |
1069 | 465 | } |