diff -r c55b02ca2342 -r cece842c7417 stage4/generate_c/generate_c_il.cc --- a/stage4/generate_c/generate_c_il.cc Tue Dec 15 11:18:19 2009 +0100 +++ b/stage4/generate_c/generate_c_il.cc Tue Dec 15 16:29:44 2009 +0100 @@ -660,6 +660,7 @@ current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable); symbol->subscripted_variable->accept(*this); if (current_array_type != NULL) { + s4o.print(".table"); symbol->subscript_list->accept(*this); current_array_type = NULL; } @@ -669,6 +670,7 @@ current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable); symbol->subscripted_variable->accept(*this); if (current_array_type != NULL) { + s4o.print(".table"); symbol->subscript_list->accept(*this); current_array_type = NULL; } @@ -697,15 +699,26 @@ /******************************************/ /* B 1.4.3 - Declaration & Initialisation */ /******************************************/ + +/* helper symbol for structure_initialization */ +/* structure_element_initialization_list ',' structure_element_initialization */ void *visit(structure_element_initialization_list_c *symbol) { generate_c_structure_initialization_c *structure_initialization = new generate_c_structure_initialization_c(&s4o); structure_initialization->init_structure_default(this->current_param_type); - structure_initialization->current_mode = generate_c_structure_initialization_c::initializationvalue_sm; - symbol->accept(*structure_initialization); + structure_initialization->init_structure_values(symbol); delete structure_initialization; return NULL; } +/* helper symbol for array_initialization */ +/* array_initial_elements_list ',' array_initial_elements */ +void *visit(array_initial_elements_list_c *symbol) { + generate_c_array_initialization_c *array_initialization = new generate_c_array_initialization_c(&s4o); + array_initialization->init_array_size(this->current_param_type); + array_initialization->init_array_values(symbol); + delete array_initialization; + return NULL; +} /****************************************/ /* B.2 - Language IL (Instruction List) */ /****************************************/