stage4/generate_c/generate_c_sfc.cc
changeset 793 268bf4ca5fa1
parent 682 966f32af570d
parent 704 1adc8df05d2b
child 861 443e8243f289
--- a/stage4/generate_c/generate_c_sfc.cc	Thu Jan 03 17:04:04 2013 +0000
+++ b/stage4/generate_c/generate_c_sfc.cc	Thu Jan 03 18:23:07 2013 +0000
@@ -203,21 +203,22 @@
             current_step = symbol->step_name;
             s4o.print(s4o.indent_spaces + "{\n");
             s4o.indent_right();
-            s4o.print(s4o.indent_spaces + "char activated = ");
+            s4o.print(s4o.indent_spaces + "char activated, desactivated, active;\n");
+            s4o.print(s4o.indent_spaces + "activated = ");
             s4o.print(GET_VAR);
             s4o.print("(");
             print_step_argument(current_step, "state");
             s4o.print(") && !");
             print_step_argument(current_step, "prev_state");
             s4o.print(";\n");
-            s4o.print(s4o.indent_spaces + "char desactivated = !");
+            s4o.print(s4o.indent_spaces + "desactivated = !");
             s4o.print(GET_VAR);
             s4o.print("(");
             print_step_argument(current_step, "state");
             s4o.print(") && ");
             print_step_argument(current_step, "prev_state");
             s4o.print(";\n");
-            s4o.print(s4o.indent_spaces + "char active = ");
+            s4o.print(s4o.indent_spaces + "active = ");
             s4o.print(GET_VAR);
             s4o.print("(");
             print_step_argument(current_step, "state");
@@ -576,9 +577,10 @@
                 current_action->accept(*this);
                 s4o.print(",1);\n");
                 s4o.indent_left();
-                s4o.print("}\n");
+                s4o.print(s4o.indent_spaces + "}\n");
                 s4o.print(s4o.indent_spaces + "else if (active) {\n");
                 s4o.indent_right();
+                s4o.print(s4o.indent_spaces);
                 if (vartype == search_var_instance_decl_c::external_vt)
                   s4o.print(SET_EXTERNAL);
                 else if (vartype == search_var_instance_decl_c::located_vt)
@@ -610,7 +612,8 @@
             if (strcmp(qualifier, "SD") == 0 || strcmp(qualifier, "DS") == 0 || 
                 strcmp(qualifier, "SL") == 0) {
               if (strcmp(qualifier, "SL") == 0) {
-                print_action_argument(current_action, "reset_remaining_time");
+            	s4o.print(s4o.indent_spaces);
+            	print_action_argument(current_action, "reset_remaining_time");
               }
               else {
                 print_action_argument(current_action, "set_remaining_time");
@@ -622,9 +625,7 @@
             s4o.indent_left();
             s4o.print(s4o.indent_spaces + "}\n");
             if (strcmp(qualifier, "DS") == 0) {
-              s4o.print(s4o.indent_spaces + "if (");
-              s4o.print("desactivated");
-              s4o.print(") {\n");
+              s4o.print(s4o.indent_spaces + "if (desactivated) {\n");
               s4o.indent_right();
               s4o.print(s4o.indent_spaces);
               print_action_argument(current_action, "set_remaining_time");
@@ -699,7 +700,6 @@
       }
       
       s4o.print(s4o.indent_spaces +"INT i;\n");
-      s4o.print(s4o.indent_spaces +"BOOL transition;\n");
       s4o.print(s4o.indent_spaces +"TIME elapsed_time, current_time;\n\n");
       
       /* generate elapsed_time initializations */