stage4/generate_c/generate_c_st.cc
changeset 237 cece842c7417
parent 236 c55b02ca2342
child 238 0919986a5c98
equal deleted inserted replaced
236:c55b02ca2342 237:cece842c7417
   293       break;
   293       break;
   294     case complextype_suffix_vg:
   294     case complextype_suffix_vg:
   295       current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable);
   295       current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable);
   296       symbol->subscripted_variable->accept(*this);
   296       symbol->subscripted_variable->accept(*this);
   297       if (current_array_type != NULL) {
   297       if (current_array_type != NULL) {
   298         symbol->subscript_list->accept(*this);
   298         s4o.print(".table");
       
   299     	symbol->subscript_list->accept(*this);
   299         current_array_type = NULL;
   300         current_array_type = NULL;
   300       }
   301       }
   301       break;
   302       break;
   302     default:
   303     default:
   303       if (this->is_variable_prefix_null()) {
   304       if (this->is_variable_prefix_null()) {
   304     	current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable);
   305     	current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable);
   305     	symbol->subscripted_variable->accept(*this);
   306     	symbol->subscripted_variable->accept(*this);
   306     	if (current_array_type != NULL) {
   307     	if (current_array_type != NULL) {
       
   308           s4o.print(".table");
   307     	  symbol->subscript_list->accept(*this);
   309     	  symbol->subscript_list->accept(*this);
   308     	  current_array_type = NULL;
   310     	  current_array_type = NULL;
   309     	}
   311     	}
   310       }
   312       }
   311       else
   313       else
   330 }
   332 }
   331 
   333 
   332 /******************************************/
   334 /******************************************/
   333 /* B 1.4.3 - Declaration & Initialisation */
   335 /* B 1.4.3 - Declaration & Initialisation */
   334 /******************************************/
   336 /******************************************/
       
   337 
       
   338 /* helper symbol for structure_initialization */
       
   339 /* structure_element_initialization_list ',' structure_element_initialization */
   335 void *visit(structure_element_initialization_list_c *symbol) {
   340 void *visit(structure_element_initialization_list_c *symbol) {
   336   generate_c_structure_initialization_c *structure_initialization = new generate_c_structure_initialization_c(&s4o);
   341   generate_c_structure_initialization_c *structure_initialization = new generate_c_structure_initialization_c(&s4o);
   337   structure_initialization->init_structure_default(this->current_param_type);
   342   structure_initialization->init_structure_default(this->current_param_type);
   338   structure_initialization->current_mode = generate_c_structure_initialization_c::initializationvalue_sm;
   343   structure_initialization->init_structure_values(symbol);
   339   symbol->accept(*structure_initialization);
       
   340   delete structure_initialization;
   344   delete structure_initialization;
       
   345   return NULL;
       
   346 }
       
   347 
       
   348 /* helper symbol for array_initialization */
       
   349 /* array_initial_elements_list ',' array_initial_elements */
       
   350 void *visit(array_initial_elements_list_c *symbol) {
       
   351   generate_c_array_initialization_c *array_initialization = new generate_c_array_initialization_c(&s4o);
       
   352   array_initialization->init_array_size(this->current_param_type);
       
   353   array_initialization->init_array_values(symbol);
       
   354   delete array_initialization;
   341   return NULL;
   355   return NULL;
   342 }
   356 }
   343 
   357 
   344 /***************************************/
   358 /***************************************/
   345 /* B.3 - Language ST (Structured Text) */
   359 /* B.3 - Language ST (Structured Text) */