441 switch (wanted_sfcgeneration) { |
441 switch (wanted_sfcgeneration) { |
442 case transitiontest_sg: |
442 case transitiontest_sg: |
443 for(int i = 0; i < symbol->n; i++) { |
443 for(int i = 0; i < symbol->n; i++) { |
444 s4o.print(GET_VAR); |
444 s4o.print(GET_VAR); |
445 s4o.print("("); |
445 s4o.print("("); |
446 print_step_argument(symbol->elements[i], "X"); |
446 print_step_argument(symbol->get_element(i), "X"); |
447 s4o.print(")"); |
447 s4o.print(")"); |
448 if (i < symbol->n - 1) { |
448 if (i < symbol->n - 1) { |
449 s4o.print(" && "); |
449 s4o.print(" && "); |
450 } |
450 } |
451 } |
451 } |
452 break; |
452 break; |
453 case stepset_sg: |
453 case stepset_sg: |
454 for(int i = 0; i < symbol->n; i++) { |
454 for(int i = 0; i < symbol->n; i++) { |
455 print_set_step(symbol->elements[i]); |
455 print_set_step(symbol->get_element(i)); |
456 } |
456 } |
457 break; |
457 break; |
458 case stepreset_sg: |
458 case stepreset_sg: |
459 for(int i = 0; i < symbol->n; i++) { |
459 for(int i = 0; i < symbol->n; i++) { |
460 print_reset_step(symbol->elements[i]); |
460 print_reset_step(symbol->get_element(i)); |
461 } |
461 } |
462 break; |
462 break; |
463 default: |
463 default: |
464 break; |
464 break; |
465 } |
465 } |
708 void *visit(sequential_function_chart_c *symbol) { |
708 void *visit(sequential_function_chart_c *symbol) { |
709 int i; |
709 int i; |
710 |
710 |
711 generate_c_sfc_elements->reset_transition_number(); |
711 generate_c_sfc_elements->reset_transition_number(); |
712 for(i = 0; i < symbol->n; i++) { |
712 for(i = 0; i < symbol->n; i++) { |
713 symbol->elements[i]->accept(*this); |
713 symbol->get_element(i)->accept(*this); |
714 generate_c_sfc_elements->generate(symbol->elements[i], generate_c_sfc_elements_c::transitionlist_sg); |
714 generate_c_sfc_elements->generate(symbol->get_element(i), generate_c_sfc_elements_c::transitionlist_sg); |
715 } |
715 } |
716 |
716 |
717 s4o.print(s4o.indent_spaces +"INT i;\n"); |
717 s4o.print(s4o.indent_spaces +"INT i;\n"); |
718 s4o.print(s4o.indent_spaces +"TIME elapsed_time, current_time;\n\n"); |
718 s4o.print(s4o.indent_spaces +"TIME elapsed_time, current_time;\n\n"); |
719 |
719 |
851 |
851 |
852 /* generate transition reset steps */ |
852 /* generate transition reset steps */ |
853 s4o.print(s4o.indent_spaces + "// Transitions reset steps\n"); |
853 s4o.print(s4o.indent_spaces + "// Transitions reset steps\n"); |
854 generate_c_sfc_elements->reset_transition_number(); |
854 generate_c_sfc_elements->reset_transition_number(); |
855 for(i = 0; i < symbol->n; i++) { |
855 for(i = 0; i < symbol->n; i++) { |
856 generate_c_sfc_elements->generate(symbol->elements[i], generate_c_sfc_elements_c::stepreset_sg); |
856 generate_c_sfc_elements->generate(symbol->get_element(i), generate_c_sfc_elements_c::stepreset_sg); |
857 } |
857 } |
858 s4o.print("\n"); |
858 s4o.print("\n"); |
859 |
859 |
860 /* generate transition set steps */ |
860 /* generate transition set steps */ |
861 s4o.print(s4o.indent_spaces + "// Transitions set steps\n"); |
861 s4o.print(s4o.indent_spaces + "// Transitions set steps\n"); |
862 generate_c_sfc_elements->reset_transition_number(); |
862 generate_c_sfc_elements->reset_transition_number(); |
863 for(i = 0; i < symbol->n; i++) { |
863 for(i = 0; i < symbol->n; i++) { |
864 generate_c_sfc_elements->generate(symbol->elements[i], generate_c_sfc_elements_c::stepset_sg); |
864 generate_c_sfc_elements->generate(symbol->get_element(i), generate_c_sfc_elements_c::stepset_sg); |
865 } |
865 } |
866 s4o.print("\n"); |
866 s4o.print("\n"); |
867 |
867 |
868 /* generate step association */ |
868 /* generate step association */ |
869 s4o.print(s4o.indent_spaces + "// Steps association\n"); |
869 s4o.print(s4o.indent_spaces + "// Steps association\n"); |
870 for(i = 0; i < symbol->n; i++) { |
870 for(i = 0; i < symbol->n; i++) { |
871 generate_c_sfc_elements->generate(symbol->elements[i], generate_c_sfc_elements_c::actionassociation_sg); |
871 generate_c_sfc_elements->generate(symbol->get_element(i), generate_c_sfc_elements_c::actionassociation_sg); |
872 } |
872 } |
873 s4o.print("\n"); |
873 s4o.print("\n"); |
874 |
874 |
875 /* generate action state evaluation */ |
875 /* generate action state evaluation */ |
876 s4o.print(s4o.indent_spaces + "// Actions state evaluation\n"); |
876 s4o.print(s4o.indent_spaces + "// Actions state evaluation\n"); |