stage4/generate_c/generate_c_st.cc
changeset 231 b8527b0abe75
parent 228 43831b683764
child 233 3d23a68183d3
equal deleted inserted replaced
230:816846a8d66b 231:b8527b0abe75
   138 		symbol_c* type,
   138 		symbol_c* type,
   139 		symbol_c* value,
   139 		symbol_c* value,
   140 		symbol_c* fb_symbol = NULL,
   140 		symbol_c* fb_symbol = NULL,
   141 		symbol_c* fb_value = NULL) {
   141 		symbol_c* fb_value = NULL) {
   142   unsigned int vartype = search_varfb_instance_type->get_vartype(symbol);
   142   unsigned int vartype = search_varfb_instance_type->get_vartype(symbol);
   143   if (vartype == search_var_instance_decl_c::external_vt)
   143   if (vartype == search_var_instance_decl_c::external_vt) {
   144     s4o.print(SET_EXTERNAL);
   144     symbolic_variable_c *variable = dynamic_cast<symbolic_variable_c *>(symbol);
   145   else if (vartype == search_var_instance_decl_c::located_vt)
   145     /* TODO Find a solution for forcing global complex variables */
   146     s4o.print(SET_LOCATED);
   146     if (variable != NULL) {
   147   else
   147       s4o.print(SET_EXTERNAL);
   148     s4o.print(SET_VAR);
   148       s4o.print("(");
   149   s4o.print("(");
   149       variable->var_name->accept(*this);
       
   150       s4o.print(",");
       
   151     }
       
   152     else {
       
   153       s4o.print(SET_COMPLEX_EXTERNAL);
       
   154       s4o.print("(");
       
   155     }
       
   156   }
       
   157   else {
       
   158     if (vartype == search_var_instance_decl_c::located_vt)
       
   159       s4o.print(SET_LOCATED);
       
   160     else
       
   161       s4o.print(SET_VAR);
       
   162     s4o.print("(");
       
   163   }
   150 
   164 
   151   if (fb_symbol != NULL) {
   165   if (fb_symbol != NULL) {
   152     print_variable_prefix();
   166     print_variable_prefix();
   153     fb_symbol->accept(*this);
   167     fb_symbol->accept(*this);
   154     s4o.print(".");
   168     s4o.print(".");