stage4/generate_c/generate_c_il.cc
changeset 226 29f8ffc203c1
parent 221 c6aed7e5f070
child 228 43831b683764
equal deleted inserted replaced
225:36d05588f91b 226:29f8ffc203c1
  1002 
  1002 
  1003     /* now output the value assignment */
  1003     /* now output the value assignment */
  1004     if (param_value != NULL)
  1004     if (param_value != NULL)
  1005       if ((param_direction == function_param_iterator_c::direction_out) ||
  1005       if ((param_direction == function_param_iterator_c::direction_out) ||
  1006           (param_direction == function_param_iterator_c::direction_inout)) {
  1006           (param_direction == function_param_iterator_c::direction_inout)) {
  1007         symbol_c *param_type = search_varfb_instance_type->get_type(param_value, false);
  1007         symbol_c *param_type = search_varfb_instance_type->get_rawtype(param_value);
  1008         unsigned int vartype = search_varfb_instance_type->get_vartype(param_value);
  1008         unsigned int vartype = search_varfb_instance_type->get_vartype(param_value);
  1009 
  1009 
  1010         if (!this->is_variable_prefix_null()) {
  1010         if (!this->is_variable_prefix_null()) {
  1011 		  s4o.print(";\n"+ s4o.indent_spaces);
  1011 		  s4o.print(";\n"+ s4o.indent_spaces);
  1012 		  if (vartype == search_var_instance_decl_c::external_vt)
  1012 		  if (vartype == search_var_instance_decl_c::external_vt)
  1374                this->current_operand);
  1374                this->current_operand);
  1375   return NULL;
  1375   return NULL;
  1376 }
  1376 }
  1377 
  1377 
  1378 void *visit(ST_operator_c *symbol)	{
  1378 void *visit(ST_operator_c *symbol)	{
  1379   symbol_c *operand_type = search_varfb_instance_type->get_type(this->current_operand, false);
  1379   symbol_c *operand_type = search_varfb_instance_type->get_rawtype(this->current_operand);
  1380   
  1380   
  1381   if (!this->is_variable_prefix_null()) {
  1381   if (!this->is_variable_prefix_null()) {
  1382     unsigned int vartype = search_varfb_instance_type->get_vartype(this->current_operand);
  1382     unsigned int vartype = search_varfb_instance_type->get_vartype(this->current_operand);
  1383     if (vartype == search_var_instance_decl_c::external_vt)
  1383     if (vartype == search_var_instance_decl_c::external_vt)
  1384       s4o.print(SET_EXTERNAL);
  1384       s4o.print(SET_EXTERNAL);
  1407   /* the data type resulting from this operation is unchanged. */
  1407   /* the data type resulting from this operation is unchanged. */
  1408   return NULL;
  1408   return NULL;
  1409 }
  1409 }
  1410 
  1410 
  1411 void *visit(STN_operator_c *symbol)	{
  1411 void *visit(STN_operator_c *symbol)	{
  1412   symbol_c *operand_type = search_varfb_instance_type->get_type(this->current_operand, false);
  1412   symbol_c *operand_type = search_varfb_instance_type->get_rawtype(this->current_operand);
  1413   
  1413   
  1414   if (!this->is_variable_prefix_null()) {
  1414   if (!this->is_variable_prefix_null()) {
  1415     unsigned int vartype = search_varfb_instance_type->get_vartype(this->current_operand);
  1415     unsigned int vartype = search_varfb_instance_type->get_vartype(this->current_operand);
  1416     if (vartype == search_var_instance_decl_c::external_vt)
  1416     if (vartype == search_var_instance_decl_c::external_vt)
  1417       s4o.print(SET_EXTERNAL);
  1417       s4o.print(SET_EXTERNAL);