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) */ |