647 /*************************************/ |
647 /*************************************/ |
648 |
648 |
649 // SYM_REF2(structured_variable_c, record_variable, field_selector) |
649 // SYM_REF2(structured_variable_c, record_variable, field_selector) |
650 void *visit(structured_variable_c *symbol) { |
650 void *visit(structured_variable_c *symbol) { |
651 TRACE("structured_variable_c"); |
651 TRACE("structured_variable_c"); |
|
652 unsigned int vartype = search_varfb_instance_type->get_vartype(symbol->record_variable); |
|
653 bool type_is_complex = search_varfb_instance_type->type_is_complex(); |
652 switch (wanted_variablegeneration) { |
654 switch (wanted_variablegeneration) { |
653 case complextype_base_vg: |
655 case complextype_base_vg: |
654 case complextype_base_assignment_vg: |
656 case complextype_base_assignment_vg: |
655 symbol->record_variable->accept(*this); |
657 symbol->record_variable->accept(*this); |
|
658 if (!type_is_complex) { |
|
659 s4o.print("."); |
|
660 symbol->field_selector->accept(*this); |
|
661 } |
656 break; |
662 break; |
657 case complextype_suffix_vg: |
663 case complextype_suffix_vg: |
658 case assignment_vg: |
664 case assignment_vg: |
659 symbol->record_variable->accept(*this); |
665 symbol->record_variable->accept(*this); |
660 s4o.print("."); |
666 if (type_is_complex) { |
661 symbol->field_selector->accept(*this); |
667 s4o.print("."); |
|
668 symbol->field_selector->accept(*this); |
|
669 } |
662 break; |
670 break; |
663 default: |
671 default: |
664 if (this->is_variable_prefix_null()) { |
672 if (this->is_variable_prefix_null()) { |
665 symbol->record_variable->accept(*this); |
673 symbol->record_variable->accept(*this); |
666 s4o.print("."); |
674 s4o.print("."); |