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