Also check FB passed as parameters in FB/Function calls (Thanks Andreas!)
authorMario de Sousa <msousa@fe.up.pt>
Thu, 27 Sep 2012 18:14:52 +0100
changeset 662 b1b11dd09a54
parent 661 f537c3315f83
child 663 6ad7de83d22c
Also check FB passed as parameters in FB/Function calls (Thanks Andreas!)
absyntax_utils/function_param_iterator.cc
absyntax_utils/function_param_iterator.hh
--- a/absyntax_utils/function_param_iterator.cc	Wed Sep 26 20:12:39 2012 +0200
+++ b/absyntax_utils/function_param_iterator.cc	Thu Sep 27 18:14:52 2012 +0100
@@ -442,7 +442,6 @@
 //SYM_REF2(array_var_init_decl_c, var1_list, array_spec_init)
 void *function_param_iterator_c::visit(array_var_init_decl_c *symbol) {
   TRACE("array_var_init_decl_c");
-
   current_param_default_value = spec_init_sperator_c::get_init(symbol->array_spec_init);
   current_param_type = spec_init_sperator_c::get_spec(symbol->array_spec_init);
 
@@ -460,6 +459,26 @@
   return symbol->var1_list->accept(*this);
 }
 
+
+
+
+/* fb_name_list ':' function_block_type_name ASSIGN structure_initialization */
+/* structure_initialization -> may be NULL ! */
+// SYM_REF3(fb_name_decl_c, fb_name_list, function_block_type_name, structure_initialization)
+void *function_param_iterator_c::visit(fb_name_decl_c *symbol) {
+  TRACE("structured_var_init_decl_c");
+  current_param_default_value = symbol->structure_initialization ; 
+  current_param_type          = symbol->function_block_type_name ;
+
+  return symbol->fb_name_list->accept(*this);
+}
+
+
+/* fb_name_list ',' fb_name */
+// SYM_LIST(fb_name_list_c)
+void *function_param_iterator_c::visit(fb_name_list_c *symbol) {TRACE("fb_name_list_c"); return handle_param_list(symbol);}
+
+
 void *function_param_iterator_c::visit(output_declarations_c *symbol) {
   TRACE("output_declarations_c");
   current_param_direction = direction_out;
@@ -496,22 +515,18 @@
 /*  var1_list ':' array_specification */
 //SYM_REF2(array_var_declaration_c, var1_list, array_specification)
 void *function_param_iterator_c::visit(array_var_declaration_c *symbol) {
-	TRACE("array_var_declaration_c");
-
-	current_param_default_value = NULL;
-	current_param_type = symbol->array_specification;
-
-	return symbol->var1_list->accept(*this);
+  TRACE("array_var_declaration_c");
+  current_param_default_value = NULL;
+  current_param_type = symbol->array_specification;
+  return symbol->var1_list->accept(*this);
 }
 
 /*  var1_list ':' structure_type_name */
 //SYM_REF2(structured_var_declaration_c, var1_list, structure_type_name)
 void *function_param_iterator_c::visit(structured_var_declaration_c *symbol) {
   TRACE("structured_var_declaration_c");
-
   current_param_default_value = NULL;
   current_param_type = symbol->structure_type_name;
-
   return symbol->var1_list->accept(*this);
 }
 
--- a/absyntax_utils/function_param_iterator.hh	Wed Sep 26 20:12:39 2012 +0200
+++ b/absyntax_utils/function_param_iterator.hh	Thu Sep 27 18:14:52 2012 +0100
@@ -193,15 +193,15 @@
     //SYM_REF2(structured_var_init_decl_c, var1_list, initialized_structure)
     void *visit(structured_var_init_decl_c *symbol);
     
-#if 0
-/* name_list ':' function_block_type_name ASSIGN structure_initialization */
-/* structure_initialization -> may be NULL ! */
-SYM_REF4(fb_name_decl_c, fb_name_list, function_block_type_name, structure_initialization, unused)
-
-/* name_list ',' fb_name */
-SYM_LIST(fb_name_list_c)
-#endif
-
+    /* name_list ':' function_block_type_name ASSIGN structure_initialization */
+    /* structure_initialization -> may be NULL ! */
+    // SYM_REF4(fb_name_decl_c, fb_name_list, function_block_type_name, structure_initialization, unused)
+    void *visit(fb_name_decl_c *symbol);
+
+    /* name_list ',' fb_name */
+    // SYM_LIST(fb_name_list_c)
+    void *visit(fb_name_list_c *symbol);
+    
     void *visit(output_declarations_c *symbol);
     void *visit(eno_param_declaration_c *symbol);
     void *visit(input_output_declarations_c *symbol);