658 break; |
658 break; |
659 case complextype_suffix_vg: |
659 case complextype_suffix_vg: |
660 current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable); |
660 current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable); |
661 symbol->subscripted_variable->accept(*this); |
661 symbol->subscripted_variable->accept(*this); |
662 if (current_array_type != NULL) { |
662 if (current_array_type != NULL) { |
|
663 s4o.print(".table"); |
663 symbol->subscript_list->accept(*this); |
664 symbol->subscript_list->accept(*this); |
664 current_array_type = NULL; |
665 current_array_type = NULL; |
665 } |
666 } |
666 break; |
667 break; |
667 default: |
668 default: |
668 if (this->is_variable_prefix_null()) { |
669 if (this->is_variable_prefix_null()) { |
669 current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable); |
670 current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable); |
670 symbol->subscripted_variable->accept(*this); |
671 symbol->subscripted_variable->accept(*this); |
671 if (current_array_type != NULL) { |
672 if (current_array_type != NULL) { |
|
673 s4o.print(".table"); |
672 symbol->subscript_list->accept(*this); |
674 symbol->subscript_list->accept(*this); |
673 current_array_type = NULL; |
675 current_array_type = NULL; |
674 } |
676 } |
675 } |
677 } |
676 else |
678 else |
695 } |
697 } |
696 |
698 |
697 /******************************************/ |
699 /******************************************/ |
698 /* B 1.4.3 - Declaration & Initialisation */ |
700 /* B 1.4.3 - Declaration & Initialisation */ |
699 /******************************************/ |
701 /******************************************/ |
|
702 |
|
703 /* helper symbol for structure_initialization */ |
|
704 /* structure_element_initialization_list ',' structure_element_initialization */ |
700 void *visit(structure_element_initialization_list_c *symbol) { |
705 void *visit(structure_element_initialization_list_c *symbol) { |
701 generate_c_structure_initialization_c *structure_initialization = new generate_c_structure_initialization_c(&s4o); |
706 generate_c_structure_initialization_c *structure_initialization = new generate_c_structure_initialization_c(&s4o); |
702 structure_initialization->init_structure_default(this->current_param_type); |
707 structure_initialization->init_structure_default(this->current_param_type); |
703 structure_initialization->current_mode = generate_c_structure_initialization_c::initializationvalue_sm; |
708 structure_initialization->init_structure_values(symbol); |
704 symbol->accept(*structure_initialization); |
|
705 delete structure_initialization; |
709 delete structure_initialization; |
706 return NULL; |
710 return NULL; |
707 } |
711 } |
708 |
712 |
|
713 /* helper symbol for array_initialization */ |
|
714 /* array_initial_elements_list ',' array_initial_elements */ |
|
715 void *visit(array_initial_elements_list_c *symbol) { |
|
716 generate_c_array_initialization_c *array_initialization = new generate_c_array_initialization_c(&s4o); |
|
717 array_initialization->init_array_size(this->current_param_type); |
|
718 array_initialization->init_array_values(symbol); |
|
719 delete array_initialization; |
|
720 return NULL; |
|
721 } |
709 /****************************************/ |
722 /****************************************/ |
710 /* B.2 - Language IL (Instruction List) */ |
723 /* B.2 - Language IL (Instruction List) */ |
711 /****************************************/ |
724 /****************************************/ |
712 |
725 |
713 /***********************************/ |
726 /***********************************/ |