134 void print_reset_step(symbol_c *step_name) { |
134 void print_reset_step(symbol_c *step_name) { |
135 s4o.print(s4o.indent_spaces); |
135 s4o.print(s4o.indent_spaces); |
136 s4o.print(SET_VAR); |
136 s4o.print(SET_VAR); |
137 s4o.print("("); |
137 s4o.print("("); |
138 print_step_argument(step_name, "state", true); |
138 print_step_argument(step_name, "state", true); |
139 s4o.print(",0);\n"); |
139 s4o.print(",,0);\n"); |
140 } |
140 } |
141 |
141 |
142 void print_set_step(symbol_c *step_name) { |
142 void print_set_step(symbol_c *step_name) { |
143 s4o.print(s4o.indent_spaces); |
143 s4o.print(s4o.indent_spaces); |
144 s4o.print(SET_VAR); |
144 s4o.print(SET_VAR); |
145 s4o.print("("); |
145 s4o.print("("); |
146 print_step_argument(step_name, "state", true); |
146 print_step_argument(step_name, "state", true); |
147 s4o.print(",1);\n" + s4o.indent_spaces); |
147 s4o.print(",,1);\n" + s4o.indent_spaces); |
148 print_step_argument(step_name, "elapsed_time"); |
148 print_step_argument(step_name, "elapsed_time"); |
149 s4o.print(" = __time_to_timespec(1, 0, 0, 0, 0, 0);\n"); |
149 s4o.print(" = __time_to_timespec(1, 0, 0, 0, 0, 0);\n"); |
150 } |
150 } |
151 |
151 |
152 /*********************************************/ |
152 /*********************************************/ |
297 s4o.print(SET_VAR); |
297 s4o.print(SET_VAR); |
298 s4o.print("("); |
298 s4o.print("("); |
299 print_variable_prefix(); |
299 print_variable_prefix(); |
300 s4o.print(",__transition_list["); |
300 s4o.print(",__transition_list["); |
301 print_transition_number(); |
301 print_transition_number(); |
302 s4o.print("],0);\n"); |
302 s4o.print("],,0);\n"); |
303 s4o.indent_left(); |
303 s4o.indent_left(); |
304 s4o.print(s4o.indent_spaces + "}\n"); |
304 s4o.print(s4o.indent_spaces + "}\n"); |
305 break; |
305 break; |
306 case stepset_sg: |
306 case stepset_sg: |
307 s4o.print(s4o.indent_spaces + "if ("); |
307 s4o.print(s4o.indent_spaces + "if ("); |
356 s4o.print("__debug_"); |
356 s4o.print("__debug_"); |
357 else |
357 else |
358 s4o.print("__"); |
358 s4o.print("__"); |
359 s4o.print("transition_list["); |
359 s4o.print("transition_list["); |
360 print_transition_number(); |
360 print_transition_number(); |
361 s4o.print("],"); |
361 s4o.print("],,"); |
362 generate_c_il->print_implicit_variable_back(); |
362 generate_c_il->print_implicit_variable_back(); |
363 // generate_c_il->reset_default_variable_name(); // generate_c_il does not require his anymore |
363 // generate_c_il->reset_default_variable_name(); // generate_c_il does not require his anymore |
364 s4o.print(");\n"); |
364 s4o.print(");\n"); |
365 } |
365 } |
366 // Transition condition is in ST |
366 // Transition condition is in ST |
374 s4o.print("__debug_"); |
374 s4o.print("__debug_"); |
375 else |
375 else |
376 s4o.print("__"); |
376 s4o.print("__"); |
377 s4o.print("transition_list["); |
377 s4o.print("transition_list["); |
378 print_transition_number(); |
378 print_transition_number(); |
379 s4o.print("],"); |
379 s4o.print("],,"); |
380 symbol->transition_condition_st->accept(*generate_c_st); |
380 symbol->transition_condition_st->accept(*generate_c_st); |
381 s4o.print(");\n"); |
381 s4o.print(");\n"); |
382 } |
382 } |
383 if (wanted_sfcgeneration == transitiontest_sg) { |
383 if (wanted_sfcgeneration == transitiontest_sg) { |
384 s4o.print(s4o.indent_spaces + "if (__DEBUG) {\n"); |
384 s4o.print(s4o.indent_spaces + "if (__DEBUG) {\n"); |
387 s4o.print(SET_VAR); |
387 s4o.print(SET_VAR); |
388 s4o.print("("); |
388 s4o.print("("); |
389 print_variable_prefix(); |
389 print_variable_prefix(); |
390 s4o.print(",__debug_transition_list["); |
390 s4o.print(",__debug_transition_list["); |
391 print_transition_number(); |
391 print_transition_number(); |
392 s4o.print("],"); |
392 s4o.print("],,"); |
393 s4o.print(GET_VAR); |
393 s4o.print(GET_VAR); |
394 s4o.print("("); |
394 s4o.print("("); |
395 print_variable_prefix(); |
395 print_variable_prefix(); |
396 s4o.print("__transition_list["); |
396 s4o.print("__transition_list["); |
397 print_transition_number(); |
397 print_transition_number(); |
512 s4o.indent_right(); |
512 s4o.indent_right(); |
513 s4o.print(s4o.indent_spaces); |
513 s4o.print(s4o.indent_spaces); |
514 s4o.print(SET_VAR); |
514 s4o.print(SET_VAR); |
515 s4o.print("("); |
515 s4o.print("("); |
516 print_action_argument(symbol->action_name, "state", true); |
516 print_action_argument(symbol->action_name, "state", true); |
517 s4o.print(",1);\n"); |
517 s4o.print(",,1);\n"); |
518 s4o.indent_left(); |
518 s4o.indent_left(); |
519 s4o.print(s4o.indent_spaces + "}"); |
519 s4o.print(s4o.indent_spaces + "}"); |
520 } |
520 } |
521 break; |
521 break; |
522 default: |
522 default: |
573 s4o.print(SET_VAR); |
573 s4o.print(SET_VAR); |
574 s4o.print("("); |
574 s4o.print("("); |
575 print_variable_prefix(); |
575 print_variable_prefix(); |
576 s4o.print(","); |
576 s4o.print(","); |
577 current_action->accept(*this); |
577 current_action->accept(*this); |
578 s4o.print(",1);\n"); |
578 s4o.print(",,1);\n"); |
579 s4o.indent_left(); |
579 s4o.indent_left(); |
580 s4o.print(s4o.indent_spaces + "}\n"); |
580 s4o.print(s4o.indent_spaces + "}\n"); |
581 s4o.print(s4o.indent_spaces + "else if (active) {\n"); |
581 s4o.print(s4o.indent_spaces + "else if (active) {\n"); |
582 s4o.indent_right(); |
582 s4o.indent_right(); |
583 s4o.print(s4o.indent_spaces); |
583 s4o.print(s4o.indent_spaces); |
589 s4o.print(SET_VAR); |
589 s4o.print(SET_VAR); |
590 s4o.print("("); |
590 s4o.print("("); |
591 print_variable_prefix(); |
591 print_variable_prefix(); |
592 s4o.print(","); |
592 s4o.print(","); |
593 current_action->accept(*this); |
593 current_action->accept(*this); |
594 s4o.print(",0);\n"); |
594 s4o.print(",,0);\n"); |
595 } |
595 } |
596 |
596 |
597 else { |
597 else { |
598 s4o.print(SET_VAR); |
598 s4o.print(SET_VAR); |
599 s4o.print("("); |
599 s4o.print("("); |
600 print_action_argument(current_action, "state", true); |
600 print_action_argument(current_action, "state", true); |
601 s4o.print(",1);\n"); |
601 s4o.print(",,1);\n"); |
602 } |
602 } |
603 } |
603 } |
604 if (strcmp(qualifier, "S") == 0 || strcmp(qualifier, "SL") == 0) { |
604 if (strcmp(qualifier, "S") == 0 || strcmp(qualifier, "SL") == 0) { |
605 print_action_argument(current_action, "set"); |
605 print_action_argument(current_action, "set"); |
606 s4o.print(" = 1;\n"); |
606 s4o.print(" = 1;\n"); |
771 s4o.indent_right(); |
771 s4o.indent_right(); |
772 s4o.print(s4o.indent_spaces); |
772 s4o.print(s4o.indent_spaces); |
773 s4o.print(SET_VAR); |
773 s4o.print(SET_VAR); |
774 s4o.print("("); |
774 s4o.print("("); |
775 print_variable_prefix(); |
775 print_variable_prefix(); |
776 s4o.print(",__action_list[i].state,0);\n"); |
776 s4o.print(",__action_list[i].state,,0);\n"); |
777 s4o.print(s4o.indent_spaces); |
777 s4o.print(s4o.indent_spaces); |
778 print_variable_prefix(); |
778 print_variable_prefix(); |
779 s4o.print("__action_list[i].set = 0;\n"); |
779 s4o.print("__action_list[i].set = 0;\n"); |
780 s4o.print(s4o.indent_spaces); |
780 s4o.print(s4o.indent_spaces); |
781 print_variable_prefix(); |
781 print_variable_prefix(); |
893 s4o.indent_left(); |
893 s4o.indent_left(); |
894 s4o.print(s4o.indent_spaces + "}\n" + s4o.indent_spaces); |
894 s4o.print(s4o.indent_spaces + "}\n" + s4o.indent_spaces); |
895 s4o.print(SET_VAR); |
895 s4o.print(SET_VAR); |
896 s4o.print("("); |
896 s4o.print("("); |
897 print_variable_prefix(); |
897 print_variable_prefix(); |
898 s4o.print(",__action_list[i].state,"); |
898 s4o.print(",__action_list[i].state,,"); |
899 s4o.print(GET_VAR); |
899 s4o.print(GET_VAR); |
900 s4o.print("("); |
900 s4o.print("("); |
901 print_variable_prefix(); |
901 print_variable_prefix(); |
902 s4o.print("__action_list[i].state) | "); |
902 s4o.print("__action_list[i].state) | "); |
903 print_variable_prefix(); |
903 print_variable_prefix(); |
930 s4o.print(SET_VAR); |
930 s4o.print(SET_VAR); |
931 s4o.print("("); |
931 s4o.print("("); |
932 print_variable_prefix(); |
932 print_variable_prefix(); |
933 s4o.print(","); |
933 s4o.print(","); |
934 pt->symbol->accept(*this); |
934 pt->symbol->accept(*this); |
935 s4o.print(",0);\n"); |
935 s4o.print(",,0);\n"); |
936 s4o.indent_left(); |
936 s4o.indent_left(); |
937 s4o.print(s4o.indent_spaces + "}\n"); |
937 s4o.print(s4o.indent_spaces + "}\n"); |
938 s4o.print(s4o.indent_spaces + "else if ("); |
938 s4o.print(s4o.indent_spaces + "else if ("); |
939 print_variable_prefix(); |
939 print_variable_prefix(); |
940 s4o.print("__action_list["); |
940 s4o.print("__action_list["); |