stage4/generate_c/generate_c_vardecl.cc
changeset 226 29f8ffc203c1
parent 221 c6aed7e5f070
child 230 816846a8d66b
equal deleted inserted replaced
225:36d05588f91b 226:29f8ffc203c1
   586     void *visit(var1_list_c *symbol) {
   586     void *visit(var1_list_c *symbol) {
   587       int i, j;
   587       int i, j;
   588       
   588       
   589       for (i = 0; i < symbol->n; i++) {
   589       for (i = 0; i < symbol->n; i++) {
   590         s4o.print(s4o.indent_spaces);
   590         s4o.print(s4o.indent_spaces);
   591         print_variable_prefix();
       
   592         s4o.print(SET_VAR);
   591         s4o.print(SET_VAR);
   593         s4o.print("(");
   592         s4o.print("(");
       
   593         print_variable_prefix();
   594         symbol->elements[i]->accept(*this);
   594         symbol->elements[i]->accept(*this);
   595         s4o.print(",temp);\n");
   595         s4o.print(",temp);\n");
   596       }
   596       }
   597       return NULL;
   597       return NULL;
   598     }
   598     }
  1504 /*  var1_list ':' array_specification */
  1504 /*  var1_list ':' array_specification */
  1505 SYM_REF2(array_var_declaration_c, var1_list, array_specification)
  1505 SYM_REF2(array_var_declaration_c, var1_list, array_specification)
  1506 #endif
  1506 #endif
  1507 
  1507 
  1508 void *visit(array_initial_elements_list_c *symbol) {
  1508 void *visit(array_initial_elements_list_c *symbol) {
  1509   s4o.print(";// array initialisation");
  1509   if (wanted_varformat == localinit_vf) {
       
  1510 	generate_c_array_initialization_c *array_initialization = new generate_c_array_initialization_c(&s4o);
       
  1511 	array_initialization->init_array_dimensions(this->current_var_type_symbol);
       
  1512 	array_initialization->current_mode = generate_c_array_initialization_c::initializationvalue_am;
       
  1513 	array_initialization->init_array_values(this->current_var_init_symbol);
       
  1514 	delete array_initialization;
       
  1515   }
  1510   return NULL;
  1516   return NULL;
  1511 }
  1517 }
  1512 
  1518 
  1513 /*  var1_list ':' structure_type_name */
  1519 /*  var1_list ':' structure_type_name */
  1514 //SYM_REF2(structured_var_declaration_c, var1_list, structure_type_name)
  1520 //SYM_REF2(structured_var_declaration_c, var1_list, structure_type_name)
  1540   void_type_init();
  1546   void_type_init();
  1541 
  1547 
  1542   return NULL;
  1548   return NULL;
  1543 }
  1549 }
  1544 
  1550 
       
  1551 void *visit(structure_element_initialization_list_c *symbol) {
       
  1552   if (wanted_varformat == localinit_vf) {
       
  1553     generate_c_structure_initialization_c *structure_initialization = new generate_c_structure_initialization_c(&s4o);
       
  1554     structure_initialization->init_structure_default(this->current_var_type_symbol);
       
  1555     structure_initialization->current_mode = generate_c_structure_initialization_c::initializationvalue_sm;
       
  1556     this->current_var_init_symbol->accept(*structure_initialization);
       
  1557 	delete structure_initialization;
       
  1558   }
       
  1559   return NULL;
       
  1560 }
  1545 
  1561 
  1546 /* VAR [CONSTANT] var_init_decl_list END_VAR */
  1562 /* VAR [CONSTANT] var_init_decl_list END_VAR */
  1547 /* option -> may be NULL ! */
  1563 /* option -> may be NULL ! */
  1548 /* helper symbol for input_declarations */
  1564 /* helper symbol for input_declarations */
  1549 void *visit(var_declarations_c *symbol) {
  1565 void *visit(var_declarations_c *symbol) {