stage4/generate_c/generate_c_il.cc
changeset 410 c6486bd97392
parent 406 6381589697ff
child 411 3e21d98d0a71
equal deleted inserted replaced
409:8d876ad522f4 410:c6486bd97392
   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(".");