stage4/generate_iec/generate_iec.cc
changeset 17 38754701ac41
parent 16 e8b99f896416
child 27 667721cf52c5
--- a/stage4/generate_iec/generate_iec.cc	Tue Feb 20 18:17:21 2007 +0100
+++ b/stage4/generate_iec/generate_iec.cc	Fri Feb 23 19:19:23 2007 +0100
@@ -1118,7 +1118,7 @@
 
 /* TRANSITION [transition_name] ['(' 'PRIORITY' ':=' integer ')']
  *   FROM steps TO steps 
- *   transition_condition
+ *   ':' simple_instr_list | ':=' expression
  * END_TRANSITION
  */
 void *visit(transition_c *symbol) {
@@ -1139,10 +1139,15 @@
   symbol->to_steps->accept(*this);
   s4o.indent_right();
   if (symbol->transition_condition_il != NULL) {
-  	symbol->transition_condition_il->accept(*this);
+  	s4o.print(":\n");
+    symbol->transition_condition_il->accept(*this);
   }
   if (symbol->transition_condition_st != NULL) {
-  	symbol->transition_condition_st->accept(*this);
+  	s4o.print("\n");
+    s4o.print(s4o.indent_spaces);
+    s4o.print(":= ");
+    symbol->transition_condition_st->accept(*this);
+    s4o.print(";\n");
   }
   s4o.indent_left();
   s4o.print(s4o.indent_spaces);
@@ -1167,22 +1172,6 @@
   return NULL;
 }
 
-/* ':' simple_instr_list | ':=' expression */
-void *visit(transition_condition_c *symbol) {
-  if (symbol->simple_instr_list != NULL) {
-    s4o.print(":\n");
-    symbol->simple_instr_list->accept(*this);
-  }
-  if (symbol->expression != NULL) {
-    s4o.print("\n");
-    s4o.print(s4o.indent_spaces);
-    s4o.print(":= ");
-    symbol->expression->accept(*this);
-    s4o.print(";\n");
-  }
-  return NULL;
-}
-
 /* ACTION action_name ':' function_block_body END_ACTION */
 void *visit(action_c *symbol) {
   s4o.print(s4o.indent_spaces);