Coverage Report

Created: 2026-07-30 06:52

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/CMake/Utilities/cmllpkgc/llpkgc_frag__internal.c
Line
Count
Source
1
/* Distributed under the OSI-approved BSD 3-Clause License.
2
   See accompanying file LICENSE.rst for details.  */
3
/* This code was generated by llpkgc, do not edit it by hand
4
   See: https://gitlab.kitware.com/utils/llpkgc  */
5
6
7
#include <stdlib.h>
8
#include <stdint.h>
9
#include <string.h>
10
11
#ifdef __SSE4_2__
12
 #ifdef _MSC_VER
13
  #include <nmmintrin.h>
14
 #else  /* !_MSC_VER */
15
  #include <x86intrin.h>
16
 #endif  /* _MSC_VER */
17
#endif  /* __SSE4_2__ */
18
19
#if defined(__ARM_NEON__) || defined(__ARM_NEON)
20
 #include <arm_neon.h>
21
#endif  /* __ARM_NEON__ */
22
23
#ifdef __wasm__
24
 #include <wasm_simd128.h>
25
#endif  /* __wasm__ */
26
27
#ifdef _MSC_VER
28
 #define ALIGN(n) _declspec(align(n))
29
 #define UNREACHABLE __assume(0)
30
#else  /* !_MSC_VER */
31
 #define ALIGN(n) __attribute__((aligned(n)))
32
0
 #define UNREACHABLE __builtin_unreachable()
33
#endif  /* _MSC_VER */
34
35
#include "llpkgc_frag__internal.h"
36
37
typedef int (*llpkgc_frag__internal__span_cb)(
38
             llpkgc_frag__internal_t*, const char*, const char*);
39
40
enum llparse_state_e {
41
  s_error,
42
  s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__frag_complete,
43
  s_n_llpkgc_frag__internal__n_pkgc_frag_consume_dq,
44
  s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_sq,
45
  s_n_llpkgc_frag__internal__n_pkgc_frag_sq,
46
  s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_1,
47
  s_n_llpkgc_frag__internal__n_pkgc_frag_consume_sq,
48
  s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted_escaped_char,
49
  s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_3,
50
  s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted_skip_backslash,
51
  s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted,
52
  s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_2,
53
  s_n_llpkgc_frag__internal__n_pkgc_frag_after_quote,
54
  s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_dq,
55
  s_n_llpkgc_frag__internal__n_pkgc_frag_dq_special_skip,
56
  s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_4,
57
  s_n_llpkgc_frag__internal__n_pkgc_frag_dq_special,
58
  s_n_llpkgc_frag__internal__n_pkgc_frag_dq_keep_backslash,
59
  s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__lookahead_dq_backslash,
60
  s_n_llpkgc_frag__internal__n_pkgc_frag_dq,
61
  s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text,
62
  s_n_llpkgc_frag__internal__n_pkgc_frag_start,
63
};
64
typedef enum llparse_state_e llparse_state_t;
65
66
int llpkgc_frag__fragment_text(
67
    llpkgc_frag__internal_t* s, const unsigned char* p,
68
    const unsigned char* endp);
69
70
int llpkgc_frag__internal__c_update_llpkgc_frag__state(
71
    llpkgc_frag__internal_t* state,
72
    const unsigned char* p,
73
0
    const unsigned char* endp) {
74
0
  state->llpkgc_frag__state = 2;
75
0
  return 0;
76
0
}
77
78
int llpkgc_frag__internal__c_update_llpkgc_frag__state_1(
79
    llpkgc_frag__internal_t* state,
80
    const unsigned char* p,
81
0
    const unsigned char* endp) {
82
0
  state->llpkgc_frag__state = 1;
83
0
  return 0;
84
0
}
85
86
int llpkgc_frag__frag_complete(
87
    llpkgc_frag__internal_t* s, const unsigned char* p,
88
    const unsigned char* endp);
