stage4/generate_c/generate_c_il.cc
changeset 238 0919986a5c98
parent 237 cece842c7417
child 240 f78fa87bb4cb
equal deleted inserted replaced
237:cece842c7417 238:0919986a5c98
   655   switch (wanted_variablegeneration) {
   655   switch (wanted_variablegeneration) {
   656     case complextype_base_vg:
   656     case complextype_base_vg:
   657       symbol->subscripted_variable->accept(*this);
   657       symbol->subscripted_variable->accept(*this);
   658       break;
   658       break;
   659     case complextype_suffix_vg:
   659     case complextype_suffix_vg:
       
   660       symbol->subscripted_variable->accept(*this);
       
   661 
   660       current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable);
   662       current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable);
   661       symbol->subscripted_variable->accept(*this);
   663       if (current_array_type == NULL) ERROR;
   662       if (current_array_type != NULL) {
   664 
   663     	s4o.print(".table");
   665       s4o.print(".table");
   664         symbol->subscript_list->accept(*this);
   666       symbol->subscript_list->accept(*this);
   665         current_array_type = NULL;
   667 
   666       }
   668       current_array_type = NULL;
   667       break;
   669       break;
   668     default:
   670     default:
   669       if (this->is_variable_prefix_null()) {
   671       if (this->is_variable_prefix_null()) {
   670     	current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable);
   672         symbol->subscripted_variable->accept(*this);
   671     	symbol->subscripted_variable->accept(*this);
   673 
   672     	if (current_array_type != NULL) {
   674         current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable);
   673           s4o.print(".table");
   675         if (current_array_type == NULL) ERROR;
   674     	  symbol->subscript_list->accept(*this);
   676 
   675     	  current_array_type = NULL;
   677         s4o.print(".table");
   676     	}
   678         symbol->subscript_list->accept(*this);
       
   679 
       
   680         current_array_type = NULL;
   677       }
   681       }
   678       else
   682       else
   679     	print_getter(symbol);
   683     	print_getter(symbol);
   680       break;
   684       break;
   681   }
   685   }