/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 | 3.59k | const unsigned char* endp) { |
98 | 3.59k | state->escaped_ = 1; |
99 | 3.59k | return 0; |
100 | 3.59k | } |
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 | 483 | int llpkgc__internal_init(llpkgc__internal_t* state) { |
111 | 483 | memset(state, 0, sizeof(*state)); |
112 | 483 | state->_current = (void*) (intptr_t) s_n_llpkgc__internal__n_line_start; |
113 | 483 | return 0; |
114 | 483 | } |
115 | | |
116 | | static llparse_state_t llpkgc__internal__run( |
117 | | llpkgc__internal_t* state, |
118 | | const unsigned char* p, |
119 | 483 | const unsigned char* endp) { |
120 | 483 | int match; |
121 | 483 | switch ((llparse_state_t) (intptr_t) state->_current) { |
122 | 0 | case s_n_llpkgc__internal__n_comment: |
123 | 101k | s_n_llpkgc__internal__n_comment: { |
124 | 101k | if (p == endp) { |
125 | 45 | return s_n_llpkgc__internal__n_comment; |
126 | 45 | } |
127 | 101k | switch (*p) { |
128 | 1.12k | case 10: { |
129 | 1.12k | p++; |
130 | 1.12k | goto s_n_llpkgc__internal__n_line_start; |
131 | 0 | } |
132 | 1.45k | case 13: { |
133 | 1.45k | p++; |
134 | 1.45k | goto s_n_llpkgc__internal__n_line_start; |
135 | 0 | } |
136 | 98.5k | default: { |
137 | 98.5k | p++; |
138 | 98.5k | goto s_n_llpkgc__internal__n_comment; |
139 | 0 | } |
140 | 101k | } |
141 | 0 | /* UNREACHABLE */; |
142 | 0 | abort(); |
143 | 101k | } |
144 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete: |
145 | 3.78k | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete: { |
146 | 3.78k | switch (llpkgc__vallit_complete(state, p, endp)) { |
147 | 3.78k | case 0: |
148 | 3.78k | 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 | 3.78k | } |
152 | 0 | /* UNREACHABLE */; |
153 | 0 | abort(); |
154 | 3.78k | } |
155 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_1: |
156 | 346 | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_1: { |
157 | 346 | switch (llpkgc__vallit_complete(state, p, endp)) { |
158 | 346 | case 0: |
159 | 346 | 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 | 346 | } |
163 | 0 | /* UNREACHABLE */; |
164 | 0 | abort(); |
165 | 346 | } |
166 | 0 | case s_n_llpkgc__internal__n_literal_skip_dollar: |
167 | 35.3k | s_n_llpkgc__internal__n_literal_skip_dollar: { |
168 | 35.3k | if (p == endp) { |
169 | 0 | return s_n_llpkgc__internal__n_literal_skip_dollar; |
170 | 0 | } |
171 | 35.3k | p++; |
172 | 35.3k | goto s_n_llpkgc__internal__n_maybe_variable; |
173 | 0 | /* UNREACHABLE */; |
174 | 0 | abort(); |
175 | 35.3k | } |
176 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_2: |
177 | 35.3k | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_2: { |
178 | 35.3k | switch (llpkgc__vallit_complete(state, p, endp)) { |
179 | 35.3k | case 0: |
180 | 35.3k | goto s_n_llpkgc__internal__n_literal_skip_dollar; |
181 | 0 | default: |
182 | 0 | goto s_n_llpkgc__internal__n_error_7; |
183 | 35.3k | } |
184 | 0 | /* UNREACHABLE */; |
185 | 0 | abort(); |
186 | 35.3k | } |
187 | 0 | case s_n_llpkgc__internal__n_maybe_CR: |
188 | 2.16k | s_n_llpkgc__internal__n_maybe_CR: { |
189 | 2.16k | if (p == endp) { |
190 | 8 | return s_n_llpkgc__internal__n_maybe_CR; |
191 | 8 | } |
192 | 2.15k | switch (*p) { |
193 | 253 | case 13: { |
194 | 253 | p++; |
195 | 253 | goto s_n_llpkgc__internal__n_expect_value; |
196 | 0 | } |
197 | 1.89k | default: { |
198 | 1.89k | goto s_n_llpkgc__internal__n_expect_value; |
199 | 0 | } |
200 | 2.15k | } |
201 | 0 | /* UNREACHABLE */; |
202 | 0 | abort(); |
203 | 2.15k | } |
204 | 0 | case s_n_llpkgc__internal__n_skip_escaped_LF: |
205 | 2.16k | s_n_llpkgc__internal__n_skip_escaped_LF: { |
206 | 2.16k | if (p == endp) { |
207 | 0 | return s_n_llpkgc__internal__n_skip_escaped_LF; |
208 | 0 | } |
209 | 2.16k | p++; |
210 | 2.16k | goto s_n_llpkgc__internal__n_maybe_CR; |
211 | 0 | /* UNREACHABLE */; |
212 | 0 | abort(); |
213 | 2.16k | } |
214 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_3: |
215 | 2.16k | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_3: { |
216 | 2.16k | switch (llpkgc__vallit_complete(state, p, endp)) { |
217 | 2.16k | case 0: |
218 | 2.16k | goto s_n_llpkgc__internal__n_skip_escaped_LF; |
219 | 0 | default: |
220 | 0 | goto s_n_llpkgc__internal__n_error_8; |
221 | 2.16k | } |
222 | 0 | /* UNREACHABLE */; |
223 | 0 | abort(); |
224 | 2.16k | } |
225 | 0 | case s_n_llpkgc__internal__n_maybe_LF: |
226 | 880 | s_n_llpkgc__internal__n_maybe_LF: { |
227 | 880 | if (p == endp) { |
228 | 8 | return s_n_llpkgc__internal__n_maybe_LF; |
229 | 8 | } |
230 | 872 | switch (*p) { |
231 | 204 | case 10: { |
232 | 204 | p++; |
233 | 204 | goto s_n_llpkgc__internal__n_expect_value; |
234 | 0 | } |
235 | 668 | default: { |
236 | 668 | goto s_n_llpkgc__internal__n_expect_value; |
237 | 0 | } |
238 | 872 | } |
239 | 0 | /* UNREACHABLE */; |
240 | 0 | abort(); |
241 | 872 | } |
242 | 0 | case s_n_llpkgc__internal__n_skip_escaped_CR: |
243 | 880 | s_n_llpkgc__internal__n_skip_escaped_CR: { |
244 | 880 | if (p == endp) { |
245 | 0 | return s_n_llpkgc__internal__n_skip_escaped_CR; |
246 | 0 | } |
247 | 880 | p++; |
248 | 880 | goto s_n_llpkgc__internal__n_maybe_LF; |
249 | 0 | /* UNREACHABLE */; |
250 | 0 | abort(); |
251 | 880 | } |
252 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_4: |
253 | 880 | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_4: { |
254 | 880 | switch (llpkgc__vallit_complete(state, p, endp)) { |
255 | 880 | case 0: |
256 | 880 | goto s_n_llpkgc__internal__n_skip_escaped_CR; |
257 | 0 | default: |
258 | 0 | goto s_n_llpkgc__internal__n_error_9; |
259 | 880 | } |
260 | 0 | /* UNREACHABLE */; |
261 | 0 | abort(); |
262 | 880 | } |
263 | 0 | case s_n_llpkgc__internal__n_literal_skip_hash: |
264 | 557 | s_n_llpkgc__internal__n_literal_skip_hash: { |
265 | 557 | if (p == endp) { |
266 | 0 | return s_n_llpkgc__internal__n_literal_skip_hash; |
267 | 0 | } |
268 | 557 | p++; |
269 | 557 | goto s_n_llpkgc__internal__n_literal; |
270 | 0 | /* UNREACHABLE */; |
271 | 0 | abort(); |
272 | 557 | } |
273 | 0 | case s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_1: |
274 | 557 | s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_1: { |
275 | 557 | if (p == endp) { |
276 | 0 | return s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_1; |
277 | 0 | } |
278 | 557 | state->_span_pos0 = (void*) p; |
279 | 557 | state->_span_cb0 = llpkgc__vallit_span; |
280 | 557 | goto s_n_llpkgc__internal__n_literal_skip_hash; |
281 | 0 | /* UNREACHABLE */; |
282 | 0 | abort(); |
283 | 557 | } |
284 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_5: |
285 | 557 | s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_5: { |
286 | 557 | switch (llpkgc__vallit_complete(state, p, endp)) { |
287 | 557 | case 0: |
288 | 557 | 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 | 557 | } |
292 | 0 | /* UNREACHABLE */; |
293 | 0 | abort(); |
294 | 557 | } |
295 | 0 | case s_n_llpkgc__internal__n_maybe_escaped: |
296 | 4.97k | s_n_llpkgc__internal__n_maybe_escaped: { |
297 | 4.97k | if (p == endp) { |
298 | 21 | return s_n_llpkgc__internal__n_maybe_escaped; |
299 | 21 | } |
300 | 4.95k | switch (*p) { |
301 | 2.16k | case 10: { |
302 | 2.16k | goto s_n_llpkgc__internal__n_invoke_update_escaped_; |
303 | 0 | } |
304 | 880 | case 13: { |
305 | 880 | goto s_n_llpkgc__internal__n_invoke_update_escaped__1; |
306 | 0 | } |
307 | 557 | case '#': { |
308 | 557 | goto s_n_llpkgc__internal__n_invoke_update_escaped__2; |
309 | 0 | } |
310 | 1.36k | default: { |
311 | 1.36k | goto s_n_llpkgc__internal__n_literal; |
312 | 0 | } |
313 | 4.95k | } |
314 | 0 | /* UNREACHABLE */; |
315 | 0 | abort(); |
316 | 4.95k | } |
317 | 0 | case s_n_llpkgc__internal__n_literal: |
318 | 341k | s_n_llpkgc__internal__n_literal: { |
319 | 341k | if (p == endp) { |
320 | 114 | return s_n_llpkgc__internal__n_literal; |
321 | 114 | } |
322 | 341k | switch (*p) { |
323 | 3.18k | case 10: { |
324 | 3.18k | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span; |
325 | 0 | } |
326 | 607 | case 13: { |
327 | 607 | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span; |
328 | 0 | } |
329 | 346 | case '#': { |
330 | 346 | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_1; |
331 | 0 | } |
332 | 35.3k | case '$': { |
333 | 35.3k | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_2; |
334 | 0 | } |
335 | 4.97k | case 92: { |
336 | 4.97k | p++; |
337 | 4.97k | goto s_n_llpkgc__internal__n_maybe_escaped; |
338 | 0 | } |
339 | 296k | default: { |
340 | 296k | p++; |
341 | 296k | goto s_n_llpkgc__internal__n_literal; |
342 | 0 | } |
343 | 341k | } |
344 | 0 | /* UNREACHABLE */; |
345 | 0 | abort(); |
346 | 341k | } |
347 | 0 | case s_n_llpkgc__internal__n_variable_skip_dollar: |
348 | 34.1k | s_n_llpkgc__internal__n_variable_skip_dollar: { |
349 | 34.1k | if (p == endp) { |
350 | 0 | return s_n_llpkgc__internal__n_variable_skip_dollar; |
351 | 0 | } |
352 | 34.1k | p++; |
353 | 34.1k | goto s_n_llpkgc__internal__n_literal; |
354 | 0 | /* UNREACHABLE */; |
355 | 0 | abort(); |
356 | 34.1k | } |
357 | 0 | case s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span: |
358 | 34.1k | s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span: { |
359 | 34.1k | if (p == endp) { |
360 | 0 | return s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span; |
361 | 0 | } |
362 | 34.1k | state->_span_pos0 = (void*) p; |
363 | 34.1k | state->_span_cb0 = llpkgc__vallit_span; |
364 | 34.1k | goto s_n_llpkgc__internal__n_variable_skip_dollar; |
365 | 0 | /* UNREACHABLE */; |
366 | 0 | abort(); |
367 | 34.1k | } |
368 | 0 | case s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_2: |
369 | 8.51k | s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_2: { |
370 | 8.51k | if (p == endp) { |
371 | 0 | return s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_2; |
372 | 0 | } |
373 | 8.51k | state->_span_pos0 = (void*) p; |
374 | 8.51k | state->_span_cb0 = llpkgc__vallit_span; |
375 | 8.51k | goto s_n_llpkgc__internal__n_literal; |
376 | 0 | /* UNREACHABLE */; |
377 | 0 | abort(); |
378 | 8.51k | } |
379 | 0 | case s_n_llpkgc__internal__n_variable_close: |
380 | 3.58k | s_n_llpkgc__internal__n_variable_close: { |
381 | 3.58k | if (p == endp) { |
382 | 21 | return s_n_llpkgc__internal__n_variable_close; |
383 | 21 | } |
384 | 3.56k | switch (*p) { |
385 | 261 | case 10: { |
386 | 261 | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
387 | 0 | } |
388 | 265 | case 13: { |
389 | 265 | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
390 | 0 | } |
391 | 294 | case '#': { |
392 | 294 | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
393 | 0 | } |
394 | 963 | case '$': { |
395 | 963 | p++; |
396 | 963 | goto s_n_llpkgc__internal__n_maybe_variable; |
397 | 0 | } |
398 | 1.78k | default: { |
399 | 1.78k | goto s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_2; |
400 | 0 | } |
401 | 3.56k | } |
402 | 0 | /* UNREACHABLE */; |
403 | 0 | abort(); |
404 | 3.56k | } |
405 | 0 | case s_n_llpkgc__internal__n_variable_skip_curly: |
406 | 3.58k | s_n_llpkgc__internal__n_variable_skip_curly: { |
407 | 3.58k | if (p == endp) { |
408 | 0 | return s_n_llpkgc__internal__n_variable_skip_curly; |
409 | 0 | } |
410 | 3.58k | p++; |
411 | 3.58k | goto s_n_llpkgc__internal__n_variable_close; |
412 | 0 | /* UNREACHABLE */; |
413 | 0 | abort(); |
414 | 3.58k | } |
415 | 0 | case s_n_llpkgc__internal__n_invoke_llpkgc__valvar_complete: |
416 | 3.58k | s_n_llpkgc__internal__n_invoke_llpkgc__valvar_complete: { |
417 | 3.58k | switch (llpkgc__valvar_complete(state, p, endp)) { |
418 | 3.58k | case 0: |
419 | 3.58k | goto s_n_llpkgc__internal__n_variable_skip_curly; |
420 | 0 | default: |
421 | 0 | goto s_n_llpkgc__internal__n_error_11; |
422 | 3.58k | } |
423 | 0 | /* UNREACHABLE */; |
424 | 0 | abort(); |
425 | 3.58k | } |
426 | 0 | case s_n_llpkgc__internal__n_variable: |
427 | 13.1k | s_n_llpkgc__internal__n_variable: { |
428 | 13.1k | static uint8_t lookup_table[] = { |
429 | 13.1k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
430 | 13.1k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
431 | 13.1k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, |
432 | 13.1k | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, |
433 | 13.1k | 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
434 | 13.1k | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, |
435 | 13.1k | 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
436 | 13.1k | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 0, 0, |
437 | 13.1k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
438 | 13.1k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
439 | 13.1k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
440 | 13.1k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
441 | 13.1k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
442 | 13.1k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
443 | 13.1k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
444 | 13.1k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
445 | 13.1k | }; |
446 | 13.1k | if (p == endp) { |
447 | 5 | return s_n_llpkgc__internal__n_variable; |
448 | 5 | } |
449 | 13.1k | switch (lookup_table[(uint8_t) *p]) { |
450 | 9.60k | case 1: { |
451 | 9.60k | p++; |
452 | 9.60k | goto s_n_llpkgc__internal__n_variable; |
453 | 0 | } |
454 | 3.58k | case 2: { |
455 | 3.58k | goto s_n_llpkgc__internal__n_span_end_llpkgc__valvar_span; |
456 | 0 | } |
457 | 8 | default: { |
458 | 8 | goto s_n_llpkgc__internal__n_error_12; |
459 | 0 | } |
460 | 13.1k | } |
461 | 0 | /* UNREACHABLE */; |
462 | 0 | abort(); |
463 | 13.1k | } |
464 | 0 | case s_n_llpkgc__internal__n_span_start_llpkgc__valvar_span: |
465 | 3.60k | s_n_llpkgc__internal__n_span_start_llpkgc__valvar_span: { |
466 | 3.60k | if (p == endp) { |
467 | 7 | return s_n_llpkgc__internal__n_span_start_llpkgc__valvar_span; |
468 | 7 | } |
469 | 3.59k | state->_span_pos0 = (void*) p; |
470 | 3.59k | state->_span_cb0 = llpkgc__valvar_span; |
471 | 3.59k | goto s_n_llpkgc__internal__n_variable; |
472 | 0 | /* UNREACHABLE */; |
473 | 0 | abort(); |
474 | 3.60k | } |
475 | 0 | case s_n_llpkgc__internal__n_maybe_variable: |
476 | 37.7k | s_n_llpkgc__internal__n_maybe_variable: { |
477 | 37.7k | if (p == endp) { |
478 | 25 | return s_n_llpkgc__internal__n_maybe_variable; |
479 | 25 | } |
480 | 37.7k | switch (*p) { |
481 | 34.1k | case '$': { |
482 | 34.1k | goto s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span; |
483 | 0 | } |
484 | 3.60k | case '{': { |
485 | 3.60k | p++; |
486 | 3.60k | 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.7k | } |
492 | 0 | /* UNREACHABLE */; |
493 | 0 | abort(); |
494 | 37.7k | } |
495 | 0 | case s_n_llpkgc__internal__n_expect_value: |
496 | 65.3k | s_n_llpkgc__internal__n_expect_value: { |
497 | 65.3k | if (p == endp) { |
498 | 80 | return s_n_llpkgc__internal__n_expect_value; |
499 | 80 | } |
500 | 65.2k | switch (*p) { |
501 | 400 | case 9: { |
502 | 400 | p++; |
503 | 400 | goto s_n_llpkgc__internal__n_expect_value; |
504 | 0 | } |
505 | 32.5k | case 10: { |
506 | 32.5k | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
507 | 0 | } |
508 | 20.4k | case 13: { |
509 | 20.4k | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
510 | 0 | } |
511 | 2.23k | case ' ': { |
512 | 2.23k | p++; |
513 | 2.23k | goto s_n_llpkgc__internal__n_expect_value; |
514 | 0 | } |
515 | 1.37k | case '#': { |
516 | 1.37k | goto s_n_llpkgc__internal__n_invoke_llpkgc__value_complete; |
517 | 0 | } |
518 | 1.45k | case '$': { |
519 | 1.45k | p++; |
520 | 1.45k | goto s_n_llpkgc__internal__n_maybe_variable; |
521 | 0 | } |
522 | 6.73k | default: { |
523 | 6.73k | goto s_n_llpkgc__internal__n_span_start_llpkgc__vallit_span_2; |
524 | 0 | } |
525 | 65.2k | } |
526 | 0 | /* UNREACHABLE */; |
527 | 0 | abort(); |
528 | 65.2k | } |
529 | 0 | case s_n_llpkgc__internal__n_expect_sep: |
530 | 60.2k | s_n_llpkgc__internal__n_expect_sep: { |
531 | 60.2k | if (p == endp) { |
532 | 19 | return s_n_llpkgc__internal__n_expect_sep; |
533 | 19 | } |
534 | 60.2k | switch (*p) { |
535 | 343 | case 9: { |
536 | 343 | p++; |
537 | 343 | goto s_n_llpkgc__internal__n_expect_sep; |
538 | 0 | } |
539 | 240 | case ' ': { |
540 | 240 | p++; |
541 | 240 | goto s_n_llpkgc__internal__n_expect_sep; |
542 | 0 | } |
543 | 48.9k | case ':': { |
544 | 48.9k | p++; |
545 | 48.9k | goto s_n_llpkgc__internal__n_invoke_llpkgc__keyword_complete; |
546 | 0 | } |
547 | 10.6k | case '=': { |
548 | 10.6k | p++; |
549 | 10.6k | goto s_n_llpkgc__internal__n_invoke_llpkgc__variable_complete; |
550 | 0 | } |
551 | 4 | default: { |
552 | 4 | goto s_n_llpkgc__internal__n_error_15; |
553 | 0 | } |
554 | 60.2k | } |
555 | 0 | /* UNREACHABLE */; |
556 | 0 | abort(); |
557 | 60.2k | } |
558 | 0 | case s_n_llpkgc__internal__n_key: |
559 | 139k | s_n_llpkgc__internal__n_key: { |
560 | 139k | static uint8_t lookup_table[] = { |
561 | 139k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, |
562 | 139k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
563 | 139k | 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, |
564 | 139k | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 1, 0, 0, |
565 | 139k | 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
566 | 139k | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, |
567 | 139k | 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
568 | 139k | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, |
569 | 139k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
570 | 139k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
571 | 139k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
572 | 139k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
573 | 139k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
574 | 139k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
575 | 139k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
576 | 139k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
577 | 139k | }; |
578 | 139k | if (p == endp) { |
579 | 9 | return s_n_llpkgc__internal__n_key; |
580 | 9 | } |
581 | 139k | switch (lookup_table[(uint8_t) *p]) { |
582 | 59.6k | case 1: { |
583 | 59.6k | goto s_n_llpkgc__internal__n_span_end_llpkgc__key_span; |
584 | 0 | } |
585 | 79.7k | case 2: { |
586 | 79.7k | p++; |
587 | 79.7k | goto s_n_llpkgc__internal__n_key; |
588 | 0 | } |
589 | 16 | default: { |
590 | 16 | goto s_n_llpkgc__internal__n_error_16; |
591 | 0 | } |
592 | 139k | } |
593 | 0 | /* UNREACHABLE */; |
594 | 0 | abort(); |
595 | 139k | } |
596 | 0 | case s_n_llpkgc__internal__n_span_start_llpkgc__key_span: |
597 | 59.6k | s_n_llpkgc__internal__n_span_start_llpkgc__key_span: { |
598 | 59.6k | if (p == endp) { |
599 | 0 | return s_n_llpkgc__internal__n_span_start_llpkgc__key_span; |
600 | 0 | } |
601 | 59.6k | state->_span_pos0 = (void*) p; |
602 | 59.6k | state->_span_cb0 = llpkgc__key_span; |
603 | 59.6k | goto s_n_llpkgc__internal__n_key; |
604 | 0 | /* UNREACHABLE */; |
605 | 0 | abort(); |
606 | 59.6k | } |
607 | 483 | case s_n_llpkgc__internal__n_line_start: |
608 | 119k | s_n_llpkgc__internal__n_line_start: { |
609 | 119k | static uint8_t lookup_table[] = { |
610 | 119k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, |
611 | 119k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
612 | 119k | 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, |
613 | 119k | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, |
614 | 119k | 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
615 | 119k | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 3, |
616 | 119k | 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
617 | 119k | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, |
618 | 119k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
619 | 119k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
620 | 119k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
621 | 119k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
622 | 119k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
623 | 119k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
624 | 119k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
625 | 119k | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
626 | 119k | }; |
627 | 119k | if (p == endp) { |
628 | 81 | return s_n_llpkgc__internal__n_line_start; |
629 | 81 | } |
630 | 119k | switch (lookup_table[(uint8_t) *p]) { |
631 | 57.8k | case 1: { |
632 | 57.8k | p++; |
633 | 57.8k | goto s_n_llpkgc__internal__n_line_start; |
634 | 0 | } |
635 | 2.28k | case 2: { |
636 | 2.28k | p++; |
637 | 2.28k | goto s_n_llpkgc__internal__n_comment; |
638 | 0 | } |
639 | 59.6k | case 3: { |
640 | 59.6k | goto s_n_llpkgc__internal__n_invoke_llpkgc__line_begin; |
641 | 0 | } |
642 | 9 | default: { |
643 | 9 | goto s_n_llpkgc__internal__n_error_17; |
644 | 0 | } |
645 | 119k | } |
646 | 0 | /* UNREACHABLE */; |
647 | 0 | abort(); |
648 | 119k | } |
649 | 0 | default: |
650 | | /* UNREACHABLE */ |
651 | 0 | abort(); |
652 | 483 | } |
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 | 483 | } |
662 | 55.2k | s_n_llpkgc__internal__n_invoke_llpkgc__value_complete: { |
663 | 55.2k | switch (llpkgc__value_complete(state, p, endp)) { |
664 | 55.2k | case 0: |
665 | 55.2k | goto s_n_llpkgc__internal__n_line_start; |
666 | 0 | default: |
667 | 0 | goto s_n_llpkgc__internal__n_error_2; |
668 | 55.2k | } |
669 | 0 | /* UNREACHABLE */; |
670 | 0 | abort(); |
671 | 55.2k | } |
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 | 55.2k | } |
681 | 3.78k | s_n_llpkgc__internal__n_invoke_llpkgc__value_complete_1: { |
682 | 3.78k | switch (llpkgc__value_complete(state, p, endp)) { |
683 | 3.78k | case 0: |
684 | 3.78k | goto s_n_llpkgc__internal__n_line_start; |
685 | 0 | default: |
686 | 0 | goto s_n_llpkgc__internal__n_error_4; |
687 | 3.78k | } |
688 | 0 | /* UNREACHABLE */; |
689 | 0 | abort(); |
690 | 3.78k | } |
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 | 3.78k | } |
700 | 3.78k | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span: { |
701 | 3.78k | const unsigned char* start; |
702 | 3.78k | int err; |
703 | | |
704 | 3.78k | start = state->_span_pos0; |
705 | 3.78k | state->_span_pos0 = NULL; |
706 | 3.78k | err = llpkgc__vallit_span(state, start, p); |
707 | 3.78k | 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 | 3.78k | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete; |
714 | 3.78k | /* UNREACHABLE */; |
715 | 0 | abort(); |
716 | 3.78k | } |
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 | 3.78k | } |
726 | 346 | s_n_llpkgc__internal__n_invoke_llpkgc__value_complete_2: { |
727 | 346 | switch (llpkgc__value_complete(state, p, endp)) { |
728 | 346 | case 0: |
729 | 346 | goto s_n_llpkgc__internal__n_comment; |
730 | 0 | default: |
731 | 0 | goto s_n_llpkgc__internal__n_error_6; |
732 | 346 | } |
733 | 0 | /* UNREACHABLE */; |
734 | 0 | abort(); |
735 | 346 | } |
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 | 346 | } |
745 | 346 | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_1: { |
746 | 346 | const unsigned char* start; |
747 | 346 | int err; |
748 | | |
749 | 346 | start = state->_span_pos0; |
750 | 346 | state->_span_pos0 = NULL; |
751 | 346 | err = llpkgc__vallit_span(state, start, p); |
752 | 346 | 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 | 346 | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_1; |
759 | 346 | /* UNREACHABLE */; |
760 | 0 | abort(); |
761 | 346 | } |
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 | 346 | } |
771 | 35.3k | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_2: { |
772 | 35.3k | const unsigned char* start; |
773 | 35.3k | int err; |
774 | | |
775 | 35.3k | start = state->_span_pos0; |
776 | 35.3k | state->_span_pos0 = NULL; |
777 | 35.3k | err = llpkgc__vallit_span(state, start, p); |
778 | 35.3k | 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 | 35.3k | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_2; |
785 | 35.3k | /* UNREACHABLE */; |
786 | 0 | abort(); |
787 | 35.3k | } |
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 | 35.3k | } |
797 | 2.16k | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_3: { |
798 | 2.16k | const unsigned char* start; |
799 | 2.16k | int err; |
800 | | |
801 | 2.16k | start = state->_span_pos0; |
802 | 2.16k | state->_span_pos0 = NULL; |
803 | 2.16k | err = llpkgc__vallit_span(state, start, p); |
804 | 2.16k | 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 | 2.16k | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_3; |
811 | 2.16k | /* UNREACHABLE */; |
812 | 0 | abort(); |
813 | 2.16k | } |
814 | 2.16k | s_n_llpkgc__internal__n_invoke_update_escaped_: { |
815 | 2.16k | switch (llpkgc__internal__c_update_escaped_(state, p, endp)) { |
816 | 2.16k | default: |
817 | 2.16k | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_3; |
818 | 2.16k | } |
819 | 0 | /* UNREACHABLE */; |
820 | 0 | abort(); |
821 | 2.16k | } |
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 | 2.16k | } |
831 | 880 | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_4: { |
832 | 880 | const unsigned char* start; |
833 | 880 | int err; |
834 | | |
835 | 880 | start = state->_span_pos0; |
836 | 880 | state->_span_pos0 = NULL; |
837 | 880 | err = llpkgc__vallit_span(state, start, p); |
838 | 880 | 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 | 880 | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_4; |
845 | 880 | /* UNREACHABLE */; |
846 | 0 | abort(); |
847 | 880 | } |
848 | 880 | s_n_llpkgc__internal__n_invoke_update_escaped__1: { |
849 | 880 | switch (llpkgc__internal__c_update_escaped_(state, p, endp)) { |
850 | 880 | default: |
851 | 880 | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_4; |
852 | 880 | } |
853 | 0 | /* UNREACHABLE */; |
854 | 0 | abort(); |
855 | 880 | } |
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 | 880 | } |
865 | 557 | s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_5: { |
866 | 557 | const unsigned char* start; |
867 | 557 | int err; |
868 | | |
869 | 557 | start = state->_span_pos0; |
870 | 557 | state->_span_pos0 = NULL; |
871 | 557 | err = llpkgc__vallit_span(state, start, p); |
872 | 557 | 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 | 557 | goto s_n_llpkgc__internal__n_invoke_llpkgc__vallit_complete_5; |
879 | 557 | /* UNREACHABLE */; |
880 | 0 | abort(); |
881 | 557 | } |
882 | 557 | s_n_llpkgc__internal__n_invoke_update_escaped__2: { |
883 | 557 | switch (llpkgc__internal__c_update_escaped_(state, p, endp)) { |
884 | 557 | default: |
885 | 557 | goto s_n_llpkgc__internal__n_span_end_llpkgc__vallit_span_5; |
886 | 557 | } |
887 | 0 | /* UNREACHABLE */; |
888 | 0 | abort(); |
889 | 557 | } |
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 | 557 | } |
899 | 3.58k | s_n_llpkgc__internal__n_span_end_llpkgc__valvar_span: { |
900 | 3.58k | const unsigned char* start; |
901 | 3.58k | int err; |
902 | | |
903 | 3.58k | start = state->_span_pos0; |
904 | 3.58k | state->_span_pos0 = NULL; |
905 | 3.58k | err = llpkgc__valvar_span(state, start, p); |
906 | 3.58k | 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.58k | goto s_n_llpkgc__internal__n_invoke_llpkgc__valvar_complete; |
913 | 3.58k | /* UNREACHABLE */; |
914 | 0 | abort(); |
915 | 3.58k | } |
916 | 8 | s_n_llpkgc__internal__n_error_12: { |
917 | 8 | state->error = 0xd; |
918 | 8 | state->reason = "Invalid variable character"; |
919 | 8 | state->error_pos = (const char*) p; |
920 | 8 | state->_current = (void*) (intptr_t) s_error; |
921 | 8 | return s_error; |
922 | 0 | /* UNREACHABLE */; |
923 | 0 | abort(); |
924 | 3.58k | } |
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.58k | } |
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.58k | } |
943 | 48.9k | s_n_llpkgc__internal__n_invoke_llpkgc__keyword_complete: { |
944 | 48.9k | switch (llpkgc__keyword_complete(state, p, endp)) { |
945 | 48.9k | case 0: |
946 | 48.9k | goto s_n_llpkgc__internal__n_expect_value; |
947 | 0 | default: |
948 | 0 | goto s_n_llpkgc__internal__n_error_1; |
949 | 48.9k | } |
950 | 0 | /* UNREACHABLE */; |
951 | 0 | abort(); |
952 | 48.9k | } |
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 | 48.9k | } |
962 | 10.6k | s_n_llpkgc__internal__n_invoke_llpkgc__variable_complete: { |
963 | 10.6k | switch (llpkgc__variable_complete(state, p, endp)) { |
964 | 10.6k | case 0: |
965 | 10.6k | goto s_n_llpkgc__internal__n_expect_value; |
966 | 0 | default: |
967 | 0 | goto s_n_llpkgc__internal__n_error_14; |
968 | 10.6k | } |
969 | 0 | /* UNREACHABLE */; |
970 | 0 | abort(); |
971 | 10.6k | } |
972 | 4 | s_n_llpkgc__internal__n_error_15: { |
973 | 4 | state->error = 0x7; |
974 | 4 | state->reason = "Expected seperator"; |
975 | 4 | state->error_pos = (const char*) p; |
976 | 4 | state->_current = (void*) (intptr_t) s_error; |
977 | 4 | return s_error; |
978 | 0 | /* UNREACHABLE */; |
979 | 0 | abort(); |
980 | 10.6k | } |
981 | 59.6k | s_n_llpkgc__internal__n_span_end_llpkgc__key_span: { |
982 | 59.6k | const unsigned char* start; |
983 | 59.6k | int err; |
984 | | |
985 | 59.6k | start = state->_span_pos0; |
986 | 59.6k | state->_span_pos0 = NULL; |
987 | 59.6k | err = llpkgc__key_span(state, start, p); |
988 | 59.6k | 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 | 59.6k | goto s_n_llpkgc__internal__n_expect_sep; |
995 | 59.6k | /* UNREACHABLE */; |
996 | 0 | abort(); |
997 | 59.6k | } |
998 | 16 | s_n_llpkgc__internal__n_error_16: { |
999 | 16 | state->error = 0x4; |
1000 | 16 | state->reason = "Invalid key character"; |
1001 | 16 | state->error_pos = (const char*) p; |
1002 | 16 | state->_current = (void*) (intptr_t) s_error; |
1003 | 16 | return s_error; |
1004 | 0 | /* UNREACHABLE */; |
1005 | 0 | abort(); |
1006 | 59.6k | } |
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 | 59.6k | } |
1016 | 59.6k | s_n_llpkgc__internal__n_invoke_llpkgc__line_begin: { |
1017 | 59.6k | switch (llpkgc__line_begin(state, p, endp)) { |
1018 | 59.6k | case 0: |
1019 | 59.6k | goto s_n_llpkgc__internal__n_span_start_llpkgc__key_span; |
1020 | 0 | default: |
1021 | 0 | goto s_n_llpkgc__internal__n_error; |
1022 | 59.6k | } |
1023 | 0 | /* UNREACHABLE */; |
1024 | 0 | abort(); |
1025 | 59.6k | } |
1026 | 9 | s_n_llpkgc__internal__n_error_17: { |
1027 | 9 | state->error = 0x2; |
1028 | 9 | state->reason = "Expected key"; |
1029 | 9 | state->error_pos = (const char*) p; |
1030 | 9 | state->_current = (void*) (intptr_t) s_error; |
1031 | 9 | return s_error; |
1032 | 0 | /* UNREACHABLE */; |
1033 | 0 | abort(); |
1034 | 59.6k | } |
1035 | 59.6k | } |
1036 | | |
1037 | 483 | int llpkgc__internal_execute(llpkgc__internal_t* state, const char* p, const char* endp) { |
1038 | 483 | llparse_state_t next; |
1039 | | |
1040 | | /* check lingering errors */ |
1041 | 483 | if (state->error != 0) { |
1042 | 0 | return state->error; |
1043 | 0 | } |
1044 | | |
1045 | | /* restart spans */ |
1046 | 483 | if (state->_span_pos0 != NULL) { |
1047 | 0 | state->_span_pos0 = (void*) p; |
1048 | 0 | } |
1049 | | |
1050 | 483 | next = llpkgc__internal__run(state, (const unsigned char*) p, (const unsigned char*) endp); |
1051 | 483 | if (next == s_error) { |
1052 | 40 | return state->error; |
1053 | 40 | } |
1054 | 443 | state->_current = (void*) (intptr_t) next; |
1055 | | |
1056 | | /* execute spans */ |
1057 | 443 | if (state->_span_pos0 != NULL) { |
1058 | 149 | int error; |
1059 | | |
1060 | 149 | error = ((llpkgc__internal__span_cb) state->_span_cb0)(state, state->_span_pos0, (const char*) endp); |
1061 | 149 | if (error != 0) { |
1062 | 0 | state->error = error; |
1063 | 0 | state->error_pos = endp; |
1064 | 0 | return error; |
1065 | 0 | } |
1066 | 149 | } |
1067 | | |
1068 | 443 | return 0; |
1069 | 443 | } |