equal
deleted
inserted
replaced
610 s4o.print(" = "); |
610 s4o.print(" = "); |
611 { |
611 { |
612 /* get the default value of this variable's type */ |
612 /* get the default value of this variable's type */ |
613 symbol_c *default_value = (symbol_c *)symbol->type_name->accept(*type_initial_value_c::instance()); |
613 symbol_c *default_value = (symbol_c *)symbol->type_name->accept(*type_initial_value_c::instance()); |
614 if (default_value == NULL) ERROR; |
614 if (default_value == NULL) ERROR; |
615 default_value->accept(*this); |
615 initialization_analyzer_c initialization_analyzer(default_value); |
|
616 switch (initialization_analyzer.get_initialization_type()) { |
|
617 case initialization_analyzer_c::struct_it: |
|
618 { |
|
619 generate_c_structure_initialization_c *structure_initialization = new generate_c_structure_initialization_c(&s4o); |
|
620 structure_initialization->init_structure_default(symbol->type_name); |
|
621 structure_initialization->init_structure_values(default_value); |
|
622 delete structure_initialization; |
|
623 } |
|
624 break; |
|
625 case initialization_analyzer_c::array_it: |
|
626 { |
|
627 generate_c_array_initialization_c *array_initialization = new generate_c_array_initialization_c(&s4o); |
|
628 array_initialization->init_array_size(symbol->type_name); |
|
629 array_initialization->init_array_values(default_value); |
|
630 delete array_initialization; |
|
631 } |
|
632 break; |
|
633 default: |
|
634 default_value->accept(*this); |
|
635 break; |
|
636 } |
616 } |
637 } |
617 s4o.print(";\n\n"); |
638 s4o.print(";\n\n"); |
618 |
639 |
619 s4o.print(s4o.indent_spaces + "// Control execution\n"); |
640 s4o.print(s4o.indent_spaces + "// Control execution\n"); |
620 s4o.print(s4o.indent_spaces + "if (!EN) {\n"); |
641 s4o.print(s4o.indent_spaces + "if (!EN) {\n"); |