stage4/generate_c/st_code_gen.c
changeset 233 3d23a68183d3
parent 217 f5dfadf5de54
child 235 ed66dc50f31a
equal deleted inserted replaced
232:29ab33687333 233:3d23a68183d3
 15556                 if (IN_type_symbol == NULL)
 15556                 if (IN_type_symbol == NULL)
 15557                   IN_type_symbol = last_type_symbol;
 15557                   IN_type_symbol = last_type_symbol;
 15558                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 15558                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 15559                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
 15559                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
 15560                 function_type_prefix = (symbol_c*)(new pragma_c("int"));
 15560                 function_type_prefix = (symbol_c*)(new pragma_c("int"));
       
 15561                 if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 15562                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 15561                 break;
 15563                 break;
 15562                 
 15564                 
 15563             }
 15565             }
 15564             
 15566             
 15565             
 15567             
 16016                 if (IN_type_symbol == NULL)
 16018                 if (IN_type_symbol == NULL)
 16017                   IN_type_symbol = last_type_symbol;
 16019                   IN_type_symbol = last_type_symbol;
 16018                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16020                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16019                 symbol_c * return_type_symbol = IN_type_symbol;
 16021                 symbol_c * return_type_symbol = IN_type_symbol;
 16020                 function_type_suffix = IN_type_symbol;
 16022                 function_type_suffix = IN_type_symbol;
       
 16023                 if (search_expression_type->is_literal_integer_type(function_type_suffix))
       
 16024                     function_type_suffix = &search_constant_type_c::lint_type_name;
 16021                 break;
 16025                 break;
 16022                 
 16026                 
 16023             }
 16027             }
 16024             
 16028             
 16025             
 16029             
 16058                 if (IN_type_symbol == NULL)
 16062                 if (IN_type_symbol == NULL)
 16059                   IN_type_symbol = last_type_symbol;
 16063                   IN_type_symbol = last_type_symbol;
 16060                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16064                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16061                 symbol_c * return_type_symbol = IN_type_symbol;
 16065                 symbol_c * return_type_symbol = IN_type_symbol;
 16062                 function_type_suffix = IN_type_symbol;
 16066                 function_type_suffix = IN_type_symbol;
       
 16067                 if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 16068                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 16063                 break;
 16069                 break;
 16064                 
 16070                 
 16065             }
 16071             }
 16066             
 16072             
 16067             
 16073             
 16100                 if (IN_type_symbol == NULL)
 16106                 if (IN_type_symbol == NULL)
 16101                   IN_type_symbol = last_type_symbol;
 16107                   IN_type_symbol = last_type_symbol;
 16102                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16108                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16103                 symbol_c * return_type_symbol = IN_type_symbol;
 16109                 symbol_c * return_type_symbol = IN_type_symbol;
 16104                 function_type_suffix = IN_type_symbol;
 16110                 function_type_suffix = IN_type_symbol;
       
 16111                 if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 16112                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 16105                 break;
 16113                 break;
 16106                 
 16114                 
 16107             }
 16115             }
 16108             
 16116             
 16109             
 16117             
 16142                 if (IN_type_symbol == NULL)
 16150                 if (IN_type_symbol == NULL)
 16143                   IN_type_symbol = last_type_symbol;
 16151                   IN_type_symbol = last_type_symbol;
 16144                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16152                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16145                 symbol_c * return_type_symbol = IN_type_symbol;
 16153                 symbol_c * return_type_symbol = IN_type_symbol;
 16146                 function_type_suffix = IN_type_symbol;
 16154                 function_type_suffix = IN_type_symbol;
       
 16155                 if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 16156                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 16147                 break;
 16157                 break;
 16148                 
 16158                 
 16149             }
 16159             }
 16150             
 16160             
 16151             
 16161             
 16184                 if (IN_type_symbol == NULL)
 16194                 if (IN_type_symbol == NULL)
 16185                   IN_type_symbol = last_type_symbol;
 16195                   IN_type_symbol = last_type_symbol;
 16186                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16196                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16187                 symbol_c * return_type_symbol = IN_type_symbol;
 16197                 symbol_c * return_type_symbol = IN_type_symbol;
 16188                 function_type_suffix = IN_type_symbol;
 16198                 function_type_suffix = IN_type_symbol;
       
 16199                 if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 16200                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 16189                 break;
 16201                 break;
 16190                 
 16202                 
 16191             }
 16203             }
 16192             
 16204             
 16193             
 16205             
 16226                 if (IN_type_symbol == NULL)
 16238                 if (IN_type_symbol == NULL)
 16227                   IN_type_symbol = last_type_symbol;
 16239                   IN_type_symbol = last_type_symbol;
 16228                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16240                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16229                 symbol_c * return_type_symbol = IN_type_symbol;
 16241                 symbol_c * return_type_symbol = IN_type_symbol;
 16230                 function_type_suffix = IN_type_symbol;
 16242                 function_type_suffix = IN_type_symbol;
       
 16243                 if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 16244                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 16231                 break;
 16245                 break;
 16232                 
 16246                 
 16233             }
 16247             }
 16234             
 16248             
 16235             
 16249             
 16268                 if (IN_type_symbol == NULL)
 16282                 if (IN_type_symbol == NULL)
 16269                   IN_type_symbol = last_type_symbol;
 16283                   IN_type_symbol = last_type_symbol;
 16270                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16284                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16271                 symbol_c * return_type_symbol = IN_type_symbol;
 16285                 symbol_c * return_type_symbol = IN_type_symbol;
 16272                 function_type_suffix = IN_type_symbol;
 16286                 function_type_suffix = IN_type_symbol;
       
 16287                 if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 16288                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 16273                 break;
 16289                 break;
 16274                 
 16290                 
 16275             }
 16291             }
 16276             
 16292             
 16277             
 16293             
 16310                 if (IN_type_symbol == NULL)
 16326                 if (IN_type_symbol == NULL)
 16311                   IN_type_symbol = last_type_symbol;
 16327                   IN_type_symbol = last_type_symbol;
 16312                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16328                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16313                 symbol_c * return_type_symbol = IN_type_symbol;
 16329                 symbol_c * return_type_symbol = IN_type_symbol;
 16314                 function_type_suffix = IN_type_symbol;
 16330                 function_type_suffix = IN_type_symbol;
       
 16331                 if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 16332                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 16315                 break;
 16333                 break;
 16316                 
 16334                 
 16317             }
 16335             }
 16318             
 16336             
 16319             
 16337             
 16352                 if (IN_type_symbol == NULL)
 16370                 if (IN_type_symbol == NULL)
 16353                   IN_type_symbol = last_type_symbol;
 16371                   IN_type_symbol = last_type_symbol;
 16354                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16372                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16355                 symbol_c * return_type_symbol = IN_type_symbol;
 16373                 symbol_c * return_type_symbol = IN_type_symbol;
 16356                 function_type_suffix = IN_type_symbol;
 16374                 function_type_suffix = IN_type_symbol;
       
 16375                 if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 16376                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 16357                 break;
 16377                 break;
 16358                 
 16378                 
 16359             }
 16379             }
 16360             
 16380             
 16361             
 16381             
 16394                 if (IN_type_symbol == NULL)
 16414                 if (IN_type_symbol == NULL)
 16395                   IN_type_symbol = last_type_symbol;
 16415                   IN_type_symbol = last_type_symbol;
 16396                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16416                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16397                 symbol_c * return_type_symbol = IN_type_symbol;
 16417                 symbol_c * return_type_symbol = IN_type_symbol;
 16398                 function_type_suffix = IN_type_symbol;
 16418                 function_type_suffix = IN_type_symbol;
       
 16419                 if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 16420                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 16399                 break;
 16421                 break;
 16400                 
 16422                 
 16401             }
 16423             }
 16402             
 16424             
 16403             
 16425             
 16436                 if (IN_type_symbol == NULL)
 16458                 if (IN_type_symbol == NULL)
 16437                   IN_type_symbol = last_type_symbol;
 16459                   IN_type_symbol = last_type_symbol;
 16438                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16460                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 16439                 symbol_c * return_type_symbol = IN_type_symbol;
 16461                 symbol_c * return_type_symbol = IN_type_symbol;
 16440                 function_type_suffix = IN_type_symbol;
 16462                 function_type_suffix = IN_type_symbol;
       
 16463                 if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 16464                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 16441                 break;
 16465                 break;
 16442                 
 16466                 
 16443             }
 16467             }
 16444             
 16468             
 16445             
 16469             
 16527                                 /*Function specific CODE */
 16551                                 /*Function specific CODE */
 16528                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 16552                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 16529                             }
 16553                             }
 16530                             
 16554                             
 16531                         }while(param_value != NULL);
 16555                         }while(param_value != NULL);
 16532                         symbol_c * return_type_symbol;
 16556                         symbol_c * return_type_symbol = last_type_symbol;
 16533                         if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 16534                             return_type_symbol = &search_constant_type_c::lint_type_name;
       
 16535                         else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
 16536                             return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 16537                         else
       
 16538                             return_type_symbol = last_type_symbol;
       
 16539                         function_type_suffix = return_type_symbol;
 16557                         function_type_suffix = return_type_symbol;
 16540                         break;
 16558                         break;
 16541                         
 16559                         
 16542                     }
 16560                     }
 16543                     
 16561                     
 16752                                 /*Function specific CODE */
 16770                                 /*Function specific CODE */
 16753                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 16771                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 16754                             }
 16772                             }
 16755                             
 16773                             
 16756                         }while(param_value != NULL);
 16774                         }while(param_value != NULL);
 16757                         symbol_c * return_type_symbol;
 16775                         symbol_c * return_type_symbol = last_type_symbol;
 16758                         if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 16759                             return_type_symbol = &search_constant_type_c::lint_type_name;
       
 16760                         else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
 16761                             return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 16762                         else
       
 16763                             return_type_symbol = last_type_symbol;
       
 16764                         function_type_suffix = return_type_symbol;
 16776                         function_type_suffix = return_type_symbol;
 16765                         break;
 16777                         break;
 16766                         
 16778                         
 16767                     }
 16779                     }
 16768                     
 16780                     
 16800                         
 16812                         
 16801                         if (IN2_type_symbol == NULL)
 16813                         if (IN2_type_symbol == NULL)
 16802                           IN2_type_symbol = last_type_symbol;
 16814                           IN2_type_symbol = last_type_symbol;
 16803                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 16815                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 16804                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
 16816                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 16817                         if (search_expression_type->is_literal_integer_type(function_type_suffix))
       
 16818                             function_type_suffix = &search_constant_type_c::lint_type_name;
 16805                         break;
 16819                         break;
 16806                         
 16820                         
 16807                     }
 16821                     }
 16808                     
 16822                     
 16809                     
 16823                     
 16867                         ADD_PARAM_LIST(&IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
 16881                         ADD_PARAM_LIST(&IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
 16868                         
 16882                         
 16869                         if (IN2_type_symbol == NULL)
 16883                         if (IN2_type_symbol == NULL)
 16870                           IN2_type_symbol = last_type_symbol;
 16884                           IN2_type_symbol = last_type_symbol;
 16871                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 16885                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 16872                         symbol_c * return_type_symbol;
 16886                         symbol_c * return_type_symbol = last_type_symbol;
 16873                         if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 16874                             return_type_symbol = &search_constant_type_c::lint_type_name;
       
 16875                         else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
 16876                             return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 16877                         else
       
 16878                             return_type_symbol = last_type_symbol;
       
 16879                         function_type_suffix = return_type_symbol;
 16887                         function_type_suffix = return_type_symbol;
 16880                         break;
 16888                         break;
 16881                         
 16889                         
 16882                     }
 16890                     }
 16883                     
 16891                     
 17136                         ADD_PARAM_LIST(&IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
 17144                         ADD_PARAM_LIST(&IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
 17137                         
 17145                         
 17138                         if (IN2_type_symbol == NULL)
 17146                         if (IN2_type_symbol == NULL)
 17139                           IN2_type_symbol = last_type_symbol;
 17147                           IN2_type_symbol = last_type_symbol;
 17140                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 17148                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 17141                         symbol_c * return_type_symbol;
 17149                         symbol_c * return_type_symbol = last_type_symbol;
 17142                         if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 17143                             return_type_symbol = &search_constant_type_c::lint_type_name;
       
 17144                         else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
 17145                             return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 17146                         else
       
 17147                             return_type_symbol = last_type_symbol;
       
 17148                         function_type_suffix = return_type_symbol;
 17150                         function_type_suffix = return_type_symbol;
 17149                         break;
 17151                         break;
 17150                         
 17152                         
 17151                     }
 17153                     }
 17152                     
 17154                     
 17184                         
 17186                         
 17185                         if (IN2_type_symbol == NULL)
 17187                         if (IN2_type_symbol == NULL)
 17186                           IN2_type_symbol = last_type_symbol;
 17188                           IN2_type_symbol = last_type_symbol;
 17187                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 17189                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 17188                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
 17190                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 17191                         if (search_expression_type->is_literal_integer_type(function_type_suffix))
       
 17192                             function_type_suffix = &search_constant_type_c::lint_type_name;
 17189                         break;
 17193                         break;
 17190                         
 17194                         
 17191                     }
 17195                     }
 17192                     
 17196                     
 17193                     
 17197                     
 17251                         ADD_PARAM_LIST(&IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
 17255                         ADD_PARAM_LIST(&IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
 17252                         
 17256                         
 17253                         if (IN2_type_symbol == NULL)
 17257                         if (IN2_type_symbol == NULL)
 17254                           IN2_type_symbol = last_type_symbol;
 17258                           IN2_type_symbol = last_type_symbol;
 17255                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 17259                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 17256                         symbol_c * return_type_symbol;
 17260                         symbol_c * return_type_symbol = last_type_symbol;
 17257                         if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 17258                             return_type_symbol = &search_constant_type_c::lint_type_name;
       
 17259                         else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
 17260                             return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 17261                         else
       
 17262                             return_type_symbol = last_type_symbol;
       
 17263                         function_type_suffix = return_type_symbol;
 17261                         function_type_suffix = return_type_symbol;
 17264                         break;
 17262                         break;
 17265                         
 17263                         
 17266                     }
 17264                     }
 17267                     
 17265                     
 17326                         ADD_PARAM_LIST(&IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
 17324                         ADD_PARAM_LIST(&IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
 17327                         
 17325                         
 17328                         if (IN2_type_symbol == NULL)
 17326                         if (IN2_type_symbol == NULL)
 17329                           IN2_type_symbol = last_type_symbol;
 17327                           IN2_type_symbol = last_type_symbol;
 17330                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 17328                         ADD_PARAM_LIST(&IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
 17331                         symbol_c * return_type_symbol;
 17329                         symbol_c * return_type_symbol = last_type_symbol;
 17332                         if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 17333                             return_type_symbol = &search_constant_type_c::lint_type_name;
       
 17334                         else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
 17335                             return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 17336                         else
       
 17337                             return_type_symbol = last_type_symbol;
       
 17338                         function_type_suffix = IN1_type_symbol;
 17330                         function_type_suffix = IN1_type_symbol;
 17339                         break;
 17331                         break;
 17340                         
 17332                         
 17341                     }
 17333                     }
 17342                     
 17334                     
 17380                 function_name = (symbol_c*)(new pragma_c("__move_"));
 17372                 function_name = (symbol_c*)(new pragma_c("__move_"));
 17381                 
 17373                 
 17382                 if (IN_type_symbol == NULL)
 17374                 if (IN_type_symbol == NULL)
 17383                   IN_type_symbol = last_type_symbol;
 17375                   IN_type_symbol = last_type_symbol;
 17384                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 17376                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 17385                 symbol_c * return_type_symbol;
 17377                 symbol_c * return_type_symbol = last_type_symbol;
 17386                 if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 17387                     return_type_symbol = &search_constant_type_c::lint_type_name;
       
 17388                 else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
 17389                     return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 17390                 else
       
 17391                     return_type_symbol = last_type_symbol;
       
 17392                 function_type_suffix = return_type_symbol;
 17378                 function_type_suffix = return_type_symbol;
       
 17379                 if (search_expression_type->is_literal_integer_type(function_type_suffix))
       
 17380                     function_type_suffix = &search_constant_type_c::lint_type_name;
       
 17381                 else if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 17382                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 17393                 break;
 17383                 break;
 17394                 
 17384                 
 17395             }
 17385             }
 17396             
 17386             
 17397             
 17387             
 17755                                 /*Function specific CODE */
 17745                                 /*Function specific CODE */
 17756                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 17746                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 17757                             }
 17747                             }
 17758                             
 17748                             
 17759                         }while(param_value != NULL);
 17749                         }while(param_value != NULL);
 17760                         symbol_c * return_type_symbol;
 17750                         symbol_c * return_type_symbol = last_type_symbol;
 17761                         if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 17762                             return_type_symbol = &search_constant_type_c::lword_type_name;
       
 17763                         else
       
 17764                             return_type_symbol = last_type_symbol;
       
 17765                         function_type_suffix = return_type_symbol;
 17751                         function_type_suffix = return_type_symbol;
 17766                         break;
 17752                         break;
 17767                         
 17753                         
 17768                     }
 17754                     }
 17769                     
 17755                     
 17858                                 /*Function specific CODE */
 17844                                 /*Function specific CODE */
 17859                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 17845                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 17860                             }
 17846                             }
 17861                             
 17847                             
 17862                         }while(param_value != NULL);
 17848                         }while(param_value != NULL);
 17863                         symbol_c * return_type_symbol;
 17849                         symbol_c * return_type_symbol = last_type_symbol;
 17864                         if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 17865                             return_type_symbol = &search_constant_type_c::lword_type_name;
       
 17866                         else
       
 17867                             return_type_symbol = last_type_symbol;
       
 17868                         function_type_suffix = return_type_symbol;
 17850                         function_type_suffix = return_type_symbol;
 17869                         break;
 17851                         break;
 17870                         
 17852                         
 17871                     }
 17853                     }
 17872                     
 17854                     
 17961                                 /*Function specific CODE */
 17943                                 /*Function specific CODE */
 17962                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 17944                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 17963                             }
 17945                             }
 17964                             
 17946                             
 17965                         }while(param_value != NULL);
 17947                         }while(param_value != NULL);
 17966                         symbol_c * return_type_symbol;
 17948                         symbol_c * return_type_symbol = last_type_symbol;
 17967                         if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 17968                             return_type_symbol = &search_constant_type_c::lword_type_name;
       
 17969                         else
       
 17970                             return_type_symbol = last_type_symbol;
       
 17971                         function_type_suffix = return_type_symbol;
 17949                         function_type_suffix = return_type_symbol;
 17972                         break;
 17950                         break;
 17973                         
 17951                         
 17974                     }
 17952                     }
 17975                     
 17953                     
 18015                 if (IN_type_symbol == NULL)
 17993                 if (IN_type_symbol == NULL)
 18016                   IN_type_symbol = last_type_symbol;
 17994                   IN_type_symbol = last_type_symbol;
 18017                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 17995                 ADD_PARAM_LIST(&IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
 18018                 symbol_c * return_type_symbol = IN_type_symbol;
 17996                 symbol_c * return_type_symbol = IN_type_symbol;
 18019                 function_type_suffix = return_type_symbol;
 17997                 function_type_suffix = return_type_symbol;
       
 17998                 if (search_expression_type->is_literal_integer_type(function_type_suffix))
       
 17999                     function_type_suffix = &search_constant_type_c::lword_type_name;
 18020                 break;
 18000                 break;
 18021                 
 18001                 
 18022             }
 18002             }
 18023             
 18003             
 18024             
 18004             
 18097                                 ADD_PARAM_LIST(&IN0_param_name, IN0_param_value, IN0_type_symbol, function_param_iterator_c::direction_in)
 18077                                 ADD_PARAM_LIST(&IN0_param_name, IN0_param_value, IN0_type_symbol, function_param_iterator_c::direction_in)
 18098                                 
 18078                                 
 18099                                 if (IN1_type_symbol == NULL)
 18079                                 if (IN1_type_symbol == NULL)
 18100                                   IN1_type_symbol = last_type_symbol;
 18080                                   IN1_type_symbol = last_type_symbol;
 18101                                 ADD_PARAM_LIST(&IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
 18081                                 ADD_PARAM_LIST(&IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
 18102                                 symbol_c * return_type_symbol;
 18082                                 symbol_c * return_type_symbol = last_type_symbol;
 18103                                 if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 18104                                     return_type_symbol = &search_constant_type_c::lint_type_name;
       
 18105                                 else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
 18106                                     return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 18107                                 else
       
 18108                                     return_type_symbol = last_type_symbol;
       
 18109                                 function_type_suffix = IN0_type_symbol;
 18083                                 function_type_suffix = IN0_type_symbol;
 18110                                 break;
 18084                                 break;
 18111                                 
 18085                                 
 18112                             }
 18086                             }
 18113                             
 18087                             
 18208                                 /*Function specific CODE */
 18182                                 /*Function specific CODE */
 18209                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 18183                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 18210                             }
 18184                             }
 18211                             
 18185                             
 18212                         }while(param_value != NULL);
 18186                         }while(param_value != NULL);
 18213                         symbol_c * return_type_symbol;
 18187                         symbol_c * return_type_symbol = last_type_symbol;
 18214                         if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 18215                             return_type_symbol = &search_constant_type_c::lint_type_name;
       
 18216                         else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
 18217                             return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 18218                         else
       
 18219                             return_type_symbol = last_type_symbol;
       
 18220                         function_type_suffix = return_type_symbol;
 18188                         function_type_suffix = return_type_symbol;
 18221                         break;
 18189                         break;
 18222                         
 18190                         
 18223                     }
 18191                     }
 18224                     
 18192                     
 18313                                 /*Function specific CODE */
 18281                                 /*Function specific CODE */
 18314                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 18282                                 ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 18315                             }
 18283                             }
 18316                             
 18284                             
 18317                         }while(param_value != NULL);
 18285                         }while(param_value != NULL);
 18318                         symbol_c * return_type_symbol;
 18286                         symbol_c * return_type_symbol = last_type_symbol;
 18319                         if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 18320                             return_type_symbol = &search_constant_type_c::lint_type_name;
       
 18321                         else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
 18322                             return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 18323                         else
       
 18324                             return_type_symbol = last_type_symbol;
       
 18325                         function_type_suffix = return_type_symbol;
 18287                         function_type_suffix = return_type_symbol;
 18326                         break;
 18288                         break;
 18327                         
 18289                         
 18328                     }
 18290                     }
 18329                     
 18291                     
 18411                                 if (MX_type_symbol == NULL)
 18373                                 if (MX_type_symbol == NULL)
 18412                                   MX_type_symbol = last_type_symbol;
 18374                                   MX_type_symbol = last_type_symbol;
 18413                                 ADD_PARAM_LIST(&MX_param_name, MX_param_value, MX_type_symbol, function_param_iterator_c::direction_in)
 18375                                 ADD_PARAM_LIST(&MX_param_name, MX_param_value, MX_type_symbol, function_param_iterator_c::direction_in)
 18414                                 symbol_c * return_type_symbol = IN_type_symbol;
 18376                                 symbol_c * return_type_symbol = IN_type_symbol;
 18415                                 function_type_suffix = IN_type_symbol;
 18377                                 function_type_suffix = IN_type_symbol;
       
 18378                                 if (search_expression_type->is_literal_integer_type(function_type_suffix))
       
 18379                                     function_type_suffix = &search_constant_type_c::lint_type_name;
       
 18380                                 else if (search_expression_type->is_literal_real_type(function_type_suffix))
       
 18381                                     function_type_suffix = &search_constant_type_c::lreal_type_name;
 18416                                 break;
 18382                                 break;
 18417                                 
 18383                                 
 18418                             }
 18384                             }
 18419                             
 18385                             
 18420                             
 18386                             
 18535                                         /*Function specific CODE */
 18501                                         /*Function specific CODE */
 18536                                         ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 18502                                         ADD_PARAM_LIST(&param_name, param_value, current_type_symbol, function_param_iterator_c::direction_in)
 18537                                     }
 18503                                     }
 18538                                     
 18504                                     
 18539                                 }while(param_value != NULL);
 18505                                 }while(param_value != NULL);
 18540                                 symbol_c * return_type_symbol;
 18506                                 symbol_c * return_type_symbol = last_type_symbol;
 18541                                 if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
 18542                                     return_type_symbol = &search_constant_type_c::lint_type_name;
       
 18543                                 else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
 18544                                     return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 18545                                 else
       
 18546                                     return_type_symbol = last_type_symbol;
       
 18547                                 function_type_suffix = return_type_symbol;
 18507                                 function_type_suffix = return_type_symbol;
 18548                                 break;
 18508                                 break;
 18549                                 
 18509                                 
 18550                             }
 18510                             }
 18551                             
 18511