89
90
int llpkgc_frag__internal__c_update_llpkgc_frag__state_2(
91
    llpkgc_frag__internal_t* state,
92
    const unsigned char* p,
93
0
    const unsigned char* endp) {
94
0
  state->llpkgc_frag__state = 0;
95
0
  return 0;
96
0
}
97
98
int llpkgc_frag__internal__c_update_llpkgc_frag__state_3(
99
    llpkgc_frag__internal_t* state,
100
    const unsigned char* p,
101
0
    const unsigned char* endp) {
102
0
  state->llpkgc_frag__state = 3;
103
0
  return 0;
104
0
}
105
106
int llpkgc_frag__lookahead_dq_backslash(
107
    llpkgc_frag__internal_t* s, const unsigned char* p,
108
    const unsigned char* endp);
109
110
0
int llpkgc_frag__internal_init(llpkgc_frag__internal_t* state) {
111
0
  memset(state, 0, sizeof(*state));
112
0
  state->_current = (void*) (intptr_t) s_n_llpkgc_frag__internal__n_pkgc_frag_start;
113
0
  return 0;
114
0
}
115
116
static llparse_state_t llpkgc_frag__internal__run(
117
    llpkgc_frag__internal_t* state,
118
    const unsigned char* p,
119
0
    const unsigned char* endp) {
120
0
  int match;
121
0
  switch ((llparse_state_t) (intptr_t) state->_current) {
122
0
    case s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__frag_complete:
123
0
    s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__frag_complete: {
124
0
      switch (llpkgc_frag__frag_complete(state, p, endp)) {
125
0
        case 0:
126
0
          goto s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_2;
127
0
        default:
128
0
          goto s_n_llpkgc_frag__internal__n_error;
129
0
      }
130
0
      UNREACHABLE;
131
0
    }
132
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_consume_dq:
133
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_consume_dq: {
134
0
      if (p == endp) {
135
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_consume_dq;
136
0
      }
137
0
      switch (*p) {
138
0
        case '"': {
139
0
          p++;
140
0
          goto s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state;
141
0
        }
142
0
        default: {
143
0
          goto s_n_llpkgc_frag__internal__n_error_1;
144
0
        }
145
0
      }
146
0
      UNREACHABLE;
147
0
    }
148
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_sq:
149
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_sq: {
150
0
      if (p == endp) {
151
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_sq;
152
0
      }
153
0
      switch (*p) {
154
0
        case 39: {
155
0
          p++;
156
0
          goto s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_1;
157
0
        }
158
0
        default: {
159
0
          goto s_n_llpkgc_frag__internal__n_error_1;
160
0
        }
161
0
      }
162
0
      UNREACHABLE;
163
0
    }
164
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_sq:
165
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_sq: {
166
0
      if (p == endp) {
167
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_sq;
168
0
      }
169
0
      switch (*p) {
170
0
        case 39: {
171
0
          goto s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_1;
172
0
        }
173
0
        default: {
174
0
          p++;
175
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_sq;
176
0
        }
177
0
      }
178
0
      UNREACHABLE;
179
0
    }
180
0
    case s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_1:
181
0
    s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_1: {
182
0
      if (p == endp) {
183
0
        return s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_1;
184
0
      }
185
0
      state->_span_pos0 = (void*) p;
186
0
      goto s_n_llpkgc_frag__internal__n_pkgc_frag_sq;
187
0
      UNREACHABLE;
188
0
    }
189
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_consume_sq:
190
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_consume_sq: {
191
0
      if (p == endp) {
192
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_consume_sq;
193
0
      }
194
0
      switch (*p) {
195
0
        case 39: {
196
0
          p++;
197
0
          goto s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_3;
198
0
        }
199
0
        default: {
200
0
          goto s_n_llpkgc_frag__internal__n_error_1;
201
0
        }
202
0
      }
203
0
      UNREACHABLE;
204
0
    }
205
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted_escaped_char:
206
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted_escaped_char: {
207
0
      if (p == endp) {
208
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted_escaped_char;
209
0
      }
210
0
      p++;
211
0
      goto s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted;
212
0
      UNREACHABLE;
213
0
    }
214
0
    case s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_3:
215
0
    s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_3: {
216
0
      if (p == endp) {
217
0
        return s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_3;
218
0
      }
219
0
      state->_span_pos0 = (void*) p;
220
0
      goto s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted_escaped_char;
221
0
      UNREACHABLE;
222
0
    }
223
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted_skip_backslash:
224
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted_skip_backslash: {
225
0
      if (p == endp) {
226
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted_skip_backslash;
227
0
      }
228
0
      switch (*p) {
229
0
        case 92: {
230
0
          p++;
231
0
          goto s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_3;
232
0
        }
233
0
        default: {
234
0
          goto s_n_llpkgc_frag__internal__n_error_2;
235
0
        }
236
0
      }
237
0
      UNREACHABLE;
238
0
    }
239
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted:
240
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted: {
241
0
      if (p == endp) {
242
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted;
243
0
      }
244
0
      switch (*p) {
245
0
        case 9: {
246
0
          goto s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_2;
247
0
        }
248
0
        case ' ': {
249
0
          goto s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_2;
250
0
        }
251
0
        case '"': {
252
0
          goto s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_3;
253
0
        }
254
0
        case 39: {
255
0
          goto s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_4;
256
0
        }
257
0
        case 92: {
258
0
          goto s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_5;
259
0
        }
260
0
        default: {
261
0
          p++;
262
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted;
263
0
        }
264
0
      }
265
0
      UNREACHABLE;
266
0
    }
267
0
    case s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_2:
268
0
    s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_2: {
269
0
      if (p == endp) {
270
0
        return s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_2;
271
0
      }
272
0
      state->_span_pos0 = (void*) p;
273
0
      goto s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted;
274
0
      UNREACHABLE;
275
0
    }
276
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_after_quote:
277
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_after_quote: {
278
0
      if (p == endp) {
279
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_after_quote;
280
0
      }
281
0
      switch (*p) {
282
0
        case 9: {
283
0
          goto s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__frag_complete;
284
0
        }
285
0
        case ' ': {
286
0
          goto s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__frag_complete;
287
0
        }
288
0
        case '"': {
289
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_consume_dq;
290
0
        }
291
0
        case 39: {
292
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_consume_sq;
293
0
        }
294
0
        case 92: {
295
0
          goto s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_4;
296
0
        }
297
0
        default: {
298
0
          goto s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_4;
299
0
        }
300
0
      }
301
0
      UNREACHABLE;
302
0
    }
303
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_dq:
304
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_dq: {
305
0
      if (p == endp) {
306
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_dq;
307
0
      }
308
0
      switch (*p) {
309
0
        case '"': {
310
0
          p++;
311
0
          goto s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_1;
312
0
        }
313
0
        default: {
314
0
          goto s_n_llpkgc_frag__internal__n_error_1;
315
0
        }
316
0
      }
317
0
      UNREACHABLE;
318
0
    }
319
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_dq_special_skip:
320
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_dq_special_skip: {
321
0
      if (p == endp) {
322
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_dq_special_skip;
323
0
      }
324
0
      switch (*p) {
325
0
        case '"': {
326
0
          p++;
327
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_dq;
328
0
        }
329
0
        case '$': {
330
0
          p++;
331
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_dq;
332
0
        }
333
0
        case 92: {
334
0
          p++;
335
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_dq;
336
0
        }
337
0
        case '`': {
338
0
          p++;
339
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_dq;
340
0
        }
341
0
        default: {
342
0
          goto s_n_llpkgc_frag__internal__n_error_2;
343
0
        }
344
0
      }
345
0
      UNREACHABLE;
346
0
    }
347
0
    case s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_4:
348
0
    s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_4: {
349
0
      if (p == endp) {
350
0
        return s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_4;
351
0
      }
352
0
      state->_span_pos0 = (void*) p;
353
0
      goto s_n_llpkgc_frag__internal__n_pkgc_frag_dq_special_skip;
354
0
      UNREACHABLE;
355
0
    }
356
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_dq_special:
357
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_dq_special: {
358
0
      if (p == endp) {
359
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_dq_special;
360
0
      }
361
0
      switch (*p) {
362
0
        case 92: {
363
0
          p++;
364
0
          goto s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_4;
365
0
        }
366
0
        default: {
367
0
          goto s_n_llpkgc_frag__internal__n_error_2;
368
0
        }
369
0
      }
370
0
      UNREACHABLE;
371
0
    }
372
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_dq_keep_backslash:
373
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_dq_keep_backslash: {
374
0
      if (p == endp) {
375
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_dq_keep_backslash;
376
0
      }
377
0
      switch (*p) {
378
0
        case 92: {
379
0
          p++;
380
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_dq;
381
0
        }
382
0
        default: {
383
0
          goto s_n_llpkgc_frag__internal__n_error_2;
384
0
        }
385
0
      }
386
0
      UNREACHABLE;
387
0
    }
388
0
    case s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__lookahead_dq_backslash:
389
0
    s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__lookahead_dq_backslash: {
390
0
      switch (llpkgc_frag__lookahead_dq_backslash(state, p, endp)) {
391
0
        case 0:
392
0
          goto s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_6;
393
0
        case 1:
394
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_dq_keep_backslash;
395
0
        case 4:
396
0
          goto s_n_llpkgc_frag__internal__n_pause;
397
0
        default:
398
0
          goto s_n_llpkgc_frag__internal__n_error_2;
399
0
      }
400
0
      UNREACHABLE;
401
0
    }
402
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_dq:
403
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_dq: {
404
0
      if (p == endp) {
405
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_dq;
406
0
      }
407
0
      switch (*p) {
408
0
        case '"': {
409
0
          goto s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text;
410
0
        }
411
0
        case 92: {
412
0
          goto s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__lookahead_dq_backslash;
413
0
        }
414
0
        default: {
415
0
          p++;
416
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_dq;
417
0
        }
418
0
      }
419
0
      UNREACHABLE;
420
0
    }
421
0
    case s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text:
422
0
    s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text: {
423
0
      if (p == endp) {
424
0
        return s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text;
425
0
      }
426
0
      state->_span_pos0 = (void*) p;
427
0
      goto s_n_llpkgc_frag__internal__n_pkgc_frag_dq;
428
0
      UNREACHABLE;
429
0
    }
430
0
    case s_n_llpkgc_frag__internal__n_pkgc_frag_start:
431
0
    s_n_llpkgc_frag__internal__n_pkgc_frag_start: {
432
0
      if (p == endp) {
433
0
        return s_n_llpkgc_frag__internal__n_pkgc_frag_start;
434
0
      }
435
0
      switch (*p) {
436
0
        case 9: {
437
0
          p++;
438
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_start;
439
0
        }
440
0
        case ' ': {
441
0
          p++;
442
0
          goto s_n_llpkgc_frag__internal__n_pkgc_frag_start;
443
0
        }
444
0
        case '"': {
445
0
          p++;
446
0
          goto s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state;
447
0
        }
448
0
        case 39: {
449
0
          p++;
450
0
          goto s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_3;
451
0
        }
452
0
        default: {
453
0
          goto s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_4;
454
0
        }
455
0
      }
456
0
      UNREACHABLE;
457
0
    }
458
0
    default:
459
0
      UNREACHABLE;
460
0
  }
461
0
  s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_2: {
462
0
    switch (llpkgc_frag__internal__c_update_llpkgc_frag__state_2(state, p, endp)) {
463
0
      default:
464
0
        goto s_n_llpkgc_frag__internal__n_pkgc_frag_start;
465
0
    }
466
0
    UNREACHABLE;
467
0
  }
468
0
  s_n_llpkgc_frag__internal__n_error: {
469
0
    state->error = 0x1;
470
0
    state->reason = "Fragment complete error";
471
0
    state->error_pos = (const char*) p;
472
0
    state->_current = (void*) (intptr_t) s_error;
473
0
    return s_error;
474
0
    UNREACHABLE;
475
0
  }
476
0
  s_n_llpkgc_frag__internal__n_error_1: {
477
0
    state->error = 0x1;
478
0
    state->reason = "Fragment parse error";
479
0
    state->error_pos = (const char*) p;
480
0
    state->_current = (void*) (intptr_t) s_error;
481
0
    return s_error;
482
0
    UNREACHABLE;
483
0
  }
484
0
  s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_1: {
485
0
    const unsigned char* start;
486
0
    int err;
487
488
0
    start = state->_span_pos0;
489
0
    state->_span_pos0 = NULL;
490
0
    err = llpkgc_frag__fragment_text(state, start, p);
491
0
    if (err != 0) {
492
0
      state->error = err;
493
0
      state->error_pos = (const char*) p;
494
0
      state->_current = (void*) (intptr_t) s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_sq;
495
0
      return s_error;
496
0
    }
497
0
    goto s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_sq;
498
0
    UNREACHABLE;
499
0
  }
500
0
  s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_3: {
501
0
    switch (llpkgc_frag__internal__c_update_llpkgc_frag__state_3(state, p, endp)) {
502
0
      default:
503
0
        goto s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_1;
504
0
    }
505
0
    UNREACHABLE;
506
0
  }
507
0
  s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_2: {
508
0
    const unsigned char* start;
509
0
    int err;
510
511
0
    start = state->_span_pos0;
512
0
    state->_span_pos0 = NULL;
513
0
    err = llpkgc_frag__fragment_text(state, start, p);
514
0
    if (err != 0) {
515
0
      state->error = err;
516
0
      state->error_pos = (const char*) p;
517
0
      state->_current = (void*) (intptr_t) s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__frag_complete;
518
0
      return s_error;
519
0
    }
520
0
    goto s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__frag_complete;
521
0
    UNREACHABLE;
522
0
  }
523
0
  s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_3: {
524
0
    const unsigned char* start;
525
0
    int err;
526
527
0
    start = state->_span_pos0;
528
0
    state->_span_pos0 = NULL;
529
0
    err = llpkgc_frag__fragment_text(state, start, p);
530
0
    if (err != 0) {
531
0
      state->error = err;
532
0
      state->error_pos = (const char*) p;
533
0
      state->_current = (void*) (intptr_t) s_n_llpkgc_frag__internal__n_pkgc_frag_consume_dq;
534
0
      return s_error;
535
0
    }
536
0
    goto s_n_llpkgc_frag__internal__n_pkgc_frag_consume_dq;
537
0
    UNREACHABLE;
538
0
  }
539
0
  s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_4: {
540
0
    const unsigned char* start;
541
0
    int err;
542
543
0
    start = state->_span_pos0;
544
0
    state->_span_pos0 = NULL;
545
0
    err = llpkgc_frag__fragment_text(state, start, p);
546
0
    if (err != 0) {
547
0
      state->error = err;
548
0
      state->error_pos = (const char*) p;
549
0
      state->_current = (void*) (intptr_t) s_n_llpkgc_frag__internal__n_pkgc_frag_consume_sq;
550
0
      return s_error;
551
0
    }
552
0
    goto s_n_llpkgc_frag__internal__n_pkgc_frag_consume_sq;
553
0
    UNREACHABLE;
554
0
  }
555
0
  s_n_llpkgc_frag__internal__n_error_2: {
556
0
    state->error = 0x3;
557
0
    state->reason = "Lookahead error";
558
0
    state->error_pos = (const char*) p;
559
0
    state->_current = (void*) (intptr_t) s_error;
560
0
    return s_error;
561
0
    UNREACHABLE;
562
0
  }
563
0
  s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_5: {
564
0
    const unsigned char* start;
565
0
    int err;
566
567
0
    start = state->_span_pos0;
568
0
    state->_span_pos0 = NULL;
569
0
    err = llpkgc_frag__fragment_text(state, start, p);
570
0
    if (err != 0) {
571
0
      state->error = err;
572
0
      state->error_pos = (const char*) p;
573
0
      state->_current = (void*) (intptr_t) s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted_skip_backslash;
574
0
      return s_error;
575
0
    }
576
0
    goto s_n_llpkgc_frag__internal__n_pkgc_frag_unquoted_skip_backslash;
577
0
    UNREACHABLE;
578
0
  }
579
0
  s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_4: {
580
0
    switch (llpkgc_frag__internal__c_update_llpkgc_frag__state_1(state, p, endp)) {
581
0
      default:
582
0
        goto s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text_2;
583
0
    }
584
0
    UNREACHABLE;
585
0
  }
586
0
  s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state_1: {
587
0
    switch (llpkgc_frag__internal__c_update_llpkgc_frag__state_1(state, p, endp)) {
588
0
      default:
589
0
        goto s_n_llpkgc_frag__internal__n_pkgc_frag_after_quote;
590
0
    }
591
0
    UNREACHABLE;
592
0
  }
593
0
  s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text: {
594
0
    const unsigned char* start;
595
0
    int err;
596
597
0
    start = state->_span_pos0;
598
0
    state->_span_pos0 = NULL;
599
0
    err = llpkgc_frag__fragment_text(state, start, p);
600
0
    if (err != 0) {
601
0
      state->error = err;
602
0
      state->error_pos = (const char*) p;
603
0
      state->_current = (void*) (intptr_t) s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_dq;
604
0
      return s_error;
605
0
    }
606
0
    goto s_n_llpkgc_frag__internal__n_pkgc_frag_consume_closing_dq;
607
0
    UNREACHABLE;
608
0
  }
609
0
  s_n_llpkgc_frag__internal__n_span_end_llpkgc_frag__fragment_text_6: {
610
0
    const unsigned char* start;
611
0
    int err;
612
613
0
    start = state->_span_pos0;
614
0
    state->_span_pos0 = NULL;
615
0
    err = llpkgc_frag__fragment_text(state, start, p);
616
0
    if (err != 0) {
617
0
      state->error = err;
618
0
      state->error_pos = (const char*) p;
619
0
      state->_current = (void*) (intptr_t) s_n_llpkgc_frag__internal__n_pkgc_frag_dq_special;
620
0
      return s_error;
621
0
    }
622
0
    goto s_n_llpkgc_frag__internal__n_pkgc_frag_dq_special;
623
0
    UNREACHABLE;
624
0
  }
625
0
  s_n_llpkgc_frag__internal__n_pause: {
626
0
    state->error = 0x4;
627
0
    state->reason = "Lookahead required";
628
0
    state->error_pos = (const char*) p;
629
0
    state->_current = (void*) (intptr_t) s_n_llpkgc_frag__internal__n_invoke_llpkgc_frag__lookahead_dq_backslash;
630
0
    return s_error;
631
0
    UNREACHABLE;
632
0
  }
633
0
  s_n_llpkgc_frag__internal__n_invoke_update_llpkgc_frag__state: {
634
0
    switch (llpkgc_frag__internal__c_update_llpkgc_frag__state(state, p, endp)) {
635
0
      default:
636
0
        goto s_n_llpkgc_frag__internal__n_span_start_llpkgc_frag__fragment_text;
637
0
    }
638
0
    UNREACHABLE;
639
0
  }
640
0
}
641
642
0
int llpkgc_frag__internal_execute(llpkgc_frag__internal_t* state, const char* p, const char* endp) {
643
0
  llparse_state_t next;
644
645
  /* check lingering errors */
646
0
  if (state->error != 0) {
647
0
    return state->error;
648
0
  }
649
650
  /* restart spans */
651
0
  if (state->_span_pos0 != NULL) {
652
0
    state->_span_pos0 = (void*) p;
653
0
  }
654
655
0
  next = llpkgc_frag__internal__run(state, (const unsigned char*) p, (const unsigned char*) endp);
656
0
  if (next == s_error) {
657
0
    return state->error;
658
0
  }
659
0
  state->_current = (void*) (intptr_t) next;
660
661
  /* execute spans */
662
0
  if (state->_span_pos0 != NULL) {
663
0
    int error;
664
665
0
    error = llpkgc_frag__fragment_text(state, state->_span_pos0, (const char*) endp);
666
0
    if (error != 0) {
667
0
      state->error = error;
668
0
      state->error_pos = endp;
669
0
      return error;
670
0
    }
671
0
  }
672
673
0
  return 0;
674
0
}