diff -r 28af43a8f970 -r ee31ee39eaf6 stage4/generate_c/generate_c.cc --- a/stage4/generate_c/generate_c.cc Mon Feb 11 10:26:35 2008 +0100 +++ b/stage4/generate_c/generate_c.cc Tue Feb 26 10:59:48 2008 +0100 @@ -40,6 +40,7 @@ #include #include #include +#include #include "../../util/symtable.hh" #include "../../util/dsymtable.hh" @@ -181,6 +182,7 @@ #include "function_call_param_iterator.cc" #include "type_initial_value.cc" #include "search_fb_instance_decl.cc" +#include "search_fb_typedecl.cc" #include "search_base_type.cc" #include "search_var_instance_decl.cc" #include "decompose_var_instance_name.cc" @@ -194,6 +196,7 @@ #include "generate_c_vardecl.cc" #include "generate_c_configbody.cc" #include "generate_location_list.cc" +#include "generate_var_list.cc" /***********************************************************************/ /***********************************************************************/ @@ -1432,8 +1435,10 @@ stage4out_c &s4o; stage4out_c pous_s4o; stage4out_c located_variables_s4o; + stage4out_c variables_s4o; generate_c_pous_c generate_c_pous; - + generate_var_list_c *generate_var_list; + symbol_c *current_configuration; const char *current_name; @@ -1446,6 +1451,7 @@ s4o(*s4o_ptr), pous_s4o(builddir, "POUS", "c"), located_variables_s4o(builddir, "LOCATED_VARIABLES","h"), + variables_s4o(builddir, "VARIABLES","h"), generate_c_pous(&pous_s4o) { current_builddir = builddir; current_configuration = NULL; @@ -1457,9 +1463,14 @@ /* B 0 - Programming Model */ /***************************/ void *visit(library_c *symbol) { + generate_var_list = new generate_var_list_c(&variables_s4o, symbol); + for(int i = 0; i < symbol->n; i++) { symbol->elements[i]->accept(*this); } + + delete generate_var_list; + generate_location_list_c generate_location_list(&located_variables_s4o); symbol->accept(generate_location_list); return NULL; @@ -1543,6 +1554,8 @@ current_configuration = NULL; + symbol->accept(*generate_var_list); + return NULL; }