stage4/generate_c/generate_c_st.cc
changeset 503 e1e7c7678c44
parent 498 0637a4490c8c
child 505 21be0f2f242d
equal deleted inserted replaced
502:a6211f73690b 503:e1e7c7678c44
   133   private:
   133   private:
   134 
   134 
   135 void *print_getter(symbol_c *symbol) {
   135 void *print_getter(symbol_c *symbol) {
   136   unsigned int vartype = search_varfb_instance_type->get_vartype(symbol);
   136   unsigned int vartype = search_varfb_instance_type->get_vartype(symbol);
   137   if (wanted_variablegeneration == fparam_output_vg) {
   137   if (wanted_variablegeneration == fparam_output_vg) {
   138   	if (vartype == search_var_instance_decl_c::external_vt)
   138     if (vartype == search_var_instance_decl_c::external_vt)
   139       s4o.print(GET_EXTERNAL_BY_REF);
   139       s4o.print(GET_EXTERNAL_BY_REF);
   140     else if (vartype == search_var_instance_decl_c::located_vt)
   140     else if (vartype == search_var_instance_decl_c::located_vt)
   141       s4o.print(GET_LOCATED_BY_REF);
   141       s4o.print(GET_LOCATED_BY_REF);
   142     else
   142     else
   143       s4o.print(GET_VAR_BY_REF);
   143       s4o.print(GET_VAR_BY_REF);
   144   }
   144   }
   145   else {
   145   else {
   146 	if (vartype == search_var_instance_decl_c::external_vt)
   146     if (vartype == search_var_instance_decl_c::external_vt)
   147 	  s4o.print(GET_EXTERNAL);
   147       s4o.print(GET_EXTERNAL);
   148 	else if (vartype == search_var_instance_decl_c::located_vt)
   148     else if (vartype == search_var_instance_decl_c::located_vt)
   149 	  s4o.print(GET_LOCATED);
   149       s4o.print(GET_LOCATED);
   150 	else
   150     else
   151 	  s4o.print(GET_VAR);
   151       s4o.print(GET_VAR);
   152   }
   152   }
   153   s4o.print("(");
   153   s4o.print("(");
   154 
   154 
   155   variablegeneration_t old_wanted_variablegeneration = wanted_variablegeneration;
   155   variablegeneration_t old_wanted_variablegeneration = wanted_variablegeneration;
   156   wanted_variablegeneration = complextype_base_vg;
   156   wanted_variablegeneration = complextype_base_vg;
   237 
   237 
   238 /*********************/
   238 /*********************/
   239 /* B 1.4 - Variables */
   239 /* B 1.4 - Variables */
   240 /*********************/
   240 /*********************/
   241 void *visit(symbolic_variable_c *symbol) {
   241 void *visit(symbolic_variable_c *symbol) {
   242   unsigned int vartype;
       
   243   switch (wanted_variablegeneration) {
   242   switch (wanted_variablegeneration) {
   244     case complextype_base_assignment_vg:
   243     case complextype_base_assignment_vg:
   245     case assignment_vg:
   244     case assignment_vg:
   246       this->print_variable_prefix();
   245       this->print_variable_prefix();
   247       s4o.print(",");
   246       s4o.print(",");
   252       break;
   251       break;
   253     case complextype_suffix_vg:
   252     case complextype_suffix_vg:
   254       break;
   253       break;
   255     default:
   254     default:
   256       if (this->is_variable_prefix_null()) {
   255       if (this->is_variable_prefix_null()) {
   257         vartype = search_varfb_instance_type->get_vartype(symbol);
       
   258         if (wanted_variablegeneration == fparam_output_vg) {
   256         if (wanted_variablegeneration == fparam_output_vg) {
   259           s4o.print("&(");
   257           s4o.print("&(");
   260           generate_c_base_c::visit(symbol);
   258           generate_c_base_c::visit(symbol);
   261           s4o.print(")");
   259           s4o.print(")");
   262         }
   260         }