diff -r 29ab33687333 -r 3d23a68183d3 absyntax_utils/function_param_iterator.cc --- a/absyntax_utils/function_param_iterator.cc Fri Dec 11 13:01:17 2009 +0100 +++ b/absyntax_utils/function_param_iterator.cc Sat Dec 12 20:41:32 2009 +0100 @@ -159,6 +159,7 @@ identifier_c *identifier; param_count = 0; + en_eno_param_implicit = false; next_param++; current_operation = function_param_iterator_c::iterate_op; res = f_decl->accept(*this); @@ -196,6 +197,11 @@ return current_param_type; } +/* Returns if currently referenced parameter is an implicit defined EN/ENO parameter. */ +bool function_param_iterator_c::is_en_eno_param_implicit(void) { + return en_eno_param_implicit; +} + /* Returns the currently referenced parameter's data passing direction. * i.e. VAR_INPUT, VAR_OUTPUT or VAR_INOUT */ @@ -203,6 +209,11 @@ return current_param_direction; } +void *function_param_iterator_c::visit(implicit_definition_c *symbol) { + en_eno_param_implicit = current_operation == function_param_iterator_c::iterate_op; + return NULL; +} + /****************************************/ /* 1.4.3 - Declaration & Initialisation */ /****************************************/ @@ -224,6 +235,8 @@ * variables will get overwritten when we visit the next * var1_init_decl_c list! */ + symbol->method->accept(*this); + current_param_default_value = symbol->value; current_param_type = symbol->type; @@ -251,14 +264,12 @@ * variables will get overwritten when we visit the next * var1_init_decl_c list! */ + symbol->method->accept(*this); + current_param_default_value = NULL; current_param_type = symbol->type; return handle_single_param(symbol->name); -#if 0 - if (eno_declared) ERROR; - return (void *)declare_eno_param(); -#endif } void *function_param_iterator_c::visit(input_output_declarations_c *symbol) { TRACE("input_output_declarations_c");