stage4/generate_c/generate_c_st.cc
changeset 167 ae423926bc84
parent 162 60a124678842
child 169 bea932bc60b0
equal deleted inserted replaced
166:09004f402097 167:ae423926bc84
   462     if (current_function_type == function_none) ERROR;
   462     if (current_function_type == function_none) ERROR;
   463     
   463     
   464     symbol_c *function_return_type = search_expression_type->get_type(symbol);
   464     symbol_c *function_return_type = search_expression_type->get_type(symbol);
   465     
   465     
   466     function_call_param_iterator_c function_call_param_iterator(symbol);
   466     function_call_param_iterator_c function_call_param_iterator(symbol);
       
   467 
       
   468     int nb_param = ((list_c *)symbol->parameter_assignment_list)->n;
   467     
   469     
   468     identifier_c en_param_name("EN");
   470     identifier_c en_param_name("EN");
   469     /* Get the value from EN param */
   471     /* Get the value from EN param */
   470     symbol_c *EN_param_value = function_call_param_iterator.search(&en_param_name);
   472     symbol_c *EN_param_value = function_call_param_iterator.search(&en_param_name);
   471     if (EN_param_value == NULL)
   473     if (EN_param_value == NULL)
   472       EN_param_value = (symbol_c*)(new boolean_literal_c((symbol_c*)(new bool_type_name_c()), new boolean_true_c()));
   474       EN_param_value = (symbol_c*)(new boolean_literal_c((symbol_c*)(new bool_type_name_c()), new boolean_true_c()));
       
   475     else
       
   476       nb_param --;
   473     ADD_PARAM_LIST(EN_param_value, (symbol_c*)(new bool_type_name_c()), function_param_iterator_c::direction_in)
   477     ADD_PARAM_LIST(EN_param_value, (symbol_c*)(new bool_type_name_c()), function_param_iterator_c::direction_in)
   474     
   478     
   475     identifier_c eno_param_name("ENO");
   479     identifier_c eno_param_name("ENO");
   476     /* Get the value from ENO param */
   480     /* Get the value from ENO param */
   477     symbol_c *ENO_param_value = function_call_param_iterator.search(&eno_param_name);
   481     symbol_c *ENO_param_value = function_call_param_iterator.search(&eno_param_name);
       
   482     if (ENO_param_value != NULL)
       
   483       nb_param --;
   478     ADD_PARAM_LIST(ENO_param_value, (symbol_c*)(new bool_type_name_c()), function_param_iterator_c::direction_out)
   484     ADD_PARAM_LIST(ENO_param_value, (symbol_c*)(new bool_type_name_c()), function_param_iterator_c::direction_out)
   479     
       
   480     int nb_param = ((list_c *)symbol->parameter_assignment_list)->n;
       
   481 
   485 
   482     #include "st_code_gen.c"
   486     #include "st_code_gen.c"
   483 
   487 
   484   }
   488   }
   485   else {
   489   else {