# HG changeset patch # User Mario de Sousa # Date 1348766092 -3600 # Node ID b1b11dd09a543f494d3f6d27d2bc1a6c519b6d75 # Parent f537c3315f830a25d04e702d890a0605aeb77286 Also check FB passed as parameters in FB/Function calls (Thanks Andreas!) diff -r f537c3315f83 -r b1b11dd09a54 absyntax_utils/function_param_iterator.cc --- 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); } diff -r f537c3315f83 -r b1b11dd09a54 absyntax_utils/function_param_iterator.hh --- 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);