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); }