stage4/generate_c/generate_c_il.cc
changeset 231 b8527b0abe75
parent 228 43831b683764
child 233 3d23a68183d3
equal deleted inserted replaced
230:816846a8d66b 231:b8527b0abe75
   459     		symbol_c* value,
   459     		symbol_c* value,
   460     		symbol_c* fb_symbol = NULL,
   460     		symbol_c* fb_symbol = NULL,
   461     		symbol_c* fb_value = NULL,
   461     		symbol_c* fb_value = NULL,
   462     		bool negative = false) {
   462     		bool negative = false) {
   463       unsigned int vartype = search_varfb_instance_type->get_vartype(symbol);
   463       unsigned int vartype = search_varfb_instance_type->get_vartype(symbol);
   464       if (vartype == search_var_instance_decl_c::external_vt)
   464       if (vartype == search_var_instance_decl_c::external_vt) {
   465         s4o.print(SET_EXTERNAL);
   465         symbolic_variable_c *variable = dynamic_cast<symbolic_variable_c *>(symbol);
   466       else if (vartype == search_var_instance_decl_c::located_vt)
   466         /* TODO Find a solution for forcing global complex variables */
   467         s4o.print(SET_LOCATED);
   467         if (variable != NULL) {
   468       else
   468           s4o.print(SET_EXTERNAL);
   469         s4o.print(SET_VAR);
   469           s4o.print("(");
   470       s4o.print("(");
   470           variable->var_name->accept(*this);
       
   471           s4o.print(",");
       
   472         }
       
   473         else {
       
   474           s4o.print(SET_COMPLEX_EXTERNAL);
       
   475           s4o.print("(");
       
   476         }
       
   477       }
       
   478       else {
       
   479         if (vartype == search_var_instance_decl_c::located_vt)
       
   480           s4o.print(SET_LOCATED);
       
   481         else
       
   482           s4o.print(SET_VAR);
       
   483         s4o.print("(");
       
   484       }
   471 
   485 
   472       if (fb_symbol != NULL) {
   486       if (fb_symbol != NULL) {
   473         print_variable_prefix();
   487         print_variable_prefix();
   474         fb_symbol->accept(*this);
   488         fb_symbol->accept(*this);
   475         s4o.print(".");
   489         s4o.print(".");