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