stage4/generate_c/generate_c_il.cc
changeset 220 f332b62cd2c1
parent 217 f5dfadf5de54
child 221 c6aed7e5f070
equal deleted inserted replaced
219:9bb38736f126 220:f332b62cd2c1
   824           /* If not, get the default value of this variable's type */
   824           /* If not, get the default value of this variable's type */
   825           param_value = (symbol_c *)param_type->accept(*type_initial_value_c::instance());
   825           param_value = (symbol_c *)param_type->accept(*type_initial_value_c::instance());
   826         }
   826         }
   827         if (param_value == NULL) ERROR;
   827         if (param_value == NULL) ERROR;
   828         s4o.print("(");
   828         s4o.print("(");
   829         if (search_expression_type->is_literal_integer_type(param_type) ||
   829         if (search_expression_type->is_literal_integer_type(param_type))
   830 			search_expression_type->is_literal_real_type(param_type)) {
   830           search_expression_type->lint_type_name.accept(*this);
   831 			if (function_type_suffix == NULL) ERROR;
   831         else if (search_expression_type->is_literal_real_type(param_type))
   832 			function_type_suffix->accept(*this);
   832           search_expression_type->lreal_type_name.accept(*this);
   833 		}
   833         else
   834 		else
   834           param_type->accept(*this);
   835 			param_type->accept(*this);
       
   836         s4o.print(")");
   835         s4o.print(")");
   837         print_check_function(param_type, param_value);
   836         print_check_function(param_type, param_value);
   838         nb_param++;
   837         nb_param++;
   839         break;
   838         break;
   840       case function_param_iterator_c::direction_out:
   839       case function_param_iterator_c::direction_out:
  1206           /* If not, get the default value of this variable's type */
  1205           /* If not, get the default value of this variable's type */
  1207           param_value = (symbol_c *)param_type->accept(*type_initial_value_c::instance());
  1206           param_value = (symbol_c *)param_type->accept(*type_initial_value_c::instance());
  1208         }
  1207         }
  1209         if (param_value == NULL) ERROR;
  1208         if (param_value == NULL) ERROR;
  1210         s4o.print("(");
  1209         s4o.print("(");
  1211         if (search_expression_type->is_literal_integer_type(param_type) ||
  1210         if (search_expression_type->is_literal_integer_type(param_type))
  1212 			search_expression_type->is_literal_real_type(param_type)) {
  1211           search_expression_type->lint_type_name.accept(*this);
  1213 			if (function_type_suffix == NULL) ERROR;
  1212         else if (search_expression_type->is_literal_real_type(param_type))
  1214 			function_type_suffix->accept(*this);
  1213           search_expression_type->lreal_type_name.accept(*this);
  1215 		}
  1214         else
  1216 		else
  1215           param_type->accept(*this);
  1217 			param_type->accept(*this);
       
  1218         s4o.print(")");
  1216         s4o.print(")");
  1219         print_check_function(param_type, param_value);
  1217         print_check_function(param_type, param_value);
  1220 		nb_param++;
  1218 		nb_param++;
  1221         break;
  1219         break;
  1222       case function_param_iterator_c::direction_out:
  1220       case function_param_iterator_c::direction_out: