note description: "Scanners for external parsers" legal: "See notice at end of class." status: "See notice at end of class." date: "$Date$" revision: "$Revision$" class EXTERNAL_SCANNER inherit YY_COMPRESSED_SCANNER_SKELETON rename make as make_compressed_scanner_skeleton redefine reset, fatal_error end EXTERNAL_TOKENS export {NONE} all end SHARED_ERROR_HANDLER export {NONE} all end create make feature -- Status report valid_start_condition (sc: INTEGER): BOOLEAN -- Is `sc' a valid start condition? do Result := (sc = INITIAL) end feature {NONE} -- Implementation yy_build_tables -- Build scanner tables. do yy_nxt := yy_nxt_template yy_chk := yy_chk_template yy_base := yy_base_template yy_def := yy_def_template yy_ec := yy_ec_template yy_meta := yy_meta_template yy_accept := yy_accept_template end yy_execute_action (yy_act: INTEGER) -- Execute semantic action. do inspect yy_act when 1 then yy_column := yy_column + yy_end - yy_start - yy_more_len yy_position := yy_position + yy_end - yy_start - yy_more_len --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end when 2 then yy_set_line (0) yy_position := yy_position + yy_end - yy_start - yy_more_len --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end when 3 then yy_column := yy_column + 1 yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_COLON when 4 then yy_column := yy_column + 1 yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_LPARAN when 5 then yy_column := yy_column + 1 yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_RPARAN when 6 then yy_column := yy_column + 1 yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_COMMA when 7 then yy_column := yy_column + 1 yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_STAR when 8 then yy_column := yy_column + 1 yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_ADDRESS when 9 then yy_column := yy_column + 1 yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_LT when 10 then yy_column := yy_column + 1 yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_GT when 11 then yy_column := yy_column + 1 yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_DQUOTE when 12 then yy_column := yy_column + 6 yy_position := yy_position + 6 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_ACCESS when 13 then yy_column := yy_column + 8 yy_position := yy_position + 8 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_BLOCKING when 14 then yy_column := yy_column + 8 yy_position := yy_position + 8 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_BUILT_IN when 15 then yy_column := yy_column + 1 yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_C_LANGUAGE when 16 then yy_column := yy_column + 16 yy_position := yy_position + 16 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_C_LANGUAGE when 17 then yy_column := yy_column + 22 yy_position := yy_position + 22 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_C_LANGUAGE when 18 then yy_column := yy_column + 3 yy_position := yy_position + 3 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_CPP_LANGUAGE when 19 then yy_column := yy_column + 5 yy_position := yy_position + 5 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_CONST when 20 then yy_column := yy_column + 7 yy_position := yy_position + 7 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_CREATOR when 21 then yy_column := yy_column + 8 yy_position := yy_position + 8 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_DEFERRED when 22 then yy_column := yy_column + 6 yy_position := yy_position + 6 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_DELETE when 23 then yy_column := yy_column + 3 yy_position := yy_position + 3 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_DLL_LANGUAGE when 24 then yy_column := yy_column + 6 yy_position := yy_position + 6 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_DLLWIN_LANGUAGE when 25 then yy_column := yy_column + 4 yy_position := yy_position + 4 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_ENUM when 26 then yy_column := yy_column + 5 yy_position := yy_position + 5 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_FIELD when 27 then yy_column := yy_column + 12 yy_position := yy_position + 12 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_GET_PROPERTY when 28 then yy_column := yy_column + 2 yy_position := yy_position + 2 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_IL_LANGUAGE when 29 then yy_column := yy_column + 6 yy_position := yy_position + 6 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_INLINE when 30 then yy_column := yy_column + 3 yy_position := yy_position + 3 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_JAVA_LANGUAGE when 31 then yy_column := yy_column + 5 yy_position := yy_position + 5 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_MACRO when 32 then yy_column := yy_column + 8 yy_position := yy_position + 8 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_OPERATOR when 33 then yy_column := yy_column + 9 yy_position := yy_position + 9 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_SET_FIELD when 34 then yy_column := yy_column + 12 yy_position := yy_position + 12 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_SET_PROPERTY when 35 then yy_column := yy_column + 16 yy_position := yy_position + 16 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_SET_STATIC_FIELD when 36 then yy_column := yy_column + 9 yy_position := yy_position + 9 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_SIGNATURE when 37 then yy_column := yy_column + 6 yy_position := yy_position + 6 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_SIGNED when 38 then yy_column := yy_column + 6 yy_position := yy_position + 6 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_STATIC when 39 then yy_column := yy_column + 12 yy_position := yy_position + 12 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_STATIC_FIELD when 40 then yy_column := yy_column + 6 yy_position := yy_position + 6 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_STRUCT when 41 then yy_column := yy_column + 4 yy_position := yy_position + 4 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_TYPE when 42 then yy_column := yy_column + 8 yy_position := yy_position + 8 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_UNSIGNED when 43 then yy_column := yy_column + 3 yy_position := yy_position + 3 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := TE_USE when 44 then yy_column := yy_column + yy_end - yy_start - yy_more_len yy_position := yy_position + yy_end - yy_start - yy_more_len --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end token_buffer.wipe_out append_text_to_string (token_buffer) token_buffer.remove_head (1) last_token := TE_INTEGER when 45 then yy_column := yy_column + yy_end - yy_start - yy_more_len yy_position := yy_position + yy_end - yy_start - yy_more_len --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end -- To escape external keywords. token_buffer.wipe_out append_text_to_string (token_buffer) token_buffer.remove_head (1) last_token := TE_ID when 46 then yy_column := yy_column + yy_end - yy_start - yy_more_len yy_position := yy_position + yy_end - yy_start - yy_more_len --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end -- Traditional identifier token_buffer.wipe_out append_text_to_string (token_buffer) last_token := TE_ID when 47 then yy_column := yy_column + yy_end - yy_start - yy_more_len yy_position := yy_position + yy_end - yy_start - yy_more_len --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end -- Special identifier for include files that specifies -- a path, e.g. , , or path -- that includes an hyphenation. token_buffer.wipe_out append_text_to_string (token_buffer) last_token := TE_FILE_ID when 48 then yy_column := yy_column + 1 yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end report_unrecognized_character_error (text_item (1)) when 49 then yy_set_line_column yy_position := yy_position + 1 --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end last_token := yyError_token fatal_error ("scanner jammed") else last_token := yyError_token fatal_error ("fatal scanner internal error: no action found") end end yy_execute_eof_action (yy_sc: INTEGER) -- Execute EOF semantic action. do inspect yy_sc when 0 then --|#line "external.l" debug ("GELEX") std.error.put_line ("Executing scanner user-code from file 'external.l' at line ") end terminate else terminate end end feature {NONE} -- Table templates yy_nxt_template: SPECIAL [INTEGER] -- Template for `yy_nxt' local an_array: ARRAY [INTEGER] once create an_array.make_filled (0, 0, 1919) yy_nxt_template_1 (an_array) yy_nxt_template_2 (an_array) yy_nxt_template_3 (an_array) yy_nxt_template_4 (an_array) yy_nxt_template_5 (an_array) yy_nxt_template_6 (an_array) yy_nxt_template_7 (an_array) yy_nxt_template_8 (an_array) yy_nxt_template_9 (an_array) yy_nxt_template_10 (an_array) an_array.area.fill_with (236, 1847, 1919) Result := yy_fixed_array (an_array) end yy_nxt_template_1 (an_array: ARRAY [INTEGER]) -- Fill chunk #1 of template for `yy_nxt'. do yy_array_subcopy (an_array, << 0, 5, 6, 5, 7, 8, 9, 10, 11, 12, 13, 14, 13, 13, 13, 15, 16, 17, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 15, 27, 28, 15, 15, 29, 15, 30, 15, 15, 15, 31, 32, 33, 15, 15, 15, 13, 13, 13, 15, 20, 21, 34, 23, 24, 25, 26, 15, 27, 28, 15, 15, 29, 15, 30, 15, 15, 15, 35, 32, 36, 15, 15, 15, 4, 37, 40, 37, 44, 40, 40, 41, 41, 42, 40, 42, 42, 42, 42, 42, 44, 42, 40, 42, 42, 42, 40, 40, 46, 42, 98, 42, 49, 42, 42, 42, 42, 37, 41, 37, 39, 43, 70, 54, 42, 38, 52, 42, 45, 47, 42, 42, 40, 53, 43, 42, 46, 40, 48, 42, 50, 42, 39, 42, 42, 38, 42, 42, 42, 236, 51, 54, 236, 236, 52, 40, 55, 47, 40, 236, 236, 53, 42, 40, 42, 42, 48, 42, 50, 236, 42, 236, 42, 42, 59, 56, 236, 236, 42, 60, 236, 40, 236, 236, 55, 57, 40, 58, 42, 236, 42, 40, 236, 42, 236, 42, 42, 236, 42, 42, 42, 236, 59, 56, 42, 236, 62, 60, 236, 40, 63, yy_Dummy>>, 1, 200, 0) end yy_nxt_template_2 (an_array: ARRAY [INTEGER]) -- Fill chunk #2 of template for `yy_nxt'. do yy_array_subcopy (an_array, << 236, 61, 57, 236, 58, 42, 236, 42, 40, 236, 64, 42, 236, 49, 236, 42, 42, 42, 236, 65, 236, 42, 236, 62, 40, 236, 236, 63, 236, 61, 236, 42, 66, 42, 236, 236, 40, 236, 64, 42, 236, 50, 236, 42, 62, 42, 236, 65, 63, 42, 236, 51, 236, 236, 40, 236, 236, 236, 236, 64, 66, 42, 236, 42, 236, 42, 67, 236, 236, 50, 66, 236, 62, 71, 236, 236, 68, 42, 44, 236, 236, 44, 236, 236, 71, 236, 44, 64, 236, 44, 236, 236, 44, 69, 45, 42, 40, 44, 66, 40, 236, 236, 236, 42, 236, 42, 42, 236, 42, 40, 236, 236, 40, 44, 72, 44, 42, 75, 42, 42, 236, 42, 236, 40, 44, 236, 44, 40, 236, 73, 42, 236, 42, 74, 42, 236, 42, 42, 236, 40, 42, 236, 72, 76, 236, 40, 42, 236, 42, 40, 42, 77, 42, 42, 42, 236, 42, 73, 42, 236, 79, 74, 236, 236, 42, 78, 80, 40, 42, 236, 236, 76, 81, 236, 42, 40, 42, 236, 236, 77, 42, 236, 42, 236, 42, 82, 42, 83, 79, 40, 42, 236, 40, 78, 80, 40, 42, 236, 42, 42, yy_Dummy>>, 1, 200, 200) end yy_nxt_template_3 (an_array: ARRAY [INTEGER]) -- Fill chunk #3 of template for `yy_nxt'. do yy_array_subcopy (an_array, << 81, 42, 42, 236, 42, 40, 236, 236, 42, 236, 84, 40, 42, 82, 42, 83, 42, 40, 42, 85, 42, 236, 236, 86, 42, 88, 42, 236, 40, 87, 42, 236, 236, 42, 40, 42, 42, 42, 84, 90, 236, 42, 236, 42, 236, 236, 42, 85, 236, 236, 236, 86, 42, 88, 236, 40, 236, 87, 42, 40, 236, 236, 42, 89, 42, 93, 42, 90, 42, 42, 236, 91, 236, 40, 236, 42, 40, 40, 236, 94, 42, 236, 42, 42, 42, 42, 42, 236, 92, 236, 236, 89, 236, 93, 40, 40, 42, 236, 90, 91, 42, 42, 42, 42, 42, 236, 236, 94, 236, 236, 236, 236, 100, 236, 42, 99, 92, 42, 42, 236, 40, 236, 236, 236, 40, 40, 96, 42, 236, 42, 95, 42, 42, 42, 42, 42, 42, 236, 236, 97, 100, 102, 40, 99, 236, 236, 40, 101, 236, 42, 40, 42, 236, 42, 236, 42, 236, 42, 236, 42, 236, 42, 236, 236, 236, 42, 42, 40, 236, 102, 104, 103, 40, 40, 42, 101, 42, 40, 236, 42, 42, 42, 42, 42, 42, 236, 42, 42, 107, 236, 236, 42, 105, 106, 40, 108, 236, 236, 104, 103, yy_Dummy>>, 1, 200, 400) end yy_nxt_template_4 (an_array: ARRAY [INTEGER]) -- Fill chunk #4 of template for `yy_nxt'. do yy_array_subcopy (an_array, << 40, 42, 236, 42, 109, 236, 236, 42, 42, 42, 40, 236, 236, 42, 42, 236, 107, 42, 42, 42, 105, 106, 40, 108, 111, 236, 236, 40, 236, 42, 236, 42, 109, 40, 42, 42, 42, 110, 40, 40, 42, 42, 42, 236, 236, 42, 42, 42, 42, 40, 40, 42, 111, 236, 236, 112, 42, 42, 42, 42, 113, 236, 236, 42, 40, 236, 236, 115, 42, 236, 118, 42, 236, 42, 42, 117, 114, 236, 40, 42, 42, 236, 236, 112, 116, 42, 236, 42, 113, 236, 42, 42, 40, 40, 236, 115, 236, 40, 118, 42, 42, 42, 42, 117, 42, 42, 42, 236, 236, 40, 236, 236, 116, 40, 236, 236, 42, 40, 42, 42, 42, 115, 42, 236, 42, 236, 42, 236, 236, 236, 40, 122, 236, 42, 42, 123, 236, 42, 42, 42, 119, 236, 236, 236, 236, 121, 40, 236, 124, 120, 42, 236, 125, 42, 42, 42, 236, 126, 42, 122, 40, 40, 236, 123, 236, 40, 40, 42, 42, 42, 42, 42, 42, 42, 42, 42, 124, 236, 236, 40, 125, 127, 236, 236, 236, 126, 42, 42, 42, 130, 40, 236, 236, 128, 236, 236, 129, 42, 131, 42, yy_Dummy>>, 1, 200, 600) end yy_nxt_template_5 (an_array: ARRAY [INTEGER]) -- Fill chunk #5 of template for `yy_nxt'. do yy_array_subcopy (an_array, << 236, 42, 42, 40, 236, 236, 42, 42, 236, 127, 42, 236, 42, 236, 236, 236, 40, 130, 236, 133, 42, 128, 236, 42, 129, 42, 131, 236, 236, 40, 40, 42, 236, 236, 132, 236, 42, 42, 42, 42, 236, 236, 236, 40, 42, 135, 134, 133, 236, 236, 42, 136, 42, 236, 236, 236, 40, 42, 236, 139, 40, 137, 132, 42, 138, 42, 236, 42, 40, 42, 42, 42, 236, 135, 134, 42, 40, 42, 141, 136, 140, 40, 236, 42, 42, 42, 40, 139, 42, 137, 42, 40, 138, 42, 236, 42, 40, 42, 42, 236, 42, 42, 139, 42, 40, 42, 141, 236, 140, 42, 236, 42, 236, 42, 40, 236, 236, 42, 236, 40, 146, 42, 42, 42, 236, 145, 42, 42, 42, 40, 139, 144, 42, 40, 143, 236, 42, 42, 42, 142, 42, 236, 42, 149, 148, 42, 236, 147, 146, 40, 40, 236, 150, 145, 40, 42, 42, 42, 42, 42, 42, 42, 236, 42, 236, 236, 151, 236, 40, 152, 42, 149, 148, 236, 42, 42, 40, 42, 236, 153, 150, 236, 236, 42, 236, 42, 236, 236, 236, 236, 42, 42, 236, 40, 151, 42, 155, 152, 236, 40, yy_Dummy>>, 1, 200, 800) end yy_nxt_template_6 (an_array: ARRAY [INTEGER]) -- Fill chunk #6 of template for `yy_nxt'. do yy_array_subcopy (an_array, << 42, 154, 42, 40, 40, 236, 42, 153, 42, 42, 42, 42, 42, 42, 236, 236, 236, 42, 40, 40, 236, 236, 236, 157, 155, 42, 42, 42, 42, 154, 236, 236, 40, 236, 42, 236, 236, 158, 156, 42, 42, 42, 236, 236, 42, 42, 236, 236, 40, 40, 161, 157, 236, 159, 160, 42, 42, 42, 42, 42, 42, 40, 40, 236, 236, 158, 156, 236, 42, 42, 42, 42, 236, 42, 236, 236, 236, 40, 161, 236, 236, 159, 160, 162, 42, 40, 42, 236, 40, 42, 42, 40, 42, 236, 42, 42, 236, 42, 42, 236, 42, 236, 42, 42, 236, 236, 40, 236, 163, 236, 236, 162, 166, 42, 165, 42, 40, 236, 42, 164, 236, 40, 236, 42, 167, 42, 42, 40, 42, 42, 42, 236, 42, 236, 42, 168, 42, 236, 236, 236, 166, 170, 165, 236, 40, 236, 169, 42, 236, 40, 236, 42, 167, 42, 236, 236, 42, 42, 42, 236, 236, 236, 42, 168, 40, 236, 236, 236, 42, 170, 236, 42, 236, 42, 169, 40, 236, 236, 236, 171, 40, 236, 42, 236, 42, 42, 236, 42, 236, 42, 42, 236, 40, 40, 236, 173, 236, 236, 236, 42, yy_Dummy>>, 1, 200, 1000) end yy_nxt_template_7 (an_array: ARRAY [INTEGER]) -- Fill chunk #7 of template for `yy_nxt'. do yy_array_subcopy (an_array, << 42, 42, 42, 236, 40, 42, 236, 171, 40, 175, 172, 42, 236, 42, 236, 42, 42, 42, 40, 40, 236, 42, 174, 173, 236, 42, 42, 42, 42, 236, 236, 236, 40, 42, 42, 40, 236, 175, 172, 42, 176, 42, 42, 236, 42, 42, 40, 40, 236, 42, 174, 177, 236, 42, 42, 42, 42, 179, 40, 42, 42, 236, 236, 236, 236, 42, 236, 42, 176, 236, 236, 236, 40, 42, 236, 180, 42, 40, 181, 42, 178, 42, 236, 236, 42, 179, 42, 42, 42, 236, 236, 40, 236, 236, 236, 236, 183, 236, 42, 42, 42, 236, 40, 180, 236, 236, 181, 40, 182, 42, 40, 42, 236, 42, 42, 236, 42, 42, 42, 42, 40, 236, 184, 236, 183, 236, 236, 42, 236, 42, 236, 40, 42, 236, 186, 185, 182, 40, 42, 236, 42, 187, 236, 42, 42, 236, 42, 40, 42, 236, 184, 42, 236, 236, 42, 188, 42, 236, 190, 40, 236, 42, 186, 185, 189, 236, 42, 40, 42, 187, 236, 236, 42, 40, 42, 236, 42, 236, 42, 236, 42, 236, 42, 188, 40, 236, 190, 236, 42, 40, 40, 42, 189, 42, 191, 40, 42, 42, 42, 42, yy_Dummy>>, 1, 200, 1200) end yy_nxt_template_8 (an_array: ARRAY [INTEGER]) -- Fill chunk #8 of template for `yy_nxt'. do yy_array_subcopy (an_array, << 42, 236, 42, 236, 42, 236, 236, 236, 42, 40, 194, 192, 236, 40, 42, 236, 42, 40, 42, 193, 42, 236, 42, 236, 42, 42, 42, 236, 195, 236, 42, 42, 236, 196, 236, 40, 42, 236, 194, 192, 236, 197, 42, 236, 42, 236, 236, 193, 236, 236, 42, 236, 236, 40, 42, 198, 195, 40, 42, 236, 42, 196, 42, 40, 42, 236, 42, 236, 236, 197, 42, 40, 42, 236, 236, 40, 42, 199, 42, 40, 42, 236, 42, 198, 42, 236, 42, 200, 42, 201, 40, 236, 236, 40, 42, 236, 236, 42, 42, 42, 42, 236, 42, 236, 42, 199, 236, 236, 202, 236, 236, 204, 42, 236, 236, 200, 42, 201, 40, 236, 42, 40, 236, 203, 236, 42, 40, 42, 42, 236, 42, 42, 236, 42, 42, 42, 202, 40, 236, 204, 40, 205, 236, 236, 42, 40, 42, 42, 236, 42, 236, 203, 42, 236, 42, 236, 40, 40, 236, 42, 236, 206, 42, 42, 42, 42, 42, 42, 236, 205, 40, 236, 236, 207, 236, 208, 40, 42, 42, 42, 209, 42, 236, 42, 211, 42, 42, 40, 236, 206, 236, 236, 236, 212, 42, 40, 42, 42, 42, 210, yy_Dummy>>, 1, 200, 1400) end yy_nxt_template_9 (an_array: ARRAY [INTEGER]) -- Fill chunk #9 of template for `yy_nxt'. do yy_array_subcopy (an_array, << 236, 207, 42, 208, 42, 236, 40, 236, 209, 213, 236, 42, 211, 42, 236, 42, 40, 42, 236, 236, 236, 212, 236, 42, 236, 42, 214, 216, 42, 236, 236, 40, 40, 236, 215, 217, 42, 213, 42, 42, 42, 42, 40, 40, 236, 236, 236, 42, 236, 42, 42, 42, 42, 236, 214, 216, 236, 42, 236, 40, 236, 218, 215, 217, 236, 219, 42, 40, 42, 236, 40, 236, 42, 42, 42, 236, 42, 42, 236, 42, 236, 40, 236, 42, 42, 40, 236, 236, 42, 218, 42, 220, 42, 219, 42, 40, 236, 236, 236, 236, 42, 222, 42, 40, 42, 223, 221, 236, 42, 236, 42, 42, 42, 236, 40, 236, 236, 236, 40, 220, 236, 42, 42, 42, 236, 42, 42, 42, 236, 222, 224, 40, 225, 223, 221, 236, 42, 236, 42, 40, 42, 226, 236, 40, 42, 236, 42, 40, 42, 227, 42, 236, 42, 228, 42, 42, 42, 40, 224, 42, 225, 40, 229, 236, 42, 236, 42, 40, 42, 226, 42, 236, 42, 236, 42, 230, 42, 227, 40, 236, 42, 228, 40, 236, 42, 42, 40, 42, 42, 42, 229, 42, 40, 42, 231, 42, 236, 236, 42, 42, yy_Dummy>>, 1, 200, 1600) end yy_nxt_template_10 (an_array: ARRAY [INTEGER]) -- Fill chunk #10 of template for `yy_nxt'. do yy_array_subcopy (an_array, << 232, 42, 42, 230, 236, 236, 233, 234, 42, 236, 236, 236, 236, 236, 236, 236, 236, 235, 236, 42, 236, 236, 231, 42, 236, 236, 236, 42, 232, 236, 236, 236, 236, 42, 233, 234, 236, 236, 236, 236, 236, 236, 236, 236, 236, 235, 3, yy_Dummy>>, 1, 47, 1800) end yy_chk_template: SPECIAL [INTEGER] -- Template for `yy_chk' local an_array: ARRAY [INTEGER] once create an_array.make_filled (0, 0, 1919) an_array.put (0, 0) an_array.area.fill_with (1, 1, 73) yy_chk_template_1 (an_array) yy_chk_template_2 (an_array) yy_chk_template_3 (an_array) yy_chk_template_4 (an_array) yy_chk_template_5 (an_array) yy_chk_template_6 (an_array) yy_chk_template_7 (an_array) yy_chk_template_8 (an_array) yy_chk_template_9 (an_array) an_array.area.fill_with (236, 1846, 1919) Result := yy_fixed_array (an_array) end yy_chk_template_1 (an_array: ARRAY [INTEGER]) -- Fill chunk #1 of template for `yy_chk'. do yy_array_subcopy (an_array, << 5, 9, 5, 239, 15, 20, 237, 237, 9, 24, 9, 15, 20, 15, 20, 98, 24, 21, 24, 238, 238, 23, 22, 20, 21, 71, 21, 22, 23, 22, 23, 22, 37, 70, 37, 43, 42, 40, 24, 39, 38, 23, 9, 19, 21, 15, 20, 25, 23, 13, 24, 20, 28, 21, 25, 22, 25, 8, 21, 28, 6, 28, 23, 22, 3, 22, 24, 0, 0, 23, 26, 25, 21, 27, 0, 0, 23, 26, 29, 26, 27, 21, 27, 22, 0, 29, 0, 29, 25, 28, 26, 0, 0, 28, 29, 0, 30, 0, 0, 25, 27, 31, 27, 30, 0, 30, 32, 0, 31, 0, 31, 26, 0, 32, 27, 32, 0, 28, 26, 29, 0, 31, 29, 0, 33, 31, 0, 30, 27, 0, 27, 33, 0, 33, 34, 0, 31, 30, 0, 34, 0, 34, 31, 34, 0, 32, 0, 32, 0, 31, 35, 0, 0, 31, 0, 30, 0, 35, 33, 35, 0, 0, 36, 0, 31, 33, 0, 34, 0, 36, 35, 36, 0, 32, 35, 34, 0, 34, 0, 0, 41, 0, 0, 0, 0, 35, 33, 41, 0, 41, 0, 35, 34, 0, 0, 34, 36, 0, 35, 44, yy_Dummy>>, 1, 200, 74) end yy_chk_template_2 (an_array: ARRAY [INTEGER]) -- Fill chunk #2 of template for `yy_chk'. do yy_array_subcopy (an_array, << 0, 0, 35, 36, 44, 0, 0, 44, 0, 0, 45, 0, 44, 35, 0, 45, 0, 0, 45, 36, 45, 41, 46, 45, 36, 47, 0, 0, 0, 46, 0, 46, 47, 0, 47, 48, 0, 0, 49, 44, 46, 44, 48, 49, 48, 49, 0, 49, 0, 50, 45, 0, 45, 51, 0, 47, 50, 0, 50, 48, 51, 0, 51, 46, 0, 52, 47, 0, 46, 50, 0, 53, 52, 0, 52, 54, 48, 51, 53, 49, 53, 0, 54, 47, 54, 0, 52, 48, 0, 0, 50, 51, 52, 55, 51, 0, 0, 50, 53, 0, 55, 56, 55, 0, 0, 51, 52, 0, 56, 0, 56, 54, 53, 55, 52, 57, 54, 0, 58, 51, 52, 59, 57, 0, 57, 58, 53, 58, 59, 0, 59, 61, 0, 0, 55, 0, 56, 60, 61, 54, 61, 55, 56, 63, 60, 58, 60, 0, 0, 59, 63, 61, 63, 0, 62, 60, 57, 0, 0, 58, 65, 62, 59, 62, 56, 63, 0, 65, 0, 65, 0, 0, 61, 58, 0, 0, 0, 59, 60, 61, 0, 64, 0, 60, 63, 66, 0, 0, 64, 62, 64, 65, 66, 63, 66, 62, 0, 64, 0, 67, yy_Dummy>>, 1, 200, 274) end yy_chk_template_3 (an_array: ARRAY [INTEGER]) -- Fill chunk #3 of template for `yy_chk'. do yy_array_subcopy (an_array, << 0, 65, 68, 69, 0, 66, 67, 0, 67, 68, 69, 68, 69, 0, 64, 0, 0, 62, 0, 65, 73, 72, 64, 0, 68, 64, 66, 73, 72, 73, 72, 0, 0, 66, 0, 0, 0, 0, 73, 0, 67, 72, 64, 68, 69, 0, 74, 0, 0, 0, 75, 76, 68, 74, 0, 74, 67, 75, 76, 75, 76, 73, 72, 0, 0, 69, 73, 76, 77, 72, 0, 0, 78, 74, 0, 77, 81, 77, 0, 78, 0, 78, 0, 81, 0, 81, 0, 74, 0, 0, 0, 75, 76, 82, 0, 76, 78, 77, 79, 80, 82, 74, 82, 83, 0, 79, 80, 79, 80, 77, 83, 0, 83, 78, 81, 0, 0, 81, 79, 80, 84, 82, 0, 0, 78, 77, 85, 84, 0, 84, 83, 0, 0, 85, 82, 85, 86, 0, 0, 79, 80, 0, 81, 86, 83, 86, 79, 80, 87, 82, 85, 0, 0, 88, 0, 87, 0, 87, 83, 89, 88, 84, 88, 84, 90, 92, 89, 85, 89, 0, 0, 90, 92, 90, 92, 91, 93, 86, 85, 0, 0, 87, 91, 93, 91, 93, 88, 0, 0, 87, 94, 0, 0, 90, 88, 0, 93, 94, 0, 94, yy_Dummy>>, 1, 200, 474) end yy_chk_template_4 (an_array: ARRAY [INTEGER]) -- Fill chunk #4 of template for `yy_chk'. do yy_array_subcopy (an_array, << 89, 92, 89, 0, 95, 90, 92, 0, 0, 87, 91, 95, 0, 95, 88, 0, 91, 93, 96, 97, 0, 90, 0, 99, 93, 96, 97, 96, 97, 92, 99, 94, 99, 0, 0, 100, 0, 0, 91, 101, 0, 0, 100, 102, 100, 95, 101, 96, 101, 0, 102, 0, 102, 0, 0, 0, 103, 99, 0, 96, 97, 100, 0, 103, 99, 103, 95, 0, 0, 0, 0, 97, 104, 0, 101, 96, 100, 0, 102, 104, 101, 104, 0, 103, 102, 99, 105, 106, 0, 100, 0, 107, 108, 105, 106, 105, 106, 103, 107, 108, 107, 108, 101, 0, 0, 109, 102, 104, 0, 0, 0, 103, 109, 104, 109, 107, 111, 0, 0, 105, 0, 0, 106, 111, 109, 111, 0, 105, 106, 110, 0, 0, 107, 108, 0, 104, 110, 0, 110, 0, 0, 0, 112, 107, 0, 111, 109, 105, 0, 112, 106, 112, 109, 0, 0, 113, 114, 111, 0, 0, 110, 0, 113, 114, 113, 114, 0, 0, 0, 115, 110, 113, 112, 111, 0, 0, 115, 114, 115, 0, 0, 0, 116, 112, 0, 115, 117, 114, 110, 116, 114, 116, 0, 117, 118, 117, 113, 114, 0, 113, yy_Dummy>>, 1, 200, 674) end yy_chk_template_5 (an_array: ARRAY [INTEGER]) -- Fill chunk #5 of template for `yy_chk'. do yy_array_subcopy (an_array, << 112, 118, 119, 118, 117, 114, 116, 121, 0, 119, 115, 119, 120, 115, 121, 114, 121, 122, 114, 120, 0, 120, 123, 116, 122, 0, 122, 117, 120, 123, 124, 123, 117, 0, 116, 118, 0, 124, 0, 124, 125, 0, 0, 119, 0, 126, 123, 125, 121, 125, 0, 122, 126, 120, 126, 127, 120, 121, 122, 128, 120, 0, 127, 123, 127, 119, 128, 0, 128, 126, 125, 124, 0, 124, 123, 129, 130, 0, 127, 122, 131, 125, 129, 130, 129, 130, 126, 131, 0, 131, 0, 0, 128, 0, 132, 129, 127, 126, 125, 0, 128, 132, 133, 132, 0, 130, 127, 0, 0, 133, 0, 133, 0, 0, 0, 0, 129, 130, 0, 134, 128, 131, 133, 129, 0, 136, 134, 132, 134, 135, 137, 0, 136, 130, 136, 132, 135, 137, 135, 137, 0, 0, 0, 133, 138, 139, 0, 0, 0, 136, 133, 138, 139, 138, 139, 132, 0, 0, 140, 0, 134, 0, 0, 137, 135, 140, 136, 140, 0, 0, 135, 137, 0, 0, 141, 142, 140, 136, 0, 138, 139, 141, 142, 141, 142, 138, 139, 143, 144, 0, 0, 137, 135, 0, 143, 144, 143, 144, 0, 140, yy_Dummy>>, 1, 200, 874) end yy_chk_template_6 (an_array: ARRAY [INTEGER]) -- Fill chunk #6 of template for `yy_chk'. do yy_array_subcopy (an_array, << 0, 0, 0, 145, 140, 0, 0, 138, 139, 141, 145, 146, 145, 0, 147, 141, 142, 148, 146, 0, 146, 147, 0, 147, 148, 0, 148, 0, 143, 144, 0, 0, 149, 0, 143, 0, 0, 141, 147, 149, 146, 149, 150, 0, 145, 144, 0, 151, 0, 150, 148, 150, 146, 152, 151, 147, 151, 0, 148, 0, 152, 149, 152, 0, 0, 0, 147, 151, 146, 0, 153, 0, 150, 149, 0, 154, 0, 153, 148, 153, 0, 0, 154, 150, 154, 0, 0, 0, 151, 149, 155, 0, 0, 0, 152, 151, 0, 155, 0, 155, 150, 157, 0, 0, 0, 154, 156, 0, 157, 0, 157, 153, 0, 156, 0, 156, 154, 0, 158, 159, 0, 157, 0, 0, 0, 158, 159, 158, 159, 0, 160, 155, 0, 154, 161, 159, 156, 160, 0, 160, 0, 161, 157, 161, 162, 163, 0, 156, 158, 157, 0, 162, 163, 162, 163, 0, 0, 0, 164, 158, 159, 165, 0, 159, 156, 164, 160, 164, 165, 0, 165, 160, 166, 167, 0, 161, 158, 161, 0, 166, 167, 166, 167, 165, 168, 162, 163, 0, 0, 0, 0, 168, 0, 168, 160, 0, 0, 0, 169, 164, yy_Dummy>>, 1, 200, 1074) end yy_chk_template_7 (an_array: ARRAY [INTEGER]) -- Fill chunk #7 of template for `yy_chk'. do yy_array_subcopy (an_array, << 0, 166, 165, 170, 168, 169, 164, 169, 0, 0, 170, 165, 170, 166, 167, 0, 0, 171, 0, 0, 0, 0, 170, 0, 171, 168, 171, 0, 172, 166, 0, 0, 168, 173, 169, 172, 174, 172, 0, 169, 173, 0, 173, 174, 170, 174, 175, 0, 171, 0, 170, 0, 0, 175, 0, 175, 0, 176, 171, 0, 173, 172, 169, 177, 176, 0, 176, 174, 0, 172, 177, 0, 177, 178, 173, 0, 171, 174, 0, 0, 178, 175, 178, 0, 177, 179, 0, 175, 173, 172, 176, 0, 179, 180, 179, 174, 0, 0, 176, 181, 180, 0, 180, 0, 177, 0, 181, 0, 181, 175, 182, 0, 177, 0, 178, 183, 184, 182, 176, 182, 178, 185, 183, 184, 183, 184, 179, 0, 185, 0, 185, 0, 0, 0, 180, 186, 184, 181, 0, 187, 181, 0, 186, 188, 186, 182, 187, 0, 187, 0, 188, 182, 188, 0, 186, 0, 183, 184, 0, 187, 0, 189, 185, 0, 184, 181, 0, 188, 189, 0, 189, 0, 0, 182, 0, 0, 186, 0, 0, 190, 187, 189, 186, 191, 188, 0, 190, 187, 190, 192, 191, 0, 191, 0, 0, 188, 192, 193, 192, 0, yy_Dummy>>, 1, 200, 1274) end yy_chk_template_8 (an_array: ARRAY [INTEGER]) -- Fill chunk #8 of template for `yy_chk'. do yy_array_subcopy (an_array, << 0, 194, 189, 190, 193, 195, 193, 0, 194, 189, 194, 0, 195, 192, 195, 193, 196, 0, 0, 197, 190, 0, 0, 196, 191, 196, 197, 0, 197, 0, 192, 190, 0, 0, 194, 0, 0, 197, 193, 0, 0, 192, 194, 193, 198, 0, 195, 199, 0, 196, 0, 198, 200, 198, 199, 0, 199, 196, 0, 200, 197, 200, 194, 201, 0, 197, 202, 199, 0, 0, 201, 203, 201, 202, 0, 202, 0, 196, 203, 0, 203, 0, 204, 205, 0, 198, 0, 200, 199, 204, 205, 204, 205, 200, 0, 199, 206, 0, 0, 201, 0, 202, 207, 206, 201, 206, 203, 202, 0, 207, 205, 207, 203, 208, 0, 200, 0, 0, 0, 206, 208, 209, 208, 204, 205, 204, 0, 201, 209, 202, 209, 0, 210, 0, 203, 207, 0, 206, 205, 210, 0, 210, 211, 207, 0, 0, 0, 206, 0, 211, 0, 211, 208, 210, 208, 0, 0, 212, 213, 0, 209, 211, 209, 207, 212, 213, 212, 213, 214, 215, 0, 0, 0, 210, 0, 214, 215, 214, 215, 0, 208, 210, 0, 211, 0, 217, 0, 212, 209, 211, 0, 213, 217, 216, 217, 0, 218, 0, 212, 213, yy_Dummy>>, 1, 200, 1474) end yy_chk_template_9 (an_array: ARRAY [INTEGER]) -- Fill chunk #9 of template for `yy_chk'. do yy_array_subcopy (an_array, << 216, 0, 216, 218, 0, 218, 0, 219, 0, 214, 215, 220, 0, 0, 219, 212, 219, 216, 220, 213, 220, 221, 0, 0, 0, 0, 217, 219, 221, 222, 221, 220, 218, 0, 216, 0, 222, 218, 222, 0, 223, 0, 0, 0, 225, 216, 0, 223, 219, 223, 0, 225, 220, 225, 0, 219, 221, 224, 222, 220, 218, 0, 221, 0, 224, 227, 224, 223, 0, 226, 222, 0, 227, 228, 227, 224, 226, 0, 226, 225, 228, 223, 228, 229, 221, 225, 222, 230, 226, 0, 229, 0, 229, 231, 230, 223, 230, 0, 224, 0, 231, 227, 231, 224, 233, 0, 227, 225, 234, 0, 226, 233, 232, 233, 228, 234, 226, 234, 235, 232, 230, 232, 0, 0, 229, 235, 231, 235, 230, 227, 0, 0, 232, 233, 231, 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 233, 0, 0, 230, 234, 0, 0, 0, 232, 231, 0, 0, 0, 0, 235, 232, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, yy_Dummy>>, 1, 172, 1674) end yy_base_template: SPECIAL [INTEGER] -- Template for `yy_base' local an_array: ARRAY [INTEGER] once create an_array.make_filled (0, 0, 239) yy_base_template_1 (an_array) yy_base_template_2 (an_array) Result := yy_fixed_array (an_array) end yy_base_template_1 (an_array: ARRAY [INTEGER]) -- Fill chunk #1 of template for `yy_base'. do yy_array_subcopy (an_array, << 0, 0, 0, 138, 1846, 73, 132, 1846, 120, 70, 1846, 1846, 1846, 118, 1846, 73, 1846, 1846, 1846, 102, 74, 86, 91, 90, 78, 116, 139, 142, 121, 147, 165, 170, 175, 193, 203, 219, 231, 105, 112, 110, 100, 249, 105, 98, 268, 279, 291, 294, 304, 307, 318, 322, 334, 340, 344, 362, 370, 384, 387, 390, 406, 400, 423, 412, 450, 429, 454, 468, 471, 472, 104, 88, 490, 489, 515, 519, 520, 537, 541, 567, 568, 545, 562, 572, 589, 595, 605, 617, 622, 628, 633, 644, 634, 645, 659, 673, 687, 688, 86, 692, 704, 708, 712, 725, 741, 755, 756, 760, 761, 774, 798, 785, 811, 824, 825, 838, 851, 855, 863, 871, 881, 876, 886, 891, 899, 909, 914, 924, 928, 944, 945, 949, 963, 971, 988, 998, 994, 999, 1013, 1014, 1027, 1043, 1044, 1056, 1057, 1072, 1080, 1083, 1086, 1101, 1111, 1116, 1122, 1139, 1144, 1159, 1175, 1170, 1187, 1188, 1199, 1203, 1213, 1214, 1227, 1230, 1241, 1242, 1253, 1267, 1272, 1286, 1297, 1302, 1305, 1315, 1326, 1332, 1342, 1354, 1362, 1368, 1379, 1384, 1385, 1390, 1404, 1408, 1412, 1430, 1448, 1452, 1458, 1466, 1470, 1474, 1485, 1488, 1513, 1516, yy_Dummy>>, 1, 200, 0) end yy_base_template_2 (an_array: ARRAY [INTEGER]) -- Fill chunk #2 of template for `yy_base'. do yy_array_subcopy (an_array, << 1521, 1532, 1535, 1540, 1551, 1552, 1565, 1571, 1582, 1590, 1601, 1611, 1626, 1627, 1637, 1638, 1662, 1654, 1665, 1676, 1680, 1690, 1698, 1709, 1726, 1713, 1738, 1734, 1742, 1752, 1756, 1762, 1781, 1773, 1777, 1787, 1846, 79, 92, 75, yy_Dummy>>, 1, 40, 200) end yy_def_template: SPECIAL [INTEGER] -- Template for `yy_def' local an_array: ARRAY [INTEGER] once create an_array.make_filled (0, 0, 239) yy_def_template_1 (an_array) an_array.area.fill_with (237, 72, 97) an_array.put (236, 98) an_array.area.fill_with (237, 99, 235) yy_def_template_2 (an_array) Result := yy_fixed_array (an_array) end yy_def_template_1 (an_array: ARRAY [INTEGER]) -- Fill chunk #1 of template for `yy_def'. do yy_array_subcopy (an_array, << 0, 236, 1, 236, 236, 236, 236, 236, 236, 237, 236, 236, 236, 238, 236, 237, 236, 236, 236, 239, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 236, 236, 236, 236, 237, 238, 236, 239, 239, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 236, 236, yy_Dummy>>, 1, 72, 0) end yy_def_template_2 (an_array: ARRAY [INTEGER]) -- Fill chunk #2 of template for `yy_def'. do yy_array_subcopy (an_array, << 0, 236, 236, 236, yy_Dummy>>, 1, 4, 236) end yy_ec_template: SPECIAL [INTEGER] -- Template for `yy_ec' local an_array: ARRAY [INTEGER] once create an_array.make_filled (0, 0, 257) yy_ec_template_1 (an_array) an_array.area.fill_with (73, 123, 257) Result := yy_fixed_array (an_array) end yy_ec_template_1 (an_array: ARRAY [INTEGER]) -- Fill chunk #1 of template for `yy_ec'. do yy_array_subcopy (an_array, << 0, 73, 73, 73, 73, 73, 73, 73, 73, 1, 2, 73, 73, 1, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 3, 73, 4, 73, 73, 5, 6, 73, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 73, 17, 18, 19, 73, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 37, 44, 37, 45, 46, 47, 73, 48, 73, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 65, 72, 65, yy_Dummy>>, 1, 123, 0) end yy_meta_template: SPECIAL [INTEGER] -- Template for `yy_meta' once Result := yy_fixed_array (<< 0, 3, 3, 3, 3, 1, 2, 3, 3, 3, 1, 3, 1, 1, 1, 2, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, yy_Dummy>>) end yy_accept_template: SPECIAL [INTEGER] -- Template for `yy_accept' local an_array: ARRAY [INTEGER] once create an_array.make_filled (0, 0, 236) yy_accept_template_1 (an_array) yy_accept_template_2 (an_array) Result := yy_fixed_array (an_array) end yy_accept_template_1 (an_array: ARRAY [INTEGER]) -- Fill chunk #1 of template for `yy_accept'. do yy_array_subcopy (an_array, << 0, 0, 0, 50, 48, 1, 2, 11, 48, 8, 4, 5, 7, 47, 6, 46, 3, 9, 10, 44, 46, 46, 15, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 15, 46, 46, 1, 2, 0, 0, 46, 47, 0, 45, 44, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 28, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, 46, 18, 46, 46, 46, 46, 46, 23, 46, 46, 46, 46, 30, 46, 46, 46, 46, 46, 46, 46, 43, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 25, 46, 46, 46, 46, 46, 46, 46, 46, 46, 41, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 26, 46, 46, 31, 46, 46, 46, 46, 46, 46, 46, 19, 46, 46, 12, 46, 46, 46, 46, 46, 46, 22, 24, 46, 29, 46, 46, 46, 46, 46, 38, 40, 37, 46, 46, 46, 20, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 13, 14, 46, 46, 21, 46, 32, 46, 46, 46, 46, 46, 42, 46, 46, 46, 33, 46, 46, 36, 46, yy_Dummy>>, 1, 200, 0) end yy_accept_template_2 (an_array: ARRAY [INTEGER]) -- Fill chunk #2 of template for `yy_accept'. do yy_array_subcopy (an_array, << 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 27, 34, 46, 39, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 16, 35, 46, 46, 46, 46, 46, 17, 0, yy_Dummy>>, 1, 37, 200) end feature {NONE} -- Constants yyJam_base: INTEGER = 1846 -- Position in `yy_nxt'/`yy_chk' tables -- where default jam table starts yyJam_state: INTEGER = 236 -- State id corresponding to jam state yyTemplate_mark: INTEGER = 237 -- Mark between normal states and templates yyNull_equiv_class: INTEGER = 73 -- Equivalence code for NULL character yyMax_symbol_equiv_class: INTEGER = 256 -- All symbols greater than this symbol will have -- the same equivalence class as this symbol yyReject_used: BOOLEAN = false -- Is `reject' called? yyVariable_trail_context: BOOLEAN = false -- Is there a regular expression with -- both leading and trailing parts having -- variable length? yyReject_or_variable_trail_context: BOOLEAN = false -- Is `reject' called or is there a -- regular expression with both leading -- and trailing parts having variable length? yyNb_rules: INTEGER = 49 -- Number of rules yyEnd_of_buffer: INTEGER = 50 -- End of buffer rule code yyLine_used: BOOLEAN = true -- Are line and column numbers used? yyPosition_used: BOOLEAN = true -- Is `position' used? INITIAL: INTEGER = 0 -- Start condition codes feature -- User-defined features feature {NONE} -- Initialization make -- Create a new external scanner. do make_with_buffer (Empty_buffer) create token_buffer.make (Initial_buffer_size) end feature -- Initialization reset -- Reset scanner before scanning next input source. -- (This routine can be called in wrap before scanning -- another input buffer.) do Precursor token_buffer.wipe_out current_class := Void end set_trigger_error (v: like trigger_error) -- Set `trigger_error' with `v'. do trigger_error := v ensure tirgger_error_set: trigger_error = v end feature -- Access token_buffer: STRING -- Buffer for lexial tokens last_value: ANY -- Semantic value to be passed to the parser trigger_error: BOOLEAN -- Should error be triggered? filename: READABLE_STRING_GENERAL -- Current parsed file. file_line, file_column: INTEGER -- Current line and column of parsing in class text `filename'. current_class: ABSTRACT_CLASS_C -- Class in which syntax error occurs. feature {NONE} -- Error handling fatal_error (a_message: STRING) -- A fatal error occurred. -- Log `a_message' and raise an exception. do report_one_error (create {SYNTAX_ERROR}.make (file_line + line - 1, file_column + column - 1, filename, a_message)) end report_one_error (a_error: ERROR) -- Log `a_error'. require a_error_not_void: a_error /= Void do if trigger_error then a_error.set_associated_class (current_class) error_handler.insert_error (a_error) end -- To avoid reporting more than one error for the same lexical error -- we simply abort the scanning. terminate end report_unrecognized_character_error (c: CHARACTER) -- Syntax error for unrecognized character `c'. do report_one_error (create {SYNTAX_ERROR}.make (file_line + line - 1, file_column + column - 1, filename, "Unrecognized character `" + c.out + "'")) end feature {NONE} -- Constants Initial_buffer_size: INTEGER = 1024 -- Initial size for `token_buffer' invariant token_buffer_not_void: token_buffer /= Void note copyright: "Copyright (c) 1984-2012, Eiffel Software" license: "GPL version 2 (see http://www.eiffel.com/licensing/gpl.txt)" licensing_options: "http://www.eiffel.com/licensing" copying: "[ This file is part of Eiffel Software's Eiffel Development Environment. Eiffel Software's Eiffel Development Environment is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License (available at the URL listed under "license" above). Eiffel Software's Eiffel Development Environment is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Eiffel Software's Eiffel Development Environment; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ]" source: "[ Eiffel Software 5949 Hollister Ave., Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end -- class EXTERNAL_SCANNER