#---------------------------------------------------------------------------- # Dialog data and code block - do not modify this code by hand # Generated by LIBERO 2.4 on 22 Jul, 2004, 16:52. # Schema file used: lrschema.pl #---------------------------------------------------------------------------- #-- Symbolic constants and event numbers ------------------------------------ $LR_defaults_state = 7; $LR_STATE_after_init = 0; $LR_STATE_have_filename = 1; $LR_STATE_have_segment = 2; $LR_STATE_after_html_text = 3; $LR_STATE_within_repeat = 4; $LR_STATE_within_field = 5; $LR_STATE_within_action = 6; $LR_STATE_defaults = 7; $terminate_event = -1; # Halts the dialog $LR_NULL_EVENT = -2; $action_event = 0; $blank_line_event = 1; $const_event = 2; $end_action_event = 3; $end_const_event = 4; $end_field_event = 5; $end_if_event = 6; $end_of_file_event = 7; $end_repeat_event = 8; $end_unless_event = 9; $error_event = 10; $exception_event = 11; $field_event = 12; $html_text_event = 13; $if_event = 14; $no_more_files_event = 15; $no_more_segments_event = 16; $ok_event = 17; $repeat_event = 18; $return_event = 19; $unless_event = 20; #-- Standard subroutines used by dialog interpreter ------------------------- sub raise_exception { local ($event) = @_; $the_exception_event = $event; $exception_raised = 1; } sub LR_initialise { $LR_nextst = ""; $LR_nextst .= "000000000000000001000"; $LR_nextst .= "000000010000000102000"; $LR_nextst .= "622222212200532020422"; $LR_nextst .= "623333213200532030422"; $LR_nextst .= "644444442444544444444"; $LR_nextst .= "555555555555555555555"; $LR_nextst .= "666666666666666666666"; $LR_nextst .= "000000000007000000000"; $LR_action = ""; $LR_action .= "000000000000000000000200000000000001000000"; $LR_action .= "000000000000000400000000000000020003000000"; $LR_action .= "160613181417080412100000150507001900111409"; $LR_action .= "161913181417080412100000152007001900111409"; $LR_action .= "161923232323232221232302150523231923231423"; $LR_action .= "261926262624262526262602261426261926262626"; $LR_action .= "281928242828282728282802281428281928282828"; $LR_action .= "000000000000000000000002000000000000000000"; $LR_module = ""; $LR_module .= "01020304" . "00"; $LR_module .= "05" . "00"; $LR_module .= "060708" . "00"; $LR_module .= "091004" . "00"; $LR_module .= "1108" . "00"; $LR_module .= "110708" . "00"; $LR_module .= "1208" . "00"; $LR_module .= "1308" . "00"; $LR_module .= "1408" . "00"; $LR_module .= "1508" . "00"; $LR_module .= "1608" . "00"; $LR_module .= "1705" . "00"; $LR_module .= "1808" . "00"; $LR_module .= "08" . "00"; $LR_module .= "190820" . "00"; $LR_module .= "210820" . "00"; $LR_module .= "2205" . "00"; $LR_module .= "2305" . "00"; $LR_module .= "0708" . "00"; $LR_module .= "2408" . "00"; $LR_module .= "2508" . "00"; $LR_module .= "2605" . "00"; $LR_module .= "2705" . "00"; $LR_module .= "28" . "00"; $LR_module .= "2905" . "00"; $LR_module .= "3005" . "00"; $LR_module .= "3105" . "00"; $LR_module .= "3205" . "00"; $LR_offset [1] = 0; $LR_offset [2] = 5; $LR_offset [3] = 7; $LR_offset [4] = 11; $LR_offset [5] = 15; $LR_offset [6] = 18; $LR_offset [7] = 22; $LR_offset [8] = 25; $LR_offset [9] = 28; $LR_offset [10] = 31; $LR_offset [11] = 34; $LR_offset [12] = 37; $LR_offset [13] = 40; $LR_offset [14] = 43; $LR_offset [15] = 45; $LR_offset [16] = 49; $LR_offset [17] = 53; $LR_offset [18] = 56; $LR_offset [19] = 59; $LR_offset [20] = 62; $LR_offset [21] = 65; $LR_offset [22] = 68; $LR_offset [23] = 71; $LR_offset [24] = 74; $LR_offset [25] = 76; $LR_offset [26] = 79; $LR_offset [27] = 82; $LR_offset [28] = 85; } sub dialog_call { $LR_stack_size < 20 || die "State ", $LR_state, " - Dialog-Call overflow\n"; $LR_stack [++$LR_stack_size] = $LR_state; } sub dialog_return { $LR_stack_size > 0 || die "State ", $LR_state, " - Dialog-Return underflow\n"; $LR_state = $LR_stack [$LR_stack_size--]; &raise_exception ($return_event); } #-- Dialog interpreter starts here ------------------------------------------ $feedback = 0; # Main program feedback $LR_state = 0; # First state is always 0 $LR_stack_size = 0; # Clear subdialog stack &LR_initialise; # Initialise static strings &initialise_the_program; while ($the_next_event != $terminate_event) { $LR_event = $the_next_event; $LR_event < 0 || $LR_event >= 21 && die "State ", $LR_state, " - event ", $LR_event, " is out of range\n"; $LR_index = ($LR_state * 21 + $LR_event) * 2; $LR_index = substr ($LR_action, $LR_index, 2); $LR_savest = $LR_state; # If no action for this event, try the defaults state if ($LR_index == 0) { $LR_state = $LR_defaults_state; $LR_index = ($LR_state * 21 + $LR_event) * 2; $LR_index = substr ($LR_action, $LR_index, 2); $LR_index == 0 && die "State ", $LR_state, " - event ", $LR_event, " is not accepted\n"; } $the_next_event = $LR_NULL_EVENT; $the_exception_event = $LR_NULL_EVENT; $exception_raised = 0; # Execute module list for state transition, 0 indicates end of list $LR_vecptr = $LR_offset [$LR_index]; $LR_modnbr = substr ($LR_module, $LR_vecptr * 2, 2); while ($LR_modnbr > 0 && !$exception_raised) { { # Execute the module $LR_modnbr == 1 && do { &parse_formio_header_file; last; }; $LR_modnbr == 2 && do { &initialise_program_data; last; }; $LR_modnbr == 3 && do { &build_list_of_html_files; last; }; $LR_modnbr == 4 && do { &get_next_file_to_process; last; }; $LR_modnbr == 5 && do { &terminate_the_program; last; }; $LR_modnbr == 6 && do { &open_html_page_file; last; }; $LR_modnbr == 7 && do { &get_next_html_line; last; }; $LR_modnbr == 8 && do { &get_next_line_segment; last; }; $LR_modnbr == 9 && do { &generate_output_file; last; }; $LR_modnbr == 10 && do { &close_html_page_file; last; }; $LR_modnbr == 11 && do { &store_html_text_segment; last; }; $LR_modnbr == 12 && do { &open_if_block; last; }; $LR_modnbr == 13 && do { &close_if_block; last; }; $LR_modnbr == 14 && do { &open_unless_block; last; }; $LR_modnbr == 15 && do { &close_unless_block; last; }; $LR_modnbr == 16 && do { &open_repeat_block; last; }; $LR_modnbr == 17 && do { &signal_no_repeat_open; last; }; $LR_modnbr == 18 && do { &store_constant_definition; last; }; $LR_modnbr == 19 && do { &open_field_block; last; }; $LR_modnbr == 20 && do { &dialog_call; last; }; $LR_modnbr == 21 && do { &open_action_block; last; }; $LR_modnbr == 22 && do { &signal_no_field_open; last; }; $LR_modnbr == 23 && do { &signal_no_action_open; last; }; $LR_modnbr == 24 && do { &concat_html_text_segment; last; }; $LR_modnbr == 25 && do { &close_repeat_block; last; }; $LR_modnbr == 26 && do { &signal_unfinished_repeat; last; }; $LR_modnbr == 27 && do { &signal_not_valid_in_repeat; last; }; $LR_modnbr == 28 && do { &dialog_return; last; }; $LR_modnbr == 29 && do { &signal_unfinished_field; last; }; $LR_modnbr == 30 && do { &signal_not_valid_in_field; last; }; $LR_modnbr == 31 && do { &signal_unfinished_action; last; }; $LR_modnbr == 32 && do { &signal_not_valid_in_action; last; }; } $LR_vecptr++; $LR_modnbr = substr ($LR_module, $LR_vecptr * 2, 2); } # Handle exception if any was raised if ($exception_raised) { $the_exception_event == $LR_NULL_EVENT || ($LR_event = $the_exception_event); $the_next_event = $LR_event; } else { $LR_index = ($LR_state * 21 + $LR_event) * 1; $LR_state = substr ($LR_nextst, $LR_index, 1); } $LR_state = $LR_savest if ($LR_state == $LR_defaults_state); if ($the_next_event == $LR_NULL_EVENT) { &get_external_event; $the_next_event == $LR_NULL_EVENT && die "No event set after event ", $LR_event, " in state ", $LR_state, "\n"; } } exit ($feedback);