5#define YY_INT_ALIGNED short int
12#define yy_create_buffer d2_parser__create_buffer
13#define yy_delete_buffer d2_parser__delete_buffer
14#define yy_scan_buffer d2_parser__scan_buffer
15#define yy_scan_string d2_parser__scan_string
16#define yy_scan_bytes d2_parser__scan_bytes
17#define yy_init_buffer d2_parser__init_buffer
18#define yy_flush_buffer d2_parser__flush_buffer
19#define yy_load_buffer_state d2_parser__load_buffer_state
20#define yy_switch_to_buffer d2_parser__switch_to_buffer
21#define yypush_buffer_state d2_parser_push_buffer_state
22#define yypop_buffer_state d2_parser_pop_buffer_state
23#define yyensure_buffer_stack d2_parser_ensure_buffer_stack
24#define yy_flex_debug d2_parser__flex_debug
25#define yyin d2_parser_in
26#define yyleng d2_parser_leng
27#define yylex d2_parser_lex
28#define yylineno d2_parser_lineno
29#define yyout d2_parser_out
30#define yyrestart d2_parser_restart
31#define yytext d2_parser_text
32#define yywrap d2_parser_wrap
33#define yyalloc d2_parser_alloc
34#define yyrealloc d2_parser_realloc
35#define yyfree d2_parser_free
42#define YY_FLEX_MAJOR_VERSION 2
43#define YY_FLEX_MINOR_VERSION 6
44#define YY_FLEX_SUBMINOR_VERSION 4
45#if YY_FLEX_SUBMINOR_VERSION > 0
53#ifdef yy_create_buffer
54#define d2_parser__create_buffer_ALREADY_DEFINED
56#define yy_create_buffer d2_parser__create_buffer
59#ifdef yy_delete_buffer
60#define d2_parser__delete_buffer_ALREADY_DEFINED
62#define yy_delete_buffer d2_parser__delete_buffer
66#define d2_parser__scan_buffer_ALREADY_DEFINED
68#define yy_scan_buffer d2_parser__scan_buffer
72#define d2_parser__scan_string_ALREADY_DEFINED
74#define yy_scan_string d2_parser__scan_string
78#define d2_parser__scan_bytes_ALREADY_DEFINED
80#define yy_scan_bytes d2_parser__scan_bytes
84#define d2_parser__init_buffer_ALREADY_DEFINED
86#define yy_init_buffer d2_parser__init_buffer
90#define d2_parser__flush_buffer_ALREADY_DEFINED
92#define yy_flush_buffer d2_parser__flush_buffer
95#ifdef yy_load_buffer_state
96#define d2_parser__load_buffer_state_ALREADY_DEFINED
98#define yy_load_buffer_state d2_parser__load_buffer_state
101#ifdef yy_switch_to_buffer
102#define d2_parser__switch_to_buffer_ALREADY_DEFINED
104#define yy_switch_to_buffer d2_parser__switch_to_buffer
107#ifdef yypush_buffer_state
108#define d2_parser_push_buffer_state_ALREADY_DEFINED
110#define yypush_buffer_state d2_parser_push_buffer_state
113#ifdef yypop_buffer_state
114#define d2_parser_pop_buffer_state_ALREADY_DEFINED
116#define yypop_buffer_state d2_parser_pop_buffer_state
119#ifdef yyensure_buffer_stack
120#define d2_parser_ensure_buffer_stack_ALREADY_DEFINED
122#define yyensure_buffer_stack d2_parser_ensure_buffer_stack
126#define d2_parser_lex_ALREADY_DEFINED
128#define yylex d2_parser_lex
132#define d2_parser_restart_ALREADY_DEFINED
134#define yyrestart d2_parser_restart
138#define d2_parser_lex_init_ALREADY_DEFINED
140#define yylex_init d2_parser_lex_init
143#ifdef yylex_init_extra
144#define d2_parser_lex_init_extra_ALREADY_DEFINED
146#define yylex_init_extra d2_parser_lex_init_extra
150#define d2_parser_lex_destroy_ALREADY_DEFINED
152#define yylex_destroy d2_parser_lex_destroy
156#define d2_parser_get_debug_ALREADY_DEFINED
158#define yyget_debug d2_parser_get_debug
162#define d2_parser_set_debug_ALREADY_DEFINED
164#define yyset_debug d2_parser_set_debug
168#define d2_parser_get_extra_ALREADY_DEFINED
170#define yyget_extra d2_parser_get_extra
174#define d2_parser_set_extra_ALREADY_DEFINED
176#define yyset_extra d2_parser_set_extra
180#define d2_parser_get_in_ALREADY_DEFINED
182#define yyget_in d2_parser_get_in
186#define d2_parser_set_in_ALREADY_DEFINED
188#define yyset_in d2_parser_set_in
192#define d2_parser_get_out_ALREADY_DEFINED
194#define yyget_out d2_parser_get_out
198#define d2_parser_set_out_ALREADY_DEFINED
200#define yyset_out d2_parser_set_out
204#define d2_parser_get_leng_ALREADY_DEFINED
206#define yyget_leng d2_parser_get_leng
210#define d2_parser_get_text_ALREADY_DEFINED
212#define yyget_text d2_parser_get_text
216#define d2_parser_get_lineno_ALREADY_DEFINED
218#define yyget_lineno d2_parser_get_lineno
222#define d2_parser_set_lineno_ALREADY_DEFINED
224#define yyset_lineno d2_parser_set_lineno
228#define d2_parser_wrap_ALREADY_DEFINED
230#define yywrap d2_parser_wrap
236#define d2_parser_alloc_ALREADY_DEFINED
238#define yyalloc d2_parser_alloc
242#define d2_parser_realloc_ALREADY_DEFINED
244#define yyrealloc d2_parser_realloc
248#define d2_parser_free_ALREADY_DEFINED
250#define yyfree d2_parser_free
256#define d2_parser_text_ALREADY_DEFINED
258#define yytext d2_parser_text
262#define d2_parser_leng_ALREADY_DEFINED
264#define yyleng d2_parser_leng
268#define d2_parser_in_ALREADY_DEFINED
270#define yyin d2_parser_in
274#define d2_parser_out_ALREADY_DEFINED
276#define yyout d2_parser_out
280#define d2_parser__flex_debug_ALREADY_DEFINED
282#define yy_flex_debug d2_parser__flex_debug
286#define d2_parser_lineno_ALREADY_DEFINED
288#define yylineno d2_parser_lineno
315#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
320#ifndef __STDC_LIMIT_MACROS
321#define __STDC_LIMIT_MACROS 1
341#define INT8_MIN (-128)
344#define INT16_MIN (-32767-1)
347#define INT32_MIN (-2147483647-1)
350#define INT8_MAX (127)
353#define INT16_MAX (32767)
356#define INT32_MAX (2147483647)
359#define UINT8_MAX (255U)
362#define UINT16_MAX (65535U)
365#define UINT32_MAX (4294967295U)
369#define SIZE_MAX (~(size_t)0)
385#if defined(__GNUC__) && __GNUC__ >= 3
386#define yynoreturn __attribute__((__noreturn__))
400#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
414#define BEGIN (yy_start) = 1 + 2 *
419#define YY_START (((yy_start) - 1) / 2)
420#define YYSTATE YY_START
422#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
424#define YY_NEW_FILE yyrestart( yyin )
425#define YY_END_OF_BUFFER_CHAR 0
434#define YY_BUF_SIZE 32768
436#define YY_BUF_SIZE 16384
442#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
444#ifndef YY_TYPEDEF_YY_BUFFER_STATE
445#define YY_TYPEDEF_YY_BUFFER_STATE
449#ifndef YY_TYPEDEF_YY_SIZE_T
450#define YY_TYPEDEF_YY_SIZE_T
464#define EOB_ACT_CONTINUE_SCAN 0
465#define EOB_ACT_END_OF_FILE 1
466#define EOB_ACT_LAST_MATCH 2
468 #define YY_LESS_LINENO(n)
469 #define YY_LINENO_REWIND_TO(ptr)
476 int yyless_macro_arg = (n); \
477 YY_LESS_LINENO(yyless_macro_arg);\
478 *yy_cp = (yy_hold_char); \
479 YY_RESTORE_YY_MORE_OFFSET \
480 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
481 YY_DO_BEFORE_ACTION; \
484#define unput(c) yyunput( c, (yytext_ptr) )
486#ifndef YY_STRUCT_YY_BUFFER_STATE
487#define YY_STRUCT_YY_BUFFER_STATE
539#define YY_BUFFER_NEW 0
540#define YY_BUFFER_NORMAL 1
551#define YY_BUFFER_EOF_PENDING 2
561static size_t yy_buffer_stack_top = 0;
562static size_t yy_buffer_stack_max = 0;
575#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
576 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
581#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
588static char yy_hold_char;
589static int yy_n_chars;
593static char *yy_c_buf_p = NULL;
594static int yy_init = 0;
595static int yy_start = 0;
600static int yy_did_buffer_switch_on_eof;
616#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
628#define yy_new_buffer yy_create_buffer
629#define yy_set_interactive(is_interactive) \
631 if ( ! YY_CURRENT_BUFFER ){ \
632 yyensure_buffer_stack (); \
633 YY_CURRENT_BUFFER_LVALUE = \
634 yy_create_buffer( yyin, YY_BUF_SIZE ); \
636 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
638#define yy_set_bol(at_bol) \
640 if ( ! YY_CURRENT_BUFFER ){\
641 yyensure_buffer_stack (); \
642 YY_CURRENT_BUFFER_LVALUE = \
643 yy_create_buffer( yyin, YY_BUF_SIZE ); \
645 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
647#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
652#define d2_parser_wrap() (1)
653#define YY_SKIP_YYWRAP
669#define yytext_ptr yytext
677static int yy_get_next_buffer (
void );
678static void yynoreturn yy_fatal_error (
const char* msg );
685#define YY_DO_BEFORE_ACTION \
686 (yytext_ptr) = yy_bp; \
688 yyleng = (int) (yy_cp - yy_bp); \
689 (yy_hold_char) = *yy_cp; \
692 (yy_c_buf_p) = yy_cp;
694#define YY_NUM_RULES 70
695#define YY_END_OF_BUFFER 71
705 63, 63, 0, 0, 0, 0, 0, 0, 0, 0,
706 71, 69, 10, 11, 69, 1, 63, 60, 63, 63,
707 69, 62, 61, 69, 69, 69, 69, 69, 56, 57,
708 69, 69, 69, 58, 59, 5, 5, 5, 69, 69,
709 69, 10, 11, 0, 0, 51, 0, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 1, 63, 63,
712 0, 62, 63, 3, 2, 6, 0, 63, 0, 0,
713 0, 0, 0, 0, 4, 0, 0, 9, 0, 52,
714 0, 0, 0, 0, 0, 0, 54, 0, 0, 0,
716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
718 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
719 8, 0, 0, 0, 0, 0, 53, 55, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 68, 66,
723 0, 65, 64, 0, 0, 0, 19, 18, 0, 0,
724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
727 0, 0, 0, 0, 0, 0, 0, 0, 67, 64,
728 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 48, 0, 0, 0, 0, 0, 14, 0, 0,
731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 44, 0, 0, 0, 0, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 46, 0, 0, 43, 0, 0, 0, 0, 0,
738 32, 0, 0, 0, 0, 0, 0, 0, 22, 0,
739 0, 0, 0, 0, 0, 0, 0, 0, 0, 39,
740 40, 45, 0, 0, 0, 0, 0, 47, 0, 0,
741 0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
742 0, 0, 0, 0, 28, 0, 26, 0, 0, 0,
743 0, 0, 0, 0, 50, 0, 0, 0, 0, 30,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 29, 0, 0,
746 0, 49, 0, 0, 0, 0, 0, 13, 17, 0,
747 0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
749 31, 0, 27, 0, 0, 0, 0, 0, 0, 33,
750 36, 35, 0, 0, 25, 0, 23, 0, 16, 0,
751 0, 24, 21, 0, 0, 0, 0, 0, 34, 0,
752 0, 42, 41, 0, 37, 0, 0, 15, 0
755static const YY_CHAR yy_ec[256] =
757 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
758 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
759 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
760 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
761 5, 8, 9, 10, 11, 12, 13, 14, 14, 14,
762 14, 14, 14, 14, 14, 14, 14, 15, 5, 16,
763 5, 17, 18, 5, 19, 20, 21, 22, 23, 24,
764 5, 5, 5, 25, 5, 26, 5, 27, 28, 29,
765 5, 30, 31, 32, 33, 5, 5, 5, 5, 5,
766 34, 35, 36, 5, 37, 5, 38, 39, 40, 41,
768 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
769 52, 53, 5, 54, 55, 56, 57, 58, 59, 60,
770 61, 62, 63, 5, 64, 5, 5, 5, 5, 5,
771 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
772 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
773 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
774 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
775 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
776 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
777 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
779 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
780 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
781 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
782 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
783 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
787static const YY_CHAR yy_meta[65] =
789 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
790 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
791 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
792 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
793 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
794 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
800 0, 63, 17, 27, 35, 42, 46, 51, 80, 89,
801 692, 693, 24, 688, 127, 0, 180, 693, 181, 66,
802 9, 184, 693, 672, 101, 21, 14, 31, 693, 693,
803 22, 61, 66, 693, 693, 693, 98, 676, 637, 0,
804 670, 99, 683, 27, 205, 693, 640, 166, 83, 177,
805 228, 635, 631, 159, 64, 630, 628, 638, 65, 641,
806 84, 621, 164, 635, 16, 185, 187, 0, 194, 252,
807 259, 260, 197, 693, 0, 693, 662, 661, 186, 198,
808 232, 243, 250, 244, 693, 634, 667, 693, 209, 693,
809 274, 632, 253, 257, 259, 665, 0, 326, 626, 163,
811 618, 629, 623, 611, 608, 610, 177, 652, 601, 622,
812 616, 599, 608, 603, 600, 177, 601, 596, 238, 613,
813 606, 609, 0, 259, 267, 277, 260, 269, 280, 601,
814 693, 596, 270, 642, 641, 640, 693, 693, 356, 593,
815 594, 587, 587, 584, 598, 628, 583, 578, 588, 579,
816 596, 622, 578, 587, 249, 588, 618, 575, 589, 570,
817 569, 582, 569, 580, 573, 576, 565, 285, 693, 693,
818 297, 693, 693, 561, 595, 610, 693, 693, 386, 561,
819 572, 559, 601, 567, 555, 554, 563, 569, 551, 554,
820 563, 552, 564, 559, 554, 557, 592, 280, 540, 546,
822 553, 588, 539, 550, 537, 548, 578, 577, 693, 693,
823 546, 545, 693, 416, 539, 533, 531, 541, 532, 524,
824 537, 572, 523, 565, 537, 533, 535, 518, 517, 508,
825 515, 693, 516, 513, 510, 523, 510, 693, 508, 506,
826 515, 504, 511, 518, 515, 505, 499, 498, 504, 500,
827 509, 539, 495, 693, 507, 498, 496, 491, 494, 482,
828 487, 499, 534, 485, 486, 300, 481, 485, 493, 318,
829 478, 522, 490, 479, 693, 475, 484, 522, 516, 476,
830 467, 485, 465, 511, 475, 478, 477, 476, 511, 510,
831 509, 693, 464, 457, 693, 460, 459, 468, 503, 497,
833 693, 464, 445, 285, 444, 453, 497, 452, 693, 446,
834 462, 457, 452, 455, 455, 456, 488, 438, 486, 693,
835 693, 693, 453, 438, 436, 435, 433, 693, 445, 439,
836 478, 445, 421, 426, 420, 693, 461, 401, 406, 402,
837 394, 395, 407, 393, 693, 391, 693, 389, 404, 387,
838 386, 386, 393, 384, 693, 382, 378, 417, 380, 693,
839 381, 369, 413, 363, 287, 366, 378, 409, 408, 361,
840 366, 365, 398, 352, 360, 359, 351, 693, 332, 343,
841 335, 693, 383, 332, 381, 331, 331, 693, 693, 335,
842 331, 330, 693, 326, 368, 367, 366, 315, 321, 356,
844 693, 315, 693, 354, 313, 352, 306, 305, 349, 693,
845 693, 693, 348, 297, 693, 302, 693, 309, 693, 289,
846 288, 693, 693, 332, 293, 279, 320, 243, 693, 167,
847 119, 693, 693, 64, 693, 53, 2, 693, 693, 459,
848 462, 465, 0, 468, 471, 474, 477
853 440, 440, 441, 441, 440, 440, 440, 440, 440, 440,
854 439, 439, 439, 439, 439, 442, 439, 439, 439, 439,
855 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
856 439, 439, 439, 439, 439, 439, 439, 439, 439, 443,
857 439, 439, 439, 444, 15, 439, 45, 45, 45, 45,
858 445, 45, 45, 45, 45, 45, 45, 45, 45, 45,
859 45, 45, 45, 45, 45, 45, 45, 442, 439, 439,
860 439, 439, 439, 439, 446, 439, 439, 439, 439, 439,
861 439, 439, 439, 439, 439, 439, 443, 439, 444, 439,
862 439, 45, 45, 45, 45, 447, 45, 445, 45, 45,
864 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
865 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
866 45, 45, 446, 439, 439, 439, 439, 439, 439, 439,
867 439, 45, 45, 45, 45, 447, 439, 439, 98, 45,
868 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
869 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
870 45, 45, 45, 45, 45, 45, 45, 439, 439, 439,
871 439, 439, 439, 439, 45, 45, 439, 439, 98, 45,
872 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
873 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
875 45, 45, 45, 45, 45, 45, 45, 45, 439, 439,
876 439, 45, 439, 98, 45, 45, 45, 45, 45, 45,
877 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
878 45, 439, 45, 45, 45, 45, 45, 439, 45, 45,
879 45, 45, 45, 45, 439, 45, 45, 45, 45, 45,
880 45, 45, 45, 439, 45, 45, 45, 45, 45, 45,
881 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
882 45, 45, 45, 45, 439, 45, 45, 45, 45, 45,
883 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
884 45, 439, 45, 45, 439, 45, 45, 45, 45, 45,
886 439, 45, 45, 45, 45, 45, 45, 45, 439, 45,
887 45, 45, 45, 45, 45, 45, 45, 45, 45, 439,
888 439, 439, 45, 45, 45, 45, 45, 439, 45, 45,
889 45, 45, 45, 45, 45, 439, 45, 45, 45, 45,
890 45, 45, 45, 45, 439, 45, 439, 45, 45, 45,
891 45, 45, 45, 45, 439, 45, 45, 45, 45, 439,
892 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
893 45, 45, 45, 45, 45, 45, 45, 439, 45, 45,
894 45, 439, 45, 45, 45, 45, 45, 439, 439, 45,
895 45, 45, 439, 45, 45, 45, 45, 45, 45, 45,
897 439, 45, 439, 45, 45, 45, 45, 45, 45, 439,
898 439, 439, 45, 45, 439, 45, 439, 45, 439, 45,
899 45, 439, 439, 45, 45, 45, 45, 45, 439, 45,
900 45, 439, 439, 45, 439, 45, 45, 439, 0, 439,
901 439, 439, 439, 439, 439, 439, 439
906 87, 13, 14, 13, 439, 15, 16, 438, 17, 18,
907 19, 20, 21, 22, 23, 24, 74, 439, 37, 14,
908 37, 75, 25, 26, 38, 42, 27, 42, 37, 14,
909 37, 28, 90, 29, 38, 30, 13, 14, 13, 79,
910 79, 25, 31, 13, 14, 13, 80, 13, 14, 13,
911 32, 40, 13, 14, 13, 33, 40, 119, 79, 82,
912 81, 91, 34, 35, 13, 14, 13, 120, 15, 16,
913 80, 17, 18, 19, 20, 21, 22, 23, 24, 73,
914 39, 13, 14, 13, 81, 25, 26, 39, 71, 27,
915 13, 14, 13, 80, 28, 81, 29, 41, 30, 42,
917 42, 42, 42, 94, 25, 31, 41, 71, 437, 77,
918 110, 77, 105, 32, 78, 106, 111, 83, 33, 84,
919 436, 113, 94, 114, 435, 34, 35, 44, 44, 44,
920 45, 45, 46, 45, 45, 45, 45, 45, 45, 45,
921 45, 45, 45, 45, 45, 45, 45, 45, 47, 45,
922 45, 48, 45, 45, 45, 45, 45, 45, 49, 50,
923 45, 51, 45, 45, 52, 45, 53, 54, 45, 55,
924 45, 56, 57, 48, 58, 59, 60, 61, 62, 63,
925 64, 65, 66, 67, 45, 45, 45, 45, 45, 45,
926 45, 69, 69, 70, 72, 69, 93, 72, 95, 101,
928 102, 116, 71, 71, 103, 94, 71, 73, 95, 104,
929 73, 124, 141, 142, 90, 117, 71, 95, 434, 71,
930 93, 71, 71, 125, 94, 71, 45, 95, 149, 45,
931 159, 150, 160, 97, 124, 71, 45, 45, 71, 121,
932 45, 122, 45, 91, 45, 45, 125, 45, 433, 45,
933 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
934 45, 45, 45, 69, 126, 70, 45, 77, 124, 77,
935 45, 69, 78, 72, 71, 125, 126, 163, 45, 89,
936 133, 45, 71, 45, 98, 134, 89, 135, 126, 168,
937 168, 127, 169, 71, 169, 164, 176, 384, 128, 170,
939 129, 71, 170, 195, 133, 295, 196, 209, 89, 134,
940 296, 135, 89, 168, 171, 169, 89, 172, 170, 209,
941 176, 173, 233, 301, 89, 432, 209, 89, 302, 89,
942 89, 138, 234, 431, 430, 332, 297, 429, 210, 139,
943 333, 385, 428, 427, 139, 139, 139, 139, 139, 139,
944 426, 425, 424, 423, 422, 421, 420, 419, 418, 417,
945 416, 415, 414, 139, 139, 139, 139, 139, 139, 179,
946 413, 412, 411, 410, 179, 179, 179, 179, 179, 179,
947 409, 408, 407, 406, 405, 404, 403, 402, 401, 400,
948 399, 398, 397, 179, 179, 179, 179, 179, 179, 214,
950 396, 395, 394, 393, 214, 214, 214, 214, 214, 214,
951 392, 391, 390, 389, 388, 387, 386, 383, 382, 381,
952 380, 379, 378, 214, 214, 214, 214, 214, 214, 45,
953 377, 376, 375, 374, 45, 45, 45, 45, 45, 45,
954 373, 372, 371, 370, 369, 368, 367, 366, 365, 364,
955 363, 362, 361, 45, 45, 45, 45, 45, 45, 12,
956 12, 12, 36, 36, 36, 68, 360, 68, 89, 89,
957 89, 96, 96, 96, 123, 359, 123, 136, 136, 136,
958 358, 357, 356, 355, 354, 353, 352, 351, 350, 349,
959 348, 347, 346, 345, 344, 343, 342, 341, 340, 339,
961 338, 337, 336, 335, 334, 331, 330, 329, 328, 327,
962 326, 325, 324, 323, 322, 321, 320, 319, 318, 317,
963 316, 315, 314, 313, 312, 311, 310, 309, 308, 307,
964 306, 305, 304, 303, 300, 299, 298, 294, 293, 292,
965 291, 290, 289, 288, 287, 286, 285, 284, 283, 282,
966 281, 280, 279, 278, 277, 276, 275, 274, 273, 272,
967 271, 270, 269, 268, 267, 266, 265, 264, 263, 262,
968 261, 260, 259, 258, 257, 256, 255, 254, 253, 252,
969 251, 250, 249, 248, 247, 246, 245, 244, 243, 242,
970 241, 240, 239, 238, 237, 236, 235, 232, 231, 230,
972 229, 228, 227, 226, 225, 224, 223, 222, 221, 220,
973 219, 218, 217, 216, 215, 213, 212, 211, 208, 207,
974 206, 205, 204, 203, 202, 201, 200, 199, 198, 197,
975 194, 193, 192, 191, 190, 189, 188, 187, 186, 185,
976 184, 183, 182, 181, 180, 137, 178, 177, 175, 174,
977 167, 166, 165, 162, 161, 158, 157, 156, 155, 154,
978 153, 152, 151, 148, 147, 146, 145, 144, 143, 140,
979 137, 132, 131, 130, 78, 78, 118, 115, 112, 109,
980 108, 107, 100, 99, 92, 43, 88, 86, 85, 76,
981 43, 439, 11, 439, 439, 439, 439, 439, 439, 439,
983 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
984 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
985 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
986 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
987 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
988 439, 439, 439, 439, 439, 439, 439
993 443, 1, 1, 1, 0, 1, 1, 437, 1, 1,
994 1, 1, 1, 1, 1, 1, 21, 0, 3, 3,
995 3, 21, 1, 1, 3, 13, 1, 13, 4, 4,
996 4, 1, 44, 1, 4, 1, 5, 5, 5, 26,
997 31, 1, 1, 6, 6, 6, 27, 7, 7, 7,
998 1, 7, 8, 8, 8, 1, 8, 65, 26, 31,
999 28, 44, 1, 1, 2, 2, 2, 65, 2, 2,
1000 27, 2, 2, 2, 2, 2, 2, 2, 2, 20,
1001 5, 9, 9, 9, 28, 2, 2, 6, 20, 2,
1002 10, 10, 10, 32, 2, 33, 2, 9, 2, 37,
1004 42, 37, 42, 49, 2, 2, 10, 20, 436, 25,
1005 59, 25, 55, 2, 25, 55, 59, 32, 2, 33,
1006 434, 61, 49, 61, 431, 2, 2, 15, 15, 15,
1007 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1008 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1009 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1010 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1011 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1012 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1013 15, 17, 19, 17, 19, 22, 48, 22, 50, 54,
1015 54, 63, 17, 19, 54, 66, 22, 69, 67, 54,
1016 73, 79, 100, 100, 89, 63, 69, 50, 430, 73,
1017 48, 17, 19, 80, 66, 22, 45, 67, 107, 45,
1018 116, 107, 116, 51, 79, 69, 45, 45, 73, 66,
1019 51, 67, 45, 89, 45, 45, 80, 45, 428, 45,
1020 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1021 45, 45, 51, 70, 81, 70, 51, 71, 82, 71,
1022 51, 72, 71, 72, 70, 83, 84, 119, 51, 91,
1023 93, 51, 72, 51, 51, 94, 91, 95, 81, 124,
1024 127, 82, 125, 70, 128, 119, 133, 365, 83, 126,
1026 84, 72, 129, 155, 93, 266, 155, 168, 91, 94,
1027 266, 95, 91, 124, 127, 125, 91, 128, 126, 171,
1028 133, 129, 198, 270, 91, 427, 168, 91, 270, 91,
1029 91, 98, 198, 426, 425, 304, 266, 424, 171, 98,
1030 304, 365, 421, 420, 98, 98, 98, 98, 98, 98,
1031 418, 416, 414, 413, 409, 408, 407, 406, 405, 404,
1032 402, 400, 399, 98, 98, 98, 98, 98, 98, 139,
1033 398, 397, 396, 395, 139, 139, 139, 139, 139, 139,
1034 394, 392, 391, 390, 387, 386, 385, 384, 383, 381,
1035 380, 379, 377, 139, 139, 139, 139, 139, 139, 179,
1037 376, 375, 374, 373, 179, 179, 179, 179, 179, 179,
1038 372, 371, 370, 369, 368, 367, 366, 364, 363, 362,
1039 361, 359, 358, 179, 179, 179, 179, 179, 179, 214,
1040 357, 356, 354, 353, 214, 214, 214, 214, 214, 214,
1041 352, 351, 350, 349, 348, 346, 344, 343, 342, 341,
1042 340, 339, 338, 214, 214, 214, 214, 214, 214, 440,
1043 440, 440, 441, 441, 441, 442, 337, 442, 444, 444,
1044 444, 445, 445, 445, 446, 335, 446, 447, 447, 447,
1045 334, 333, 332, 331, 330, 329, 327, 326, 325, 324,
1046 323, 319, 318, 317, 316, 315, 314, 313, 312, 311,
1048 310, 308, 307, 306, 305, 303, 302, 300, 299, 298,
1049 297, 296, 294, 293, 291, 290, 289, 288, 287, 286,
1050 285, 284, 283, 282, 281, 280, 279, 278, 277, 276,
1051 274, 273, 272, 271, 269, 268, 267, 265, 264, 263,
1052 262, 261, 260, 259, 258, 257, 256, 255, 253, 252,
1053 251, 250, 249, 248, 247, 246, 245, 244, 243, 242,
1054 241, 240, 239, 237, 236, 235, 234, 233, 231, 230,
1055 229, 228, 227, 226, 225, 224, 223, 222, 221, 220,
1056 219, 218, 217, 216, 215, 212, 211, 208, 207, 206,
1057 205, 204, 203, 202, 201, 200, 199, 197, 196, 195,
1059 194, 193, 192, 191, 190, 189, 188, 187, 186, 185,
1060 184, 183, 182, 181, 180, 176, 175, 174, 167, 166,
1061 165, 164, 163, 162, 161, 160, 159, 158, 157, 156,
1062 154, 153, 152, 151, 150, 149, 148, 147, 146, 145,
1063 144, 143, 142, 141, 140, 136, 135, 134, 132, 130,
1064 122, 121, 120, 118, 117, 115, 114, 113, 112, 111,
1065 110, 109, 108, 106, 105, 104, 103, 102, 101, 99,
1066 96, 92, 87, 86, 78, 77, 64, 62, 60, 58,
1067 57, 56, 53, 52, 47, 43, 41, 39, 38, 24,
1068 14, 11, 439, 439, 439, 439, 439, 439, 439, 439,
1070 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1071 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1072 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1073 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1074 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
1075 439, 439, 439, 439, 439, 439, 439
1079static char *yy_last_accepting_cpos;
1086 137, 139, 141, 146, 147, 152, 153, 154, 166, 169,
1087 174, 180, 189, 200, 211, 220, 229, 238, 248, 258,
1088 268, 285, 302, 311, 320, 330, 342, 352, 363, 372,
1089 382, 392, 402, 412, 421, 430, 439, 448, 457, 466,
1090 475, 484, 493, 502, 511, 520, 529, 538, 551, 560,
1091 569, 670, 686, 735, 743, 758, 759, 760, 761, 762,
1092 763, 765, 783, 796, 801, 805, 807, 809, 811
1098#define REJECT reject_used_but_not_detected
1099#define yymore() yymore_used_but_not_detected
1100#define YY_MORE_ADJ 0
1101#define YY_RESTORE_YY_MORE_OFFSET
1103#line 1 "d2_lexer.ll"
1109#line 8 "d2_lexer.ll"
1112#ifndef __clang_analyzer__
1122#include <boost/lexical_cast.hpp>
1136bool start_token_flag =
false;
1139unsigned int comment_start_line = 0;
1144#define YY_FATAL_ERROR(msg) isc::d2::D2ParserContext::fatal(msg)
1145#line 1145 "d2_lexer.cc"
1160#define YY_NO_INPUT 1
1166#line 94 "d2_lexer.ll"
1170#define YY_USER_ACTION driver.loc_.columns(yyleng);
1171#line 1171 "d2_lexer.cc"
1172#line 1172 "d2_lexer.cc"
1177#define DIR_INCLUDE 3
1180#ifndef YY_NO_UNISTD_H
1192#ifndef YY_EXTRA_TYPE
1193#define YY_EXTRA_TYPE void *
1200static int yy_init_globals (
void );
1243#ifndef YY_SKIP_YYWRAP
1245extern "C" int yywrap (
void );
1247extern int yywrap (
void );
1260static void yy_flex_strncpy (
char *,
const char *,
int );
1263#ifdef YY_NEED_STRLEN
1264static int yy_flex_strlen (
const char * );
1271static int yyinput (
void );
1273static int input (
void );
1285#ifndef YY_READ_BUF_SIZE
1288#define YY_READ_BUF_SIZE 16384
1290#define YY_READ_BUF_SIZE 8192
1300#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1310#define YY_INPUT(buf,result,max_size) \
1312 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1316 for ( n = 0; n < max_size && \
1317 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1318 buf[n] = (char) c; \
1320 buf[n++] = (char) c; \
1321 if ( c == EOF && ferror( yyin ) ) \
1322 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1328 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1330 if( errno != EINTR) \
1332 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1350#define yyterminate() return YY_NULL
1354#ifndef YY_START_STACK_INCR
1355#define YY_START_STACK_INCR 25
1359#ifndef YY_FATAL_ERROR
1361#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1382#define YY_DECL_IS_OURS 1
1385extern int yylex (
void);
1387#define YY_DECL int yylex (void)
1396#ifndef YY_USER_ACTION
1397#define YY_USER_ACTION
1402#define YY_BREAK break;
1406#define YY_RULE_SETUP \
1454#line 100 "d2_lexer.ll"
1458#line 104 "d2_lexer.ll"
1466 if (start_token_flag) {
1467 start_token_flag =
false;
1468 switch (start_token_value) {
1492#line 1492 "d2_lexer.cc"
1497 yy_cp = (yy_c_buf_p);
1500 *
yy_cp = (yy_hold_char);
1508 yy_current_state = (yy_start);
1513 if ( yy_accept[yy_current_state] )
1515 (yy_last_accepting_state) = yy_current_state;
1516 (yy_last_accepting_cpos) =
yy_cp;
1518 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1520 yy_current_state = (int) yy_def[yy_current_state];
1521 if ( yy_current_state >= 440 )
1522 yy_c = yy_meta[yy_c];
1524 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1527 while ( yy_current_state != 439 );
1528 yy_cp = (yy_last_accepting_cpos);
1529 yy_current_state = (yy_last_accepting_state);
1533 yy_act = yy_accept[yy_current_state];
1545 fprintf( stderr,
"--scanner backing up\n" );
1547 fprintf( stderr,
"--accepting rule at line %ld (\"%s\")\n",
1550 fprintf( stderr,
"--accepting default rule (\"%s\")\n",
1553 fprintf( stderr,
"--(end of buffer or a NUL)\n" );
1555 fprintf( stderr,
"--EOF (start condition %d)\n",
YY_START );
1563 *
yy_cp = (yy_hold_char);
1564 yy_cp = (yy_last_accepting_cpos);
1565 yy_current_state = (yy_last_accepting_state);
1566 goto yy_find_action;
1570#line 137 "d2_lexer.ll"
1575#line 139 "d2_lexer.ll"
1580#line 141 "d2_lexer.ll"
1583 comment_start_line = driver.loc_.end.line;;
1588#line 146 "d2_lexer.ll"
1593#line 147 "d2_lexer.ll"
1597#line 148 "d2_lexer.ll"
1604#line 152 "d2_lexer.ll"
1609#line 153 "d2_lexer.ll"
1614#line 154 "d2_lexer.ll"
1619 std::string tmp(
yytext+1);
1620 tmp.resize(tmp.size() - 1);
1622 driver.includeFile(tmp);
1628#line 163 "d2_lexer.ll"
1635#line 166 "d2_lexer.ll"
1640#line 169 "d2_lexer.ll"
1649#line 174 "d2_lexer.ll"
1652 driver.loc_.lines(
yyleng);
1658#line 180 "d2_lexer.ll"
1660 switch(driver.ctx_) {
1670#line 189 "d2_lexer.ll"
1672 switch(driver.ctx_) {
1684#line 200 "d2_lexer.ll"
1686 switch(driver.ctx_) {
1698#line 211 "d2_lexer.ll"
1700 switch(driver.ctx_) {
1710#line 220 "d2_lexer.ll"
1712 switch(driver.ctx_) {
1722#line 229 "d2_lexer.ll"
1724 switch(driver.ctx_) {
1734#line 238 "d2_lexer.ll"
1740 std::string tmp(
yytext+1);
1741 tmp.resize(tmp.size() - 1);
1747#line 248 "d2_lexer.ll"
1753 std::string tmp(
yytext+1);
1754 tmp.resize(tmp.size() - 1);
1760#line 258 "d2_lexer.ll"
1766 std::string tmp(
yytext+1);
1767 tmp.resize(tmp.size() - 1);
1773#line 268 "d2_lexer.ll"
1775 switch(driver.ctx_) {
1793#line 285 "d2_lexer.ll"
1795 switch(driver.ctx_) {
1813#line 302 "d2_lexer.ll"
1815 switch(driver.ctx_) {
1825#line 311 "d2_lexer.ll"
1827 switch(driver.ctx_) {
1837#line 320 "d2_lexer.ll"
1839 switch(driver.ctx_) {
1850#line 330 "d2_lexer.ll"
1852 switch(driver.ctx_) {
1865#line 342 "d2_lexer.ll"
1867 switch(driver.ctx_) {
1878#line 352 "d2_lexer.ll"
1880 switch(driver.ctx_) {
1891#line 363 "d2_lexer.ll"
1893 switch(driver.ctx_) {
1903#line 372 "d2_lexer.ll"
1905 switch(driver.ctx_) {
1916#line 382 "d2_lexer.ll"
1918 switch(driver.ctx_) {
1929#line 392 "d2_lexer.ll"
1931 switch(driver.ctx_) {
1942#line 402 "d2_lexer.ll"
1944 switch(driver.ctx_) {
1955#line 412 "d2_lexer.ll"
1957 switch(driver.ctx_) {
1967#line 421 "d2_lexer.ll"
1969 switch(driver.ctx_) {
1979#line 430 "d2_lexer.ll"
1981 switch(driver.ctx_) {
1991#line 439 "d2_lexer.ll"
1993 switch(driver.ctx_) {
2003#line 448 "d2_lexer.ll"
2005 switch(driver.ctx_) {
2015#line 457 "d2_lexer.ll"
2017 switch(driver.ctx_) {
2027#line 466 "d2_lexer.ll"
2029 switch(driver.ctx_) {
2039#line 475 "d2_lexer.ll"
2041 switch(driver.ctx_) {
2051#line 484 "d2_lexer.ll"
2053 switch(driver.ctx_) {
2063#line 493 "d2_lexer.ll"
2065 switch(driver.ctx_) {
2075#line 502 "d2_lexer.ll"
2077 switch(driver.ctx_) {
2087#line 511 "d2_lexer.ll"
2089 switch(driver.ctx_) {
2099#line 520 "d2_lexer.ll"
2101 switch(driver.ctx_) {
2111#line 529 "d2_lexer.ll"
2113 switch(driver.ctx_) {
2123#line 538 "d2_lexer.ll"
2125 switch(driver.ctx_) {
2139#line 551 "d2_lexer.ll"
2141 switch(driver.ctx_) {
2151#line 560 "d2_lexer.ll"
2153 switch(driver.ctx_) {
2163#line 569 "d2_lexer.ll"
2168 std::string raw(
yytext+1);
2169 size_t len = raw.size() - 1;
2171 std::string decoded;
2172 decoded.reserve(len);
2173 for (
size_t pos = 0; pos < len; ++pos) {
2179 driver.error(driver.loc_,
"Bad quote in \"" + raw +
"\"");
2185 driver.error(driver.loc_,
"Overflow escape in \"" + raw +
"\"");
2192 decoded.push_back(c);
2195 decoded.push_back(
'\b');
2198 decoded.push_back(
'\f');
2201 decoded.push_back(
'\n');
2204 decoded.push_back(
'\r');
2207 decoded.push_back(
'\t');
2212 if (pos + 4 > len) {
2214 driver.error(driver.loc_,
2215 "Overflow unicode escape in \"" + raw +
"\"");
2217 if ((raw[pos] !=
'0') || (raw[pos + 1] !=
'0')) {
2218 driver.error(driver.loc_,
2219 "Unsupported unicode escape in \"" + raw +
"\"",
2224 if ((c >=
'0') && (c <=
'9')) {
2226 }
else if ((c >=
'A') && (c <=
'F')) {
2227 b = (c -
'A' + 10) << 4;
2228 }
else if ((c >=
'a') && (c <=
'f')) {
2229 b = (c -
'a' + 10) << 4;
2232 driver.error(driver.loc_,
"Not hexadecimal in unicode escape in \"" + raw +
"\"");
2236 if ((c >=
'0') && (c <=
'9')) {
2238 }
else if ((c >=
'A') && (c <=
'F')) {
2240 }
else if ((c >=
'a') && (c <=
'f')) {
2244 driver.error(driver.loc_,
"Not hexadecimal in unicode escape in \"" + raw +
"\"");
2246 decoded.push_back(
static_cast<char>(b & 0xff));
2250 driver.error(driver.loc_,
"Bad escape in \"" + raw +
"\"");
2254 if ((c >= 0) && (c < 0x20)) {
2256 driver.error(driver.loc_,
"Invalid control in \"" + raw +
"\"");
2258 decoded.push_back(c);
2268#line 670 "d2_lexer.ll"
2271 std::string raw(
yytext+1);
2272 size_t len = raw.size() - 1;
2274 for (; pos < len; ++pos) {
2276 if ((c >= 0) && (c < 0x20)) {
2280 driver.error(driver.loc_,
2281 "Invalid control in " + std::string(
yytext),
2288#line 686 "d2_lexer.ll"
2291 std::string raw(
yytext+1);
2292 size_t len = raw.size() - 1;
2295 for (; pos < len; ++pos) {
2314 if ((pos + 4 > len) ||
2315 !std::isxdigit(raw[pos + 1]) ||
2316 !std::isxdigit(raw[pos + 2]) ||
2317 !std::isxdigit(raw[pos + 3]) ||
2318 !std::isxdigit(raw[pos + 4])) {
2329 std::string trailer =
"";
2330 if (raw[len - 1] ==
'\\') {
2333 driver.error(driver.loc_,
2334 "Bad escape in " + std::string(
yytext) + trailer,
2340#line 735 "d2_lexer.ll"
2343 std::string raw(
yytext+1);
2344 driver.error(driver.loc_,
2345 "Overflow escape in " + std::string(
yytext),
2351#line 743 "d2_lexer.ll"
2354 std::string raw(
yytext+1);
2355 size_t pos = raw.size() - 1;
2356 for (; pos > 0; --pos) {
2362 driver.error(driver.loc_,
2363 "Overflow unicode escape in " + std::string(
yytext),
2369#line 758 "d2_lexer.ll"
2374#line 759 "d2_lexer.ll"
2379#line 760 "d2_lexer.ll"
2384#line 761 "d2_lexer.ll"
2389#line 762 "d2_lexer.ll"
2394#line 763 "d2_lexer.ll"
2399#line 765 "d2_lexer.ll"
2403 int64_t integer = 0;
2409 integer = boost::lexical_cast<int64_t>(tmp);
2410 }
catch (
const boost::bad_lexical_cast &) {
2411 driver.error(driver.loc_,
"Failed to convert " + tmp +
" to an integer.");
2420#line 783 "d2_lexer.ll"
2426 fp = boost::lexical_cast<double>(tmp);
2427 }
catch (
const boost::bad_lexical_cast &) {
2428 driver.error(driver.loc_,
"Failed to convert " + tmp +
" to a floating point.");
2436#line 796 "d2_lexer.ll"
2444#line 801 "d2_lexer.ll"
2451#line 805 "d2_lexer.ll"
2452driver.error (driver.loc_,
"JSON true reserved keyword is lower case only");
2456#line 807 "d2_lexer.ll"
2457driver.error (driver.loc_,
"JSON false reserved keyword is lower case only");
2461#line 809 "d2_lexer.ll"
2462driver.error (driver.loc_,
"JSON null reserved keyword is lower case only");
2466#line 811 "d2_lexer.ll"
2467driver.error (driver.loc_,
"Invalid character: " + std::string(
yytext));
2470#line 813 "d2_lexer.ll"
2472 if (driver.states_.empty()) {
2475 driver.loc_ = driver.locs_.back();
2476 driver.locs_.pop_back();
2477 driver.file_ = driver.files_.back();
2478 driver.files_.pop_back();
2479 if (driver.sfile_) {
2480 fclose(driver.sfile_);
2483 if (!driver.sfiles_.empty()) {
2484 driver.sfile_ = driver.sfiles_.back();
2485 driver.sfiles_.pop_back();
2488 d2_parser__switch_to_buffer(driver.states_.back());
2489 driver.states_.pop_back();
2496#line 836 "d2_lexer.ll"
2499#line 2499 "d2_lexer.cc"
2507 *
yy_cp = (yy_hold_char);
2541 (yy_c_buf_p) = (
yytext_ptr) + yy_amount_of_matched_text;
2543 yy_current_state = yy_get_previous_state( );
2554 yy_next_state = yy_try_NUL_trans( yy_current_state );
2558 if ( yy_next_state )
2561 yy_cp = ++(yy_c_buf_p);
2562 yy_current_state = yy_next_state;
2569 yy_cp = (yy_last_accepting_cpos);
2570 yy_current_state = (yy_last_accepting_state);
2571 goto yy_find_action;
2575 else switch ( yy_get_next_buffer( ) )
2579 (yy_did_buffer_switch_on_eof) = 0;
2600 if ( ! (yy_did_buffer_switch_on_eof) )
2610 yy_current_state = yy_get_previous_state( );
2612 yy_cp = (yy_c_buf_p);
2620 yy_current_state = yy_get_previous_state( );
2622 yy_cp = (yy_c_buf_p);
2624 goto yy_find_action;
2631 "fatal flex scanner internal error--no action found" );
2652static int yy_get_next_buffer (
void)
2659 int number_to_move, i;
2664 "fatal flex scanner internal error--end of buffer missed" );
2688 number_to_move = (int) ((yy_c_buf_p) - (
yytext_ptr) - 1);
2690 for ( i = 0; i < number_to_move; ++i )
2691 *(dest++) = *(source++);
2704 while ( num_to_read <= 0 )
2710 int yy_c_buf_p_offset =
2717 if ( new_size <= 0 )
2733 "fatal error - scanner input buffer overflow" );
2735 (yy_c_buf_p) = &b->
yy_ch_buf[yy_c_buf_p_offset];
2747 (yy_n_chars), num_to_read );
2752 if ( (yy_n_chars) == 0 )
2773 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2777 YY_FATAL_ERROR(
"out of dynamic memory in yy_get_next_buffer()" );
2782 (yy_n_chars) += number_to_move;
2804 yy_current_state = (yy_start);
2810 if ( yy_accept[yy_current_state] )
2812 (yy_last_accepting_state) = yy_current_state;
2813 (yy_last_accepting_cpos) =
yy_cp;
2815 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2817 yy_current_state = (int) yy_def[yy_current_state];
2818 if ( yy_current_state >= 440 )
2819 yy_c = yy_meta[yy_c];
2821 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2824 return yy_current_state;
2840 char *
yy_cp = (yy_c_buf_p);
2843 if ( yy_accept[yy_current_state] )
2845 (yy_last_accepting_state) = yy_current_state;
2846 (yy_last_accepting_cpos) =
yy_cp;
2848 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2850 yy_current_state = (int) yy_def[yy_current_state];
2851 if ( yy_current_state >= 440 )
2852 yy_c = yy_meta[yy_c];
2854 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2855 yy_is_jam = (yy_current_state == 439);
2857 return yy_is_jam ? 0 : yy_current_state;
2869 static int yyinput (
void)
2871 static int input (
void)
2880 *(yy_c_buf_p) = (yy_hold_char);
2890 *(yy_c_buf_p) =
'\0';
2894 int offset = (int) ((yy_c_buf_p) - (
yytext_ptr));
2897 switch ( yy_get_next_buffer( ) )
2920 if ( ! (yy_did_buffer_switch_on_eof) )
2936 c = *(
unsigned char *) (yy_c_buf_p);
2937 *(yy_c_buf_p) =
'\0';
2938 (yy_hold_char) = *++(yy_c_buf_p);
2996 *(yy_c_buf_p) = (yy_hold_char);
3009 (yy_did_buffer_switch_on_eof) = 1;
3025 (yy_hold_char) = *(yy_c_buf_p);
3173 if (new_buffer == NULL)
3182 *(yy_c_buf_p) = (yy_hold_char);
3189 (yy_buffer_stack_top)++;
3194 (yy_did_buffer_switch_on_eof) = 1;
3214 if ((yy_buffer_stack_top) > 0)
3215 --(yy_buffer_stack_top);
3219 (yy_did_buffer_switch_on_eof) = 1;
3236 if (!(yy_buffer_stack)) {
3246 if ( ! (yy_buffer_stack) )
3247 YY_FATAL_ERROR(
"out of dynamic memory in yyensure_buffer_stack()" );
3249 memset((yy_buffer_stack), 0, num_to_alloc *
sizeof(
struct yy_buffer_state*));
3251 (yy_buffer_stack_max) = num_to_alloc;
3252 (yy_buffer_stack_top) = 0;
3256 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3261 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3266 if ( ! (yy_buffer_stack) )
3267 YY_FATAL_ERROR(
"out of dynamic memory in yyensure_buffer_stack()" );
3270 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size *
sizeof(
struct yy_buffer_state*));
3271 (yy_buffer_stack_max) = num_to_alloc;
3350 for ( i = 0; i < _yybytes_len; ++i )
3351 buf[i] = yybytes[i];
3368#ifndef YY_EXIT_FAILURE
3369#define YY_EXIT_FAILURE 2
3373static void yynoreturn yy_fatal_error (
const char* msg )
3375 fprintf( stderr,
"%s\n", msg );
3389 int yyless_macro_arg = (n); \
3390 YY_LESS_LINENO(yyless_macro_arg);\
3391 yytext[yyleng] = (yy_hold_char); \
3392 (yy_c_buf_p) = yytext + yyless_macro_arg; \
3393 (yy_hold_char) = *(yy_c_buf_p); \
3394 *(yy_c_buf_p) = '\0'; \
3395 yyleng = yyless_macro_arg; \
3494static int yy_init_globals (
void)
3500 (yy_buffer_stack) = NULL;
3501 (yy_buffer_stack_top) = 0;
3502 (yy_buffer_stack_max) = 0;
3503 (yy_c_buf_p) = NULL;
3536 yyfree((yy_buffer_stack) );
3537 (yy_buffer_stack) = NULL;
3554static void yy_flex_strncpy (
char* s1,
const char * s2,
int n )
3558 for ( i = 0; i < n; ++i )
3563#ifdef YY_NEED_STRLEN
3564static int yy_flex_strlen (
const char * s )
3567 for ( n = 0; s[n]; ++n )
3576 return malloc(size);
3589 return realloc(ptr, size);
3594 free( (
char *) ptr );
3599#define YYTABLES_NAME "yytables"
3604#line 836 "d2_lexer.ll"
3612 start_token_flag =
true;
3613 start_token_value = parser_type;
3620 buffer = d2_parser__scan_bytes(str.c_str(), str.size());
3622 fatal(
"cannot scan string");
3629 const std::string& filename,
3632 start_token_flag =
true;
3633 start_token_value = parser_type;
3642 buffer = d2_parser__create_buffer(f, 65536 );
3644 fatal(
"cannot scan file " + filename);
3646 d2_parser__switch_to_buffer(buffer);
3654 static_cast<void>(d2_parser_lex_destroy());
3665 d2_parser__delete_buffer(
states_.back());
3673 fatal(
"Too many nested include.");
3676 FILE* f = fopen(filename.c_str(),
"r");
3678 fatal(
"Can't open include file " + filename);
3686 buffer = d2_parser__create_buffer(f, 65536 );
3688 fatal(
"Can't scan include file " + filename);
3690 d2_parser__switch_to_buffer(buffer);
3703 void dummy() { yy_fatal_error(
"Fix me: how to disable its definition?"); }
unsigned char flex_uint8_t
#define YY_CURRENT_BUFFER
Evaluation error exception raised when trying to parse.
ParserType
Defines currently supported scopes.
@ PARSER_TSIG_KEY
Used for parsing a list of TSIG Keys.
@ PARSER_DDNS_DOMAINS
Used for parsing content of a DNS Server.
@ PARSER_DDNS_DOMAIN
Used for parsing a list a DDNS Domains.
@ PARSER_DNS_SERVER
Used for parsing a list of DNS servers.
@ PARSER_SUB_DHCPDDNS
Used for parsing content of a TSIG key.
@ PARSER_JSON
This parser will parse the content as generic JSON.
@ PARSER_TSIG_KEYS
Used for parsing content of a DDNS Domain.
@ PARSER_DHCPDDNS
Used for parsing content of DhcpDdns.
isc::d2::location loc_
Location of the current token.
std::string file_
File name.
void includeFile(const std::string &filename)
Divert input to an include file.
@ DDNS_DOMAIN
Used while parsing a list of ddns-domains.
@ DNS_SERVERS
Used while parsing content of a control-socket.
@ DDNS_DOMAINS
Used while parsing content of a dns-server.
@ NCR_FORMAT
Used while parsing DhcpDdns/ncr-format.
@ NCR_PROTOCOL
Used while parsing DhcpDdns/ncr-protocol.
@ DHCPDDNS
Used while parsing content of a tsig-key.
@ OUTPUT_OPTIONS
Used while parsing DhcpDdns/loggers/output-options structures.
@ FORWARD_DDNS
Used while parsing content of DhcpDdns/reverse-ddns.
@ TSIG_KEY
Used while parsing a list of tsig-keys.
@ REVERSE_DDNS
Used while parsing content of a ddns-domain.
@ LOGGERS
Used while parsing DhcpDdns/loggers structures.
@ HOOKS_LIBRARIES
Used while parsing DhcpDdns/hooks-libraries.
@ TSIG_KEYS
Used while parsing content of DhcpDdns/tsig-keys/algorithm.
@ CONFIG
Used while parsing content of DhcpDdns.
@ DNS_SERVER
Used while parsing content of list of dns-servers.
std::vector< FILE * > sfiles_
sFile (aka FILE) stack
FILE * sfile_
sFile (aka FILE)
void scanStringBegin(const std::string &str, ParserType type)
Method called before scanning starts on a string.
void scanFileBegin(FILE *f, const std::string &filename, ParserType type)
Method called before scanning starts on a file.
std::vector< isc::d2::location > locs_
Location stack.
std::vector< struct yy_buffer_state * > states_
Lexer state stack.
std::vector< std::string > files_
File name stack.
void scanEnd()
Method called after the last tokens are scanned.
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_SUB_DDNS_DOMAIN(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
static symbol_type make_KEY_NAME(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_SUB_TSIG_KEYS(const location_type &l)
static symbol_type make_FORWARD_DDNS(const location_type &l)
static symbol_type make_TOPLEVEL_DHCPDDNS(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_SUB_DDNS_DOMAINS(const location_type &l)
static symbol_type make_TCP(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_DIGEST_BITS(const location_type &l)
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_DNS_SERVER_TIMEOUT(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_SECRET(const location_type &l)
static symbol_type make_SUB_TSIG_KEY(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_SUB_DHCPDDNS(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_DHCPDDNS(const location_type &l)
static symbol_type make_SUB_DNS_SERVER(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_SECRET_FILE(const location_type &l)
static symbol_type make_DDNS_DOMAINS(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_REVERSE_DDNS(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_ALGORITHM(const location_type &l)
static symbol_type make_IP_ADDRESS(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_DNS_SERVERS(const location_type &l)
static symbol_type make_TSIG_KEYS(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
#define yy_load_buffer_state
unsigned char flex_uint8_t
unsigned int flex_uint32_t
#define yypush_buffer_state
#define yyget_in
Get the input stream.
struct yy_buffer_state * YY_BUFFER_STATE
#define YY_RESTORE_YY_MORE_OFFSET
#define yyget_leng
Get the length of the current token.
#define yyget_out
Get the output stream.
#define yyensure_buffer_stack
#define EOB_ACT_END_OF_FILE
#define YY_CURRENT_BUFFER_LVALUE
#define yyget_text
Get the current token.
#define yy_switch_to_buffer
#define YY_CURRENT_BUFFER
#define YY_INPUT(buf, result, max_size)
#define YY_STATE_EOF(state)
#define YY_END_OF_BUFFER_CHAR
#define YY_FATAL_ERROR(msg)
unsigned short int flex_uint16_t
#define yypop_buffer_state
Removes and deletes the top of the stack, if present.
#define YY_DO_BEFORE_ACTION
#define EOB_ACT_LAST_MATCH
#define YY_BUFFER_EOF_PENDING
#define EOB_ACT_CONTINUE_SCAN
#define yyget_lineno
Get the current line number.
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
int yy_bs_column
The column count.
int yy_bs_lineno
The line count.