Volksdata 1.0b7
RDF library
Loading...
Searching...
No Matches
parser_ttl.c
Go to the documentation of this file.
1/* Generated by re2c 4.3.1 on Tue Dec 23 23:33:55 2025 */
2#line 1 "lexer_ttl.re"
5
6#line 1 "../../include/volksdata/codec/parser_common.h"
7#ifndef _VOLK_PARSER_COMMON_H
8#define _VOLK_PARSER_COMMON_H
9
10#include "volksdata/codec.h"
11
12
20#define YYCTYPE uint8_t
21#define YYCURSOR it->cur
22#define YYMARKER it->mar
23#define YYLIMIT it->lim
24#define YYFILL fill(it) == 0
25
26
27typedef struct {
28 FILE * fh;
29 const char * sh;
30 size_t buf_size;
31 YYCTYPE * buf,
32 * lim,
34 * cur,
35 * mar,
36 * tok,
37 * bol;
39 unsigned line;
40 unsigned ct;
41 bool eof;
42
43#line 44 "parser_ttl.c"
44YYCTYPE *yyt1;YYCTYPE *yyt2;
45#line 36 "../../include/volksdata/codec/parser_common.h"
46
48
49
50static int fill(ParseIterator *it);
51
52
62static void parse_init (ParseIterator *it, FILE *fh, const char *sh)
63{
64 if(fh) {
65 // Stream handling. It engages YYFILL and reads by chunks.
66 it->fh = fh;
67 it->sh = NULL;
68 it->buf_size = CHUNK_SIZE;
69 it->buf = malloc(it->buf_size);
70 if (!it->buf) log_error ("Error allocating lexer buffer.");
71 it->cur = it->mar = it->tok = it->lim = it->buf + it->buf_size - 1;
72 it->bol = it->buf;
73 it->eof = false;
74 it->lim[0] = 0;
75 } else {
76 // String handling. Uses the provided string as the buffer.
77 it->fh = NULL;
78 it->sh = sh;
79 it->buf_size = strlen(sh) + 1;
80 it->buf = NULL;
81 it->cur = it->tok = (YYCTYPE*)it->sh;
82 it->lim = it->mar = it->cur + it->buf_size - 1;
83 it->bol = it->cur;
84 it->eof = true;
85 }
86 it->line = 1;
87 it->ct = 0;
88
89#line 90 "parser_ttl.c"
90it->yyt1 = NULL; it->yyt2 = NULL;
91#line 78 "../../include/volksdata/codec/parser_common.h"
92
93}
94
95
96int
97fill(ParseIterator *it)
98{
99 log_debug ("Filling codec buffer @ %p.", it->buf);
100 if (it->eof) return 1;
101
102 size_t shift = it->tok - it->buf;
103 size_t used = it->lim - it->tok;
104
105 // If buffer is too small for the lexeme, double the capacity.
106 if (shift < 1) {
107 shift += it->buf_size;
108 it->buf_size *= 2;
109 // Store offsets to reapply to moved buffer.
110 size_t
111 cur_off = it->cur - it->buf,
112 tok_off = it->tok - it->buf,
113 lim_off = it->lim - it->buf,
114 mar_off = it->mar - it->buf;
115
116 LOG_DEBUG ("Reallocating buffer to %zu bytes.", it->buf_size);
117 YYCTYPE *tmp = realloc (it->buf, it->buf_size);
118 if (!tmp) {
119 log_error ("Memory allocation error.");
120 return -1;
121 }
122 it->buf = tmp;
123 // Move all relative points if address changed.
124 it->cur = it->buf + cur_off;
125 it->tok = it->buf + tok_off;
126 it->lim = it->buf + lim_off;
127 it->mar = it->buf + mar_off;
128 } else {
129 LOG_DEBUG("Shifting bytes: %zu", shift);
130 memmove (it->buf, it->tok, used);
131 LOG_TRACE ("Limit offset before reading data: %zu", it->lim - it->tok);
132 it->lim -= shift;
133 it->cur -= shift;
134 it->mar -= shift;
135 it->tok -= shift;
136 }
137 it->lim += fread (it->lim, 1, it->buf_size - used - 1, it->fh);
138
139#line 140 "parser_ttl.c"
140if (it->yyt1) it->yyt1 -= shift; if (it->yyt2) it->yyt2 -= shift;
141#line 124 "../../include/volksdata/codec/parser_common.h"
142
143 LOG_TRACE ("Cursor offset from last token: %zu", it->cur - it->tok);
144 LOG_TRACE ("Limit offset from last token: %zu", it->lim - it->tok);
145 it->lim[0] = 0;
146 it->eof = it->lim < it->buf + it->buf_size - 1;
147 return 0;
148}
149
150
151#endif // _VOLK_PARSER_COMMON_H
152#line 4 "lexer_ttl.re"
153
154
155typedef struct {
157 size_t size;
159
160
161// Parser interface. Required here to silence linters.
163void TTLParse();
165#ifdef DEBUG
166void TTLParseTrace();
167#endif
168
169
170static inline void newline (ParseIterator *it) {
171 it->line ++;
172 it->bol = YYCURSOR;
173 LOG_TRACE("New line: #%u.", it->line);
174}
175
176// Lexer.
177
178static int lex (ParseIterator *it, YYCTYPE **token_p)
179{
180 const YYCTYPE *pfx;
181
182 #line 73 "lexer_ttl.re"
183
184
185loop: // Start new token.
186 it->tok = it->cur;
187
188 *token_p = NULL;
189
190
191#line 192 "parser_ttl.c"
192{
193 YYCTYPE yych;
194 unsigned int yyaccept = 0;
195yyFillLabel0:
196 yych = *YYCURSOR;
197 switch (yych) {
198 case '\t':
199 case ' ': goto yy3;
200 case '\n':
201 case '\r': goto yy5;
202 case '"': goto yy7;
203 case '#': goto yy9;
204 case '(': goto yy11;
205 case ')': goto yy13;
206 case '+':
207 case '-': goto yy14;
208 case ',': goto yy15;
209 case '.': goto yy17;
210 case '0' ... '9': goto yy19;
211 case ':': goto yy21;
212 case ';': goto yy23;
213 case '<': goto yy25;
214 case '@': goto yy26;
215 case 'A' ... 'Z':
216 case 'b' ... 'e':
217 case 'g' ... 's':
218 case 'u' ... 'z': goto yy27;
219 case '[': goto yy28;
220 case ']': goto yy30;
221 case '^': goto yy31;
222 case '_': goto yy32;
223 case 'a': goto yy33;
224 case 'f': goto yy35;
225 case 't': goto yy36;
226 case 0xC3: goto yy37;
227 case 0xC4 ... 0xCB:
228 case 0xCE ... 0xDF: goto yy38;
229 case 0xCD: goto yy39;
230 case 0xE0: goto yy40;
231 case 0xE1:
232 case 0xE4 ... 0xEC: goto yy41;
233 case 0xE2: goto yy42;
234 case 0xE3: goto yy43;
235 case 0xED: goto yy44;
236 case 0xEF: goto yy45;
237 case 0xF0: goto yy46;
238 case 0xF1 ... 0xF2: goto yy47;
239 case 0xF3: goto yy48;
240 default:
241 if (YYLIMIT <= YYCURSOR) {
242 if (YYFILL) goto yyFillLabel0;
243 goto yy263;
244 }
245 goto yy1;
246 }
247yy1:
248 ++YYCURSOR;
249yy2:
250#line 82 "lexer_ttl.re"
251 {
252 log_warn (
253 "Invalid token @ %lu: %s (\\x%x)",
254 YYCURSOR - it->buf - 1, it->tok, *it->tok);
255
256 return -1;
257 }
258#line 259 "parser_ttl.c"
259yy3:
260 ++YYCURSOR;
261yyFillLabel1:
262 yych = *YYCURSOR;
263 switch (yych) {
264 case '\t' ... '\n':
265 case '\r':
266 case ' ': goto yy3;
267 case '#': goto yy49;
268 case ')': goto yy13;
269 case ',': goto yy15;
270 case '.': goto yy50;
271 case ';': goto yy23;
272 case ']': goto yy30;
273 default:
274 if (YYLIMIT <= YYCURSOR) {
275 if (YYFILL) goto yyFillLabel1;
276 }
277 goto yy4;
278 }
279yy4:
280#line 150 "lexer_ttl.re"
281 {
282 uint8_t *ws = uint8_ndup (it->tok, YYCURSOR - it->tok);
283 LOG_TRACE("Whitespace: '%s'", ws);
284 // Count newlines in mixed whitespace.
285 // That's not great because it scans through the whole whitespace again
286 // but it's the simplest and safest.
287 for (size_t i = 0; i < strlen ((char *)ws); i++)
288 if (ws[i] == '\n' || ws[i] == '\r') newline (it);
289 free (ws);
290
291 return T_WS;
292 }
293#line 294 "parser_ttl.c"
294yy5:
295 ++YYCURSOR;
296yyFillLabel2:
297 yych = *YYCURSOR;
298 switch (yych) {
299 case '\t' ... '\n':
300 case '\r':
301 case ' ': goto yy3;
302 case '#': goto yy49;
303 case ')': goto yy13;
304 case ',': goto yy15;
305 case '.': goto yy50;
306 case ';': goto yy23;
307 case ']': goto yy30;
308 default:
309 if (YYLIMIT <= YYCURSOR) {
310 if (YYFILL) goto yyFillLabel2;
311 }
312 goto yy6;
313 }
314yy6:
315#line 95 "lexer_ttl.re"
316 {
317 newline (it);
318 goto loop;
319 }
320#line 321 "parser_ttl.c"
321yy7:
322 yyaccept = 0;
323 YYMARKER = ++YYCURSOR;
324yyFillLabel3:
325 yych = *YYCURSOR;
326 switch (yych) {
327 case '"': goto yy51;
328 default:
329 if (YYLIMIT <= YYCURSOR) {
330 if (YYFILL) goto yyFillLabel3;
331 }
332 goto yy8;
333 }
334yy8:
335#line 102 "lexer_ttl.re"
336 { goto schar; }
337#line 338 "parser_ttl.c"
338yy9:
339 yyaccept = 1;
340 YYMARKER = ++YYCURSOR;
341yyFillLabel4:
342 yych = *YYCURSOR;
343 switch (yych) {
344 case 0x00:
345 case 0x01 ... '\t':
346 case '\v' ... '\f':
347 case 0x0E ... 0x7F:
348 if (YYLIMIT <= YYCURSOR) {
349 if (YYFILL) goto yyFillLabel4;
350 goto yy10;
351 }
352 goto yy9;
353 case '\n':
354 case '\r': goto yy3;
355 case 0xC2 ... 0xDF: goto yy53;
356 case 0xE0: goto yy54;
357 case 0xE1 ... 0xEF: goto yy55;
358 case 0xF0: goto yy56;
359 case 0xF1 ... 0xF3: goto yy57;
360 case 0xF4: goto yy58;
361 default: goto yy10;
362 }
363yy10:
364#line 145 "lexer_ttl.re"
365 {
366 LOG_TRACE("Comment: `%s`", it->tok);
367 goto loop;
368 }
369#line 370 "parser_ttl.c"
370yy11:
371 ++YYCURSOR;
372yyFillLabel5:
373 yych = *YYCURSOR;
374 switch (yych) {
375 case '\t' ... '\n':
376 case '\r':
377 case ' ': goto yy11;
378 case '#': goto yy59;
379 default:
380 if (YYLIMIT <= YYCURSOR) {
381 if (YYFILL) goto yyFillLabel5;
382 }
383 goto yy12;
384 }
385yy12:
386#line 205 "lexer_ttl.re"
387 { return T_LPAREN; }
388#line 389 "parser_ttl.c"
389yy13:
390 ++YYCURSOR;
391#line 207 "lexer_ttl.re"
392 { return T_RPAREN; }
393#line 394 "parser_ttl.c"
394yy14:
395 yyaccept = 2;
396 YYMARKER = ++YYCURSOR;
397yyFillLabel6:
398 yych = *YYCURSOR;
399 switch (yych) {
400 case '.': goto yy60;
401 case '0' ... '9': goto yy19;
402 default:
403 if (YYLIMIT <= YYCURSOR) {
404 if (YYFILL) goto yyFillLabel6;
405 }
406 goto yy2;
407 }
408yy15:
409 ++YYCURSOR;
410yyFillLabel7:
411 yych = *YYCURSOR;
412 switch (yych) {
413 case '\t' ... '\n':
414 case '\r':
415 case ' ': goto yy15;
416 case '#': goto yy61;
417 default:
418 if (YYLIMIT <= YYCURSOR) {
419 if (YYFILL) goto yyFillLabel7;
420 }
421 goto yy16;
422 }
423yy16:
424#line 223 "lexer_ttl.re"
425 { return T_COMMA; }
426#line 427 "parser_ttl.c"
427yy17:
428 ++YYCURSOR;
429yyFillLabel8:
430 yych = *YYCURSOR;
431 switch (yych) {
432 case '0' ... '9': goto yy62;
433 default:
434 if (YYLIMIT <= YYCURSOR) {
435 if (YYFILL) goto yyFillLabel8;
436 }
437 goto yy18;
438 }
439yy18:
440#line 225 "lexer_ttl.re"
441 {
442 LOG_TRACE("End of statement #%u.", it->ct);
443 it->ct++;
444 return T_PERIOD;
445 }
446#line 447 "parser_ttl.c"
447yy19:
448 yyaccept = 3;
449 YYMARKER = ++YYCURSOR;
450yyFillLabel9:
451 yych = *YYCURSOR;
452 switch (yych) {
453 case '.': goto yy62;
454 case '0' ... '9': goto yy19;
455 case 'E':
456 case 'e': goto yy64;
457 default:
458 if (YYLIMIT <= YYCURSOR) {
459 if (YYFILL) goto yyFillLabel9;
460 }
461 goto yy20;
462 }
463yy20:
464#line 170 "lexer_ttl.re"
465 {
466 // Normalize sign.
467 size_t offset = *it->tok == '+' ? 1 : 0;
468
469 *token_p = uint8_ndup (it->tok + offset, YYCURSOR - it->tok - offset);
470 LOG_TRACE("Integer: %s", *token_p);
471
472 return T_INTEGER;
473 }
474#line 475 "parser_ttl.c"
475yy21:
476 yyaccept = 4;
477 YYMARKER = ++YYCURSOR;
478yyFillLabel10:
479 yych = *YYCURSOR;
480 switch (yych) {
481 case 0x00:
482 case '-':
483 case 0xC2:
484 case 0xCC:
485 if (YYLIMIT <= YYCURSOR) {
486 if (YYFILL) goto yyFillLabel10;
487 }
488 goto yy22;
489 case 0xCD: goto yy69;
490 case 0xE2: goto yy72;
491 default: goto yy66;
492 }
493yy22:
494#line 131 "lexer_ttl.re"
495 {
496 *token_p = uint8_ndup (it->tok, YYCURSOR - it->tok);
497 LOG_TRACE("ID name: %s", *token_p);
498
499 return T_NSIRI;
500 }
501#line 502 "parser_ttl.c"
502yy23:
503 ++YYCURSOR;
504yyFillLabel11:
505 yych = *YYCURSOR;
506 switch (yych) {
507 case '\t' ... '\n':
508 case '\r':
509 case ' ': goto yy23;
510 case '#': goto yy79;
511 default:
512 if (YYLIMIT <= YYCURSOR) {
513 if (YYFILL) goto yyFillLabel11;
514 }
515 goto yy24;
516 }
517yy24:
518#line 217 "lexer_ttl.re"
519 {
520 LOG_TRACE("End of object list.");
521
522 return T_SEMICOLON;
523 }
524#line 525 "parser_ttl.c"
525yy25:
526 yyaccept = 2;
527 YYMARKER = ++YYCURSOR;
528yyFillLabel12:
529 yych = *YYCURSOR;
530 switch (yych) {
531 case ' ' ... 0x7F:
532 case 0xC2 ... 0xF4: goto yy81;
533 default:
534 if (YYLIMIT <= YYCURSOR) {
535 if (YYFILL) goto yyFillLabel12;
536 }
537 goto yy2;
538 }
539yy26:
540 yyaccept = 2;
541 YYMARKER = ++YYCURSOR;
542yyFillLabel13:
543 yych = *YYCURSOR;
544 switch (yych) {
545 case 'B': goto yy91;
546 case 'P': goto yy92;
547 case 'a':
548 case 'c' ... 'o':
549 case 'q' ... 'z': goto yy93;
550 case 'b': goto yy96;
551 case 'p': goto yy97;
552 default:
553 if (YYLIMIT <= YYCURSOR) {
554 if (YYFILL) goto yyFillLabel13;
555 }
556 goto yy2;
557 }
558yy27:
559 yyaccept = 2;
560 YYMARKER = ++YYCURSOR;
561yyFillLabel14:
562 yych = *YYCURSOR;
563 switch (yych) {
564 case '-':
565 case '0' ... ':':
566 case 'A' ... 'Z':
567 case '_':
568 case 'a' ... 'z':
569 case 0xC2 ... 0xED:
570 case 0xEF ... 0xF3: goto yy99;
571 default:
572 if (YYLIMIT <= YYCURSOR) {
573 if (YYFILL) goto yyFillLabel14;
574 }
575 goto yy2;
576 }
577yy28:
578 ++YYCURSOR;
579yyFillLabel15:
580 yych = *YYCURSOR;
581 switch (yych) {
582 case '\t' ... '\n':
583 case '\r':
584 case ' ': goto yy28;
585 case '#': goto yy113;
586 case ']': goto yy114;
587 default:
588 if (YYLIMIT <= YYCURSOR) {
589 if (YYFILL) goto yyFillLabel15;
590 }
591 goto yy29;
592 }
593yy29:
594#line 211 "lexer_ttl.re"
595 { return T_LBRACKET; }
596#line 597 "parser_ttl.c"
597yy30:
598 ++YYCURSOR;
599#line 213 "lexer_ttl.re"
600 { return T_RBRACKET; }
601#line 602 "parser_ttl.c"
602yy31:
603 ++YYCURSOR;
604yyFillLabel16:
605 yych = *YYCURSOR;
606 switch (yych) {
607 case '^': goto yy116;
608 default:
609 if (YYLIMIT <= YYCURSOR) {
610 if (YYFILL) goto yyFillLabel16;
611 }
612 goto yy2;
613 }
614yy32:
615 yyaccept = 2;
616 YYMARKER = ++YYCURSOR;
617yyFillLabel17:
618 yych = *YYCURSOR;
619 switch (yych) {
620 case ':': goto yy117;
621 default:
622 if (YYLIMIT <= YYCURSOR) {
623 if (YYFILL) goto yyFillLabel17;
624 }
625 goto yy2;
626 }
627yy33:
628 yyaccept = 5;
629 YYMARKER = ++YYCURSOR;
630yyFillLabel18:
631 yych = *YYCURSOR;
632 switch (yych) {
633 case '-':
634 case '0' ... ':':
635 case 'A' ... 'Z':
636 case '_':
637 case 'a' ... 'z':
638 case 0xC2 ... 0xED:
639 case 0xEF ... 0xF3: goto yy99;
640 default:
641 if (YYLIMIT <= YYCURSOR) {
642 if (YYFILL) goto yyFillLabel18;
643 }
644 goto yy34;
645 }
646yy34:
647#line 233 "lexer_ttl.re"
648 {
649 LOG_TRACE("RDF type shorthand 'a'.");
650 return T_RDF_TYPE;
651 }
652#line 653 "parser_ttl.c"
653yy35:
654 yyaccept = 2;
655 YYMARKER = ++YYCURSOR;
656yyFillLabel19:
657 yych = *YYCURSOR;
658 switch (yych) {
659 case '-':
660 case '0' ... ':':
661 case 'A' ... 'Z':
662 case '_':
663 case 'b' ... 'z':
664 case 0xC2 ... 0xED:
665 case 0xEF ... 0xF3: goto yy99;
666 case 'a': goto yy118;
667 default:
668 if (YYLIMIT <= YYCURSOR) {
669 if (YYFILL) goto yyFillLabel19;
670 }
671 goto yy2;
672 }
673yy36:
674 yyaccept = 2;
675 YYMARKER = ++YYCURSOR;
676yyFillLabel20:
677 yych = *YYCURSOR;
678 switch (yych) {
679 case '-':
680 case '0' ... ':':
681 case 'A' ... 'Z':
682 case '_':
683 case 'a' ... 'q':
684 case 's' ... 'z':
685 case 0xC2 ... 0xED:
686 case 0xEF ... 0xF3: goto yy99;
687 case 'r': goto yy119;
688 default:
689 if (YYLIMIT <= YYCURSOR) {
690 if (YYFILL) goto yyFillLabel20;
691 }
692 goto yy2;
693 }
694yy37:
695 yyaccept = 2;
696 YYMARKER = ++YYCURSOR;
697yyFillLabel21:
698 yych = *YYCURSOR;
699 switch (yych) {
700 case 0x80 ... 0x96:
701 case 0x98 ... 0xB6:
702 case 0xB8 ... 0xBF: goto yy98;
703 default:
704 if (YYLIMIT <= YYCURSOR) {
705 if (YYFILL) goto yyFillLabel21;
706 }
707 goto yy2;
708 }
709yy38:
710 yyaccept = 2;
711 YYMARKER = ++YYCURSOR;
712yyFillLabel22:
713 yych = *YYCURSOR;
714 switch (yych) {
715 case 0x80 ... 0xBF: goto yy98;
716 default:
717 if (YYLIMIT <= YYCURSOR) {
718 if (YYFILL) goto yyFillLabel22;
719 }
720 goto yy2;
721 }
722yy39:
723 yyaccept = 2;
724 YYMARKER = ++YYCURSOR;
725yyFillLabel23:
726 yych = *YYCURSOR;
727 switch (yych) {
728 case 0xB0 ... 0xBD:
729 case 0xBF: goto yy98;
730 default:
731 if (YYLIMIT <= YYCURSOR) {
732 if (YYFILL) goto yyFillLabel23;
733 }
734 goto yy2;
735 }
736yy40:
737 yyaccept = 2;
738 YYMARKER = ++YYCURSOR;
739yyFillLabel24:
740 yych = *YYCURSOR;
741 switch (yych) {
742 case 0xA0 ... 0xBF: goto yy102;
743 default:
744 if (YYLIMIT <= YYCURSOR) {
745 if (YYFILL) goto yyFillLabel24;
746 }
747 goto yy2;
748 }
749yy41:
750 yyaccept = 2;
751 YYMARKER = ++YYCURSOR;
752yyFillLabel25:
753 yych = *YYCURSOR;
754 switch (yych) {
755 case 0x80 ... 0xBF: goto yy102;
756 default:
757 if (YYLIMIT <= YYCURSOR) {
758 if (YYFILL) goto yyFillLabel25;
759 }
760 goto yy2;
761 }
762yy42:
763 yyaccept = 2;
764 YYMARKER = ++YYCURSOR;
765yyFillLabel26:
766 yych = *YYCURSOR;
767 switch (yych) {
768 case 0x80: goto yy120;
769 case 0x81: goto yy121;
770 case 0x82 ... 0x85:
771 case 0xB0 ... 0xBE: goto yy102;
772 case 0x86: goto yy122;
773 case 0xBF: goto yy123;
774 default:
775 if (YYLIMIT <= YYCURSOR) {
776 if (YYFILL) goto yyFillLabel26;
777 }
778 goto yy2;
779 }
780yy43:
781 yyaccept = 2;
782 YYMARKER = ++YYCURSOR;
783yyFillLabel27:
784 yych = *YYCURSOR;
785 switch (yych) {
786 case 0x80: goto yy124;
787 case 0x81 ... 0xBF: goto yy102;
788 default:
789 if (YYLIMIT <= YYCURSOR) {
790 if (YYFILL) goto yyFillLabel27;
791 }
792 goto yy2;
793 }
794yy44:
795 yyaccept = 2;
796 YYMARKER = ++YYCURSOR;
797yyFillLabel28:
798 yych = *YYCURSOR;
799 switch (yych) {
800 case 0x80 ... 0x9F: goto yy102;
801 default:
802 if (YYLIMIT <= YYCURSOR) {
803 if (YYFILL) goto yyFillLabel28;
804 }
805 goto yy2;
806 }
807yy45:
808 yyaccept = 2;
809 YYMARKER = ++YYCURSOR;
810yyFillLabel29:
811 yych = *YYCURSOR;
812 switch (yych) {
813 case 0xA4 ... 0xB6:
814 case 0xB8 ... 0xBE: goto yy102;
815 case 0xB7: goto yy125;
816 case 0xBF: goto yy126;
817 default:
818 if (YYLIMIT <= YYCURSOR) {
819 if (YYFILL) goto yyFillLabel29;
820 }
821 goto yy2;
822 }
823yy46:
824 yyaccept = 2;
825 YYMARKER = ++YYCURSOR;
826yyFillLabel30:
827 yych = *YYCURSOR;
828 switch (yych) {
829 case 0x90 ... 0xBF: goto yy105;
830 default:
831 if (YYLIMIT <= YYCURSOR) {
832 if (YYFILL) goto yyFillLabel30;
833 }
834 goto yy2;
835 }
836yy47:
837 yyaccept = 2;
838 YYMARKER = ++YYCURSOR;
839yyFillLabel31:
840 yych = *YYCURSOR;
841 switch (yych) {
842 case 0x80 ... 0xBF: goto yy105;
843 default:
844 if (YYLIMIT <= YYCURSOR) {
845 if (YYFILL) goto yyFillLabel31;
846 }
847 goto yy2;
848 }
849yy48:
850 yyaccept = 2;
851 YYMARKER = ++YYCURSOR;
852yyFillLabel32:
853 yych = *YYCURSOR;
854 switch (yych) {
855 case 0x80 ... 0xAF: goto yy105;
856 default:
857 if (YYLIMIT <= YYCURSOR) {
858 if (YYFILL) goto yyFillLabel32;
859 }
860 goto yy2;
861 }
862yy49:
863 yyaccept = 6;
864 YYMARKER = ++YYCURSOR;
865yyFillLabel33:
866 yych = *YYCURSOR;
867 switch (yych) {
868 case 0x00:
869 case 0x01 ... '\t':
870 case '\v' ... '\f':
871 case 0x0E ... 0x7F:
872 if (YYLIMIT <= YYCURSOR) {
873 if (YYFILL) goto yyFillLabel33;
874 goto yy4;
875 }
876 goto yy49;
877 case '\n':
878 case '\r': goto yy3;
879 case 0xC2 ... 0xDF: goto yy127;
880 case 0xE0: goto yy128;
881 case 0xE1 ... 0xEF: goto yy129;
882 case 0xF0: goto yy130;
883 case 0xF1 ... 0xF3: goto yy131;
884 case 0xF4: goto yy132;
885 default: goto yy4;
886 }
887yy50:
888 ++YYCURSOR;
889 goto yy18;
890yy51:
891 ++YYCURSOR;
892yyFillLabel34:
893 yych = *YYCURSOR;
894 switch (yych) {
895 case '"': goto yy133;
896 default:
897 if (YYLIMIT <= YYCURSOR) {
898 if (YYFILL) goto yyFillLabel34;
899 }
900 goto yy52;
901 }
902yy52:
904 switch (yyaccept) {
905 case 0: goto yy8;
906 case 1: goto yy10;
907 case 2: goto yy2;
908 case 3: goto yy20;
909 case 4: goto yy22;
910 case 5: goto yy34;
911 case 6: goto yy4;
912 case 7: goto yy12;
913 case 8: goto yy16;
914 case 9: goto yy63;
915 case 10: goto yy24;
916 case 11: goto yy95;
917 case 12: goto yy29;
918 case 13: goto yy83;
919 case 14: goto yy115;
920 case 15: goto yy182;
921 case 16: goto yy215;
922 case 17: goto yy217;
923 default: goto yy230;
924 }
925yy53:
926 ++YYCURSOR;
927yyFillLabel35:
928 yych = *YYCURSOR;
929 switch (yych) {
930 case 0x80 ... 0xBF: goto yy9;
931 default:
932 if (YYLIMIT <= YYCURSOR) {
933 if (YYFILL) goto yyFillLabel35;
934 }
935 goto yy52;
936 }
937yy54:
938 ++YYCURSOR;
939yyFillLabel36:
940 yych = *YYCURSOR;
941 switch (yych) {
942 case 0xA0 ... 0xBF: goto yy53;
943 default:
944 if (YYLIMIT <= YYCURSOR) {
945 if (YYFILL) goto yyFillLabel36;
946 }
947 goto yy52;
948 }
949yy55:
950 ++YYCURSOR;
951yyFillLabel37:
952 yych = *YYCURSOR;
953 switch (yych) {
954 case 0x80 ... 0xBF: goto yy53;
955 default:
956 if (YYLIMIT <= YYCURSOR) {
957 if (YYFILL) goto yyFillLabel37;
958 }
959 goto yy52;
960 }
961yy56:
962 ++YYCURSOR;
963yyFillLabel38:
964 yych = *YYCURSOR;
965 switch (yych) {
966 case 0x90 ... 0xBF: goto yy55;
967 default:
968 if (YYLIMIT <= YYCURSOR) {
969 if (YYFILL) goto yyFillLabel38;
970 }
971 goto yy52;
972 }
973yy57:
974 ++YYCURSOR;
975yyFillLabel39:
976 yych = *YYCURSOR;
977 switch (yych) {
978 case 0x80 ... 0xBF: goto yy55;
979 default:
980 if (YYLIMIT <= YYCURSOR) {
981 if (YYFILL) goto yyFillLabel39;
982 }
983 goto yy52;
984 }
985yy58:
986 ++YYCURSOR;
987yyFillLabel40:
988 yych = *YYCURSOR;
989 switch (yych) {
990 case 0x80 ... 0x8F: goto yy55;
991 default:
992 if (YYLIMIT <= YYCURSOR) {
993 if (YYFILL) goto yyFillLabel40;
994 }
995 goto yy52;
996 }
997yy59:
998 yyaccept = 7;
999 YYMARKER = ++YYCURSOR;
1000yyFillLabel41:
1001 yych = *YYCURSOR;
1002 switch (yych) {
1003 case 0x00:
1004 case 0x01 ... '\t':
1005 case '\v' ... '\f':
1006 case 0x0E ... 0x7F:
1007 if (YYLIMIT <= YYCURSOR) {
1008 if (YYFILL) goto yyFillLabel41;
1009 goto yy12;
1010 }
1011 goto yy59;
1012 case '\n':
1013 case '\r': goto yy11;
1014 case 0xC2 ... 0xDF: goto yy134;
1015 case 0xE0: goto yy135;
1016 case 0xE1 ... 0xEF: goto yy136;
1017 case 0xF0: goto yy137;
1018 case 0xF1 ... 0xF3: goto yy138;
1019 case 0xF4: goto yy139;
1020 default: goto yy12;
1021 }
1022yy60:
1023 ++YYCURSOR;
1024yyFillLabel42:
1025 yych = *YYCURSOR;
1026 switch (yych) {
1027 case '0' ... '9': goto yy62;
1028 default:
1029 if (YYLIMIT <= YYCURSOR) {
1030 if (YYFILL) goto yyFillLabel42;
1031 }
1032 goto yy52;
1033 }
1034yy61:
1035 yyaccept = 8;
1036 YYMARKER = ++YYCURSOR;
1037yyFillLabel43:
1038 yych = *YYCURSOR;
1039 switch (yych) {
1040 case 0x00:
1041 case 0x01 ... '\t':
1042 case '\v' ... '\f':
1043 case 0x0E ... 0x7F:
1044 if (YYLIMIT <= YYCURSOR) {
1045 if (YYFILL) goto yyFillLabel43;
1046 goto yy16;
1047 }
1048 goto yy61;
1049 case '\n':
1050 case '\r': goto yy15;
1051 case 0xC2 ... 0xDF: goto yy140;
1052 case 0xE0: goto yy141;
1053 case 0xE1 ... 0xEF: goto yy142;
1054 case 0xF0: goto yy143;
1055 case 0xF1 ... 0xF3: goto yy144;
1056 case 0xF4: goto yy145;
1057 default: goto yy16;
1058 }
1059yy62:
1060 yyaccept = 9;
1061 YYMARKER = ++YYCURSOR;
1062yyFillLabel44:
1063 yych = *YYCURSOR;
1064 switch (yych) {
1065 case '0' ... '9': goto yy62;
1066 case 'E':
1067 case 'e': goto yy64;
1068 default:
1069 if (YYLIMIT <= YYCURSOR) {
1070 if (YYFILL) goto yyFillLabel44;
1071 }
1072 goto yy63;
1073 }
1074yy63:
1075#line 190 "lexer_ttl.re"
1076 {
1077 // Normalize sign.
1078 YYCTYPE offset = *it->tok == '+' ? 1 : 0;
1079
1080 // Normalize trailing zeros in fractional part.
1081 size_t size = YYCURSOR - it->tok - offset;
1082 if (strchr ((char *)it->tok, '.'))
1083 for (YYCTYPE *i = YYCURSOR; *i == '0'; i--) size--;
1084
1085 *token_p = uint8_ndup (it->tok + offset, size);
1086 LOG_TRACE("Integer: %s", *token_p);
1087
1088 return T_DECIMAL;
1089 }
1090#line 1091 "parser_ttl.c"
1091yy64:
1092 ++YYCURSOR;
1093yyFillLabel45:
1094 yych = *YYCURSOR;
1095 switch (yych) {
1096 case '+':
1097 case '-': goto yy146;
1098 case '0' ... '9': goto yy147;
1099 default:
1100 if (YYLIMIT <= YYCURSOR) {
1101 if (YYFILL) goto yyFillLabel45;
1102 }
1103 goto yy52;
1104 }
1105yy65:
1106 yyaccept = 4;
1107 YYMARKER = ++YYCURSOR;
1108yyFillLabel46:
1109 yych = *YYCURSOR;
1110yy66:
1111 switch (yych) {
1112 case '-':
1113 case '0' ... '9':
1114 case 'A' ... 'Z':
1115 case '_':
1116 case 'a' ... 'z': goto yy65;
1117 case 0xC2: goto yy149;
1118 case 0xC3: goto yy67;
1119 case 0xC4 ... 0xCC:
1120 case 0xCE ... 0xDF: goto yy68;
1121 case 0xCD: goto yy150;
1122 case 0xE0: goto yy70;
1123 case 0xE1:
1124 case 0xE4 ... 0xEC: goto yy71;
1125 case 0xE2: goto yy151;
1126 case 0xE3: goto yy73;
1127 case 0xED: goto yy74;
1128 case 0xEF: goto yy75;
1129 case 0xF0: goto yy76;
1130 case 0xF1 ... 0xF2: goto yy77;
1131 case 0xF3: goto yy78;
1132 default:
1133 if (YYLIMIT <= YYCURSOR) {
1134 if (YYFILL) goto yyFillLabel46;
1135 }
1136 goto yy22;
1137 }
1138yy67:
1139 ++YYCURSOR;
1140yyFillLabel47:
1141 yych = *YYCURSOR;
1142 switch (yych) {
1143 case 0x80 ... 0x96:
1144 case 0x98 ... 0xB6:
1145 case 0xB8 ... 0xBF: goto yy65;
1146 default:
1147 if (YYLIMIT <= YYCURSOR) {
1148 if (YYFILL) goto yyFillLabel47;
1149 }
1150 goto yy52;
1151 }
1152yy68:
1153 ++YYCURSOR;
1154yyFillLabel48:
1155 yych = *YYCURSOR;
1156 switch (yych) {
1157 case 0x80 ... 0xBF: goto yy65;
1158 default:
1159 if (YYLIMIT <= YYCURSOR) {
1160 if (YYFILL) goto yyFillLabel48;
1161 }
1162 goto yy52;
1163 }
1164yy69:
1165 ++YYCURSOR;
1166yyFillLabel49:
1167 yych = *YYCURSOR;
1168 switch (yych) {
1169 case 0xB0 ... 0xBD:
1170 case 0xBF: goto yy65;
1171 default:
1172 if (YYLIMIT <= YYCURSOR) {
1173 if (YYFILL) goto yyFillLabel49;
1174 }
1175 goto yy52;
1176 }
1177yy70:
1178 ++YYCURSOR;
1179yyFillLabel50:
1180 yych = *YYCURSOR;
1181 switch (yych) {
1182 case 0xA0 ... 0xBF: goto yy68;
1183 default:
1184 if (YYLIMIT <= YYCURSOR) {
1185 if (YYFILL) goto yyFillLabel50;
1186 }
1187 goto yy52;
1188 }
1189yy71:
1190 ++YYCURSOR;
1191yyFillLabel51:
1192 yych = *YYCURSOR;
1193 switch (yych) {
1194 case 0x80 ... 0xBF: goto yy68;
1195 default:
1196 if (YYLIMIT <= YYCURSOR) {
1197 if (YYFILL) goto yyFillLabel51;
1198 }
1199 goto yy52;
1200 }
1201yy72:
1202 ++YYCURSOR;
1203yyFillLabel52:
1204 yych = *YYCURSOR;
1205 switch (yych) {
1206 case 0x80: goto yy152;
1207 case 0x81: goto yy153;
1208 case 0x82 ... 0x85:
1209 case 0xB0 ... 0xBE: goto yy68;
1210 case 0x86: goto yy154;
1211 case 0xBF: goto yy155;
1212 default:
1213 if (YYLIMIT <= YYCURSOR) {
1214 if (YYFILL) goto yyFillLabel52;
1215 }
1216 goto yy52;
1217 }
1218yy73:
1219 ++YYCURSOR;
1220yyFillLabel53:
1221 yych = *YYCURSOR;
1222 switch (yych) {
1223 case 0x80: goto yy156;
1224 case 0x81 ... 0xBF: goto yy68;
1225 default:
1226 if (YYLIMIT <= YYCURSOR) {
1227 if (YYFILL) goto yyFillLabel53;
1228 }
1229 goto yy52;
1230 }
1231yy74:
1232 ++YYCURSOR;
1233yyFillLabel54:
1234 yych = *YYCURSOR;
1235 switch (yych) {
1236 case 0x80 ... 0x9F: goto yy68;
1237 default:
1238 if (YYLIMIT <= YYCURSOR) {
1239 if (YYFILL) goto yyFillLabel54;
1240 }
1241 goto yy52;
1242 }
1243yy75:
1244 ++YYCURSOR;
1245yyFillLabel55:
1246 yych = *YYCURSOR;
1247 switch (yych) {
1248 case 0xA4 ... 0xB6:
1249 case 0xB8 ... 0xBE: goto yy68;
1250 case 0xB7: goto yy157;
1251 case 0xBF: goto yy158;
1252 default:
1253 if (YYLIMIT <= YYCURSOR) {
1254 if (YYFILL) goto yyFillLabel55;
1255 }
1256 goto yy52;
1257 }
1258yy76:
1259 ++YYCURSOR;
1260yyFillLabel56:
1261 yych = *YYCURSOR;
1262 switch (yych) {
1263 case 0x90 ... 0xBF: goto yy71;
1264 default:
1265 if (YYLIMIT <= YYCURSOR) {
1266 if (YYFILL) goto yyFillLabel56;
1267 }
1268 goto yy52;
1269 }
1270yy77:
1271 ++YYCURSOR;
1272yyFillLabel57:
1273 yych = *YYCURSOR;
1274 switch (yych) {
1275 case 0x80 ... 0xBF: goto yy71;
1276 default:
1277 if (YYLIMIT <= YYCURSOR) {
1278 if (YYFILL) goto yyFillLabel57;
1279 }
1280 goto yy52;
1281 }
1282yy78:
1283 ++YYCURSOR;
1284yyFillLabel58:
1285 yych = *YYCURSOR;
1286 switch (yych) {
1287 case 0x80 ... 0xAF: goto yy71;
1288 default:
1289 if (YYLIMIT <= YYCURSOR) {
1290 if (YYFILL) goto yyFillLabel58;
1291 }
1292 goto yy52;
1293 }
1294yy79:
1295 yyaccept = 10;
1296 YYMARKER = ++YYCURSOR;
1297yyFillLabel59:
1298 yych = *YYCURSOR;
1299 switch (yych) {
1300 case 0x00:
1301 case 0x01 ... '\t':
1302 case '\v' ... '\f':
1303 case 0x0E ... 0x7F:
1304 if (YYLIMIT <= YYCURSOR) {
1305 if (YYFILL) goto yyFillLabel59;
1306 goto yy24;
1307 }
1308 goto yy79;
1309 case '\n':
1310 case '\r': goto yy23;
1311 case 0xC2 ... 0xDF: goto yy159;
1312 case 0xE0: goto yy160;
1313 case 0xE1 ... 0xEF: goto yy161;
1314 case 0xF0: goto yy162;
1315 case 0xF1 ... 0xF3: goto yy163;
1316 case 0xF4: goto yy164;
1317 default: goto yy24;
1318 }
1319yy80:
1320 ++YYCURSOR;
1321yyFillLabel60:
1322 yych = *YYCURSOR;
1323yy81:
1324 switch (yych) {
1325 case ' ' ... '=':
1326 case '?' ... '[':
1327 case ']' ... 0x7F: goto yy80;
1328 case '>': goto yy82;
1329 case '\\': goto yy84;
1330 case 0xC2 ... 0xDF: goto yy85;
1331 case 0xE0: goto yy86;
1332 case 0xE1 ... 0xEF: goto yy87;
1333 case 0xF0: goto yy88;
1334 case 0xF1 ... 0xF3: goto yy89;
1335 case 0xF4: goto yy90;
1336 default:
1337 if (YYLIMIT <= YYCURSOR) {
1338 if (YYFILL) goto yyFillLabel60;
1339 }
1340 goto yy52;
1341 }
1342yy82:
1343 ++YYCURSOR;
1344yy83:
1345#line 111 "lexer_ttl.re"
1346 {
1347 *token_p = uint8_ndup (it->tok + 1, YYCURSOR - it->tok - 2);
1348 LOG_TRACE("URI data: %s", *token_p);
1349
1350 return T_IRIREF;
1351 }
1352#line 1353 "parser_ttl.c"
1353yy84:
1354 ++YYCURSOR;
1355yyFillLabel61:
1356 yych = *YYCURSOR;
1357 switch (yych) {
1358 case ' ' ... '=':
1359 case '?' ... '[':
1360 case ']' ... 0x7F: goto yy80;
1361 case '>': goto yy165;
1362 case '\\': goto yy84;
1363 case 0xC2 ... 0xDF: goto yy85;
1364 case 0xE0: goto yy86;
1365 case 0xE1 ... 0xEF: goto yy87;
1366 case 0xF0: goto yy88;
1367 case 0xF1 ... 0xF3: goto yy89;
1368 case 0xF4: goto yy90;
1369 default:
1370 if (YYLIMIT <= YYCURSOR) {
1371 if (YYFILL) goto yyFillLabel61;
1372 }
1373 goto yy52;
1374 }
1375yy85:
1376 ++YYCURSOR;
1377yyFillLabel62:
1378 yych = *YYCURSOR;
1379 switch (yych) {
1380 case 0x80 ... 0xBF: goto yy80;
1381 default:
1382 if (YYLIMIT <= YYCURSOR) {
1383 if (YYFILL) goto yyFillLabel62;
1384 }
1385 goto yy52;
1386 }
1387yy86:
1388 ++YYCURSOR;
1389yyFillLabel63:
1390 yych = *YYCURSOR;
1391 switch (yych) {
1392 case 0xA0 ... 0xBF: goto yy85;
1393 default:
1394 if (YYLIMIT <= YYCURSOR) {
1395 if (YYFILL) goto yyFillLabel63;
1396 }
1397 goto yy52;
1398 }
1399yy87:
1400 ++YYCURSOR;
1401yyFillLabel64:
1402 yych = *YYCURSOR;
1403 switch (yych) {
1404 case 0x80 ... 0xBF: goto yy85;
1405 default:
1406 if (YYLIMIT <= YYCURSOR) {
1407 if (YYFILL) goto yyFillLabel64;
1408 }
1409 goto yy52;
1410 }
1411yy88:
1412 ++YYCURSOR;
1413yyFillLabel65:
1414 yych = *YYCURSOR;
1415 switch (yych) {
1416 case 0x90 ... 0xBF: goto yy87;
1417 default:
1418 if (YYLIMIT <= YYCURSOR) {
1419 if (YYFILL) goto yyFillLabel65;
1420 }
1421 goto yy52;
1422 }
1423yy89:
1424 ++YYCURSOR;
1425yyFillLabel66:
1426 yych = *YYCURSOR;
1427 switch (yych) {
1428 case 0x80 ... 0xBF: goto yy87;
1429 default:
1430 if (YYLIMIT <= YYCURSOR) {
1431 if (YYFILL) goto yyFillLabel66;
1432 }
1433 goto yy52;
1434 }
1435yy90:
1436 ++YYCURSOR;
1437yyFillLabel67:
1438 yych = *YYCURSOR;
1439 switch (yych) {
1440 case 0x80 ... 0x8F: goto yy87;
1441 default:
1442 if (YYLIMIT <= YYCURSOR) {
1443 if (YYFILL) goto yyFillLabel67;
1444 }
1445 goto yy52;
1446 }
1447yy91:
1448 ++YYCURSOR;
1449yyFillLabel68:
1450 yych = *YYCURSOR;
1451 switch (yych) {
1452 case 'A':
1453 case 'a': goto yy166;
1454 default:
1455 if (YYLIMIT <= YYCURSOR) {
1456 if (YYFILL) goto yyFillLabel68;
1457 }
1458 goto yy52;
1459 }
1460yy92:
1461 ++YYCURSOR;
1462yyFillLabel69:
1463 yych = *YYCURSOR;
1464 switch (yych) {
1465 case 'R':
1466 case 'r': goto yy167;
1467 default:
1468 if (YYLIMIT <= YYCURSOR) {
1469 if (YYFILL) goto yyFillLabel69;
1470 }
1471 goto yy52;
1472 }
1473yy93:
1474 yyaccept = 11;
1475 YYMARKER = ++YYCURSOR;
1476yyFillLabel70:
1477 yych = *YYCURSOR;
1478yy94:
1479 switch (yych) {
1480 case '-': goto yy168;
1481 case 'a' ... 'z': goto yy93;
1482 default:
1483 if (YYLIMIT <= YYCURSOR) {
1484 if (YYFILL) goto yyFillLabel70;
1485 }
1486 goto yy95;
1487 }
1488yy95:
1489#line 163 "lexer_ttl.re"
1490 {
1491 *token_p = uint8_ndup (it->tok + 1, YYCURSOR - it->tok - 1);
1492 LOG_TRACE("Lang tag: '%s'", *token_p);
1493
1494 return T_LANGTAG;
1495 }
1496#line 1497 "parser_ttl.c"
1497yy96:
1498 yyaccept = 11;
1499 YYMARKER = ++YYCURSOR;
1500yyFillLabel71:
1501 yych = *YYCURSOR;
1502 switch (yych) {
1503 case 0x00:
1504 if (YYLIMIT <= YYCURSOR) {
1505 if (YYFILL) goto yyFillLabel71;
1506 }
1507 goto yy95;
1508 case 'A': goto yy166;
1509 case 'a': goto yy169;
1510 default: goto yy94;
1511 }
1512yy97:
1513 yyaccept = 11;
1514 YYMARKER = ++YYCURSOR;
1515yyFillLabel72:
1516 yych = *YYCURSOR;
1517 switch (yych) {
1518 case 0x00:
1519 if (YYLIMIT <= YYCURSOR) {
1520 if (YYFILL) goto yyFillLabel72;
1521 }
1522 goto yy95;
1523 case 'R': goto yy167;
1524 case 'r': goto yy170;
1525 default: goto yy94;
1526 }
1527yy98:
1528 ++YYCURSOR;
1529yyFillLabel73:
1530 yych = *YYCURSOR;
1531yy99:
1532 switch (yych) {
1533 case '-':
1534 case '0' ... '9':
1535 case 'A' ... 'Z':
1536 case '_':
1537 case 'a' ... 'z': goto yy98;
1538 case ':': goto yy21;
1539 case 0xC2: goto yy100;
1540 case 0xC3: goto yy101;
1541 case 0xC4 ... 0xCC:
1542 case 0xCE ... 0xDF: goto yy102;
1543 case 0xCD: goto yy103;
1544 case 0xE0: goto yy104;
1545 case 0xE1:
1546 case 0xE4 ... 0xEC: goto yy105;
1547 case 0xE2: goto yy106;
1548 case 0xE3: goto yy107;
1549 case 0xED: goto yy108;
1550 case 0xEF: goto yy109;
1551 case 0xF0: goto yy110;
1552 case 0xF1 ... 0xF2: goto yy111;
1553 case 0xF3: goto yy112;
1554 default:
1555 if (YYLIMIT <= YYCURSOR) {
1556 if (YYFILL) goto yyFillLabel73;
1557 }
1558 goto yy52;
1559 }
1560yy100:
1561 ++YYCURSOR;
1562yyFillLabel74:
1563 yych = *YYCURSOR;
1564 switch (yych) {
1565 case 0xB7: goto yy98;
1566 default:
1567 if (YYLIMIT <= YYCURSOR) {
1568 if (YYFILL) goto yyFillLabel74;
1569 }
1570 goto yy52;
1571 }
1572yy101:
1573 ++YYCURSOR;
1574yyFillLabel75:
1575 yych = *YYCURSOR;
1576 switch (yych) {
1577 case 0x80 ... 0x96:
1578 case 0x98 ... 0xB6:
1579 case 0xB8 ... 0xBF: goto yy98;
1580 default:
1581 if (YYLIMIT <= YYCURSOR) {
1582 if (YYFILL) goto yyFillLabel75;
1583 }
1584 goto yy52;
1585 }
1586yy102:
1587 ++YYCURSOR;
1588yyFillLabel76:
1589 yych = *YYCURSOR;
1590 switch (yych) {
1591 case 0x80 ... 0xBF: goto yy98;
1592 default:
1593 if (YYLIMIT <= YYCURSOR) {
1594 if (YYFILL) goto yyFillLabel76;
1595 }
1596 goto yy52;
1597 }
1598yy103:
1599 ++YYCURSOR;
1600yyFillLabel77:
1601 yych = *YYCURSOR;
1602 switch (yych) {
1603 case 0x80 ... 0xBD:
1604 case 0xBF: goto yy98;
1605 default:
1606 if (YYLIMIT <= YYCURSOR) {
1607 if (YYFILL) goto yyFillLabel77;
1608 }
1609 goto yy52;
1610 }
1611yy104:
1612 ++YYCURSOR;
1613yyFillLabel78:
1614 yych = *YYCURSOR;
1615 switch (yych) {
1616 case 0xA0 ... 0xBF: goto yy102;
1617 default:
1618 if (YYLIMIT <= YYCURSOR) {
1619 if (YYFILL) goto yyFillLabel78;
1620 }
1621 goto yy52;
1622 }
1623yy105:
1624 ++YYCURSOR;
1625yyFillLabel79:
1626 yych = *YYCURSOR;
1627 switch (yych) {
1628 case 0x80 ... 0xBF: goto yy102;
1629 default:
1630 if (YYLIMIT <= YYCURSOR) {
1631 if (YYFILL) goto yyFillLabel79;
1632 }
1633 goto yy52;
1634 }
1635yy106:
1636 ++YYCURSOR;
1637yyFillLabel80:
1638 yych = *YYCURSOR;
1639 switch (yych) {
1640 case 0x80: goto yy171;
1641 case 0x81: goto yy172;
1642 case 0x82 ... 0x85:
1643 case 0xB0 ... 0xBE: goto yy102;
1644 case 0x86: goto yy122;
1645 case 0xBF: goto yy123;
1646 default:
1647 if (YYLIMIT <= YYCURSOR) {
1648 if (YYFILL) goto yyFillLabel80;
1649 }
1650 goto yy52;
1651 }
1652yy107:
1653 ++YYCURSOR;
1654yyFillLabel81:
1655 yych = *YYCURSOR;
1656 switch (yych) {
1657 case 0x80: goto yy124;
1658 case 0x81 ... 0xBF: goto yy102;
1659 default:
1660 if (YYLIMIT <= YYCURSOR) {
1661 if (YYFILL) goto yyFillLabel81;
1662 }
1663 goto yy52;
1664 }
1665yy108:
1666 ++YYCURSOR;
1667yyFillLabel82:
1668 yych = *YYCURSOR;
1669 switch (yych) {
1670 case 0x80 ... 0x9F: goto yy102;
1671 default:
1672 if (YYLIMIT <= YYCURSOR) {
1673 if (YYFILL) goto yyFillLabel82;
1674 }
1675 goto yy52;
1676 }
1677yy109:
1678 ++YYCURSOR;
1679yyFillLabel83:
1680 yych = *YYCURSOR;
1681 switch (yych) {
1682 case 0xA4 ... 0xB6:
1683 case 0xB8 ... 0xBE: goto yy102;
1684 case 0xB7: goto yy125;
1685 case 0xBF: goto yy126;
1686 default:
1687 if (YYLIMIT <= YYCURSOR) {
1688 if (YYFILL) goto yyFillLabel83;
1689 }
1690 goto yy52;
1691 }
1692yy110:
1693 ++YYCURSOR;
1694yyFillLabel84:
1695 yych = *YYCURSOR;
1696 switch (yych) {
1697 case 0x90 ... 0xBF: goto yy105;
1698 default:
1699 if (YYLIMIT <= YYCURSOR) {
1700 if (YYFILL) goto yyFillLabel84;
1701 }
1702 goto yy52;
1703 }
1704yy111:
1705 ++YYCURSOR;
1706yyFillLabel85:
1707 yych = *YYCURSOR;
1708 switch (yych) {
1709 case 0x80 ... 0xBF: goto yy105;
1710 default:
1711 if (YYLIMIT <= YYCURSOR) {
1712 if (YYFILL) goto yyFillLabel85;
1713 }
1714 goto yy52;
1715 }
1716yy112:
1717 ++YYCURSOR;
1718yyFillLabel86:
1719 yych = *YYCURSOR;
1720 switch (yych) {
1721 case 0x80 ... 0xAF: goto yy105;
1722 default:
1723 if (YYLIMIT <= YYCURSOR) {
1724 if (YYFILL) goto yyFillLabel86;
1725 }
1726 goto yy52;
1727 }
1728yy113:
1729 yyaccept = 12;
1730 YYMARKER = ++YYCURSOR;
1731yyFillLabel87:
1732 yych = *YYCURSOR;
1733 switch (yych) {
1734 case 0x00:
1735 case 0x01 ... '\t':
1736 case '\v' ... '\f':
1737 case 0x0E ... '\\':
1738 case '^' ... 0x7F:
1739 if (YYLIMIT <= YYCURSOR) {
1740 if (YYFILL) goto yyFillLabel87;
1741 goto yy29;
1742 }
1743 goto yy113;
1744 case '\n':
1745 case '\r': goto yy28;
1746 case ']': goto yy173;
1747 case 0xC2 ... 0xDF: goto yy174;
1748 case 0xE0: goto yy175;
1749 case 0xE1 ... 0xEF: goto yy176;
1750 case 0xF0: goto yy177;
1751 case 0xF1 ... 0xF3: goto yy178;
1752 case 0xF4: goto yy179;
1753 default: goto yy29;
1754 }
1755yy114:
1756 ++YYCURSOR;
1757yy115:
1758#line 209 "lexer_ttl.re"
1759 { return T_ANON; }
1760#line 1761 "parser_ttl.c"
1761yy116:
1762 ++YYCURSOR;
1763#line 231 "lexer_ttl.re"
1764 { return T_DTYPE_MARKER; }
1765#line 1766 "parser_ttl.c"
1766yy117:
1767 ++YYCURSOR;
1768yyFillLabel88:
1769 yych = *YYCURSOR;
1770 switch (yych) {
1771 case '0' ... '9':
1772 case 'A' ... 'Z':
1773 case '_':
1774 case 'a' ... 'z':
1775 case 0xC3 ... 0xCB:
1776 case 0xCE ... 0xE1:
1777 case 0xE3 ... 0xED:
1778 case 0xEF ... 0xF3: goto yy181;
1779 case 0xCD: goto yy185;
1780 case 0xE2: goto yy188;
1781 default:
1782 if (YYLIMIT <= YYCURSOR) {
1783 if (YYFILL) goto yyFillLabel88;
1784 }
1785 goto yy52;
1786 }
1787yy118:
1788 ++YYCURSOR;
1789yyFillLabel89:
1790 yych = *YYCURSOR;
1791 switch (yych) {
1792 case 0x00:
1793 if (YYLIMIT <= YYCURSOR) {
1794 if (YYFILL) goto yyFillLabel89;
1795 }
1796 goto yy52;
1797 case 'l': goto yy195;
1798 default: goto yy99;
1799 }
1800yy119:
1801 ++YYCURSOR;
1802yyFillLabel90:
1803 yych = *YYCURSOR;
1804 switch (yych) {
1805 case 0x00:
1806 if (YYLIMIT <= YYCURSOR) {
1807 if (YYFILL) goto yyFillLabel90;
1808 }
1809 goto yy52;
1810 case 'u': goto yy196;
1811 default: goto yy99;
1812 }
1813yy120:
1814 ++YYCURSOR;
1815yyFillLabel91:
1816 yych = *YYCURSOR;
1817 switch (yych) {
1818 case 0x8C ... 0x8D: goto yy98;
1819 default:
1820 if (YYLIMIT <= YYCURSOR) {
1821 if (YYFILL) goto yyFillLabel91;
1822 }
1823 goto yy52;
1824 }
1825yy121:
1826 ++YYCURSOR;
1827yyFillLabel92:
1828 yych = *YYCURSOR;
1829 switch (yych) {
1830 case 0xB0 ... 0xBF: goto yy98;
1831 default:
1832 if (YYLIMIT <= YYCURSOR) {
1833 if (YYFILL) goto yyFillLabel92;
1834 }
1835 goto yy52;
1836 }
1837yy122:
1838 ++YYCURSOR;
1839yyFillLabel93:
1840 yych = *YYCURSOR;
1841 switch (yych) {
1842 case 0x80 ... 0x8F: goto yy98;
1843 default:
1844 if (YYLIMIT <= YYCURSOR) {
1845 if (YYFILL) goto yyFillLabel93;
1846 }
1847 goto yy52;
1848 }
1849yy123:
1850 ++YYCURSOR;
1851yyFillLabel94:
1852 yych = *YYCURSOR;
1853 switch (yych) {
1854 case 0x80 ... 0xAF: goto yy98;
1855 default:
1856 if (YYLIMIT <= YYCURSOR) {
1857 if (YYFILL) goto yyFillLabel94;
1858 }
1859 goto yy52;
1860 }
1861yy124:
1862 ++YYCURSOR;
1863yyFillLabel95:
1864 yych = *YYCURSOR;
1865 switch (yych) {
1866 case 0x81 ... 0xBF: goto yy98;
1867 default:
1868 if (YYLIMIT <= YYCURSOR) {
1869 if (YYFILL) goto yyFillLabel95;
1870 }
1871 goto yy52;
1872 }
1873yy125:
1874 ++YYCURSOR;
1875yyFillLabel96:
1876 yych = *YYCURSOR;
1877 switch (yych) {
1878 case 0x80 ... 0x8F:
1879 case 0xB0 ... 0xBF: goto yy98;
1880 default:
1881 if (YYLIMIT <= YYCURSOR) {
1882 if (YYFILL) goto yyFillLabel96;
1883 }
1884 goto yy52;
1885 }
1886yy126:
1887 ++YYCURSOR;
1888yyFillLabel97:
1889 yych = *YYCURSOR;
1890 switch (yych) {
1891 case 0x80 ... 0xBD: goto yy98;
1892 default:
1893 if (YYLIMIT <= YYCURSOR) {
1894 if (YYFILL) goto yyFillLabel97;
1895 }
1896 goto yy52;
1897 }
1898yy127:
1899 ++YYCURSOR;
1900yyFillLabel98:
1901 yych = *YYCURSOR;
1902 switch (yych) {
1903 case 0x80 ... 0xBF: goto yy49;
1904 default:
1905 if (YYLIMIT <= YYCURSOR) {
1906 if (YYFILL) goto yyFillLabel98;
1907 }
1908 goto yy52;
1909 }
1910yy128:
1911 ++YYCURSOR;
1912yyFillLabel99:
1913 yych = *YYCURSOR;
1914 switch (yych) {
1915 case 0xA0 ... 0xBF: goto yy127;
1916 default:
1917 if (YYLIMIT <= YYCURSOR) {
1918 if (YYFILL) goto yyFillLabel99;
1919 }
1920 goto yy52;
1921 }
1922yy129:
1923 ++YYCURSOR;
1924yyFillLabel100:
1925 yych = *YYCURSOR;
1926 switch (yych) {
1927 case 0x80 ... 0xBF: goto yy127;
1928 default:
1929 if (YYLIMIT <= YYCURSOR) {
1930 if (YYFILL) goto yyFillLabel100;
1931 }
1932 goto yy52;
1933 }
1934yy130:
1935 ++YYCURSOR;
1936yyFillLabel101:
1937 yych = *YYCURSOR;
1938 switch (yych) {
1939 case 0x90 ... 0xBF: goto yy129;
1940 default:
1941 if (YYLIMIT <= YYCURSOR) {
1942 if (YYFILL) goto yyFillLabel101;
1943 }
1944 goto yy52;
1945 }
1946yy131:
1947 ++YYCURSOR;
1948yyFillLabel102:
1949 yych = *YYCURSOR;
1950 switch (yych) {
1951 case 0x80 ... 0xBF: goto yy129;
1952 default:
1953 if (YYLIMIT <= YYCURSOR) {
1954 if (YYFILL) goto yyFillLabel102;
1955 }
1956 goto yy52;
1957 }
1958yy132:
1959 ++YYCURSOR;
1960yyFillLabel103:
1961 yych = *YYCURSOR;
1962 switch (yych) {
1963 case 0x80 ... 0x8F: goto yy129;
1964 default:
1965 if (YYLIMIT <= YYCURSOR) {
1966 if (YYFILL) goto yyFillLabel103;
1967 }
1968 goto yy52;
1969 }
1970yy133:
1971 ++YYCURSOR;
1972#line 100 "lexer_ttl.re"
1973 { goto lchar; }
1974#line 1975 "parser_ttl.c"
1975yy134:
1976 ++YYCURSOR;
1977yyFillLabel104:
1978 yych = *YYCURSOR;
1979 switch (yych) {
1980 case 0x80 ... 0xBF: goto yy59;
1981 default:
1982 if (YYLIMIT <= YYCURSOR) {
1983 if (YYFILL) goto yyFillLabel104;
1984 }
1985 goto yy52;
1986 }
1987yy135:
1988 ++YYCURSOR;
1989yyFillLabel105:
1990 yych = *YYCURSOR;
1991 switch (yych) {
1992 case 0xA0 ... 0xBF: goto yy134;
1993 default:
1994 if (YYLIMIT <= YYCURSOR) {
1995 if (YYFILL) goto yyFillLabel105;
1996 }
1997 goto yy52;
1998 }
1999yy136:
2000 ++YYCURSOR;
2001yyFillLabel106:
2002 yych = *YYCURSOR;
2003 switch (yych) {
2004 case 0x80 ... 0xBF: goto yy134;
2005 default:
2006 if (YYLIMIT <= YYCURSOR) {
2007 if (YYFILL) goto yyFillLabel106;
2008 }
2009 goto yy52;
2010 }
2011yy137:
2012 ++YYCURSOR;
2013yyFillLabel107:
2014 yych = *YYCURSOR;
2015 switch (yych) {
2016 case 0x90 ... 0xBF: goto yy136;
2017 default:
2018 if (YYLIMIT <= YYCURSOR) {
2019 if (YYFILL) goto yyFillLabel107;
2020 }
2021 goto yy52;
2022 }
2023yy138:
2024 ++YYCURSOR;
2025yyFillLabel108:
2026 yych = *YYCURSOR;
2027 switch (yych) {
2028 case 0x80 ... 0xBF: goto yy136;
2029 default:
2030 if (YYLIMIT <= YYCURSOR) {
2031 if (YYFILL) goto yyFillLabel108;
2032 }
2033 goto yy52;
2034 }
2035yy139:
2036 ++YYCURSOR;
2037yyFillLabel109:
2038 yych = *YYCURSOR;
2039 switch (yych) {
2040 case 0x80 ... 0x8F: goto yy136;
2041 default:
2042 if (YYLIMIT <= YYCURSOR) {
2043 if (YYFILL) goto yyFillLabel109;
2044 }
2045 goto yy52;
2046 }
2047yy140:
2048 ++YYCURSOR;
2049yyFillLabel110:
2050 yych = *YYCURSOR;
2051 switch (yych) {
2052 case 0x80 ... 0xBF: goto yy61;
2053 default:
2054 if (YYLIMIT <= YYCURSOR) {
2055 if (YYFILL) goto yyFillLabel110;
2056 }
2057 goto yy52;
2058 }
2059yy141:
2060 ++YYCURSOR;
2061yyFillLabel111:
2062 yych = *YYCURSOR;
2063 switch (yych) {
2064 case 0xA0 ... 0xBF: goto yy140;
2065 default:
2066 if (YYLIMIT <= YYCURSOR) {
2067 if (YYFILL) goto yyFillLabel111;
2068 }
2069 goto yy52;
2070 }
2071yy142:
2072 ++YYCURSOR;
2073yyFillLabel112:
2074 yych = *YYCURSOR;
2075 switch (yych) {
2076 case 0x80 ... 0xBF: goto yy140;
2077 default:
2078 if (YYLIMIT <= YYCURSOR) {
2079 if (YYFILL) goto yyFillLabel112;
2080 }
2081 goto yy52;
2082 }
2083yy143:
2084 ++YYCURSOR;
2085yyFillLabel113:
2086 yych = *YYCURSOR;
2087 switch (yych) {
2088 case 0x90 ... 0xBF: goto yy142;
2089 default:
2090 if (YYLIMIT <= YYCURSOR) {
2091 if (YYFILL) goto yyFillLabel113;
2092 }
2093 goto yy52;
2094 }
2095yy144:
2096 ++YYCURSOR;
2097yyFillLabel114:
2098 yych = *YYCURSOR;
2099 switch (yych) {
2100 case 0x80 ... 0xBF: goto yy142;
2101 default:
2102 if (YYLIMIT <= YYCURSOR) {
2103 if (YYFILL) goto yyFillLabel114;
2104 }
2105 goto yy52;
2106 }
2107yy145:
2108 ++YYCURSOR;
2109yyFillLabel115:
2110 yych = *YYCURSOR;
2111 switch (yych) {
2112 case 0x80 ... 0x8F: goto yy142;
2113 default:
2114 if (YYLIMIT <= YYCURSOR) {
2115 if (YYFILL) goto yyFillLabel115;
2116 }
2117 goto yy52;
2118 }
2119yy146:
2120 ++YYCURSOR;
2121yyFillLabel116:
2122 yych = *YYCURSOR;
2123 switch (yych) {
2124 case '0' ... '9': goto yy147;
2125 default:
2126 if (YYLIMIT <= YYCURSOR) {
2127 if (YYFILL) goto yyFillLabel116;
2128 }
2129 goto yy52;
2130 }
2131yy147:
2132 ++YYCURSOR;
2133yyFillLabel117:
2134 yych = *YYCURSOR;
2135 switch (yych) {
2136 case '0' ... '9': goto yy147;
2137 default:
2138 if (YYLIMIT <= YYCURSOR) {
2139 if (YYFILL) goto yyFillLabel117;
2140 }
2141 goto yy148;
2142 }
2143yy148:
2144#line 180 "lexer_ttl.re"
2145 {
2146 // Normalize sign.
2147 size_t offset = *it->tok == '+' ? 1 : 0;
2148
2149 *token_p = uint8_ndup (it->tok + offset, YYCURSOR - it->tok - offset);
2150 LOG_TRACE("Integer: %s", *token_p);
2151
2152 return T_DOUBLE;
2153 }
2154#line 2155 "parser_ttl.c"
2155yy149:
2156 ++YYCURSOR;
2157yyFillLabel118:
2158 yych = *YYCURSOR;
2159 switch (yych) {
2160 case 0xB7: goto yy65;
2161 default:
2162 if (YYLIMIT <= YYCURSOR) {
2163 if (YYFILL) goto yyFillLabel118;
2164 }
2165 goto yy52;
2166 }
2167yy150:
2168 ++YYCURSOR;
2169yyFillLabel119:
2170 yych = *YYCURSOR;
2171 switch (yych) {
2172 case 0x80 ... 0xBD:
2173 case 0xBF: goto yy65;
2174 default:
2175 if (YYLIMIT <= YYCURSOR) {
2176 if (YYFILL) goto yyFillLabel119;
2177 }
2178 goto yy52;
2179 }
2180yy151:
2181 ++YYCURSOR;
2182yyFillLabel120:
2183 yych = *YYCURSOR;
2184 switch (yych) {
2185 case 0x80: goto yy197;
2186 case 0x81: goto yy198;
2187 case 0x82 ... 0x85:
2188 case 0xB0 ... 0xBE: goto yy68;
2189 case 0x86: goto yy154;
2190 case 0xBF: goto yy155;
2191 default:
2192 if (YYLIMIT <= YYCURSOR) {
2193 if (YYFILL) goto yyFillLabel120;
2194 }
2195 goto yy52;
2196 }
2197yy152:
2198 ++YYCURSOR;
2199yyFillLabel121:
2200 yych = *YYCURSOR;
2201 switch (yych) {
2202 case 0x8C ... 0x8D: goto yy65;
2203 default:
2204 if (YYLIMIT <= YYCURSOR) {
2205 if (YYFILL) goto yyFillLabel121;
2206 }
2207 goto yy52;
2208 }
2209yy153:
2210 ++YYCURSOR;
2211yyFillLabel122:
2212 yych = *YYCURSOR;
2213 switch (yych) {
2214 case 0xB0 ... 0xBF: goto yy65;
2215 default:
2216 if (YYLIMIT <= YYCURSOR) {
2217 if (YYFILL) goto yyFillLabel122;
2218 }
2219 goto yy52;
2220 }
2221yy154:
2222 ++YYCURSOR;
2223yyFillLabel123:
2224 yych = *YYCURSOR;
2225 switch (yych) {
2226 case 0x80 ... 0x8F: goto yy65;
2227 default:
2228 if (YYLIMIT <= YYCURSOR) {
2229 if (YYFILL) goto yyFillLabel123;
2230 }
2231 goto yy52;
2232 }
2233yy155:
2234 ++YYCURSOR;
2235yyFillLabel124:
2236 yych = *YYCURSOR;
2237 switch (yych) {
2238 case 0x80 ... 0xAF: goto yy65;
2239 default:
2240 if (YYLIMIT <= YYCURSOR) {
2241 if (YYFILL) goto yyFillLabel124;
2242 }
2243 goto yy52;
2244 }
2245yy156:
2246 ++YYCURSOR;
2247yyFillLabel125:
2248 yych = *YYCURSOR;
2249 switch (yych) {
2250 case 0x81 ... 0xBF: goto yy65;
2251 default:
2252 if (YYLIMIT <= YYCURSOR) {
2253 if (YYFILL) goto yyFillLabel125;
2254 }
2255 goto yy52;
2256 }
2257yy157:
2258 ++YYCURSOR;
2259yyFillLabel126:
2260 yych = *YYCURSOR;
2261 switch (yych) {
2262 case 0x80 ... 0x8F:
2263 case 0xB0 ... 0xBF: goto yy65;
2264 default:
2265 if (YYLIMIT <= YYCURSOR) {
2266 if (YYFILL) goto yyFillLabel126;
2267 }
2268 goto yy52;
2269 }
2270yy158:
2271 ++YYCURSOR;
2272yyFillLabel127:
2273 yych = *YYCURSOR;
2274 switch (yych) {
2275 case 0x80 ... 0xBD: goto yy65;
2276 default:
2277 if (YYLIMIT <= YYCURSOR) {
2278 if (YYFILL) goto yyFillLabel127;
2279 }
2280 goto yy52;
2281 }
2282yy159:
2283 ++YYCURSOR;
2284yyFillLabel128:
2285 yych = *YYCURSOR;
2286 switch (yych) {
2287 case 0x80 ... 0xBF: goto yy79;
2288 default:
2289 if (YYLIMIT <= YYCURSOR) {
2290 if (YYFILL) goto yyFillLabel128;
2291 }
2292 goto yy52;
2293 }
2294yy160:
2295 ++YYCURSOR;
2296yyFillLabel129:
2297 yych = *YYCURSOR;
2298 switch (yych) {
2299 case 0xA0 ... 0xBF: goto yy159;
2300 default:
2301 if (YYLIMIT <= YYCURSOR) {
2302 if (YYFILL) goto yyFillLabel129;
2303 }
2304 goto yy52;
2305 }
2306yy161:
2307 ++YYCURSOR;
2308yyFillLabel130:
2309 yych = *YYCURSOR;
2310 switch (yych) {
2311 case 0x80 ... 0xBF: goto yy159;
2312 default:
2313 if (YYLIMIT <= YYCURSOR) {
2314 if (YYFILL) goto yyFillLabel130;
2315 }
2316 goto yy52;
2317 }
2318yy162:
2319 ++YYCURSOR;
2320yyFillLabel131:
2321 yych = *YYCURSOR;
2322 switch (yych) {
2323 case 0x90 ... 0xBF: goto yy161;
2324 default:
2325 if (YYLIMIT <= YYCURSOR) {
2326 if (YYFILL) goto yyFillLabel131;
2327 }
2328 goto yy52;
2329 }
2330yy163:
2331 ++YYCURSOR;
2332yyFillLabel132:
2333 yych = *YYCURSOR;
2334 switch (yych) {
2335 case 0x80 ... 0xBF: goto yy161;
2336 default:
2337 if (YYLIMIT <= YYCURSOR) {
2338 if (YYFILL) goto yyFillLabel132;
2339 }
2340 goto yy52;
2341 }
2342yy164:
2343 ++YYCURSOR;
2344yyFillLabel133:
2345 yych = *YYCURSOR;
2346 switch (yych) {
2347 case 0x80 ... 0x8F: goto yy161;
2348 default:
2349 if (YYLIMIT <= YYCURSOR) {
2350 if (YYFILL) goto yyFillLabel133;
2351 }
2352 goto yy52;
2353 }
2354yy165:
2355 yyaccept = 13;
2356 YYMARKER = ++YYCURSOR;
2357yyFillLabel134:
2358 yych = *YYCURSOR;
2359 switch (yych) {
2360 case ' ' ... '=':
2361 case '?' ... '[':
2362 case ']' ... 0x7F: goto yy80;
2363 case '>': goto yy82;
2364 case '\\': goto yy84;
2365 case 0xC2 ... 0xDF: goto yy85;
2366 case 0xE0: goto yy86;
2367 case 0xE1 ... 0xEF: goto yy87;
2368 case 0xF0: goto yy88;
2369 case 0xF1 ... 0xF3: goto yy89;
2370 case 0xF4: goto yy90;
2371 default:
2372 if (YYLIMIT <= YYCURSOR) {
2373 if (YYFILL) goto yyFillLabel134;
2374 }
2375 goto yy83;
2376 }
2377yy166:
2378 ++YYCURSOR;
2379yyFillLabel135:
2380 yych = *YYCURSOR;
2381 switch (yych) {
2382 case 'S':
2383 case 's': goto yy199;
2384 default:
2385 if (YYLIMIT <= YYCURSOR) {
2386 if (YYFILL) goto yyFillLabel135;
2387 }
2388 goto yy52;
2389 }
2390yy167:
2391 ++YYCURSOR;
2392yyFillLabel136:
2393 yych = *YYCURSOR;
2394 switch (yych) {
2395 case 'E':
2396 case 'e': goto yy200;
2397 default:
2398 if (YYLIMIT <= YYCURSOR) {
2399 if (YYFILL) goto yyFillLabel136;
2400 }
2401 goto yy52;
2402 }
2403yy168:
2404 ++YYCURSOR;
2405yyFillLabel137:
2406 yych = *YYCURSOR;
2407 switch (yych) {
2408 case '0' ... '9':
2409 case 'A' ... 'Z':
2410 case 'a' ... 'z': goto yy201;
2411 default:
2412 if (YYLIMIT <= YYCURSOR) {
2413 if (YYFILL) goto yyFillLabel137;
2414 }
2415 goto yy52;
2416 }
2417yy169:
2418 yyaccept = 11;
2419 YYMARKER = ++YYCURSOR;
2420yyFillLabel138:
2421 yych = *YYCURSOR;
2422 switch (yych) {
2423 case 0x00:
2424 if (YYLIMIT <= YYCURSOR) {
2425 if (YYFILL) goto yyFillLabel138;
2426 }
2427 goto yy95;
2428 case 'S': goto yy199;
2429 case 's': goto yy202;
2430 default: goto yy94;
2431 }
2432yy170:
2433 yyaccept = 11;
2434 YYMARKER = ++YYCURSOR;
2435yyFillLabel139:
2436 yych = *YYCURSOR;
2437 switch (yych) {
2438 case 0x00:
2439 if (YYLIMIT <= YYCURSOR) {
2440 if (YYFILL) goto yyFillLabel139;
2441 }
2442 goto yy95;
2443 case 'E': goto yy200;
2444 case 'e': goto yy203;
2445 default: goto yy94;
2446 }
2447yy171:
2448 ++YYCURSOR;
2449yyFillLabel140:
2450 yych = *YYCURSOR;
2451 switch (yych) {
2452 case 0x8C ... 0x8D:
2453 case 0xBF: goto yy98;
2454 default:
2455 if (YYLIMIT <= YYCURSOR) {
2456 if (YYFILL) goto yyFillLabel140;
2457 }
2458 goto yy52;
2459 }
2460yy172:
2461 ++YYCURSOR;
2462yyFillLabel141:
2463 yych = *YYCURSOR;
2464 switch (yych) {
2465 case 0x80:
2466 case 0xB0 ... 0xBF: goto yy98;
2467 default:
2468 if (YYLIMIT <= YYCURSOR) {
2469 if (YYFILL) goto yyFillLabel141;
2470 }
2471 goto yy52;
2472 }
2473yy173:
2474 yyaccept = 14;
2475 YYMARKER = ++YYCURSOR;
2476yyFillLabel142:
2477 yych = *YYCURSOR;
2478 switch (yych) {
2479 case 0x00:
2480 case 0x01 ... '\t':
2481 case '\v' ... '\f':
2482 case 0x0E ... '\\':
2483 case '^' ... 0x7F:
2484 if (YYLIMIT <= YYCURSOR) {
2485 if (YYFILL) goto yyFillLabel142;
2486 goto yy115;
2487 }
2488 goto yy113;
2489 case '\n':
2490 case '\r': goto yy28;
2491 case ']': goto yy173;
2492 case 0xC2 ... 0xDF: goto yy174;
2493 case 0xE0: goto yy175;
2494 case 0xE1 ... 0xEF: goto yy176;
2495 case 0xF0: goto yy177;
2496 case 0xF1 ... 0xF3: goto yy178;
2497 case 0xF4: goto yy179;
2498 default: goto yy115;
2499 }
2500yy174:
2501 ++YYCURSOR;
2502yyFillLabel143:
2503 yych = *YYCURSOR;
2504 switch (yych) {
2505 case 0x80 ... 0xBF: goto yy113;
2506 default:
2507 if (YYLIMIT <= YYCURSOR) {
2508 if (YYFILL) goto yyFillLabel143;
2509 }
2510 goto yy52;
2511 }
2512yy175:
2513 ++YYCURSOR;
2514yyFillLabel144:
2515 yych = *YYCURSOR;
2516 switch (yych) {
2517 case 0xA0 ... 0xBF: goto yy174;
2518 default:
2519 if (YYLIMIT <= YYCURSOR) {
2520 if (YYFILL) goto yyFillLabel144;
2521 }
2522 goto yy52;
2523 }
2524yy176:
2525 ++YYCURSOR;
2526yyFillLabel145:
2527 yych = *YYCURSOR;
2528 switch (yych) {
2529 case 0x80 ... 0xBF: goto yy174;
2530 default:
2531 if (YYLIMIT <= YYCURSOR) {
2532 if (YYFILL) goto yyFillLabel145;
2533 }
2534 goto yy52;
2535 }
2536yy177:
2537 ++YYCURSOR;
2538yyFillLabel146:
2539 yych = *YYCURSOR;
2540 switch (yych) {
2541 case 0x90 ... 0xBF: goto yy176;
2542 default:
2543 if (YYLIMIT <= YYCURSOR) {
2544 if (YYFILL) goto yyFillLabel146;
2545 }
2546 goto yy52;
2547 }
2548yy178:
2549 ++YYCURSOR;
2550yyFillLabel147:
2551 yych = *YYCURSOR;
2552 switch (yych) {
2553 case 0x80 ... 0xBF: goto yy176;
2554 default:
2555 if (YYLIMIT <= YYCURSOR) {
2556 if (YYFILL) goto yyFillLabel147;
2557 }
2558 goto yy52;
2559 }
2560yy179:
2561 ++YYCURSOR;
2562yyFillLabel148:
2563 yych = *YYCURSOR;
2564 switch (yych) {
2565 case 0x80 ... 0x8F: goto yy176;
2566 default:
2567 if (YYLIMIT <= YYCURSOR) {
2568 if (YYFILL) goto yyFillLabel148;
2569 }
2570 goto yy52;
2571 }
2572yy180:
2573 yyaccept = 15;
2574 YYMARKER = ++YYCURSOR;
2575yyFillLabel149:
2576 yych = *YYCURSOR;
2577yy181:
2578 switch (yych) {
2579 case '-':
2580 case '0' ... '9':
2581 case 'A' ... 'Z':
2582 case '_':
2583 case 'a' ... 'z': goto yy180;
2584 case 0xC2: goto yy204;
2585 case 0xC3: goto yy183;
2586 case 0xC4 ... 0xCC:
2587 case 0xCE ... 0xDF: goto yy184;
2588 case 0xCD: goto yy205;
2589 case 0xE0: goto yy186;
2590 case 0xE1:
2591 case 0xE4 ... 0xEC: goto yy187;
2592 case 0xE2: goto yy206;
2593 case 0xE3: goto yy189;
2594 case 0xED: goto yy190;
2595 case 0xEF: goto yy191;
2596 case 0xF0: goto yy192;
2597 case 0xF1 ... 0xF2: goto yy193;
2598 case 0xF3: goto yy194;
2599 default:
2600 if (YYLIMIT <= YYCURSOR) {
2601 if (YYFILL) goto yyFillLabel149;
2602 }
2603 goto yy182;
2604 }
2605yy182:
2606#line 138 "lexer_ttl.re"
2607 {
2608 *token_p = uint8_ndup (it->tok + 2, YYCURSOR - it->tok - 2);
2609 LOG_TRACE("BNode name: %s", *token_p);
2610
2611 return T_BNODE_ID;
2612 }
2613#line 2614 "parser_ttl.c"
2614yy183:
2615 ++YYCURSOR;
2616yyFillLabel150:
2617 yych = *YYCURSOR;
2618 switch (yych) {
2619 case 0x80 ... 0x96:
2620 case 0x98 ... 0xB6:
2621 case 0xB8 ... 0xBF: goto yy180;
2622 default:
2623 if (YYLIMIT <= YYCURSOR) {
2624 if (YYFILL) goto yyFillLabel150;
2625 }
2626 goto yy52;
2627 }
2628yy184:
2629 ++YYCURSOR;
2630yyFillLabel151:
2631 yych = *YYCURSOR;
2632 switch (yych) {
2633 case 0x80 ... 0xBF: goto yy180;
2634 default:
2635 if (YYLIMIT <= YYCURSOR) {
2636 if (YYFILL) goto yyFillLabel151;
2637 }
2638 goto yy52;
2639 }
2640yy185:
2641 ++YYCURSOR;
2642yyFillLabel152:
2643 yych = *YYCURSOR;
2644 switch (yych) {
2645 case 0xB0 ... 0xBD:
2646 case 0xBF: goto yy180;
2647 default:
2648 if (YYLIMIT <= YYCURSOR) {
2649 if (YYFILL) goto yyFillLabel152;
2650 }
2651 goto yy52;
2652 }
2653yy186:
2654 ++YYCURSOR;
2655yyFillLabel153:
2656 yych = *YYCURSOR;
2657 switch (yych) {
2658 case 0xA0 ... 0xBF: goto yy184;
2659 default:
2660 if (YYLIMIT <= YYCURSOR) {
2661 if (YYFILL) goto yyFillLabel153;
2662 }
2663 goto yy52;
2664 }
2665yy187:
2666 ++YYCURSOR;
2667yyFillLabel154:
2668 yych = *YYCURSOR;
2669 switch (yych) {
2670 case 0x80 ... 0xBF: goto yy184;
2671 default:
2672 if (YYLIMIT <= YYCURSOR) {
2673 if (YYFILL) goto yyFillLabel154;
2674 }
2675 goto yy52;
2676 }
2677yy188:
2678 ++YYCURSOR;
2679yyFillLabel155:
2680 yych = *YYCURSOR;
2681 switch (yych) {
2682 case 0x80: goto yy207;
2683 case 0x81: goto yy208;
2684 case 0x82 ... 0x85:
2685 case 0xB0 ... 0xBE: goto yy184;
2686 case 0x86: goto yy209;
2687 case 0xBF: goto yy210;
2688 default:
2689 if (YYLIMIT <= YYCURSOR) {
2690 if (YYFILL) goto yyFillLabel155;
2691 }
2692 goto yy52;
2693 }
2694yy189:
2695 ++YYCURSOR;
2696yyFillLabel156:
2697 yych = *YYCURSOR;
2698 switch (yych) {
2699 case 0x80: goto yy211;
2700 case 0x81 ... 0xBF: goto yy184;
2701 default:
2702 if (YYLIMIT <= YYCURSOR) {
2703 if (YYFILL) goto yyFillLabel156;
2704 }
2705 goto yy52;
2706 }
2707yy190:
2708 ++YYCURSOR;
2709yyFillLabel157:
2710 yych = *YYCURSOR;
2711 switch (yych) {
2712 case 0x80 ... 0x9F: goto yy184;
2713 default:
2714 if (YYLIMIT <= YYCURSOR) {
2715 if (YYFILL) goto yyFillLabel157;
2716 }
2717 goto yy52;
2718 }
2719yy191:
2720 ++YYCURSOR;
2721yyFillLabel158:
2722 yych = *YYCURSOR;
2723 switch (yych) {
2724 case 0xA4 ... 0xB6:
2725 case 0xB8 ... 0xBE: goto yy184;
2726 case 0xB7: goto yy212;
2727 case 0xBF: goto yy213;
2728 default:
2729 if (YYLIMIT <= YYCURSOR) {
2730 if (YYFILL) goto yyFillLabel158;
2731 }
2732 goto yy52;
2733 }
2734yy192:
2735 ++YYCURSOR;
2736yyFillLabel159:
2737 yych = *YYCURSOR;
2738 switch (yych) {
2739 case 0x90 ... 0xBF: goto yy187;
2740 default:
2741 if (YYLIMIT <= YYCURSOR) {
2742 if (YYFILL) goto yyFillLabel159;
2743 }
2744 goto yy52;
2745 }
2746yy193:
2747 ++YYCURSOR;
2748yyFillLabel160:
2749 yych = *YYCURSOR;
2750 switch (yych) {
2751 case 0x80 ... 0xBF: goto yy187;
2752 default:
2753 if (YYLIMIT <= YYCURSOR) {
2754 if (YYFILL) goto yyFillLabel160;
2755 }
2756 goto yy52;
2757 }
2758yy194:
2759 ++YYCURSOR;
2760yyFillLabel161:
2761 yych = *YYCURSOR;
2762 switch (yych) {
2763 case 0x80 ... 0xAF: goto yy187;
2764 default:
2765 if (YYLIMIT <= YYCURSOR) {
2766 if (YYFILL) goto yyFillLabel161;
2767 }
2768 goto yy52;
2769 }
2770yy195:
2771 ++YYCURSOR;
2772yyFillLabel162:
2773 yych = *YYCURSOR;
2774 switch (yych) {
2775 case 0x00:
2776 if (YYLIMIT <= YYCURSOR) {
2777 if (YYFILL) goto yyFillLabel162;
2778 }
2779 goto yy52;
2780 case 's': goto yy196;
2781 default: goto yy99;
2782 }
2783yy196:
2784 ++YYCURSOR;
2785yyFillLabel163:
2786 yych = *YYCURSOR;
2787 switch (yych) {
2788 case 0x00:
2789 if (YYLIMIT <= YYCURSOR) {
2790 if (YYFILL) goto yyFillLabel163;
2791 }
2792 goto yy52;
2793 case 'e': goto yy214;
2794 default: goto yy99;
2795 }
2796yy197:
2797 ++YYCURSOR;
2798yyFillLabel164:
2799 yych = *YYCURSOR;
2800 switch (yych) {
2801 case 0x8C ... 0x8D:
2802 case 0xBF: goto yy65;
2803 default:
2804 if (YYLIMIT <= YYCURSOR) {
2805 if (YYFILL) goto yyFillLabel164;
2806 }
2807 goto yy52;
2808 }
2809yy198:
2810 ++YYCURSOR;
2811yyFillLabel165:
2812 yych = *YYCURSOR;
2813 switch (yych) {
2814 case 0x80:
2815 case 0xB0 ... 0xBF: goto yy65;
2816 default:
2817 if (YYLIMIT <= YYCURSOR) {
2818 if (YYFILL) goto yyFillLabel165;
2819 }
2820 goto yy52;
2821 }
2822yy199:
2823 ++YYCURSOR;
2824yyFillLabel166:
2825 yych = *YYCURSOR;
2826 switch (yych) {
2827 case 'E':
2828 case 'e': goto yy216;
2829 default:
2830 if (YYLIMIT <= YYCURSOR) {
2831 if (YYFILL) goto yyFillLabel166;
2832 }
2833 goto yy52;
2834 }
2835yy200:
2836 ++YYCURSOR;
2837yyFillLabel167:
2838 yych = *YYCURSOR;
2839 switch (yych) {
2840 case 'F':
2841 case 'f': goto yy218;
2842 default:
2843 if (YYLIMIT <= YYCURSOR) {
2844 if (YYFILL) goto yyFillLabel167;
2845 }
2846 goto yy52;
2847 }
2848yy201:
2849 yyaccept = 11;
2850 YYMARKER = ++YYCURSOR;
2851yyFillLabel168:
2852 yych = *YYCURSOR;
2853 switch (yych) {
2854 case '-': goto yy168;
2855 case '0' ... '9':
2856 case 'A' ... 'Z':
2857 case 'a' ... 'z': goto yy201;
2858 default:
2859 if (YYLIMIT <= YYCURSOR) {
2860 if (YYFILL) goto yyFillLabel168;
2861 }
2862 goto yy95;
2863 }
2864yy202:
2865 yyaccept = 11;
2866 YYMARKER = ++YYCURSOR;
2867yyFillLabel169:
2868 yych = *YYCURSOR;
2869 switch (yych) {
2870 case 0x00:
2871 if (YYLIMIT <= YYCURSOR) {
2872 if (YYFILL) goto yyFillLabel169;
2873 }
2874 goto yy95;
2875 case 'E': goto yy216;
2876 case 'e': goto yy219;
2877 default: goto yy94;
2878 }
2879yy203:
2880 yyaccept = 11;
2881 YYMARKER = ++YYCURSOR;
2882yyFillLabel170:
2883 yych = *YYCURSOR;
2884 switch (yych) {
2885 case 0x00:
2886 if (YYLIMIT <= YYCURSOR) {
2887 if (YYFILL) goto yyFillLabel170;
2888 }
2889 goto yy95;
2890 case 'F': goto yy218;
2891 case 'f': goto yy220;
2892 default: goto yy94;
2893 }
2894yy204:
2895 ++YYCURSOR;
2896yyFillLabel171:
2897 yych = *YYCURSOR;
2898 switch (yych) {
2899 case 0xB7: goto yy180;
2900 default:
2901 if (YYLIMIT <= YYCURSOR) {
2902 if (YYFILL) goto yyFillLabel171;
2903 }
2904 goto yy52;
2905 }
2906yy205:
2907 ++YYCURSOR;
2908yyFillLabel172:
2909 yych = *YYCURSOR;
2910 switch (yych) {
2911 case 0x80 ... 0xBD:
2912 case 0xBF: goto yy180;
2913 default:
2914 if (YYLIMIT <= YYCURSOR) {
2915 if (YYFILL) goto yyFillLabel172;
2916 }
2917 goto yy52;
2918 }
2919yy206:
2920 ++YYCURSOR;
2921yyFillLabel173:
2922 yych = *YYCURSOR;
2923 switch (yych) {
2924 case 0x80: goto yy221;
2925 case 0x81: goto yy222;
2926 case 0x82 ... 0x85:
2927 case 0xB0 ... 0xBE: goto yy184;
2928 case 0x86: goto yy209;
2929 case 0xBF: goto yy210;
2930 default:
2931 if (YYLIMIT <= YYCURSOR) {
2932 if (YYFILL) goto yyFillLabel173;
2933 }
2934 goto yy52;
2935 }
2936yy207:
2937 ++YYCURSOR;
2938yyFillLabel174:
2939 yych = *YYCURSOR;
2940 switch (yych) {
2941 case 0x8C ... 0x8D: goto yy180;
2942 default:
2943 if (YYLIMIT <= YYCURSOR) {
2944 if (YYFILL) goto yyFillLabel174;
2945 }
2946 goto yy52;
2947 }
2948yy208:
2949 ++YYCURSOR;
2950yyFillLabel175:
2951 yych = *YYCURSOR;
2952 switch (yych) {
2953 case 0xB0 ... 0xBF: goto yy180;
2954 default:
2955 if (YYLIMIT <= YYCURSOR) {
2956 if (YYFILL) goto yyFillLabel175;
2957 }
2958 goto yy52;
2959 }
2960yy209:
2961 ++YYCURSOR;
2962yyFillLabel176:
2963 yych = *YYCURSOR;
2964 switch (yych) {
2965 case 0x80 ... 0x8F: goto yy180;
2966 default:
2967 if (YYLIMIT <= YYCURSOR) {
2968 if (YYFILL) goto yyFillLabel176;
2969 }
2970 goto yy52;
2971 }
2972yy210:
2973 ++YYCURSOR;
2974yyFillLabel177:
2975 yych = *YYCURSOR;
2976 switch (yych) {
2977 case 0x80 ... 0xAF: goto yy180;
2978 default:
2979 if (YYLIMIT <= YYCURSOR) {
2980 if (YYFILL) goto yyFillLabel177;
2981 }
2982 goto yy52;
2983 }
2984yy211:
2985 ++YYCURSOR;
2986yyFillLabel178:
2987 yych = *YYCURSOR;
2988 switch (yych) {
2989 case 0x81 ... 0xBF: goto yy180;
2990 default:
2991 if (YYLIMIT <= YYCURSOR) {
2992 if (YYFILL) goto yyFillLabel178;
2993 }
2994 goto yy52;
2995 }
2996yy212:
2997 ++YYCURSOR;
2998yyFillLabel179:
2999 yych = *YYCURSOR;
3000 switch (yych) {
3001 case 0x80 ... 0x8F:
3002 case 0xB0 ... 0xBF: goto yy180;
3003 default:
3004 if (YYLIMIT <= YYCURSOR) {
3005 if (YYFILL) goto yyFillLabel179;
3006 }
3007 goto yy52;
3008 }
3009yy213:
3010 ++YYCURSOR;
3011yyFillLabel180:
3012 yych = *YYCURSOR;
3013 switch (yych) {
3014 case 0x80 ... 0xBD: goto yy180;
3015 default:
3016 if (YYLIMIT <= YYCURSOR) {
3017 if (YYFILL) goto yyFillLabel180;
3018 }
3019 goto yy52;
3020 }
3021yy214:
3022 yyaccept = 16;
3023 YYMARKER = ++YYCURSOR;
3024yyFillLabel181:
3025 yych = *YYCURSOR;
3026 switch (yych) {
3027 case '-':
3028 case '0' ... ':':
3029 case 'A' ... 'Z':
3030 case '_':
3031 case 'a' ... 'z':
3032 case 0xC2 ... 0xED:
3033 case 0xEF ... 0xF3: goto yy99;
3034 default:
3035 if (YYLIMIT <= YYCURSOR) {
3036 if (YYFILL) goto yyFillLabel181;
3037 }
3038 goto yy215;
3039 }
3040yy215:
3041#line 104 "lexer_ttl.re"
3042 {
3043 *token_p = uint8_ndup (it->tok, YYCURSOR - it->tok);
3044 LOG_TRACE("Boolean: %s", *token_p);
3045
3046 return T_BOOLEAN;
3047 }
3048#line 3049 "parser_ttl.c"
3049yy216:
3050 ++YYCURSOR;
3051yy217:
3052#line 125 "lexer_ttl.re"
3053 {
3054 LOG_TRACE("'@base' keyword.");
3055
3056 return T_BASE;
3057 }
3058#line 3059 "parser_ttl.c"
3059yy218:
3060 ++YYCURSOR;
3061yyFillLabel182:
3062 yych = *YYCURSOR;
3063 switch (yych) {
3064 case 'I':
3065 case 'i': goto yy223;
3066 default:
3067 if (YYLIMIT <= YYCURSOR) {
3068 if (YYFILL) goto yyFillLabel182;
3069 }
3070 goto yy52;
3071 }
3072yy219:
3073 yyaccept = 17;
3074 YYMARKER = ++YYCURSOR;
3075yyFillLabel183:
3076 yych = *YYCURSOR;
3077 switch (yych) {
3078 case '-': goto yy168;
3079 case 'a' ... 'z': goto yy93;
3080 default:
3081 if (YYLIMIT <= YYCURSOR) {
3082 if (YYFILL) goto yyFillLabel183;
3083 }
3084 goto yy217;
3085 }
3086yy220:
3087 yyaccept = 11;
3088 YYMARKER = ++YYCURSOR;
3089yyFillLabel184:
3090 yych = *YYCURSOR;
3091 switch (yych) {
3092 case 0x00:
3093 if (YYLIMIT <= YYCURSOR) {
3094 if (YYFILL) goto yyFillLabel184;
3095 }
3096 goto yy95;
3097 case 'I': goto yy223;
3098 case 'i': goto yy224;
3099 default: goto yy94;
3100 }
3101yy221:
3102 ++YYCURSOR;
3103yyFillLabel185:
3104 yych = *YYCURSOR;
3105 switch (yych) {
3106 case 0x8C ... 0x8D:
3107 case 0xBF: goto yy180;
3108 default:
3109 if (YYLIMIT <= YYCURSOR) {
3110 if (YYFILL) goto yyFillLabel185;
3111 }
3112 goto yy52;
3113 }
3114yy222:
3115 ++YYCURSOR;
3116yyFillLabel186:
3117 yych = *YYCURSOR;
3118 switch (yych) {
3119 case 0x80:
3120 case 0xB0 ... 0xBF: goto yy180;
3121 default:
3122 if (YYLIMIT <= YYCURSOR) {
3123 if (YYFILL) goto yyFillLabel186;
3124 }
3125 goto yy52;
3126 }
3127yy223:
3128 ++YYCURSOR;
3129yyFillLabel187:
3130 yych = *YYCURSOR;
3131 switch (yych) {
3132 case 'X':
3133 case 'x': goto yy225;
3134 default:
3135 if (YYLIMIT <= YYCURSOR) {
3136 if (YYFILL) goto yyFillLabel187;
3137 }
3138 goto yy52;
3139 }
3140yy224:
3141 yyaccept = 11;
3142 YYMARKER = ++YYCURSOR;
3143yyFillLabel188:
3144 yych = *YYCURSOR;
3145 switch (yych) {
3146 case 0x00:
3147 if (YYLIMIT <= YYCURSOR) {
3148 if (YYFILL) goto yyFillLabel188;
3149 }
3150 goto yy95;
3151 case 'X': goto yy225;
3152 case 'x': goto yy226;
3153 default: goto yy94;
3154 }
3155yy225:
3156 ++YYCURSOR;
3157yyFillLabel189:
3158 yych = *YYCURSOR;
3159 switch (yych) {
3160 case '\t' ... '\n':
3161 case '\r':
3162 case ' ': goto yy227;
3163 case '#': goto yy228;
3164 default:
3165 if (YYLIMIT <= YYCURSOR) {
3166 if (YYFILL) goto yyFillLabel189;
3167 }
3168 goto yy52;
3169 }
3170yy226:
3171 yyaccept = 11;
3172 YYMARKER = ++YYCURSOR;
3173yyFillLabel190:
3174 yych = *YYCURSOR;
3175 switch (yych) {
3176 case 0x00:
3177 if (YYLIMIT <= YYCURSOR) {
3178 if (YYFILL) goto yyFillLabel190;
3179 }
3180 goto yy95;
3181 case '\t' ... '\n':
3182 case '\r':
3183 case ' ': goto yy227;
3184 case '#': goto yy228;
3185 default: goto yy94;
3186 }
3187yy227:
3188 ++YYCURSOR;
3189yyFillLabel191:
3190 yych = *YYCURSOR;
3191 switch (yych) {
3192 case '\t' ... '\n':
3193 case '\r':
3194 case ' ': goto yy227;
3195 case '#': goto yy228;
3196 case ':':
3197 it->yyt2 = YYCURSOR;
3198 goto yy229;
3199 case 'A' ... 'Z':
3200 case 'a' ... 'z':
3201 it->yyt2 = YYCURSOR;
3202 goto yy231;
3203 case 0xC3:
3204 it->yyt2 = YYCURSOR;
3205 goto yy232;
3206 case 0xC4 ... 0xCB:
3207 case 0xCE ... 0xDF:
3208 it->yyt2 = YYCURSOR;
3209 goto yy233;
3210 case 0xCD:
3211 it->yyt2 = YYCURSOR;
3212 goto yy234;
3213 case 0xE0:
3214 it->yyt2 = YYCURSOR;
3215 goto yy235;
3216 case 0xE1:
3217 case 0xE4 ... 0xEC:
3218 it->yyt2 = YYCURSOR;
3219 goto yy236;
3220 case 0xE2:
3221 it->yyt2 = YYCURSOR;
3222 goto yy237;
3223 case 0xE3:
3224 it->yyt2 = YYCURSOR;
3225 goto yy238;
3226 case 0xED:
3227 it->yyt2 = YYCURSOR;
3228 goto yy239;
3229 case 0xEF:
3230 it->yyt2 = YYCURSOR;
3231 goto yy240;
3232 case 0xF0:
3233 it->yyt2 = YYCURSOR;
3234 goto yy241;
3235 case 0xF1 ... 0xF2:
3236 it->yyt2 = YYCURSOR;
3237 goto yy242;
3238 case 0xF3:
3239 it->yyt2 = YYCURSOR;
3240 goto yy243;
3241 default:
3242 if (YYLIMIT <= YYCURSOR) {
3243 if (YYFILL) goto yyFillLabel191;
3244 }
3245 goto yy52;
3246 }
3247yy228:
3248 ++YYCURSOR;
3249yyFillLabel192:
3250 yych = *YYCURSOR;
3251 switch (yych) {
3252 case 0x00:
3253 case 0x01 ... '\t':
3254 case '\v' ... '\f':
3255 case 0x0E ... '9':
3256 case ';' ... 0x7F:
3257 if (YYLIMIT <= YYCURSOR) {
3258 if (YYFILL) goto yyFillLabel192;
3259 goto yy52;
3260 }
3261 goto yy228;
3262 case '\n':
3263 case '\r': goto yy227;
3264 case ':':
3265 it->yyt1 = YYCURSOR;
3266 goto yy244;
3267 case 0xC2 ... 0xDF: goto yy245;
3268 case 0xE0: goto yy246;
3269 case 0xE1 ... 0xEF: goto yy247;
3270 case 0xF0: goto yy248;
3271 case 0xF1 ... 0xF3: goto yy249;
3272 case 0xF4: goto yy250;
3273 default: goto yy52;
3274 }
3275yy229:
3276 ++YYCURSOR;
3277 it->yyt1 = it->yyt2;
3278yy230:
3279 pfx = it->yyt1;
3280#line 118 "lexer_ttl.re"
3281 {
3282 *token_p = uint8_ndup (pfx, YYCURSOR - pfx - 1);
3283 LOG_TRACE("Prefix declaration: '%s'", *token_p);
3284
3285 return T_PREFIX;
3286 }
3287#line 3288 "parser_ttl.c"
3288yy231:
3289 ++YYCURSOR;
3290yyFillLabel193:
3291 yych = *YYCURSOR;
3292 switch (yych) {
3293 case '-':
3294 case '0' ... '9':
3295 case 'A' ... 'Z':
3296 case '_':
3297 case 'a' ... 'z': goto yy231;
3298 case ':': goto yy229;
3299 case 0xC2: goto yy251;
3300 case 0xC3: goto yy232;
3301 case 0xC4 ... 0xCC:
3302 case 0xCE ... 0xDF: goto yy233;
3303 case 0xCD: goto yy252;
3304 case 0xE0: goto yy235;
3305 case 0xE1:
3306 case 0xE4 ... 0xEC: goto yy236;
3307 case 0xE2: goto yy253;
3308 case 0xE3: goto yy238;
3309 case 0xED: goto yy239;
3310 case 0xEF: goto yy240;
3311 case 0xF0: goto yy241;
3312 case 0xF1 ... 0xF2: goto yy242;
3313 case 0xF3: goto yy243;
3314 default:
3315 if (YYLIMIT <= YYCURSOR) {
3316 if (YYFILL) goto yyFillLabel193;
3317 }
3318 goto yy52;
3319 }
3320yy232:
3321 ++YYCURSOR;
3322yyFillLabel194:
3323 yych = *YYCURSOR;
3324 switch (yych) {
3325 case 0x80 ... 0x96:
3326 case 0x98 ... 0xB6:
3327 case 0xB8 ... 0xBF: goto yy231;
3328 default:
3329 if (YYLIMIT <= YYCURSOR) {
3330 if (YYFILL) goto yyFillLabel194;
3331 }
3332 goto yy52;
3333 }
3334yy233:
3335 ++YYCURSOR;
3336yyFillLabel195:
3337 yych = *YYCURSOR;
3338 switch (yych) {
3339 case 0x80 ... 0xBF: goto yy231;
3340 default:
3341 if (YYLIMIT <= YYCURSOR) {
3342 if (YYFILL) goto yyFillLabel195;
3343 }
3344 goto yy52;
3345 }
3346yy234:
3347 ++YYCURSOR;
3348yyFillLabel196:
3349 yych = *YYCURSOR;
3350 switch (yych) {
3351 case 0xB0 ... 0xBD:
3352 case 0xBF: goto yy231;
3353 default:
3354 if (YYLIMIT <= YYCURSOR) {
3355 if (YYFILL) goto yyFillLabel196;
3356 }
3357 goto yy52;
3358 }
3359yy235:
3360 ++YYCURSOR;
3361yyFillLabel197:
3362 yych = *YYCURSOR;
3363 switch (yych) {
3364 case 0xA0 ... 0xBF: goto yy233;
3365 default:
3366 if (YYLIMIT <= YYCURSOR) {
3367 if (YYFILL) goto yyFillLabel197;
3368 }
3369 goto yy52;
3370 }
3371yy236:
3372 ++YYCURSOR;
3373yyFillLabel198:
3374 yych = *YYCURSOR;
3375 switch (yych) {
3376 case 0x80 ... 0xBF: goto yy233;
3377 default:
3378 if (YYLIMIT <= YYCURSOR) {
3379 if (YYFILL) goto yyFillLabel198;
3380 }
3381 goto yy52;
3382 }
3383yy237:
3384 ++YYCURSOR;
3385yyFillLabel199:
3386 yych = *YYCURSOR;
3387 switch (yych) {
3388 case 0x80: goto yy254;
3389 case 0x81: goto yy255;
3390 case 0x82 ... 0x85:
3391 case 0xB0 ... 0xBE: goto yy233;
3392 case 0x86: goto yy256;
3393 case 0xBF: goto yy257;
3394 default:
3395 if (YYLIMIT <= YYCURSOR) {
3396 if (YYFILL) goto yyFillLabel199;
3397 }
3398 goto yy52;
3399 }
3400yy238:
3401 ++YYCURSOR;
3402yyFillLabel200:
3403 yych = *YYCURSOR;
3404 switch (yych) {
3405 case 0x80: goto yy258;
3406 case 0x81 ... 0xBF: goto yy233;
3407 default:
3408 if (YYLIMIT <= YYCURSOR) {
3409 if (YYFILL) goto yyFillLabel200;
3410 }
3411 goto yy52;
3412 }
3413yy239:
3414 ++YYCURSOR;
3415yyFillLabel201:
3416 yych = *YYCURSOR;
3417 switch (yych) {
3418 case 0x80 ... 0x9F: goto yy233;
3419 default:
3420 if (YYLIMIT <= YYCURSOR) {
3421 if (YYFILL) goto yyFillLabel201;
3422 }
3423 goto yy52;
3424 }
3425yy240:
3426 ++YYCURSOR;
3427yyFillLabel202:
3428 yych = *YYCURSOR;
3429 switch (yych) {
3430 case 0xA4 ... 0xB6:
3431 case 0xB8 ... 0xBE: goto yy233;
3432 case 0xB7: goto yy259;
3433 case 0xBF: goto yy260;
3434 default:
3435 if (YYLIMIT <= YYCURSOR) {
3436 if (YYFILL) goto yyFillLabel202;
3437 }
3438 goto yy52;
3439 }
3440yy241:
3441 ++YYCURSOR;
3442yyFillLabel203:
3443 yych = *YYCURSOR;
3444 switch (yych) {
3445 case 0x90 ... 0xBF: goto yy236;
3446 default:
3447 if (YYLIMIT <= YYCURSOR) {
3448 if (YYFILL) goto yyFillLabel203;
3449 }
3450 goto yy52;
3451 }
3452yy242:
3453 ++YYCURSOR;
3454yyFillLabel204:
3455 yych = *YYCURSOR;
3456 switch (yych) {
3457 case 0x80 ... 0xBF: goto yy236;
3458 default:
3459 if (YYLIMIT <= YYCURSOR) {
3460 if (YYFILL) goto yyFillLabel204;
3461 }
3462 goto yy52;
3463 }
3464yy243:
3465 ++YYCURSOR;
3466yyFillLabel205:
3467 yych = *YYCURSOR;
3468 switch (yych) {
3469 case 0x80 ... 0xAF: goto yy236;
3470 default:
3471 if (YYLIMIT <= YYCURSOR) {
3472 if (YYFILL) goto yyFillLabel205;
3473 }
3474 goto yy52;
3475 }
3476yy244:
3477 yyaccept = 18;
3478 YYMARKER = ++YYCURSOR;
3479yyFillLabel206:
3480 yych = *YYCURSOR;
3481 switch (yych) {
3482 case 0x00:
3483 case 0x01 ... '\t':
3484 case '\v' ... '\f':
3485 case 0x0E ... '9':
3486 case ';' ... 0x7F:
3487 if (YYLIMIT <= YYCURSOR) {
3488 if (YYFILL) goto yyFillLabel206;
3489 goto yy230;
3490 }
3491 goto yy228;
3492 case '\n':
3493 case '\r': goto yy227;
3494 case ':':
3495 it->yyt1 = YYCURSOR;
3496 goto yy244;
3497 case 0xC2 ... 0xDF: goto yy245;
3498 case 0xE0: goto yy246;
3499 case 0xE1 ... 0xEF: goto yy247;
3500 case 0xF0: goto yy248;
3501 case 0xF1 ... 0xF3: goto yy249;
3502 case 0xF4: goto yy250;
3503 default: goto yy230;
3504 }
3505yy245:
3506 ++YYCURSOR;
3507yyFillLabel207:
3508 yych = *YYCURSOR;
3509 switch (yych) {
3510 case 0x80 ... 0xBF: goto yy228;
3511 default:
3512 if (YYLIMIT <= YYCURSOR) {
3513 if (YYFILL) goto yyFillLabel207;
3514 }
3515 goto yy52;
3516 }
3517yy246:
3518 ++YYCURSOR;
3519yyFillLabel208:
3520 yych = *YYCURSOR;
3521 switch (yych) {
3522 case 0xA0 ... 0xBF: goto yy245;
3523 default:
3524 if (YYLIMIT <= YYCURSOR) {
3525 if (YYFILL) goto yyFillLabel208;
3526 }
3527 goto yy52;
3528 }
3529yy247:
3530 ++YYCURSOR;
3531yyFillLabel209:
3532 yych = *YYCURSOR;
3533 switch (yych) {
3534 case 0x80 ... 0xBF: goto yy245;
3535 default:
3536 if (YYLIMIT <= YYCURSOR) {
3537 if (YYFILL) goto yyFillLabel209;
3538 }
3539 goto yy52;
3540 }
3541yy248:
3542 ++YYCURSOR;
3543yyFillLabel210:
3544 yych = *YYCURSOR;
3545 switch (yych) {
3546 case 0x90 ... 0xBF: goto yy247;
3547 default:
3548 if (YYLIMIT <= YYCURSOR) {
3549 if (YYFILL) goto yyFillLabel210;
3550 }
3551 goto yy52;
3552 }
3553yy249:
3554 ++YYCURSOR;
3555yyFillLabel211:
3556 yych = *YYCURSOR;
3557 switch (yych) {
3558 case 0x80 ... 0xBF: goto yy247;
3559 default:
3560 if (YYLIMIT <= YYCURSOR) {
3561 if (YYFILL) goto yyFillLabel211;
3562 }
3563 goto yy52;
3564 }
3565yy250:
3566 ++YYCURSOR;
3567yyFillLabel212:
3568 yych = *YYCURSOR;
3569 switch (yych) {
3570 case 0x80 ... 0x8F: goto yy247;
3571 default:
3572 if (YYLIMIT <= YYCURSOR) {
3573 if (YYFILL) goto yyFillLabel212;
3574 }
3575 goto yy52;
3576 }
3577yy251:
3578 ++YYCURSOR;
3579yyFillLabel213:
3580 yych = *YYCURSOR;
3581 switch (yych) {
3582 case 0xB7: goto yy231;
3583 default:
3584 if (YYLIMIT <= YYCURSOR) {
3585 if (YYFILL) goto yyFillLabel213;
3586 }
3587 goto yy52;
3588 }
3589yy252:
3590 ++YYCURSOR;
3591yyFillLabel214:
3592 yych = *YYCURSOR;
3593 switch (yych) {
3594 case 0x80 ... 0xBD:
3595 case 0xBF: goto yy231;
3596 default:
3597 if (YYLIMIT <= YYCURSOR) {
3598 if (YYFILL) goto yyFillLabel214;
3599 }
3600 goto yy52;
3601 }
3602yy253:
3603 ++YYCURSOR;
3604yyFillLabel215:
3605 yych = *YYCURSOR;
3606 switch (yych) {
3607 case 0x80: goto yy261;
3608 case 0x81: goto yy262;
3609 case 0x82 ... 0x85:
3610 case 0xB0 ... 0xBE: goto yy233;
3611 case 0x86: goto yy256;
3612 case 0xBF: goto yy257;
3613 default:
3614 if (YYLIMIT <= YYCURSOR) {
3615 if (YYFILL) goto yyFillLabel215;
3616 }
3617 goto yy52;
3618 }
3619yy254:
3620 ++YYCURSOR;
3621yyFillLabel216:
3622 yych = *YYCURSOR;
3623 switch (yych) {
3624 case 0x8C ... 0x8D: goto yy231;
3625 default:
3626 if (YYLIMIT <= YYCURSOR) {
3627 if (YYFILL) goto yyFillLabel216;
3628 }
3629 goto yy52;
3630 }
3631yy255:
3632 ++YYCURSOR;
3633yyFillLabel217:
3634 yych = *YYCURSOR;
3635 switch (yych) {
3636 case 0xB0 ... 0xBF: goto yy231;
3637 default:
3638 if (YYLIMIT <= YYCURSOR) {
3639 if (YYFILL) goto yyFillLabel217;
3640 }
3641 goto yy52;
3642 }
3643yy256:
3644 ++YYCURSOR;
3645yyFillLabel218:
3646 yych = *YYCURSOR;
3647 switch (yych) {
3648 case 0x80 ... 0x8F: goto yy231;
3649 default:
3650 if (YYLIMIT <= YYCURSOR) {
3651 if (YYFILL) goto yyFillLabel218;
3652 }
3653 goto yy52;
3654 }
3655yy257:
3656 ++YYCURSOR;
3657yyFillLabel219:
3658 yych = *YYCURSOR;
3659 switch (yych) {
3660 case 0x80 ... 0xAF: goto yy231;
3661 default:
3662 if (YYLIMIT <= YYCURSOR) {
3663 if (YYFILL) goto yyFillLabel219;
3664 }
3665 goto yy52;
3666 }
3667yy258:
3668 ++YYCURSOR;
3669yyFillLabel220:
3670 yych = *YYCURSOR;
3671 switch (yych) {
3672 case 0x81 ... 0xBF: goto yy231;
3673 default:
3674 if (YYLIMIT <= YYCURSOR) {
3675 if (YYFILL) goto yyFillLabel220;
3676 }
3677 goto yy52;
3678 }
3679yy259:
3680 ++YYCURSOR;
3681yyFillLabel221:
3682 yych = *YYCURSOR;
3683 switch (yych) {
3684 case 0x80 ... 0x8F:
3685 case 0xB0 ... 0xBF: goto yy231;
3686 default:
3687 if (YYLIMIT <= YYCURSOR) {
3688 if (YYFILL) goto yyFillLabel221;
3689 }
3690 goto yy52;
3691 }
3692yy260:
3693 ++YYCURSOR;
3694yyFillLabel222:
3695 yych = *YYCURSOR;
3696 switch (yych) {
3697 case 0x80 ... 0xBD: goto yy231;
3698 default:
3699 if (YYLIMIT <= YYCURSOR) {
3700 if (YYFILL) goto yyFillLabel222;
3701 }
3702 goto yy52;
3703 }
3704yy261:
3705 ++YYCURSOR;
3706yyFillLabel223:
3707 yych = *YYCURSOR;
3708 switch (yych) {
3709 case 0x8C ... 0x8D:
3710 case 0xBF: goto yy231;
3711 default:
3712 if (YYLIMIT <= YYCURSOR) {
3713 if (YYFILL) goto yyFillLabel223;
3714 }
3715 goto yy52;
3716 }
3717yy262:
3718 ++YYCURSOR;
3719yyFillLabel224:
3720 yych = *YYCURSOR;
3721 switch (yych) {
3722 case 0x80:
3723 case 0xB0 ... 0xBF: goto yy231;
3724 default:
3725 if (YYLIMIT <= YYCURSOR) {
3726 if (YYFILL) goto yyFillLabel224;
3727 }
3728 goto yy52;
3729 }
3730yy263:
3731#line 90 "lexer_ttl.re"
3732 {
3733 LOG_TRACE("End of document.");
3734 return T_EOF;
3735 }
3736#line 3737 "parser_ttl.c"
3737}
3738#line 238 "lexer_ttl.re"
3739
3740
3741schar:
3742
3743#line 3744 "parser_ttl.c"
3744{
3745 YYCTYPE yych;
3746 unsigned int yyaccept = 0;
3747yyFillLabel225:
3748 yych = *YYCURSOR;
3749 switch (yych) {
3750 case ' ' ... '!':
3751 case '#' ... '[':
3752 case ']' ... 0x7F: goto yy267;
3753 case '"': goto yy269;
3754 case '\\': goto yy270;
3755 case 0xC2 ... 0xDF: goto yy271;
3756 case 0xE0: goto yy272;
3757 case 0xE1 ... 0xEF: goto yy273;
3758 case 0xF0: goto yy274;
3759 case 0xF1 ... 0xF3: goto yy275;
3760 case 0xF4: goto yy276;
3761 default:
3762 if (YYLIMIT <= YYCURSOR) {
3763 if (YYFILL) goto yyFillLabel225;
3764 goto yy288;
3765 }
3766 goto yy265;
3767 }
3768yy265:
3769 ++YYCURSOR;
3770yy266:
3771#line 243 "lexer_ttl.re"
3772 {
3773 log_warn (
3774 "Invalid token in string @ %lu: %s (\\x%x)",
3775 YYCURSOR - it->buf - 1, it->tok, *it->tok);
3776
3777 return -1;
3778 }
3779#line 3780 "parser_ttl.c"
3780yy267:
3781 ++YYCURSOR;
3782yy268:
3783#line 257 "lexer_ttl.re"
3784 { goto schar; }
3785#line 3786 "parser_ttl.c"
3786yy269:
3787 ++YYCURSOR;
3788#line 259 "lexer_ttl.re"
3789 {
3790 *token_p = unescape_unicode (it->tok + 1, YYCURSOR - it->tok - 2);
3791 LOG_TRACE("String: %s", *token_p);
3792
3793 return T_STRING;
3794 }
3795#line 3796 "parser_ttl.c"
3796yy270:
3797 yyaccept = 0;
3798 YYMARKER = ++YYCURSOR;
3799yyFillLabel226:
3800 yych = *YYCURSOR;
3801 switch (yych) {
3802 case '"': goto yy267;
3803 case 'U': goto yy277;
3804 case 'u': goto yy279;
3805 default:
3806 if (YYLIMIT <= YYCURSOR) {
3807 if (YYFILL) goto yyFillLabel226;
3808 }
3809 goto yy268;
3810 }
3811yy271:
3812 ++YYCURSOR;
3813yyFillLabel227:
3814 yych = *YYCURSOR;
3815 switch (yych) {
3816 case 0x80 ... 0xBF: goto yy267;
3817 default:
3818 if (YYLIMIT <= YYCURSOR) {
3819 if (YYFILL) goto yyFillLabel227;
3820 }
3821 goto yy266;
3822 }
3823yy272:
3824 yyaccept = 1;
3825 YYMARKER = ++YYCURSOR;
3826yyFillLabel228:
3827 yych = *YYCURSOR;
3828 switch (yych) {
3829 case 0xA0 ... 0xBF: goto yy280;
3830 default:
3831 if (YYLIMIT <= YYCURSOR) {
3832 if (YYFILL) goto yyFillLabel228;
3833 }
3834 goto yy266;
3835 }
3836yy273:
3837 yyaccept = 1;
3838 YYMARKER = ++YYCURSOR;
3839yyFillLabel229:
3840 yych = *YYCURSOR;
3841 switch (yych) {
3842 case 0x80 ... 0xBF: goto yy280;
3843 default:
3844 if (YYLIMIT <= YYCURSOR) {
3845 if (YYFILL) goto yyFillLabel229;
3846 }
3847 goto yy266;
3848 }
3849yy274:
3850 yyaccept = 1;
3851 YYMARKER = ++YYCURSOR;
3852yyFillLabel230:
3853 yych = *YYCURSOR;
3854 switch (yych) {
3855 case 0x90 ... 0xBF: goto yy281;
3856 default:
3857 if (YYLIMIT <= YYCURSOR) {
3858 if (YYFILL) goto yyFillLabel230;
3859 }
3860 goto yy266;
3861 }
3862yy275:
3863 yyaccept = 1;
3864 YYMARKER = ++YYCURSOR;
3865yyFillLabel231:
3866 yych = *YYCURSOR;
3867 switch (yych) {
3868 case 0x80 ... 0xBF: goto yy281;
3869 default:
3870 if (YYLIMIT <= YYCURSOR) {
3871 if (YYFILL) goto yyFillLabel231;
3872 }
3873 goto yy266;
3874 }
3875yy276:
3876 yyaccept = 1;
3877 YYMARKER = ++YYCURSOR;
3878yyFillLabel232:
3879 yych = *YYCURSOR;
3880 switch (yych) {
3881 case 0x80 ... 0x8F: goto yy281;
3882 default:
3883 if (YYLIMIT <= YYCURSOR) {
3884 if (YYFILL) goto yyFillLabel232;
3885 }
3886 goto yy266;
3887 }
3888yy277:
3889 ++YYCURSOR;
3890yyFillLabel233:
3891 yych = *YYCURSOR;
3892 switch (yych) {
3893 case '0' ... '9':
3894 case 'A' ... 'F': goto yy282;
3895 default:
3896 if (YYLIMIT <= YYCURSOR) {
3897 if (YYFILL) goto yyFillLabel233;
3898 }
3899 goto yy278;
3900 }
3901yy278:
3903 if (yyaccept == 0) goto yy268;
3904 else goto yy266;
3905yy279:
3906 ++YYCURSOR;
3907yyFillLabel234:
3908 yych = *YYCURSOR;
3909 switch (yych) {
3910 case '0' ... '9':
3911 case 'A' ... 'F': goto yy283;
3912 default:
3913 if (YYLIMIT <= YYCURSOR) {
3914 if (YYFILL) goto yyFillLabel234;
3915 }
3916 goto yy278;
3917 }
3918yy280:
3919 ++YYCURSOR;
3920yyFillLabel235:
3921 yych = *YYCURSOR;
3922 switch (yych) {
3923 case 0x80 ... 0xBF: goto yy267;
3924 default:
3925 if (YYLIMIT <= YYCURSOR) {
3926 if (YYFILL) goto yyFillLabel235;
3927 }
3928 goto yy278;
3929 }
3930yy281:
3931 ++YYCURSOR;
3932yyFillLabel236:
3933 yych = *YYCURSOR;
3934 switch (yych) {
3935 case 0x80 ... 0xBF: goto yy280;
3936 default:
3937 if (YYLIMIT <= YYCURSOR) {
3938 if (YYFILL) goto yyFillLabel236;
3939 }
3940 goto yy278;
3941 }
3942yy282:
3943 ++YYCURSOR;
3944yyFillLabel237:
3945 yych = *YYCURSOR;
3946 switch (yych) {
3947 case '0' ... '9':
3948 case 'A' ... 'F': goto yy284;
3949 default:
3950 if (YYLIMIT <= YYCURSOR) {
3951 if (YYFILL) goto yyFillLabel237;
3952 }
3953 goto yy278;
3954 }
3955yy283:
3956 ++YYCURSOR;
3957yyFillLabel238:
3958 yych = *YYCURSOR;
3959 switch (yych) {
3960 case '0' ... '9':
3961 case 'A' ... 'F': goto yy285;
3962 default:
3963 if (YYLIMIT <= YYCURSOR) {
3964 if (YYFILL) goto yyFillLabel238;
3965 }
3966 goto yy278;
3967 }
3968yy284:
3969 ++YYCURSOR;
3970yyFillLabel239:
3971 yych = *YYCURSOR;
3972 switch (yych) {
3973 case '0' ... '9':
3974 case 'A' ... 'F': goto yy286;
3975 default:
3976 if (YYLIMIT <= YYCURSOR) {
3977 if (YYFILL) goto yyFillLabel239;
3978 }
3979 goto yy278;
3980 }
3981yy285:
3982 ++YYCURSOR;
3983yyFillLabel240:
3984 yych = *YYCURSOR;
3985 switch (yych) {
3986 case '0' ... '9':
3987 case 'A' ... 'F': goto yy287;
3988 default:
3989 if (YYLIMIT <= YYCURSOR) {
3990 if (YYFILL) goto yyFillLabel240;
3991 }
3992 goto yy278;
3993 }
3994yy286:
3995 ++YYCURSOR;
3996yyFillLabel241:
3997 yych = *YYCURSOR;
3998 switch (yych) {
3999 case '0' ... '9':
4000 case 'A' ... 'F': goto yy279;
4001 default:
4002 if (YYLIMIT <= YYCURSOR) {
4003 if (YYFILL) goto yyFillLabel241;
4004 }
4005 goto yy278;
4006 }
4007yy287:
4008 ++YYCURSOR;
4009yyFillLabel242:
4010 yych = *YYCURSOR;
4011 switch (yych) {
4012 case '0' ... '9':
4013 case 'A' ... 'F': goto yy267;
4014 default:
4015 if (YYLIMIT <= YYCURSOR) {
4016 if (YYFILL) goto yyFillLabel242;
4017 }
4018 goto yy278;
4019 }
4020yy288:
4021#line 251 "lexer_ttl.re"
4022 {
4023 log_warn ("Unterminated string!");
4024
4025 return -1;
4026 }
4027#line 4028 "parser_ttl.c"
4028}
4029#line 266 "lexer_ttl.re"
4030
4031
4032lchar:
4033
4034#line 4035 "parser_ttl.c"
4035{
4036 YYCTYPE yych;
4037 unsigned int yyaccept = 0;
4038yyFillLabel243:
4039 yych = *YYCURSOR;
4040 switch (yych) {
4041 case '\t' ... '\n':
4042 case '\r':
4043 case ' ' ... '!':
4044 case '#' ... '[':
4045 case ']' ... 0x7F: goto yy292;
4046 case '"': goto yy294;
4047 case '\\': goto yy295;
4048 case 0xC2 ... 0xDF: goto yy296;
4049 case 0xE0: goto yy297;
4050 case 0xE1 ... 0xEF: goto yy298;
4051 case 0xF0: goto yy299;
4052 case 0xF1 ... 0xF3: goto yy300;
4053 case 0xF4: goto yy301;
4054 default:
4055 if (YYLIMIT <= YYCURSOR) {
4056 if (YYFILL) goto yyFillLabel243;
4057 goto yy315;
4058 }
4059 goto yy290;
4060 }
4061yy290:
4062 ++YYCURSOR;
4063yy291:
4064#line 286 "lexer_ttl.re"
4065 {
4066 log_warn (
4067 "Invalid token in long string @ %lu: %s (\\x%x)",
4068 YYCURSOR - it->buf - 1, it->tok, *it->tok);
4069
4070 return -1;
4071 }
4072#line 4073 "parser_ttl.c"
4073yy292:
4074 ++YYCURSOR;
4075yy293:
4076#line 277 "lexer_ttl.re"
4077 { goto lchar; }
4078#line 4079 "parser_ttl.c"
4079yy294:
4080 yyaccept = 0;
4081 YYMARKER = ++YYCURSOR;
4082yyFillLabel244:
4083 yych = *YYCURSOR;
4084 switch (yych) {
4085 case '"': goto yy302;
4086 default:
4087 if (YYLIMIT <= YYCURSOR) {
4088 if (YYFILL) goto yyFillLabel244;
4089 }
4090 goto yy293;
4091 }
4092yy295:
4093 yyaccept = 0;
4094 YYMARKER = ++YYCURSOR;
4095yyFillLabel245:
4096 yych = *YYCURSOR;
4097 switch (yych) {
4098 case '"':
4099 case 'n':
4100 case 'r':
4101 case 't': goto yy292;
4102 case 'U': goto yy304;
4103 case 'u': goto yy305;
4104 default:
4105 if (YYLIMIT <= YYCURSOR) {
4106 if (YYFILL) goto yyFillLabel245;
4107 }
4108 goto yy293;
4109 }
4110yy296:
4111 ++YYCURSOR;
4112yyFillLabel246:
4113 yych = *YYCURSOR;
4114 switch (yych) {
4115 case 0x80 ... 0xBF: goto yy292;
4116 default:
4117 if (YYLIMIT <= YYCURSOR) {
4118 if (YYFILL) goto yyFillLabel246;
4119 }
4120 goto yy291;
4121 }
4122yy297:
4123 yyaccept = 1;
4124 YYMARKER = ++YYCURSOR;
4125yyFillLabel247:
4126 yych = *YYCURSOR;
4127 switch (yych) {
4128 case 0xA0 ... 0xBF: goto yy306;
4129 default:
4130 if (YYLIMIT <= YYCURSOR) {
4131 if (YYFILL) goto yyFillLabel247;
4132 }
4133 goto yy291;
4134 }
4135yy298:
4136 yyaccept = 1;
4137 YYMARKER = ++YYCURSOR;
4138yyFillLabel248:
4139 yych = *YYCURSOR;
4140 switch (yych) {
4141 case 0x80 ... 0xBF: goto yy306;
4142 default:
4143 if (YYLIMIT <= YYCURSOR) {
4144 if (YYFILL) goto yyFillLabel248;
4145 }
4146 goto yy291;
4147 }
4148yy299:
4149 yyaccept = 1;
4150 YYMARKER = ++YYCURSOR;
4151yyFillLabel249:
4152 yych = *YYCURSOR;
4153 switch (yych) {
4154 case 0x90 ... 0xBF: goto yy307;
4155 default:
4156 if (YYLIMIT <= YYCURSOR) {
4157 if (YYFILL) goto yyFillLabel249;
4158 }
4159 goto yy291;
4160 }
4161yy300:
4162 yyaccept = 1;
4163 YYMARKER = ++YYCURSOR;
4164yyFillLabel250:
4165 yych = *YYCURSOR;
4166 switch (yych) {
4167 case 0x80 ... 0xBF: goto yy307;
4168 default:
4169 if (YYLIMIT <= YYCURSOR) {
4170 if (YYFILL) goto yyFillLabel250;
4171 }
4172 goto yy291;
4173 }
4174yy301:
4175 yyaccept = 1;
4176 YYMARKER = ++YYCURSOR;
4177yyFillLabel251:
4178 yych = *YYCURSOR;
4179 switch (yych) {
4180 case 0x80 ... 0x8F: goto yy307;
4181 default:
4182 if (YYLIMIT <= YYCURSOR) {
4183 if (YYFILL) goto yyFillLabel251;
4184 }
4185 goto yy291;
4186 }
4187yy302:
4188 ++YYCURSOR;
4189yyFillLabel252:
4190 yych = *YYCURSOR;
4191 switch (yych) {
4192 case '"': goto yy308;
4193 default:
4194 if (YYLIMIT <= YYCURSOR) {
4195 if (YYFILL) goto yyFillLabel252;
4196 }
4197 goto yy303;
4198 }
4199yy303:
4201 if (yyaccept == 0) goto yy293;
4202 else goto yy291;
4203yy304:
4204 ++YYCURSOR;
4205yyFillLabel253:
4206 yych = *YYCURSOR;
4207 switch (yych) {
4208 case '0' ... '9':
4209 case 'A' ... 'F': goto yy309;
4210 default:
4211 if (YYLIMIT <= YYCURSOR) {
4212 if (YYFILL) goto yyFillLabel253;
4213 }
4214 goto yy303;
4215 }
4216yy305:
4217 ++YYCURSOR;
4218yyFillLabel254:
4219 yych = *YYCURSOR;
4220 switch (yych) {
4221 case '0' ... '9':
4222 case 'A' ... 'F': goto yy310;
4223 default:
4224 if (YYLIMIT <= YYCURSOR) {
4225 if (YYFILL) goto yyFillLabel254;
4226 }
4227 goto yy303;
4228 }
4229yy306:
4230 ++YYCURSOR;
4231yyFillLabel255:
4232 yych = *YYCURSOR;
4233 switch (yych) {
4234 case 0x80 ... 0xBF: goto yy292;
4235 default:
4236 if (YYLIMIT <= YYCURSOR) {
4237 if (YYFILL) goto yyFillLabel255;
4238 }
4239 goto yy303;
4240 }
4241yy307:
4242 ++YYCURSOR;
4243yyFillLabel256:
4244 yych = *YYCURSOR;
4245 switch (yych) {
4246 case 0x80 ... 0xBF: goto yy306;
4247 default:
4248 if (YYLIMIT <= YYCURSOR) {
4249 if (YYFILL) goto yyFillLabel256;
4250 }
4251 goto yy303;
4252 }
4253yy308:
4254 ++YYCURSOR;
4255#line 279 "lexer_ttl.re"
4256 {
4257 *token_p = unescape_unicode (it->tok + 3, YYCURSOR - it->tok - 6);
4258 LOG_TRACE("Long string: %s", it->tok);
4259
4260 return T_STRING;
4261 }
4262#line 4263 "parser_ttl.c"
4263yy309:
4264 ++YYCURSOR;
4265yyFillLabel257:
4266 yych = *YYCURSOR;
4267 switch (yych) {
4268 case '0' ... '9':
4269 case 'A' ... 'F': goto yy311;
4270 default:
4271 if (YYLIMIT <= YYCURSOR) {
4272 if (YYFILL) goto yyFillLabel257;
4273 }
4274 goto yy303;
4275 }
4276yy310:
4277 ++YYCURSOR;
4278yyFillLabel258:
4279 yych = *YYCURSOR;
4280 switch (yych) {
4281 case '0' ... '9':
4282 case 'A' ... 'F': goto yy312;
4283 default:
4284 if (YYLIMIT <= YYCURSOR) {
4285 if (YYFILL) goto yyFillLabel258;
4286 }
4287 goto yy303;
4288 }
4289yy311:
4290 ++YYCURSOR;
4291yyFillLabel259:
4292 yych = *YYCURSOR;
4293 switch (yych) {
4294 case '0' ... '9':
4295 case 'A' ... 'F': goto yy313;
4296 default:
4297 if (YYLIMIT <= YYCURSOR) {
4298 if (YYFILL) goto yyFillLabel259;
4299 }
4300 goto yy303;
4301 }
4302yy312:
4303 ++YYCURSOR;
4304yyFillLabel260:
4305 yych = *YYCURSOR;
4306 switch (yych) {
4307 case '0' ... '9':
4308 case 'A' ... 'F': goto yy314;
4309 default:
4310 if (YYLIMIT <= YYCURSOR) {
4311 if (YYFILL) goto yyFillLabel260;
4312 }
4313 goto yy303;
4314 }
4315yy313:
4316 ++YYCURSOR;
4317yyFillLabel261:
4318 yych = *YYCURSOR;
4319 switch (yych) {
4320 case '0' ... '9':
4321 case 'A' ... 'F': goto yy305;
4322 default:
4323 if (YYLIMIT <= YYCURSOR) {
4324 if (YYFILL) goto yyFillLabel261;
4325 }
4326 goto yy303;
4327 }
4328yy314:
4329 ++YYCURSOR;
4330yyFillLabel262:
4331 yych = *YYCURSOR;
4332 switch (yych) {
4333 case '0' ... '9':
4334 case 'A' ... 'F': goto yy292;
4335 default:
4336 if (YYLIMIT <= YYCURSOR) {
4337 if (YYFILL) goto yyFillLabel262;
4338 }
4339 goto yy303;
4340 }
4341yy315:
4342#line 271 "lexer_ttl.re"
4343 {
4344 log_warn ("Unterminated long string!");
4345
4346 return -1;
4347 }
4348#line 4349 "parser_ttl.c"
4349}
4350#line 294 "lexer_ttl.re"
4351
4352}
4353
4354
4355VOLK_rc
4357 FILE *fh, const char *sh, VOLK_Graph **gr_p, size_t *ct, char **err_p)
4358{
4359 *err_p = NULL;
4360 *gr_p = NULL;
4361
4362 if (!fh && !sh) {
4363 log_error ("Neither file handle nor string input provided.");
4364 return VOLK_VALUE_ERR;
4365 }
4366
4367 VOLK_TTLParserState *state = calloc (1, sizeof (*state));
4368 if (UNLIKELY (!state)) return VOLK_MEM_ERR;
4369 state->rc = VOLK_NORESULT;
4370
4371 ParseIterator parse_it;
4372 parse_init (&parse_it, fh, sh);
4373
4374 void *parser = TTLParseAlloc (malloc);
4375
4376 // TODO add basic NS, critically xsd: and rdf:
4377 VOLK_Graph *gr = VOLK_graph_new (NULL, NULL);
4378 if (UNLIKELY (!gr)) return VOLK_MEM_ERR;
4379
4380 state->it = VOLK_graph_add_init (gr);
4381 if (UNLIKELY (!state->it)) {
4382 VOLK_graph_free (gr);
4383 return VOLK_MEM_ERR;
4384 }
4385
4386 YYCTYPE *token;
4387
4388#ifdef DEBUG
4389 TTLParseTrace (stdout, "TTL Parser > ");
4390#endif
4391
4392 for (;;) {
4393 int ttype = lex (&parse_it, &token);
4394
4395 if (ttype == -1) {
4396 char err_token[16] = {'\0'};
4397 strncpy (err_token, (const char *)parse_it.tok, 15);
4398
4399 char *err_start = "Lexer error near token `";
4400
4401 char err_info [64];
4402 sprintf(
4403 err_info, "[...]' at line %u, character %ld.\n",
4404 parse_it.line, parse_it.cur - parse_it.bol);
4405
4406 size_t err_size = strlen (err_start) + 16 + strlen(err_info);
4407 char *err_str = malloc (err_size);
4408 sprintf (err_str, "%s%s%s", err_start, err_token, err_info);
4409 log_error (err_str);
4410
4411 state->rc = VOLK_PARSE_ERR;
4412 *err_p = err_str;
4413
4414 goto finally;
4415 }
4416
4417 TTLParse (parser, ttype, token, state);
4418
4419 if (ttype == T_EOF) break;
4420 };
4421
4422 if (ct) *ct = state->ct;
4423
4424 log_info ("Parsed %u triples.", state->ct);
4425 LOG_DEBUG("Graph size: %lu", VOLK_graph_size (gr));
4426
4427 *gr_p = gr;
4428
4429finally: ;
4430 VOLK_rc rc = state->rc;
4431 LOG_TRACE("rc is %d", rc);
4432
4433 free (parse_it.buf);
4434 TTLParseFree (parser, free);
4435
4436 VOLK_graph_iter_free (state->it);
4437 VOLK_term_free (state->base);
4438 free (state);
4439
4440 if (rc < 0) VOLK_graph_free (gr);
4441
4442 return rc;
4443}
4444
#define UNLIKELY(x)
Definition core.h:39
#define T_IRIREF
Definition grammar_nt.c:19
#define T_EOF
Lemon parser grammar for N-Triples.
Definition grammar_nt.c:17
#define T_WS
Definition grammar_nt.c:23
#define T_STRING
Definition grammar_ttl.c:21
#define T_RPAREN
Definition grammar_ttl.c:41
#define T_DECIMAL
Definition grammar_ttl.c:24
void TTLParseTrace(FILE *TraceFILE, char *zTracePrompt)
#define T_DOUBLE
Definition grammar_ttl.c:23
#define T_RBRACKET
Definition grammar_ttl.c:39
#define T_PERIOD
Lemon parser grammar for Turtle.
Definition grammar_ttl.c:18
#define T_PREFIX
Definition grammar_ttl.c:30
#define T_LPAREN
Definition grammar_ttl.c:40
#define T_ANON
Definition grammar_ttl.c:37
#define T_SEMICOLON
Definition grammar_ttl.c:19
#define T_LANGTAG
Definition grammar_ttl.c:29
#define T_COMMA
Definition grammar_ttl.c:20
#define T_NSIRI
Definition grammar_ttl.c:27
#define T_LBRACKET
Definition grammar_ttl.c:38
#define T_BOOLEAN
Definition grammar_ttl.c:25
#define T_RDF_TYPE
Definition grammar_ttl.c:35
#define T_BNODE_ID
Definition grammar_ttl.c:26
#define T_DTYPE_MARKER
Definition grammar_ttl.c:36
#define T_BASE
Definition grammar_ttl.c:34
#define T_INTEGER
Definition grammar_ttl.c:22
uint8_t * uint8_ndup(const uint8_t *str, size_t size)
strndup() for unsigned char.
Definition codec.h:82
#define CHUNK_SIZE
Definition codec.h:16
uint8_t * unescape_unicode(const uint8_t *esc_str, size_t size)
Replace \uxxxx and \Uxxxxxxxx with Unicode bytes.
Definition codec.c:11
#define VOLK_graph_add_init(...)
Non-transactional version of VOLK_graph_add_init_txn().
Definition graph.h:282
void VOLK_graph_free(VOLK_Graph *gr)
Free a graph.
Definition graph.c:246
void VOLK_graph_iter_free(VOLK_GraphIterator *it)
Free a graph iterator.
Definition graph.c:598
VOLK_Graph * VOLK_graph_new(VOLK_Store *store, const char *uri_str)
Create new graph.
Definition graph.c:44
size_t VOLK_graph_size(const VOLK_Graph *gr)
Number of triples in a graph.
Definition graph.c:311
#define LOG_TRACE(...)
Definition core.h:276
#define LOG_DEBUG(...)
Definition core.h:275
#define VOLK_VALUE_ERR
An invalid input value was provided.
Definition core.h:129
#define VOLK_MEM_ERR
Memory allocation error.
Definition core.h:144
#define VOLK_NORESULT
No result yielded.
Definition core.h:100
#define VOLK_PARSE_ERR
Codec parser error.
Definition core.h:126
int VOLK_rc
Definition core.h:79
void VOLK_term_free(VOLK_Term *term)
Definition term.c:387
#define YYCURSOR
Definition parser_nt.c:21
#define YYLIMIT
Definition parser_nt.c:23
#define YYFILL
Definition parser_nt.c:24
#define YYMARKER
Definition parser_nt.c:22
#define YYCTYPE
TTL is UTF-8 encoded.
Definition parser_nt.c:20
VOLK_rc VOLK_ttl_parse_doc(FILE *fh, const char *sh, VOLK_Graph **gr_p, size_t *ct, char **err_p)
Parse an RDF document in Turtle format.
void * TTLParseAlloc()
void TTLParse()
void TTLParseFree()
#define YYCTYPE
TTL is UTF-8 encoded.
Definition parser_ttl.c:20
FILE * fh
Input file handle.
Definition parser_nt.c:28
size_t buf_size
Initial allocation for buffer.
Definition parser_nt.c:30
unsigned line
Current line no. (for debugging).
Definition parser_nt.c:39
YYCTYPE * cur
Next input character to be read (YYCURSOR).
Definition parser_nt.c:34
const char * sh
Input string. Exclusive with fh.
Definition parser_nt.c:29
bool eof
if we have reached EOF.
Definition parser_nt.c:41
YYCTYPE * buf
Start of buffer.
Definition parser_nt.c:31
YYCTYPE * yyt1
Definition parser_nt.c:44
YYCTYPE * bol
Definition parser_nt.c:37
YYCTYPE * lim
Definition parser_nt.c:33
unsigned ct
Number of statements parsed.
Definition parser_nt.c:40
YYCTYPE * mar
Most recent match (YYMARKER).
Definition parser_nt.c:35
YYCTYPE * yyt2
Definition parser_nt.c:44
YYCTYPE * tok
Start of current token.
Definition parser_nt.c:36
size_t size
Definition parser_ttl.c:157
YYCTYPE * data
Definition parser_ttl.c:156
Parser state.
Definition codec.h:42
VOLK_GraphIterator * it
Iterator used to build the graph.
Definition codec.h:43
VOLK_rc rc
Internal return code.
Definition codec.h:47
size_t ct
Statements parsed.
Definition codec.h:46
VOLK_Term * base
Base IRI used in the document.
Definition codec.h:44